diff --git a/.gitignore b/.gitignore
index 8de178a605e1984659613dd8dac68170e98dbe71..f567511db339f4396e8e54bd81d3b82d227b17a7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -51,7 +51,9 @@ doc/[Dd]oxygen/latex
 doc/[Dd]oxygen/man
 
 # generated files in the main directory (e.g. ReleaseNotes-?.?.html)
+# and in the doc directory
 /*.html
+/doc/*.html
 
 # source packages - anywhere
 *.tar.bz2
diff --git a/README b/README
index 390dd8edb581455cc4c7b1fa1ebfddbb58bb8bde..df56c9c9a4fc721ca1f3d06af825c95ae269aefc 100644
--- a/README
+++ b/README
@@ -2,7 +2,7 @@
 #
 #+TITLE:             OpenFOAM README for version 1.6
 #+AUTHOR:                      OpenCFD Ltd.
-#+DATE:                         July 2009
+#+DATE:                       November 2009
 #+LINK:                  http://www.opencfd.co.uk
 #+OPTIONS: author:nil ^:{}
 
@@ -99,7 +99,7 @@
     and a csh/tcsh example:
 
     + setenv FOAM_INST_DIR /data/app/OpenFOAM
-    + foamDotFile=$FOAM_INST_DIR/OpenFOAM-1.6/etc/bashrc
+    + foamDotFile=$FOAM_INST_DIR/OpenFOAM-1.6/etc/cshrc
     + if ( -f $foamDotFile ) source $foamDotFile
 
     The value set in '$FOAM_INST_DIR' will be used to locate the remaining parts
@@ -168,9 +168,9 @@
   + rm -rf paraview-3.6.1/platforms
   + ./makeParaView
 
-  The PV3FoamReader module is an OpenFOAM utility that can be compiled in the
-  usual manner as follows:
-  + cd $FOAM_UTILITIES/postProcessing/graphics/PV3FoamReader
+  The PV3blockMeshReader and the PV3FoamReader ParaView plugins are compiled
+  as usual for OpenFOAM utilities:
+  + cd $FOAM_UTILITIES/postProcessing/graphics/PV3Readers/
   + ./Allwclean
   + ./Allwmake
 
@@ -180,14 +180,15 @@
     downloads a supported version of Qt /e.g./ 4.3.5 as described in the section
     on "Qt".  The user should unpack the source pack in the $WM_THIRD_PARTY_DIR.
     Then the user can build Qt by executing from within $WM_THIRD_PARTY_DIR:
-    + makeQt
+    + ./makeQt
 
     The user should then compile ParaView using the local version of Qt by
     executing makeParaView with the -qmake option, giving the full path of the
     newly built qmake as an argument:
-    + makeParaView -qmake <path_to_qmake>
+    + ./makeParaView -qmake <path_to_qmake>
 
-    The user must then recompile the PV3FoamReader module as normal (see above).
+    The user must then recompile the PV3blockMeshReader and the
+    PV3FoamReader plugins as usual (see above).
 
 * Documentation
   http://www.OpenFOAM.org/doc
diff --git a/applications/solvers/combustion/dieselEngineFoam/dieselEngineFoam.C b/applications/solvers/combustion/dieselEngineFoam/dieselEngineFoam.C
index ce80690224ef442289ebeb22c50d882185d9a6f1..6507c117a010738ab146419030813033fe591709 100644
--- a/applications/solvers/combustion/dieselEngineFoam/dieselEngineFoam.C
+++ b/applications/solvers/combustion/dieselEngineFoam/dieselEngineFoam.C
@@ -64,7 +64,7 @@ int main(int argc, char *argv[])
 
     // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-    Info << "\nStarting time loop\n" << endl;
+    Info<< "\nStarting time loop\n" << endl;
 
     while (runTime.run())
     {
@@ -85,7 +85,7 @@ int main(int argc, char *argv[])
 
         dieselSpray.evolve();
 
-        Info << "Solving chemistry" << endl;
+        Info<< "Solving chemistry" << endl;
 
         chemistry.solve
         (
diff --git a/applications/solvers/combustion/dieselFoam/dieselFoam.C b/applications/solvers/combustion/dieselFoam/dieselFoam.C
index 42d9534654432c3f2285de3005223da66af80cff..4769a00c77efa19c1ab497ac0c7fb39b71f99d29 100644
--- a/applications/solvers/combustion/dieselFoam/dieselFoam.C
+++ b/applications/solvers/combustion/dieselFoam/dieselFoam.C
@@ -61,7 +61,7 @@ int main(int argc, char *argv[])
 
     // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-    Info << "\nStarting time loop\n" << endl;
+    Info<< "\nStarting time loop\n" << endl;
 
     while (runTime.run())
     {
@@ -72,11 +72,11 @@ int main(int argc, char *argv[])
         runTime++;
         Info<< "Time = " << runTime.timeName() << nl << endl;
 
-        Info << "Evolving Spray" << endl;
+        Info<< "Evolving Spray" << endl;
 
         dieselSpray.evolve();
 
-        Info << "Solving chemistry" << endl;
+        Info<< "Solving chemistry" << endl;
 
         chemistry.solve
         (
diff --git a/applications/solvers/combustion/engineFoam/engineFoam.C b/applications/solvers/combustion/engineFoam/engineFoam.C
index dd584d03e2bb8ddb432f6ec13639b93f0778b0cb..5895c82b92fea70dde73423f4a2e1c23bf8a1ef8 100644
--- a/applications/solvers/combustion/engineFoam/engineFoam.C
+++ b/applications/solvers/combustion/engineFoam/engineFoam.C
@@ -78,7 +78,7 @@ int main(int argc, char *argv[])
 
     // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-    Info << "\nStarting time loop\n" << endl;
+    Info<< "\nStarting time loop\n" << endl;
 
     while (runTime.run())
     {
diff --git a/applications/solvers/combustion/reactingFoam/chemistry.H b/applications/solvers/combustion/reactingFoam/chemistry.H
index 691b6dcb920832fcd215e8044bd88e32acba594b..a1a978210dd2866432bddbd5a9dc6f0d7cff8362 100644
--- a/applications/solvers/combustion/reactingFoam/chemistry.H
+++ b/applications/solvers/combustion/reactingFoam/chemistry.H
@@ -1,5 +1,5 @@
 {
-    Info << "Solving chemistry" << endl;
+    Info<< "Solving chemistry" << endl;
 
     chemistry.solve
     (
diff --git a/applications/solvers/combustion/reactingFoam/reactingFoam.C b/applications/solvers/combustion/reactingFoam/reactingFoam.C
index 875191eea417ed2e53ae671673a41c4672a727f1..2d4ae7589ad1074be113b39e3a047ea7e658aef5 100644
--- a/applications/solvers/combustion/reactingFoam/reactingFoam.C
+++ b/applications/solvers/combustion/reactingFoam/reactingFoam.C
@@ -54,7 +54,7 @@ int main(int argc, char *argv[])
 
     // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-    Info << "\nStarting time loop\n" << endl;
+    Info<< "\nStarting time loop\n" << endl;
 
     while (runTime.run())
     {
diff --git a/applications/solvers/combustion/rhoReactingFoam/chemistry.H b/applications/solvers/combustion/rhoReactingFoam/chemistry.H
index 691b6dcb920832fcd215e8044bd88e32acba594b..a1a978210dd2866432bddbd5a9dc6f0d7cff8362 100644
--- a/applications/solvers/combustion/rhoReactingFoam/chemistry.H
+++ b/applications/solvers/combustion/rhoReactingFoam/chemistry.H
@@ -1,5 +1,5 @@
 {
-    Info << "Solving chemistry" << endl;
+    Info<< "Solving chemistry" << endl;
 
     chemistry.solve
     (
diff --git a/applications/solvers/combustion/rhoReactingFoam/rhoReactingFoam.C b/applications/solvers/combustion/rhoReactingFoam/rhoReactingFoam.C
index 777718b3eacc79cd5dd8d8b8610b5a47602036d8..cc37dd09c1847278b0459ae42669ab72b5607da4 100644
--- a/applications/solvers/combustion/rhoReactingFoam/rhoReactingFoam.C
+++ b/applications/solvers/combustion/rhoReactingFoam/rhoReactingFoam.C
@@ -55,7 +55,7 @@ int main(int argc, char *argv[])
 
     // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-    Info << "\nStarting time loop\n" << endl;
+    Info<< "\nStarting time loop\n" << endl;
 
     while (runTime.run())
     {
diff --git a/applications/solvers/compressible/rhoCentralFoam/BCs/U/maxwellSlipUFvPatchVectorField.C b/applications/solvers/compressible/rhoCentralFoam/BCs/U/maxwellSlipUFvPatchVectorField.C
index ec8f777542bd6cca2125d8e027d699c1d24dd83f..3b69386ed6b026c6d40515dfb8944c876310beaf 100644
--- a/applications/solvers/compressible/rhoCentralFoam/BCs/U/maxwellSlipUFvPatchVectorField.C
+++ b/applications/solvers/compressible/rhoCentralFoam/BCs/U/maxwellSlipUFvPatchVectorField.C
@@ -155,7 +155,7 @@ void maxwellSlipUFvPatchVectorField::updateCoeffs()
 
     refValue() = Uwall_;
 
-    if(thermalCreep_)
+    if (thermalCreep_)
     {
         const volScalarField& vsfT =
             this->db().objectRegistry::lookupObject<volScalarField>("T");
@@ -167,7 +167,7 @@ void maxwellSlipUFvPatchVectorField::updateCoeffs()
         refValue() -= 3.0*pnu/(4.0*pT)*transform(I - n*n, gradpT);
     }
 
-    if(curvature_)
+    if (curvature_)
     {
         const fvPatchTensorField& ptauMC =
             patch().lookupPatchField<volTensorField, tensor>("tauMC");
diff --git a/applications/solvers/compressible/rhoSimpleFoam/pEqn.H b/applications/solvers/compressible/rhoSimpleFoam/pEqn.H
index f6a433fd6164d0f803098051d4a9c44f4fafa38c..38922c99c9c5700518251a347c167b6848f3de62 100644
--- a/applications/solvers/compressible/rhoSimpleFoam/pEqn.H
+++ b/applications/solvers/compressible/rhoSimpleFoam/pEqn.H
@@ -27,7 +27,7 @@ if (transonic)
 
         pEqn.setReference(pRefCell, pRefValue);
 
-        // retain the residual from the first iteration
+        // Retain the residual from the first iteration
         if (nonOrth == 0)
         {
             eqnResidual = pEqn.solve().initialResidual();
diff --git a/applications/solvers/compressible/rhoSimplecFoam/Make/files b/applications/solvers/compressible/rhoSimplecFoam/Make/files
new file mode 100644
index 0000000000000000000000000000000000000000..6637e49aa3bf7599d6fa1c0de9fc1a3d5aab89a8
--- /dev/null
+++ b/applications/solvers/compressible/rhoSimplecFoam/Make/files
@@ -0,0 +1,3 @@
+rhoSimplecFoam.C
+
+EXE = $(FOAM_APPBIN)/rhoSimplecFoam
diff --git a/applications/solvers/compressible/rhoSimplecFoam/Make/options b/applications/solvers/compressible/rhoSimplecFoam/Make/options
new file mode 100644
index 0000000000000000000000000000000000000000..9d578f011a760625377ef026f10d7f84ef72b5c8
--- /dev/null
+++ b/applications/solvers/compressible/rhoSimplecFoam/Make/options
@@ -0,0 +1,14 @@
+EXE_INC = \
+    -I../rhoSimpleFoam \
+    -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
+    -I$(LIB_SRC)/turbulenceModels \
+    -I$(LIB_SRC)/turbulenceModels/compressible/RAS/RASModel \
+    -I$(LIB_SRC)/finiteVolume/cfdTools \
+    -I$(LIB_SRC)/finiteVolume/lnInclude
+
+EXE_LIBS = \
+    -lbasicThermophysicalModels \
+    -lspecie \
+    -lcompressibleRASModels \
+    -lfiniteVolume \
+    -lmeshTools
diff --git a/applications/solvers/compressible/rhoSimplecFoam/UEqn.H b/applications/solvers/compressible/rhoSimplecFoam/UEqn.H
new file mode 100644
index 0000000000000000000000000000000000000000..c41bc9b6c7b93cab65751d97b441f519e4b3d05f
--- /dev/null
+++ b/applications/solvers/compressible/rhoSimplecFoam/UEqn.H
@@ -0,0 +1,17 @@
+    // Solve the Momentum equation
+
+    tmp<fvVectorMatrix> UEqn
+    (
+        fvm::div(phi, U)
+      - fvm::Sp(fvc::div(phi), U)
+      + turbulence->divDevRhoReff(U)
+    );
+
+    UEqn().relax();
+
+    eqnResidual = solve
+    (
+        UEqn() == -fvc::grad(p)
+    ).initialResidual();
+
+    maxResidual = max(eqnResidual, maxResidual);
diff --git a/applications/solvers/compressible/rhoSimplecFoam/createFields.H b/applications/solvers/compressible/rhoSimplecFoam/createFields.H
new file mode 100644
index 0000000000000000000000000000000000000000..d97ee4705b0b1c85bd1410e85fda4d1c5cc2ffb4
--- /dev/null
+++ b/applications/solvers/compressible/rhoSimplecFoam/createFields.H
@@ -0,0 +1,63 @@
+    Info<< "Reading thermophysical properties\n" << endl;
+
+    autoPtr<basicPsiThermo> pThermo
+    (
+        basicPsiThermo::New(mesh)
+    );
+    basicPsiThermo& thermo = pThermo();
+
+    volScalarField rho
+    (
+        IOobject
+        (
+            "rho",
+            runTime.timeName(),
+            mesh,
+            IOobject::READ_IF_PRESENT,
+            IOobject::AUTO_WRITE
+        ),
+        thermo.rho()
+    );
+
+    volScalarField& p = thermo.p();
+    volScalarField& h = thermo.h();
+    const volScalarField& psi = thermo.psi();
+
+    Info<< "Reading field U\n" << endl;
+    volVectorField U
+    (
+        IOobject
+        (
+            "U",
+            runTime.timeName(),
+            mesh,
+            IOobject::MUST_READ,
+            IOobject::AUTO_WRITE
+        ),
+        mesh
+    );
+
+    #include "compressibleCreatePhi.H"
+
+    label pRefCell = 0;
+    scalar pRefValue = 0.0;
+    setRefCell(p, mesh.solutionDict().subDict("SIMPLE"), pRefCell, pRefValue);
+
+    dimensionedScalar pMin
+    (
+        mesh.solutionDict().subDict("SIMPLE").lookup("pMin")
+    );
+
+    Info<< "Creating turbulence model\n" << endl;
+    autoPtr<compressible::RASModel> turbulence
+    (
+        compressible::RASModel::New
+        (
+            rho,
+            U,
+            phi,
+            thermo
+        )
+    );
+
+    dimensionedScalar initialMass = fvc::domainIntegrate(rho);
diff --git a/applications/solvers/compressible/rhoSimplecFoam/hEqn.H b/applications/solvers/compressible/rhoSimplecFoam/hEqn.H
new file mode 100644
index 0000000000000000000000000000000000000000..8ac1c9f51095babab47a8db97348b57e7d040be5
--- /dev/null
+++ b/applications/solvers/compressible/rhoSimplecFoam/hEqn.H
@@ -0,0 +1,29 @@
+{
+    fvScalarMatrix hEqn
+    (
+        fvm::div(phi, h)
+      - fvm::Sp(fvc::div(phi), h)
+      - fvm::laplacian(turbulence->alphaEff(), h)
+     ==
+        fvc::div(phi/fvc::interpolate(rho)*fvc::interpolate(p, "div(U,p)"))
+      - p*fvc::div(phi/fvc::interpolate(rho))
+    );
+
+    hEqn.relax();
+
+    eqnResidual = hEqn.solve().initialResidual();
+    maxResidual = max(eqnResidual, maxResidual);
+
+    thermo.correct();
+
+    rho = thermo.rho();
+
+    if (!transonic)
+    {
+        rho.relax();
+    }
+
+    Info<< "rho max/min : "
+        << max(rho).value() << " "
+        << min(rho).value() << endl;
+}
diff --git a/applications/solvers/compressible/rhoSimplecFoam/pEqn.H b/applications/solvers/compressible/rhoSimplecFoam/pEqn.H
new file mode 100644
index 0000000000000000000000000000000000000000..cd3ae5ff1f46921f536478dcd4b66064ce71b5c2
--- /dev/null
+++ b/applications/solvers/compressible/rhoSimplecFoam/pEqn.H
@@ -0,0 +1,123 @@
+volScalarField p0 = p;
+
+volScalarField AU = UEqn().A();
+volScalarField AtU = AU - UEqn().H1();
+U = UEqn().H()/AU;
+UEqn.clear();
+
+bool closedVolume = false;
+
+if (transonic)
+{
+    for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
+    {
+        surfaceScalarField phid
+        (
+            "phid",
+            fvc::interpolate(psi*U) & mesh.Sf()
+        );
+
+        surfaceScalarField phic
+        (
+            "phic",
+            fvc::interpolate(rho/AtU - rho/AU)*fvc::snGrad(p)*mesh.magSf()
+          + phid*(fvc::interpolate(p) - fvc::interpolate(p, "UD"))
+        );
+
+        refCast<mixedFvPatchScalarField>(p.boundaryField()[1]).refValue()
+            = p.boundaryField()[1];
+
+        fvScalarMatrix pEqn
+        (
+            fvm::div(phid, p)
+          + fvc::div(phic)
+          - fvm::Sp(fvc::div(phid), p)
+          + fvc::div(phid)*p
+          - fvm::laplacian(rho/AtU, p)
+        );
+
+        pEqn.setReference(pRefCell, pRefValue);
+
+        // Retain the residual from the first iteration
+        if (nonOrth == 0)
+        {
+            eqnResidual = pEqn.solve().initialResidual();
+            maxResidual = max(eqnResidual, maxResidual);
+        }
+        else
+        {
+            pEqn.solve();
+        }
+
+        if (nonOrth == nNonOrthCorr)
+        {
+            phi == phic + pEqn.flux();
+        }
+    }
+}
+else
+{
+    for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
+    {
+        phi = fvc::interpolate(rho*U) & mesh.Sf();
+        closedVolume = adjustPhi(phi, U, p);
+        phi += fvc::interpolate(rho/AtU - rho/AU)*fvc::snGrad(p)*mesh.magSf();
+
+        fvScalarMatrix pEqn
+        (
+            fvc::div(phi)
+        //- fvm::laplacian(rho/AU, p)
+          - fvm::laplacian(rho/AtU, p)
+        );
+
+        pEqn.setReference(pRefCell, pRefValue);
+
+        // Retain the residual from the first iteration
+        if (nonOrth == 0)
+        {
+            eqnResidual = pEqn.solve().initialResidual();
+            maxResidual = max(eqnResidual, maxResidual);
+        }
+        else
+        {
+            pEqn.solve();
+        }
+
+
+        if (nonOrth == nNonOrthCorr)
+        {
+            phi += pEqn.flux();
+        }
+    }
+}
+
+// The incompressibe for of the continuity error check is appropriate for
+// steady-state compressible also.
+#include "incompressible/continuityErrs.H"
+
+// Explicitly relax pressure for momentum corrector
+p.relax();
+
+U -= (fvc::grad(p0)*(1.0/AU - 1.0/AtU) + fvc::grad(p)/AtU);
+//U -= fvc::grad(p)/AU;
+
+U.correctBoundaryConditions();
+
+bound(p, pMin);
+
+// For closed-volume cases adjust the pressure and density levels
+// to obey overall mass continuity
+if (closedVolume)
+{
+    p += (initialMass - fvc::domainIntegrate(psi*p))
+        /fvc::domainIntegrate(psi);
+}
+
+rho = thermo.rho();
+
+if (!transonic)
+{
+    rho.relax();
+}
+
+Info<< "rho max/min : " << max(rho).value() << " " << min(rho).value() << endl;
diff --git a/applications/solvers/compressible/rhoSimplecFoam/rhoSimplecFoam.C b/applications/solvers/compressible/rhoSimplecFoam/rhoSimplecFoam.C
new file mode 100644
index 0000000000000000000000000000000000000000..8f706182b560d7d90720871a979c510fda25eb8c
--- /dev/null
+++ b/applications/solvers/compressible/rhoSimplecFoam/rhoSimplecFoam.C
@@ -0,0 +1,92 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 1991-2009 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 2 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, write to the Free Software Foundation,
+    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+Application
+    rhoSimplecFoam
+
+Description
+    Steady-state SIMPLEC solver for laminar or turbulent RANS flow of
+    compressible fluids.
+
+\*---------------------------------------------------------------------------*/
+
+#include "fvCFD.H"
+#include "basicPsiThermo.H"
+#include "RASModel.H"
+#include "mixedFvPatchFields.H"
+#include "bound.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+int main(int argc, char *argv[])
+{
+    #include "setRootCase.H"
+    #include "createTime.H"
+    #include "createMesh.H"
+    #include "createFields.H"
+    #include "initContinuityErrs.H"
+
+    // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+    Info<< "\nStarting time loop\n" << endl;
+
+    for (runTime++; !runTime.end(); runTime++)
+    {
+        Info<< "Time = " << runTime.timeName() << nl << endl;
+
+        #include "readSIMPLEControls.H"
+        #include "initConvergenceCheck.H"
+
+        p.storePrevIter();
+
+        if (!transonic)
+        {
+            rho.storePrevIter();
+        }
+
+        // Velocity-pressure-enthalpy SIMPLEC corrector
+        {
+            #include "UEqn.H"
+            #include "pEqn.H"
+            #include "hEqn.H"
+        }
+
+        turbulence->correct();
+
+        runTime.write();
+
+        Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
+            << "  ClockTime = " << runTime.elapsedClockTime() << " s"
+            << nl << endl;
+
+        #include "convergenceCheck.H"
+    }
+
+    Info<< "End\n" << endl;
+
+    return 0;
+}
+
+
+// ************************************************************************* //
diff --git a/applications/solvers/discreteMethods/molecularDynamics/mdEquilibrationFoam/mdEquilibrationFoam.C b/applications/solvers/discreteMethods/molecularDynamics/mdEquilibrationFoam/mdEquilibrationFoam.C
index 66619cfc674120273e13f710bf78753b16f45c0b..8869f52a2783812516e0313f8d6b9abe64935e03 100644
--- a/applications/solvers/discreteMethods/molecularDynamics/mdEquilibrationFoam/mdEquilibrationFoam.C
+++ b/applications/solvers/discreteMethods/molecularDynamics/mdEquilibrationFoam/mdEquilibrationFoam.C
@@ -50,14 +50,14 @@ int main(int argc, char *argv[])
 
     label nAveragingSteps = 0;
 
-    Info << "\nStarting time loop\n" << endl;
+    Info<< "\nStarting time loop\n" << endl;
 
     while (runTime.loop())
     {
 
         nAveragingSteps++;
 
-        Info << "Time = " << runTime.timeName() << endl;
+        Info<< "Time = " << runTime.timeName() << endl;
 
         molecules.evolve();
 
@@ -74,12 +74,12 @@ int main(int argc, char *argv[])
             nAveragingSteps = 0;
         }
 
-        Info << "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
+        Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
             << "  ClockTime = " << runTime.elapsedClockTime() << " s"
             << nl << endl;
     }
 
-    Info << "End\n" << endl;
+    Info<< "End\n" << endl;
 
     return 0;
 }
diff --git a/applications/solvers/discreteMethods/molecularDynamics/mdFoam/mdFoam.C b/applications/solvers/discreteMethods/molecularDynamics/mdFoam/mdFoam.C
index 4f2eea1ccc75177a2da34d52e6be72ddfd099fb7..0bd07d0330db41d031d384df6c75bad57d92687d 100644
--- a/applications/solvers/discreteMethods/molecularDynamics/mdFoam/mdFoam.C
+++ b/applications/solvers/discreteMethods/molecularDynamics/mdFoam/mdFoam.C
@@ -48,14 +48,14 @@ int main(int argc, char *argv[])
 
     label nAveragingSteps = 0;
 
-    Info << "\nStarting time loop\n" << endl;
+    Info<< "\nStarting time loop\n" << endl;
 
     while (runTime.loop())
     {
 
         nAveragingSteps++;
 
-        Info << "Time = " << runTime.timeName() << endl;
+        Info<< "Time = " << runTime.timeName() << endl;
 
         molecules.evolve();
 
@@ -70,12 +70,12 @@ int main(int argc, char *argv[])
             nAveragingSteps = 0;
         }
 
-        Info << "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
+        Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
             << "  ClockTime = " << runTime.elapsedClockTime() << " s"
             << nl << endl;
     }
 
-    Info << "End\n" << endl;
+    Info<< "End\n" << endl;
 
     return 0;
 }
diff --git a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionFoam.C b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionFoam.C
index 54e1c8cb1840d4719b1f2f360a7ab3d4ba81b052..5a56c2709ffcbb19348eb109f4a44f95d48a20e1 100644
--- a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionFoam.C
+++ b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionFoam.C
@@ -117,7 +117,7 @@ int main(int argc, char *argv[])
             << nl << endl;
     }
 
-    Info << "End\n" << endl;
+    Info<< "End\n" << endl;
 
     return 0;
 }
diff --git a/applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/Make/files b/applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/Make/files
new file mode 100644
index 0000000000000000000000000000000000000000..e5f536ca09516d6be41ad0837f36e0f04c2d28e9
--- /dev/null
+++ b/applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/Make/files
@@ -0,0 +1,5 @@
+derivedFvPatchFields/solidWallHeatFluxTemperature/solidWallHeatFluxTemperatureFvPatchScalarField.C
+chtMultiRegionSimpleFoam.C
+
+EXE = $(FOAM_APPBIN)/chtMultiRegionSimpleFoam
+
diff --git a/applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/Make/options b/applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/Make/options
new file mode 100644
index 0000000000000000000000000000000000000000..34be1995965d8beac1628c87981949e8d010ab3f
--- /dev/null
+++ b/applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/Make/options
@@ -0,0 +1,16 @@
+EXE_INC = \
+    /* -DFULLDEBUG -O0 -g */ \
+    -Ifluid \
+    -Isolid \
+    -I$(LIB_SRC)/finiteVolume/lnInclude \
+    -I$(LIB_SRC)/meshTools/lnInclude \
+    -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
+    -I$(LIB_SRC)/turbulenceModels \
+    -I$(LIB_SRC)/turbulenceModels/compressible/turbulenceModel/lnInclude \
+    -I$(LIB_SRC)/turbulenceModels/compressible/RAS/lnInclude
+
+EXE_LIBS = \
+    -lfiniteVolume \
+    -lbasicThermophysicalModels \
+    -lspecie \
+    -lcompressibleRASModels
diff --git a/applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/chtMultiRegionSimpleFoam.C b/applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/chtMultiRegionSimpleFoam.C
new file mode 100644
index 0000000000000000000000000000000000000000..336f32d6714fc0ab44b8d78c268f22fb65b9eb75
--- /dev/null
+++ b/applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/chtMultiRegionSimpleFoam.C
@@ -0,0 +1,99 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 1991-2009 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 2 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, write to the Free Software Foundation,
+    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+Application
+    chtMultiRegionSimpleFoam
+
+Description
+    Steady-state version of chtMultiRegionFoam
+
+\*---------------------------------------------------------------------------*/
+
+#include "fvCFD.H"
+#include "basicPsiThermo.H"
+#include "turbulenceModel.H"
+#include "fixedGradientFvPatchFields.H"
+#include "regionProperties.H"
+#include "compressibleCourantNo.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+int main(int argc, char *argv[])
+{
+    #include "setRootCase.H"
+    #include "createTime.H"
+
+    regionProperties rp(runTime);
+
+    #include "createFluidMeshes.H"
+    #include "createSolidMeshes.H"
+
+    #include "createFluidFields.H"
+    #include "createSolidFields.H"
+
+    #include "initContinuityErrs.H"
+
+
+    while (runTime.run())
+    {
+        Info<< "Time = " << runTime.timeName() << nl << endl;
+
+        forAll(fluidRegions, i)
+        {
+            Info<< "\nSolving for fluid region "
+                << fluidRegions[i].name() << endl;
+            #include "setRegionFluidFields.H"
+            #include "readFluidMultiRegionSIMPLEControls.H"
+            #include "initConvergenceCheck.H"
+            #include "solveFluid.H"
+            #include "convergenceCheck.H"
+        }
+
+        forAll(solidRegions, i)
+        {
+            Info<< "\nSolving for solid region "
+                << solidRegions[i].name() << endl;
+            #include "setRegionSolidFields.H"
+            #include "readSolidMultiRegionSIMPLEControls.H"
+            #include "initConvergenceCheck.H"
+            #include "solveSolid.H"
+            #include "convergenceCheck.H"
+        }
+
+        runTime++;
+
+        runTime.write();
+
+        Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
+            << "  ClockTime = " << runTime.elapsedClockTime() << " s"
+            << nl << endl;
+    }
+
+    Info<< "End\n" << endl;
+
+    return 0;
+}
+
+
+// ************************************************************************* //
diff --git a/applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/derivedFvPatchFields/solidWallHeatFluxTemperature/solidWallHeatFluxTemperatureFvPatchScalarField.C b/applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/derivedFvPatchFields/solidWallHeatFluxTemperature/solidWallHeatFluxTemperatureFvPatchScalarField.C
new file mode 100644
index 0000000000000000000000000000000000000000..b1f8c3bed2f58850226ca1b1701f0afa359d8550
--- /dev/null
+++ b/applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/derivedFvPatchFields/solidWallHeatFluxTemperature/solidWallHeatFluxTemperatureFvPatchScalarField.C
@@ -0,0 +1,168 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 1991-2009 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 2 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, write to the Free Software Foundation,
+    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+\*---------------------------------------------------------------------------*/
+
+#include "solidWallHeatFluxTemperatureFvPatchScalarField.H"
+#include "addToRunTimeSelectionTable.H"
+#include "fvPatchFieldMapper.H"
+#include "volFields.H"
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+Foam::solidWallHeatFluxTemperatureFvPatchScalarField::
+solidWallHeatFluxTemperatureFvPatchScalarField
+(
+    const fvPatch& p,
+    const DimensionedField<scalar, volMesh>& iF
+)
+:
+    fixedValueFvPatchScalarField(p, iF),
+    q_(p.size(), 0.0),
+    KName_("undefined-K")
+{}
+
+
+Foam::solidWallHeatFluxTemperatureFvPatchScalarField::
+solidWallHeatFluxTemperatureFvPatchScalarField
+(
+    const solidWallHeatFluxTemperatureFvPatchScalarField& ptf,
+    const fvPatch& p,
+    const DimensionedField<scalar, volMesh>& iF,
+    const fvPatchFieldMapper& mapper
+)
+:
+    fixedValueFvPatchScalarField(ptf, p, iF, mapper),
+    q_(ptf.q_, mapper),
+    KName_(ptf.KName_)
+{}
+
+
+Foam::solidWallHeatFluxTemperatureFvPatchScalarField::
+solidWallHeatFluxTemperatureFvPatchScalarField
+(
+    const fvPatch& p,
+    const DimensionedField<scalar, volMesh>& iF,
+    const dictionary& dict
+)
+:
+    fixedValueFvPatchScalarField(p, iF, dict),
+    q_("q", dict, p.size()),
+    KName_(dict.lookup("K"))
+{}
+
+
+Foam::solidWallHeatFluxTemperatureFvPatchScalarField::
+solidWallHeatFluxTemperatureFvPatchScalarField
+(
+    const solidWallHeatFluxTemperatureFvPatchScalarField& tppsf
+)
+:
+    fixedValueFvPatchScalarField(tppsf),
+    q_(tppsf.q_),
+    KName_(tppsf.KName_)
+{}
+
+
+Foam::solidWallHeatFluxTemperatureFvPatchScalarField::
+solidWallHeatFluxTemperatureFvPatchScalarField
+(
+    const solidWallHeatFluxTemperatureFvPatchScalarField& tppsf,
+    const DimensionedField<scalar, volMesh>& iF
+)
+:
+    fixedValueFvPatchScalarField(tppsf, iF),
+    q_(tppsf.q_),
+    KName_(tppsf.KName_)
+{}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+void Foam::solidWallHeatFluxTemperatureFvPatchScalarField::autoMap
+(
+    const fvPatchFieldMapper& m
+)
+{
+    fixedValueFvPatchScalarField::autoMap(m);
+    q_.autoMap(m);
+}
+
+
+void Foam::solidWallHeatFluxTemperatureFvPatchScalarField::rmap
+(
+    const fvPatchScalarField& ptf,
+    const labelList& addr
+)
+{
+    fixedValueFvPatchScalarField::rmap(ptf, addr);
+
+    const solidWallHeatFluxTemperatureFvPatchScalarField& hfptf =
+        refCast<const solidWallHeatFluxTemperatureFvPatchScalarField>(ptf);
+
+    q_.rmap(hfptf.q_, addr);
+}
+
+
+void Foam::solidWallHeatFluxTemperatureFvPatchScalarField::updateCoeffs()
+{
+    if (updated())
+    {
+        return;
+    }
+
+    const scalarField& Kw =
+        patch().lookupPatchField<volScalarField, scalar>(KName_);
+
+    const fvPatchScalarField& Tw = *this;
+
+    operator==(q_/(patch().deltaCoeffs()*Kw) + Tw.patchInternalField());
+
+    fixedValueFvPatchScalarField::updateCoeffs();
+}
+
+
+void Foam::solidWallHeatFluxTemperatureFvPatchScalarField::write
+(
+    Ostream& os
+) const
+{
+    fixedValueFvPatchScalarField::write(os);
+    q_.writeEntry("q", os);
+    os.writeKeyword("K") << KName_ << token::END_STATEMENT << nl;
+}
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+    makePatchTypeField
+    (
+        fvPatchScalarField,
+        solidWallHeatFluxTemperatureFvPatchScalarField
+    );
+}
+
+// ************************************************************************* //
diff --git a/applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/derivedFvPatchFields/solidWallHeatFluxTemperature/solidWallHeatFluxTemperatureFvPatchScalarField.H b/applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/derivedFvPatchFields/solidWallHeatFluxTemperature/solidWallHeatFluxTemperatureFvPatchScalarField.H
new file mode 100644
index 0000000000000000000000000000000000000000..85a1ef1cf13f46466f9451e6e1295cde8a8e0d6a
--- /dev/null
+++ b/applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/derivedFvPatchFields/solidWallHeatFluxTemperature/solidWallHeatFluxTemperatureFvPatchScalarField.H
@@ -0,0 +1,181 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 1991-2009 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 2 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, write to the Free Software Foundation,
+    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+Class
+    solidWallHeatFluxTemperatureFvPatchScalarField
+
+Description
+    Heat flux boundary condition for temperature on solid region
+
+    Example usage:
+        myWallPatch
+        {
+            type            solidWallHeatFluxTemperature;
+            K               K;                 // Name of K field
+            q               uniform 1000;      // Heat flux / [W/m2]
+            value           300.0;             // Initial temperature / [K]
+        }
+
+
+SourceFiles
+    solidWallHeatFluxTemperatureFvPatchScalarField.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef solidWallHeatFluxTemperatureFvPatchScalarField_H
+#define solidWallHeatFluxTemperatureFvPatchScalarField_H
+
+#include "fixedValueFvPatchFields.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+/*---------------------------------------------------------------------------*\
+      Class solidWallHeatFluxTemperatureFvPatchScalarField Declaration
+\*---------------------------------------------------------------------------*/
+
+class solidWallHeatFluxTemperatureFvPatchScalarField
+:
+    public fixedValueFvPatchScalarField
+{
+    // Private data
+
+        //- Heat flux / [W/m2]
+        scalarField q_;
+
+        //- Name of thermal conductivity field
+        word KName_;
+
+
+public:
+
+    //- Runtime type information
+    TypeName("solidWallHeatFluxTemperature");
+
+
+    // Constructors
+
+        //- Construct from patch and internal field
+        solidWallHeatFluxTemperatureFvPatchScalarField
+        (
+            const fvPatch&,
+            const DimensionedField<scalar, volMesh>&
+        );
+
+        //- Construct from patch, internal field and dictionary
+        solidWallHeatFluxTemperatureFvPatchScalarField
+        (
+            const fvPatch&,
+            const DimensionedField<scalar, volMesh>&,
+            const dictionary&
+        );
+
+        //- Construct by mapping given
+        // solidWallHeatFluxTemperatureFvPatchScalarField
+        // onto a new patch
+        solidWallHeatFluxTemperatureFvPatchScalarField
+        (
+            const solidWallHeatFluxTemperatureFvPatchScalarField&,
+            const fvPatch&,
+            const DimensionedField<scalar, volMesh>&,
+            const fvPatchFieldMapper&
+        );
+
+        //- Construct as copy
+        solidWallHeatFluxTemperatureFvPatchScalarField
+        (
+            const solidWallHeatFluxTemperatureFvPatchScalarField&
+        );
+
+        //- Construct and return a clone
+        virtual tmp<fvPatchScalarField> clone() const
+        {
+            return tmp<fvPatchScalarField>
+            (
+                new solidWallHeatFluxTemperatureFvPatchScalarField(*this)
+            );
+        }
+
+        //- Construct as copy setting internal field reference
+        solidWallHeatFluxTemperatureFvPatchScalarField
+        (
+            const solidWallHeatFluxTemperatureFvPatchScalarField&,
+            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 solidWallHeatFluxTemperatureFvPatchScalarField(*this, iF)
+            );
+        }
+
+
+    // Member functions
+
+        // Evaluation functions
+
+            //- Update the coefficients associated with the patch field
+            virtual void updateCoeffs();
+
+
+        // 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&
+            );
+
+
+        // I-O
+
+            //- Write
+            void write(Ostream&) const;
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/fluid/UEqn.H b/applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/fluid/UEqn.H
new file mode 100644
index 0000000000000000000000000000000000000000..1cbafe368aa4b6d2c4f9dddaa63fbe8db0ca1175
--- /dev/null
+++ b/applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/fluid/UEqn.H
@@ -0,0 +1,22 @@
+    // Solve the Momentum equation
+    tmp<fvVectorMatrix> UEqn
+    (
+        fvm::div(phi, U)
+      - fvm::Sp(fvc::div(phi), U)
+      + turb.divDevRhoReff(U)
+    );
+
+    UEqn().relax();
+
+    eqnResidual = solve
+    (
+        UEqn()
+     ==
+        fvc::reconstruct
+        (
+            fvc::interpolate(rho)*(g & mesh.Sf())
+          - fvc::snGrad(p)*mesh.magSf()
+        )
+    ).initialResidual();
+
+    maxResidual = max(eqnResidual, maxResidual);
diff --git a/applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/fluid/compressibleContinuityErrors.H b/applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/fluid/compressibleContinuityErrors.H
new file mode 100644
index 0000000000000000000000000000000000000000..046ca5ec378429b496b6e4bbe47c844a1a6999de
--- /dev/null
+++ b/applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/fluid/compressibleContinuityErrors.H
@@ -0,0 +1,21 @@
+{
+    dimensionedScalar totalMass = fvc::domainIntegrate(rho);
+
+    scalar sumLocalContErr =
+    (
+        fvc::domainIntegrate(mag(rho - thermo.rho()))/totalMass
+    ).value();
+
+    scalar globalContErr =
+    (
+        fvc::domainIntegrate(rho - thermo.rho())/totalMass
+    ).value();
+
+    cumulativeContErr[i] += globalContErr;
+
+    Info<< "time step continuity errors (" << mesh.name() << ")"
+        << ": sum local = " << sumLocalContErr
+        << ", global = " << globalContErr
+        << ", cumulative = " << cumulativeContErr[i]
+        << endl;
+}
diff --git a/applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/fluid/compressibleCourantNo.C b/applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/fluid/compressibleCourantNo.C
new file mode 100644
index 0000000000000000000000000000000000000000..a3d68f55ca4d2f5ffdca0b4e995d69aeadddda94
--- /dev/null
+++ b/applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/fluid/compressibleCourantNo.C
@@ -0,0 +1,63 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 1991-2009 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 2 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, write to the Free Software Foundation,
+    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+\*---------------------------------------------------------------------------*/
+
+#include "compressibleCourantNo.H"
+#include "fvc.H"
+
+Foam::scalar Foam::compressibleCourantNo
+(
+    const fvMesh& mesh,
+    const Time& runTime,
+    const volScalarField& rho,
+    const surfaceScalarField& phi
+)
+{
+    scalar CoNum = 0.0;
+    scalar meanCoNum = 0.0;
+
+    //- Can have fluid domains with 0 cells so do not test.
+    //if (mesh.nInternalFaces())
+    {
+        surfaceScalarField SfUfbyDelta =
+            mesh.surfaceInterpolation::deltaCoeffs()
+          * mag(phi)
+          / fvc::interpolate(rho);
+
+        CoNum = max(SfUfbyDelta/mesh.magSf())
+            .value()*runTime.deltaT().value();
+
+        meanCoNum = (sum(SfUfbyDelta)/sum(mesh.magSf()))
+            .value()*runTime.deltaT().value();
+    }
+
+    Info<< "Region: " << mesh.name() << " Courant Number mean: " << meanCoNum
+        << " max: " << CoNum << endl;
+
+    return CoNum;
+}
+
+
+// ************************************************************************* //
diff --git a/applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/fluid/compressibleCourantNo.H b/applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/fluid/compressibleCourantNo.H
new file mode 100644
index 0000000000000000000000000000000000000000..329b8cce65ec4d8e74cd310abc463c490051aa7e
--- /dev/null
+++ b/applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/fluid/compressibleCourantNo.H
@@ -0,0 +1,49 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 1991-2009 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 2 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, write to the Free Software Foundation,
+    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+Description
+    Calculates and outputs the mean and maximum Courant Numbers for the fluid
+    regions
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef compressibleCourantNo_H
+#define compressibleCourantNo_H
+
+#include "fvMesh.H"
+
+namespace Foam
+{
+    scalar compressibleCourantNo
+    (
+        const fvMesh& mesh,
+        const Time& runTime,
+        const volScalarField& rho,
+        const surfaceScalarField& phi
+    );
+}
+
+#endif
+
+// ************************************************************************* //
diff --git a/applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/fluid/compressibleMultiRegionCourantNo.H b/applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/fluid/compressibleMultiRegionCourantNo.H
new file mode 100644
index 0000000000000000000000000000000000000000..3ca2f685819312306802794b946f5048e91e6e51
--- /dev/null
+++ b/applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/fluid/compressibleMultiRegionCourantNo.H
@@ -0,0 +1,15 @@
+    scalar CoNum = -GREAT;
+    forAll(fluidRegions, regionI)
+    {
+        CoNum = max
+        (
+            compressibleCourantNo
+            (
+                fluidRegions[regionI],
+                runTime,
+                rhoFluid[regionI],
+                phiFluid[regionI]
+            ),
+            CoNum
+        );
+    }
diff --git a/applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/fluid/convergenceCheck.H b/applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/fluid/convergenceCheck.H
new file mode 100644
index 0000000000000000000000000000000000000000..53c00386ff6e1ad13f9d867f268dd63d29fa9ede
--- /dev/null
+++ b/applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/fluid/convergenceCheck.H
@@ -0,0 +1,12 @@
+// check convergence
+Info<< "maxResidual: " << maxResidual
+    << "  convergence criterion: " << convergenceCriterion
+    << endl;
+
+if (maxResidual < convergenceCriterion)
+{
+    Info<< "reached convergence criterion: " << convergenceCriterion << endl;
+    runTime.writeAndEnd();
+    Info<< "latestTime = " << runTime.timeName() << endl;
+}
+
diff --git a/applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/fluid/createFluidFields.H b/applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/fluid/createFluidFields.H
new file mode 100644
index 0000000000000000000000000000000000000000..2d2ccf9a5eb4d443059ba97985a77b229407073e
--- /dev/null
+++ b/applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/fluid/createFluidFields.H
@@ -0,0 +1,144 @@
+    // Initialise fluid field pointer lists
+    PtrList<basicPsiThermo> thermoFluid(fluidRegions.size());
+    PtrList<volScalarField> rhoFluid(fluidRegions.size());
+    PtrList<volScalarField> KFluid(fluidRegions.size());
+    PtrList<volVectorField> UFluid(fluidRegions.size());
+    PtrList<surfaceScalarField> phiFluid(fluidRegions.size());
+    PtrList<uniformDimensionedVectorField> gFluid(fluidRegions.size());
+    PtrList<compressible::turbulenceModel> turbulence(fluidRegions.size());
+    PtrList<volScalarField> DpDtf(fluidRegions.size());
+
+    List<scalar> initialMassFluid(fluidRegions.size());
+    List<label> pRefCellFluid(fluidRegions.size(),0);
+    List<scalar> pRefValueFluid(fluidRegions.size(),0.0);
+
+
+    // Populate fluid field pointer lists
+    forAll(fluidRegions, i)
+    {
+        Info<< "*** Reading fluid mesh thermophysical properties for region "
+            << fluidRegions[i].name() << nl << endl;
+
+        Info<< "    Adding to thermoFluid\n" << endl;
+
+        thermoFluid.set
+        (
+            i,
+            basicPsiThermo::New(fluidRegions[i]).ptr()
+        );
+
+        Info<< "    Adding to rhoFluid\n" << endl;
+        rhoFluid.set
+        (
+            i,
+            new volScalarField
+            (
+                IOobject
+                (
+                    "rho",
+                    runTime.timeName(),
+                    fluidRegions[i],
+                    IOobject::NO_READ,
+                    IOobject::AUTO_WRITE
+                ),
+                thermoFluid[i].rho()
+            )
+        );
+
+        Info<< "    Adding to KFluid\n" << endl;
+        KFluid.set
+        (
+            i,
+            new volScalarField
+            (
+                IOobject
+                (
+                    "K",
+                    runTime.timeName(),
+                    fluidRegions[i],
+                    IOobject::NO_READ,
+                    IOobject::NO_WRITE
+                ),
+                thermoFluid[i].Cp()*thermoFluid[i].alpha()
+            )
+        );
+
+        Info<< "    Adding to UFluid\n" << endl;
+        UFluid.set
+        (
+            i,
+            new volVectorField
+            (
+                IOobject
+                (
+                    "U",
+                    runTime.timeName(),
+                    fluidRegions[i],
+                    IOobject::MUST_READ,
+                    IOobject::AUTO_WRITE
+                ),
+                fluidRegions[i]
+            )
+        );
+
+        Info<< "    Adding to phiFluid\n" << endl;
+        phiFluid.set
+        (
+            i,
+            new surfaceScalarField
+            (
+                IOobject
+                (
+                    "phi",
+                    runTime.timeName(),
+                    fluidRegions[i],
+                    IOobject::READ_IF_PRESENT,
+                    IOobject::AUTO_WRITE
+                ),
+                linearInterpolate(rhoFluid[i]*UFluid[i])
+                    & fluidRegions[i].Sf()
+            )
+        );
+
+        Info<< "    Adding to gFluid\n" << endl;
+        gFluid.set
+        (
+            i,
+            new uniformDimensionedVectorField
+            (
+                IOobject
+                (
+                    "g",
+                    runTime.constant(),
+                    fluidRegions[i],
+                    IOobject::MUST_READ,
+                    IOobject::NO_WRITE
+                )
+            )
+        );
+
+        Info<< "    Adding to turbulence\n" << endl;
+        turbulence.set
+        (
+            i,
+            compressible::turbulenceModel::New
+            (
+                rhoFluid[i],
+                UFluid[i],
+                phiFluid[i],
+                thermoFluid[i]
+            ).ptr()
+        );
+
+        initialMassFluid[i] = fvc::domainIntegrate(rhoFluid[i]).value();
+
+        setRefCell
+        (
+            thermoFluid[i].p(),
+            fluidRegions[i].solutionDict().subDict("SIMPLE"),
+            pRefCellFluid[i],
+            pRefValueFluid[i]
+        );
+    }
+
+
diff --git a/applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/fluid/createFluidMeshes.H b/applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/fluid/createFluidMeshes.H
new file mode 100644
index 0000000000000000000000000000000000000000..30a2e1089f8875cf507ac0d4d76492830cf9647c
--- /dev/null
+++ b/applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/fluid/createFluidMeshes.H
@@ -0,0 +1,22 @@
+    PtrList<fvMesh> fluidRegions(rp.fluidRegionNames().size());
+
+    forAll(rp.fluidRegionNames(), i)
+    {
+        Info<< "Create fluid mesh for region " << rp.fluidRegionNames()[i]
+            << " for time = " << runTime.timeName() << nl << endl;
+
+        fluidRegions.set
+        (
+            i,
+            new fvMesh
+            (
+                IOobject
+                (
+                    rp.fluidRegionNames()[i],
+                    runTime.timeName(),
+                    runTime,
+                    IOobject::MUST_READ
+                )
+            )
+        );
+    }
diff --git a/applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/fluid/hEqn.H b/applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/fluid/hEqn.H
new file mode 100644
index 0000000000000000000000000000000000000000..ccd661599027a1906e90affab97d322cdd40c286
--- /dev/null
+++ b/applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/fluid/hEqn.H
@@ -0,0 +1,21 @@
+{
+    fvScalarMatrix hEqn
+    (
+        fvm::div(phi, h)
+      - fvm::Sp(fvc::div(phi), h)
+      - fvm::laplacian(turb.alphaEff(), h)
+     ==
+        fvc::div(phi/fvc::interpolate(rho)*fvc::interpolate(p))
+      - p*fvc::div(phi/fvc::interpolate(rho))
+    );
+
+    hEqn.relax();
+
+    eqnResidual = hEqn.solve().initialResidual();
+    maxResidual = max(eqnResidual, maxResidual);
+
+    thermo.correct();
+
+    Info<< "Min/max T:" << min(thermo.T()).value() << ' '
+        << max(thermo.T()).value() << endl;
+}
diff --git a/applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/fluid/initConvergenceCheck.H b/applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/fluid/initConvergenceCheck.H
new file mode 100644
index 0000000000000000000000000000000000000000..c920b6708d044d177227d79973ed61bc7f2658fc
--- /dev/null
+++ b/applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/fluid/initConvergenceCheck.H
@@ -0,0 +1,7 @@
+    // initialize values for convergence checks
+
+    scalar eqnResidual = 1, maxResidual = 0;
+    scalar convergenceCriterion = 0;
+
+    simple.readIfPresent("convergence", convergenceCriterion);
+
diff --git a/applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/fluid/pEqn.H b/applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/fluid/pEqn.H
new file mode 100644
index 0000000000000000000000000000000000000000..6b6fe6ef5dd76b922aa1e003f97e1a86273af2d4
--- /dev/null
+++ b/applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/fluid/pEqn.H
@@ -0,0 +1,74 @@
+{
+    // From buoyantSimpleFoam
+
+    rho = thermo.rho();
+
+    volScalarField rUA = 1.0/UEqn().A();
+    surfaceScalarField rhorUAf("(rho*(1|A(U)))", fvc::interpolate(rho*rUA));
+
+    U = rUA*UEqn().H();
+    UEqn.clear();
+
+    phi = fvc::interpolate(rho)*(fvc::interpolate(U) & mesh.Sf());
+    bool closedVolume = adjustPhi(phi, U, p);
+
+    surfaceScalarField buoyancyPhi =
+        rhorUAf*fvc::interpolate(rho)*(g & mesh.Sf());
+    phi += buoyancyPhi;
+
+    // Solve pressure
+    for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
+    {
+        fvScalarMatrix pEqn
+        (
+            fvm::laplacian(rhorUAf, p) == fvc::div(phi)
+        );
+
+        pEqn.setReference(pRefCell, pRefValue);
+
+        // retain the residual from the first iteration
+        if (nonOrth == 0)
+        {
+            eqnResidual = pEqn.solve().initialResidual();
+            maxResidual = max(eqnResidual, maxResidual);
+        }
+        else
+        {
+            pEqn.solve();
+        }
+
+        if (nonOrth == nNonOrthCorr)
+        {
+            // For closed-volume cases adjust the pressure and density levels
+            // to obey overall mass continuity
+            if (closedVolume)
+            {
+                p += (initialMass - fvc::domainIntegrate(psi*p))
+                    /fvc::domainIntegrate(psi);
+            }
+
+            // Calculate the conservative fluxes
+            phi -= pEqn.flux();
+
+            // Explicitly relax pressure for momentum corrector
+            p.relax();
+
+            // Correct the momentum source with the pressure gradient flux
+            // calculated from the relaxed pressure
+            U += rUA*fvc::reconstruct((buoyancyPhi - pEqn.flux())/rhorUAf);
+            U.correctBoundaryConditions();
+        }
+    }
+
+
+    #include "continuityErrs.H"
+
+    rho = thermo.rho();
+    rho.relax();
+
+    Info<< "Min/max rho:" << min(rho).value() << ' '
+        << max(rho).value() << endl;
+
+    // Update thermal conductivity
+    K = thermo.Cp()*turb.alphaEff();
+}
diff --git a/applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/fluid/readFluidMultiRegionSIMPLEControls.H b/applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/fluid/readFluidMultiRegionSIMPLEControls.H
new file mode 100644
index 0000000000000000000000000000000000000000..3054562d5d68076c7d36389b5479b4a41c113e9f
--- /dev/null
+++ b/applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/fluid/readFluidMultiRegionSIMPLEControls.H
@@ -0,0 +1,25 @@
+    dictionary simple = fluidRegions[i].solutionDict().subDict("SIMPLE");
+
+    int nNonOrthCorr = 0;
+    if (simple.found("nNonOrthogonalCorrectors"))
+    {
+        nNonOrthCorr = readInt(simple.lookup("nNonOrthogonalCorrectors"));
+    }
+
+    bool momentumPredictor = true;
+    if (simple.found("momentumPredictor"))
+    {
+        momentumPredictor = Switch(simple.lookup("momentumPredictor"));
+    }
+
+    bool fluxGradp = false;
+    if (simple.found("fluxGradp"))
+    {
+        fluxGradp = Switch(simple.lookup("fluxGradp"));
+    }
+
+    bool transonic = false;
+    if (simple.found("transonic"))
+    {
+        transonic = Switch(simple.lookup("transonic"));
+    }
diff --git a/applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/fluid/setRegionFluidFields.H b/applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/fluid/setRegionFluidFields.H
new file mode 100644
index 0000000000000000000000000000000000000000..8491056ea325e7f20258da63a16e60c9ab2130e2
--- /dev/null
+++ b/applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/fluid/setRegionFluidFields.H
@@ -0,0 +1,24 @@
+    const fvMesh& mesh = fluidRegions[i];
+
+    basicPsiThermo& thermo = thermoFluid[i];
+    volScalarField& rho = rhoFluid[i];
+    volScalarField& K = KFluid[i];
+    volVectorField& U = UFluid[i];
+    surfaceScalarField& phi = phiFluid[i];
+    const dimensionedVector& g = gFluid[i];
+
+    compressible::turbulenceModel& turb = turbulence[i];
+
+    volScalarField& p = thermo.p();
+    const volScalarField& psi = thermo.psi();
+    volScalarField& h = thermo.h();
+
+    const dimensionedScalar initialMass
+    (
+        "initialMass",
+        dimMass,
+        initialMassFluid[i]
+    );
+
+    const label pRefCell = pRefCellFluid[i];
+    const scalar pRefValue = pRefValueFluid[i];
diff --git a/applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/fluid/solveFluid.H b/applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/fluid/solveFluid.H
new file mode 100644
index 0000000000000000000000000000000000000000..5198941366285201708ca870b3763390a07c5db8
--- /dev/null
+++ b/applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/fluid/solveFluid.H
@@ -0,0 +1,11 @@
+//  Pressure-velocity SIMPLE corrector
+
+    p.storePrevIter();
+    rho.storePrevIter();
+    {
+        #include "UEqn.H"
+        #include "hEqn.H"
+        #include "pEqn.H"
+    }
+
+    turb.correct();
diff --git a/applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/solid/createSolidFields.H b/applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/solid/createSolidFields.H
new file mode 100644
index 0000000000000000000000000000000000000000..3361a89add381ed2f43d39b602b2b945040453cf
--- /dev/null
+++ b/applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/solid/createSolidFields.H
@@ -0,0 +1,91 @@
+    // Initialise solid field pointer lists
+    PtrList<volScalarField> rhos(solidRegions.size());
+    PtrList<volScalarField> cps(solidRegions.size());
+    PtrList<volScalarField> rhosCps(solidRegions.size());
+    PtrList<volScalarField> Ks(solidRegions.size());
+    PtrList<volScalarField> Ts(solidRegions.size());
+
+    // Populate solid field pointer lists
+    forAll(solidRegions, i)
+    {
+        Info<< "*** Reading solid mesh thermophysical properties for region "
+            << solidRegions[i].name() << nl << endl;
+
+        Info<< "    Adding to rhos\n" << endl;
+        rhos.set
+        (
+            i,
+            new volScalarField
+            (
+                IOobject
+                (
+                    "rho",
+                    runTime.timeName(),
+                    solidRegions[i],
+                    IOobject::MUST_READ,
+                    IOobject::AUTO_WRITE
+                ),
+                solidRegions[i]
+            )
+        );
+
+        Info<< "    Adding to cps\n" << endl;
+        cps.set
+        (
+            i,
+            new volScalarField
+            (
+                IOobject
+                (
+                    "cp",
+                    runTime.timeName(),
+                    solidRegions[i],
+                    IOobject::MUST_READ,
+                    IOobject::AUTO_WRITE
+                ),
+                solidRegions[i]
+            )
+        );
+
+        rhosCps.set
+        (
+            i,
+            new volScalarField("rhosCps", rhos[i]*cps[i])
+        );
+
+        Info<< "    Adding to Ks\n" << endl;
+        Ks.set
+        (
+            i,
+            new volScalarField
+            (
+                IOobject
+                (
+                    "K",
+                    runTime.timeName(),
+                    solidRegions[i],
+                    IOobject::MUST_READ,
+                    IOobject::AUTO_WRITE
+                ),
+                solidRegions[i]
+            )
+        );
+
+        Info<< "    Adding to Ts\n" << endl;
+        Ts.set
+        (
+            i,
+            new volScalarField
+            (
+                IOobject
+                (
+                    "T",
+                    runTime.timeName(),
+                    solidRegions[i],
+                    IOobject::MUST_READ,
+                    IOobject::AUTO_WRITE
+                ),
+                solidRegions[i]
+            )
+        );
+    }
diff --git a/applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/solid/createSolidMeshes.H b/applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/solid/createSolidMeshes.H
new file mode 100644
index 0000000000000000000000000000000000000000..eb50be23808e6ffdf31c17fca398bb5366f24c7e
--- /dev/null
+++ b/applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/solid/createSolidMeshes.H
@@ -0,0 +1,27 @@
+    PtrList<fvMesh> solidRegions(rp.solidRegionNames().size());
+
+    forAll(rp.solidRegionNames(), i)
+    {
+        Info<< "Create solid mesh for region " << rp.solidRegionNames()[i]
+            << " for time = " << runTime.timeName() << nl << endl;
+
+        solidRegions.set
+        (
+            i,
+            new fvMesh
+            (
+                IOobject
+                (
+                    rp.solidRegionNames()[i],
+                    runTime.timeName(),
+                    runTime,
+                    IOobject::MUST_READ
+                )
+            )
+        );
+
+        // Force calculation of geometric properties to prevent it being done
+        // later in e.g. some boundary evaluation
+        //(void)solidRegions[i].weights();
+        //(void)solidRegions[i].deltaCoeffs();
+    }
diff --git a/applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/solid/readSolidMultiRegionSIMPLEControls.H b/applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/solid/readSolidMultiRegionSIMPLEControls.H
new file mode 100644
index 0000000000000000000000000000000000000000..22e9b177f1874742fe3d8b8d24ceb2caab3f1d68
--- /dev/null
+++ b/applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/solid/readSolidMultiRegionSIMPLEControls.H
@@ -0,0 +1,7 @@
+    dictionary simple = solidRegions[i].solutionDict().subDict("SIMPLE");
+
+    int nNonOrthCorr = 0;
+    if (simple.found("nNonOrthogonalCorrectors"))
+    {
+        nNonOrthCorr = readInt(simple.lookup("nNonOrthogonalCorrectors"));
+    }
diff --git a/applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/solid/setRegionSolidFields.H b/applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/solid/setRegionSolidFields.H
new file mode 100644
index 0000000000000000000000000000000000000000..f9e80e3d72385e7f6ae80107cc3b65921904c35f
--- /dev/null
+++ b/applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/solid/setRegionSolidFields.H
@@ -0,0 +1,6 @@
+    fvMesh& mesh = solidRegions[i];
+
+    volScalarField& rho = rhos[i];
+    volScalarField& cp = cps[i];
+    volScalarField& K = Ks[i];
+    volScalarField& T = Ts[i];
diff --git a/applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/solid/solveSolid.H b/applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/solid/solveSolid.H
new file mode 100644
index 0000000000000000000000000000000000000000..7cf2cc14091336970c307730b01ffcaf2349168e
--- /dev/null
+++ b/applications/solvers/heatTransfer/chtMultiRegionSimpleFoam/solid/solveSolid.H
@@ -0,0 +1,16 @@
+{
+    for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
+    {
+        fvScalarMatrix tEqn
+        (
+            -fvm::laplacian(K, T)
+        );
+        tEqn.relax();
+        eqnResidual = tEqn.solve().initialResidual();
+        maxResidual = max(eqnResidual, maxResidual);
+
+    }
+
+    Info<< "Min/max T:" << min(T).value() << ' '
+        << max(T).value() << endl;
+}
diff --git a/applications/solvers/incompressible/channelFoam/createGradP.H b/applications/solvers/incompressible/channelFoam/createGradP.H
index 9bb9bb0ba28f974c967e9f82a2b649fc2a032ebb..643509c46f980f765062daba334d7343792081ac 100644
--- a/applications/solvers/incompressible/channelFoam/createGradP.H
+++ b/applications/solvers/incompressible/channelFoam/createGradP.H
@@ -11,7 +11,7 @@
         runTime.path()/runTime.timeName()/"uniform"/"gradP.raw"
     );
 
-    if(gradPFile.good())
+    if (gradPFile.good())
     {
         gradPFile >> gradP;
         Info<< "Reading average pressure gradient" <<endl
diff --git a/applications/solvers/incompressible/channelFoam/writeGradP.H b/applications/solvers/incompressible/channelFoam/writeGradP.H
index c82dd534740b6c8db6258f572768b5c081a7e735..afbca9e61d05b9b63d9acda53152b5dc8e3f3711 100644
--- a/applications/solvers/incompressible/channelFoam/writeGradP.H
+++ b/applications/solvers/incompressible/channelFoam/writeGradP.H
@@ -5,7 +5,7 @@
             runTime.path()/runTime.timeName()/"uniform"/"gradP.raw"
         );
 
-        if(gradPFile.good())
+        if (gradPFile.good())
         {
             gradPFile << gradP << endl;
         }
diff --git a/applications/solvers/incompressible/pimpleDyMFoam/correctPhi.H b/applications/solvers/incompressible/pimpleDyMFoam/correctPhi.H
index 023ecc6d5a7e8afa95465df9db34b9a816d860e8..f1651d8df391de08305885cf6fdc884ec7ea24bc 100644
--- a/applications/solvers/incompressible/pimpleDyMFoam/correctPhi.H
+++ b/applications/solvers/incompressible/pimpleDyMFoam/correctPhi.H
@@ -1,4 +1,26 @@
 {
+    if (mesh.changing())
+    {
+        forAll(U.boundaryField(), patchi)
+        {
+            if (U.boundaryField()[patchi].fixesValue())
+            {
+                U.boundaryField()[patchi].initEvaluate();
+            }
+        }
+
+        forAll(U.boundaryField(), patchi)
+        {
+            if (U.boundaryField()[patchi].fixesValue())
+            {
+                U.boundaryField()[patchi].evaluate();
+
+                phi.boundaryField()[patchi] =
+                U.boundaryField()[patchi] & mesh.Sf().boundaryField()[patchi];
+            }
+        }
+    }
+
     wordList pcorrTypes
     (
         p.boundaryField().size(),
@@ -7,7 +29,7 @@
 
     for (label i=0; i<p.boundaryField().size(); i++)
     {
-        if(p.boundaryField()[i].fixesValue())
+        if (p.boundaryField()[i].fixesValue())
         {
             pcorrTypes[i] = fixedValueFvPatchScalarField::typeName;
         }
@@ -28,7 +50,7 @@
         pcorrTypes
     );
 
-    for(int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
+    for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
     {
         fvScalarMatrix pcorrEqn
         (
diff --git a/applications/solvers/incompressible/porousSimpleFoam/createFields.H b/applications/solvers/incompressible/porousSimpleFoam/createFields.H
index 04d57d0571472ea1ee00c9a8ec1e24171eefe640..6861ae0005e70f41dc5d04623c47726a4487fca5 100644
--- a/applications/solvers/incompressible/porousSimpleFoam/createFields.H
+++ b/applications/solvers/incompressible/porousSimpleFoam/createFields.H
@@ -1,4 +1,4 @@
-    Info << "Reading field p\n" << endl;
+    Info<< "Reading field p\n" << endl;
     volScalarField p
     (
         IOobject
@@ -12,7 +12,7 @@
         mesh
     );
 
-    Info << "Reading field U\n" << endl;
+    Info<< "Reading field U\n" << endl;
     volVectorField U
     (
         IOobject
diff --git a/applications/solvers/incompressible/shallowWaterFoam/shallowWaterFoam.C b/applications/solvers/incompressible/shallowWaterFoam/shallowWaterFoam.C
index bd1989f433e82fc531448c4a672bf3e27f7b7b6c..757ad95e257cfbd1ed7e5bb34e62215f816be249 100644
--- a/applications/solvers/incompressible/shallowWaterFoam/shallowWaterFoam.C
+++ b/applications/solvers/incompressible/shallowWaterFoam/shallowWaterFoam.C
@@ -90,7 +90,6 @@ int main(int argc, char *argv[])
             // --- PISO loop
             for (int corr=0; corr<nCorr; corr++)
             {
-                surfaceScalarField hf = fvc::interpolate(h);
                 volScalarField rUA = 1.0/hUEqn.A();
                 surfaceScalarField ghrUAf = magg*fvc::interpolate(h*rUA);
 
diff --git a/applications/solvers/incompressible/simpleFoam/createFields.H b/applications/solvers/incompressible/simpleFoam/createFields.H
index ab424962554bd77646d7f5e4abe151c927f091c1..b957c7265051de06f3a5333071f57e0e0b9fffa1 100644
--- a/applications/solvers/incompressible/simpleFoam/createFields.H
+++ b/applications/solvers/incompressible/simpleFoam/createFields.H
@@ -1,4 +1,4 @@
-    Info << "Reading field p\n" << endl;
+    Info<< "Reading field p\n" << endl;
     volScalarField p
     (
         IOobject
@@ -12,7 +12,7 @@
         mesh
     );
 
-    Info << "Reading field U\n" << endl;
+    Info<< "Reading field U\n" << endl;
     volVectorField U
     (
         IOobject
diff --git a/applications/solvers/lagrangian/coalChemistryFoam/chemistry.H b/applications/solvers/lagrangian/coalChemistryFoam/chemistry.H
index 3a8a5c20f1ef59b8454167c5061ae5579f56e54f..5489dfefbaaa07425e5c0e84576c5ed001a64435 100644
--- a/applications/solvers/lagrangian/coalChemistryFoam/chemistry.H
+++ b/applications/solvers/lagrangian/coalChemistryFoam/chemistry.H
@@ -1,5 +1,5 @@
 {
-    Info << "Solving chemistry" << endl;
+    Info<< "Solving chemistry" << endl;
 
     chemistry.solve
     (
diff --git a/applications/solvers/lagrangian/porousExplicitSourceReactingParcelFoam/chemistry.H b/applications/solvers/lagrangian/porousExplicitSourceReactingParcelFoam/chemistry.H
index 3a8a5c20f1ef59b8454167c5061ae5579f56e54f..5489dfefbaaa07425e5c0e84576c5ed001a64435 100644
--- a/applications/solvers/lagrangian/porousExplicitSourceReactingParcelFoam/chemistry.H
+++ b/applications/solvers/lagrangian/porousExplicitSourceReactingParcelFoam/chemistry.H
@@ -1,5 +1,5 @@
 {
-    Info << "Solving chemistry" << endl;
+    Info<< "Solving chemistry" << endl;
 
     chemistry.solve
     (
diff --git a/applications/solvers/lagrangian/porousExplicitSourceReactingParcelFoam/readAdditionalSolutionControls.H b/applications/solvers/lagrangian/porousExplicitSourceReactingParcelFoam/readAdditionalSolutionControls.H
index 8159205caee0a202b8fc1be04130bf4a0b4d5c46..340623fbfd5afcae5077bb94c54baee5179dca1d 100644
--- a/applications/solvers/lagrangian/porousExplicitSourceReactingParcelFoam/readAdditionalSolutionControls.H
+++ b/applications/solvers/lagrangian/porousExplicitSourceReactingParcelFoam/readAdditionalSolutionControls.H
@@ -1,20 +1,5 @@
 dictionary additional = mesh.solutionDict().subDict("additional");
 
-bool dpdt = true;
-if (additional.found("dpdt"))
-{
-    additional.lookup("dpdt") >> dpdt;
-}
-
-bool eWork = true;
-if (additional.found("eWork"))
-{
-    additional.lookup("eWork") >> eWork;
-}
-
-bool hWork = true;
-if (additional.found("hWork"))
-{
-    additional.lookup("hWork") >> hWork;
-}
-
+bool dpdt = additional.lookupOrDefault("dpdt", true);
+bool eWork = additional.lookupOrDefault("eWork", true);
+bool hWork = additional.lookupOrDefault("hWork", true);
diff --git a/applications/solvers/lagrangian/reactingParcelFoam/chemistry.H b/applications/solvers/lagrangian/reactingParcelFoam/chemistry.H
index 3a8a5c20f1ef59b8454167c5061ae5579f56e54f..5489dfefbaaa07425e5c0e84576c5ed001a64435 100644
--- a/applications/solvers/lagrangian/reactingParcelFoam/chemistry.H
+++ b/applications/solvers/lagrangian/reactingParcelFoam/chemistry.H
@@ -1,5 +1,5 @@
 {
-    Info << "Solving chemistry" << endl;
+    Info<< "Solving chemistry" << endl;
 
     chemistry.solve
     (
diff --git a/applications/solvers/multiphase/bubbleFoam/kEpsilon.H b/applications/solvers/multiphase/bubbleFoam/kEpsilon.H
index 576e3253abf0b9f1dc592825aab3b6e5852bb853..84dadd7acb5b80452b7992f855d7965d893ff8df 100644
--- a/applications/solvers/multiphase/bubbleFoam/kEpsilon.H
+++ b/applications/solvers/multiphase/bubbleFoam/kEpsilon.H
@@ -1,4 +1,4 @@
-if(turbulence)
+if (turbulence)
 {
     if (mesh.changing())
     {
diff --git a/applications/solvers/multiphase/bubbleFoam/pEqn.H b/applications/solvers/multiphase/bubbleFoam/pEqn.H
index 35813dd935ef015a1ea0ee9bb28479448adc7725..3e550efc65e49d1c5ea8ec54a6c360e1f7318f27 100644
--- a/applications/solvers/multiphase/bubbleFoam/pEqn.H
+++ b/applications/solvers/multiphase/bubbleFoam/pEqn.H
@@ -34,7 +34,7 @@
 
     surfaceScalarField Dp("(rho*(1|A(U)))", alphaf*rUaAf/rhoa + betaf*rUbAf/rhob);
 
-    for(int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
+    for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
     {
         fvScalarMatrix pEqn
         (
diff --git a/applications/solvers/multiphase/compressibleInterDyMFoam/correctPhi.H b/applications/solvers/multiphase/compressibleInterDyMFoam/correctPhi.H
index d82a03edb59a2d419420700638404e6f90b197c8..e4bef5a60fe65de90f85b1f0713fac45be23658b 100644
--- a/applications/solvers/multiphase/compressibleInterDyMFoam/correctPhi.H
+++ b/applications/solvers/multiphase/compressibleInterDyMFoam/correctPhi.H
@@ -1,4 +1,26 @@
 {
+    if (mesh.changing())
+    {
+        forAll(U.boundaryField(), patchi)
+        {
+            if (U.boundaryField()[patchi].fixesValue())
+            {
+                U.boundaryField()[patchi].initEvaluate();
+            }
+        }
+
+        forAll(U.boundaryField(), patchi)
+        {
+            if (U.boundaryField()[patchi].fixesValue())
+            {
+                U.boundaryField()[patchi].evaluate();
+
+                phi.boundaryField()[patchi] =
+                U.boundaryField()[patchi] & mesh.Sf().boundaryField()[patchi];
+            }
+        }
+    }
+
     #include "continuityErrs.H"
 
     volScalarField pcorr
@@ -20,7 +42,7 @@
 
     adjustPhi(phi, U, pcorr);
 
-    for(int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
+    for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
     {
         fvScalarMatrix pcorrEqn
         (
diff --git a/applications/solvers/multiphase/compressibleInterFoam/pEqn.H b/applications/solvers/multiphase/compressibleInterFoam/pEqn.H
index 9d2dc23916babb9c6c94acd2b53125c8cfee1dad..e6ff71342912687a62260e06b3e493a612d15350 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/pEqn.H
+++ b/applications/solvers/multiphase/compressibleInterFoam/pEqn.H
@@ -30,7 +30,7 @@
           + fvc::interpolate(rho)*(g & mesh.Sf())
         )*rUAf;
 
-    for(int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
+    for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
     {
         fvScalarMatrix pEqnIncomp
         (
diff --git a/applications/solvers/multiphase/interDyMFoam/correctPhi.H b/applications/solvers/multiphase/interDyMFoam/correctPhi.H
index 0854a68b8e3ae1b941dbdad26c244017efc04d8e..72550e621c0b6dc381f92f591fceed084b32494f 100644
--- a/applications/solvers/multiphase/interDyMFoam/correctPhi.H
+++ b/applications/solvers/multiphase/interDyMFoam/correctPhi.H
@@ -1,4 +1,26 @@
 {
+    if (mesh.changing())
+    {
+        forAll(U.boundaryField(), patchi)
+        {
+            if (U.boundaryField()[patchi].fixesValue())
+            {
+                U.boundaryField()[patchi].initEvaluate();
+            }
+        }
+
+        forAll(U.boundaryField(), patchi)
+        {
+            if (U.boundaryField()[patchi].fixesValue())
+            {
+                U.boundaryField()[patchi].evaluate();
+
+                phi.boundaryField()[patchi] =
+                U.boundaryField()[patchi] & mesh.Sf().boundaryField()[patchi];
+            }
+        }
+    }
+
     #include "continuityErrs.H"
 
     volScalarField pcorr
@@ -20,7 +42,7 @@
 
     adjustPhi(phi, U, pcorr);
 
-    for(int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
+    for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
     {
         fvScalarMatrix pcorrEqn
         (
diff --git a/applications/solvers/multiphase/interDyMFoam/pEqn.H b/applications/solvers/multiphase/interDyMFoam/pEqn.H
index 2af289a76f31beb1654acfde23592bb299346f1c..afefb0a5f091b8131962713a5561cadcbaed2dec 100644
--- a/applications/solvers/multiphase/interDyMFoam/pEqn.H
+++ b/applications/solvers/multiphase/interDyMFoam/pEqn.H
@@ -18,7 +18,7 @@
       + fvc::interpolate(rho)*(g & mesh.Sf())
     )*rAUf;
 
-    for(int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
+    for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
     {
         fvScalarMatrix pEqn
         (
diff --git a/applications/solvers/multiphase/interFoam/correctPhi.H b/applications/solvers/multiphase/interFoam/correctPhi.H
index 0274b7e9ed8dc75b372db31efa743722a7dafc56..a41332ce9bdd6811eaaa1342eedc02defb1c1d1f 100644
--- a/applications/solvers/multiphase/interFoam/correctPhi.H
+++ b/applications/solvers/multiphase/interFoam/correctPhi.H
@@ -34,7 +34,7 @@
 
     adjustPhi(phi, U, pcorr);
 
-    for(int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
+    for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
     {
         fvScalarMatrix pcorrEqn
         (
diff --git a/applications/solvers/multiphase/interFoam/pEqn.H b/applications/solvers/multiphase/interFoam/pEqn.H
index 7aa172b858473b0f5e5c0934e5690233ef60755a..7473848c62df1a1be80e281ff8090c1f4370d2df 100644
--- a/applications/solvers/multiphase/interFoam/pEqn.H
+++ b/applications/solvers/multiphase/interFoam/pEqn.H
@@ -19,7 +19,7 @@
           + fvc::interpolate(rho)*(g & mesh.Sf())
         )*rUAf;
 
-    for(int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
+    for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
     {
         fvScalarMatrix pEqn
         (
diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/correctPhi.H b/applications/solvers/multiphase/interPhaseChangeFoam/correctPhi.H
index 17377302f0ecd97c2ee04e98cea8bcfc88ab4921..2547dac96630aa59a6b11dc00230f5f13599e715 100644
--- a/applications/solvers/multiphase/interPhaseChangeFoam/correctPhi.H
+++ b/applications/solvers/multiphase/interPhaseChangeFoam/correctPhi.H
@@ -34,7 +34,7 @@
 
     adjustPhi(phi, U, pcorr);
 
-    for(int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
+    for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
     {
         fvScalarMatrix pcorrEqn
         (
diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/pEqn.H b/applications/solvers/multiphase/interPhaseChangeFoam/pEqn.H
index 3c164cc574311612e838abda97310fd3959e9e72..519a0b9f65322945855382770f716f991b019803 100644
--- a/applications/solvers/multiphase/interPhaseChangeFoam/pEqn.H
+++ b/applications/solvers/multiphase/interPhaseChangeFoam/pEqn.H
@@ -23,7 +23,7 @@
     const volScalarField& vDotcP = vDotP[0]();
     const volScalarField& vDotvP = vDotP[1]();
 
-    for(int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
+    for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
     {
         fvScalarMatrix pEqn
         (
diff --git a/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.C b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.C
index 6d32abd9c72689e30301a3e5105014d5beacd9de..0e1252bea795d8119429a9019dc248984ddb2c62 100644
--- a/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.C
+++ b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.C
@@ -125,7 +125,7 @@ Foam::tmp<Foam::volScalarField> Foam::multiphaseMixture::rho() const
 
     tmp<volScalarField> trho = iter()*iter().rho();
 
-    for(++iter; iter != phases_.end(); ++iter)
+    for (++iter; iter != phases_.end(); ++iter)
     {
         trho() += iter()*iter().rho();
     }
@@ -140,7 +140,7 @@ Foam::tmp<Foam::volScalarField> Foam::multiphaseMixture::mu() const
 
     tmp<volScalarField> tmu = iter()*iter().rho()*iter().nu();
 
-    for(++iter; iter != phases_.end(); ++iter)
+    for (++iter; iter != phases_.end(); ++iter)
     {
         tmu() += iter()*iter().rho()*iter().nu();
     }
@@ -156,7 +156,7 @@ Foam::tmp<Foam::surfaceScalarField> Foam::multiphaseMixture::muf() const
     tmp<surfaceScalarField> tmuf =
         fvc::interpolate(iter())*iter().rho()*fvc::interpolate(iter().nu());
 
-    for(++iter; iter != phases_.end(); ++iter)
+    for (++iter; iter != phases_.end(); ++iter)
     {
         tmuf() +=
             fvc::interpolate(iter())*iter().rho()*fvc::interpolate(iter().nu());
@@ -210,7 +210,7 @@ Foam::multiphaseMixture::surfaceTensionForce() const
         PtrDictionary<phase>::const_iterator iter2 = iter1;
         ++iter2;
 
-        for(; iter2 != phases_.end(); ++iter2)
+        for (; iter2 != phases_.end(); ++iter2)
         {
             const phase& alpha2 = iter2();
 
@@ -489,7 +489,7 @@ void Foam::multiphaseMixture::solveAlphas
         if (cycleAlpha)
         {
             PtrDictionary<phase>::iterator refPhaseIter = phases_.begin();
-            for(label i=0; i<nSolves%phases_.size(); i++)
+            for (label i=0; i<nSolves%phases_.size(); i++)
             {
                 ++refPhaseIter;
             }
diff --git a/applications/solvers/multiphase/multiphaseInterFoam/pEqn.H b/applications/solvers/multiphase/multiphaseInterFoam/pEqn.H
index 4bec77f950d54fadbefe8507abe3ed8699476c54..7e9f30c01c01b1091c5e2a02e0af88718e5f1a48 100644
--- a/applications/solvers/multiphase/multiphaseInterFoam/pEqn.H
+++ b/applications/solvers/multiphase/multiphaseInterFoam/pEqn.H
@@ -18,7 +18,7 @@
           + fvc::interpolate(rho)*(g & mesh.Sf())
         )*rUAf;
 
-    for(int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
+    for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
     {
         fvScalarMatrix pEqn
         (
diff --git a/applications/solvers/multiphase/settlingFoam/pEqn.H b/applications/solvers/multiphase/settlingFoam/pEqn.H
index b4fc05b32ab56f04646427310478e9cc92429b11..77bb0f45924a76e91afb6a146011adfe10abaafb 100644
--- a/applications/solvers/multiphase/settlingFoam/pEqn.H
+++ b/applications/solvers/multiphase/settlingFoam/pEqn.H
@@ -17,7 +17,7 @@ phi =
 surfaceScalarField phiU("phiU", phi);
 phi += fvc::interpolate(rho)*(g & mesh.Sf())*rUAf;
 
-for(int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
+for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
 {
     fvScalarMatrix pEqn
     (
diff --git a/applications/solvers/multiphase/twoLiquidMixingFoam/pEqn.H b/applications/solvers/multiphase/twoLiquidMixingFoam/pEqn.H
index 7ba3cdba8a6a2badce20af6292008e62487f23b7..f1e07558cb36728e6310b4808ff3b2476455548a 100644
--- a/applications/solvers/multiphase/twoLiquidMixingFoam/pEqn.H
+++ b/applications/solvers/multiphase/twoLiquidMixingFoam/pEqn.H
@@ -13,7 +13,7 @@
 
     phi = phiU + fvc::interpolate(rho)*(g & mesh.Sf())*rUAf;
 
-    for(int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
+    for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
     {
         fvScalarMatrix pEqn
         (
diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/createFields.H b/applications/solvers/multiphase/twoPhaseEulerFoam/createFields.H
index e422fe845b67041fb3277271559232271ecf2716..8a1269058106f9edd37a2a4124c68f6410c95021 100644
--- a/applications/solvers/multiphase/twoPhaseEulerFoam/createFields.H
+++ b/applications/solvers/multiphase/twoPhaseEulerFoam/createFields.H
@@ -190,7 +190,7 @@
         }
     }
 
-    Info << "dragPhase is " << dragPhase << endl;
+    Info<< "dragPhase is " << dragPhase << endl;
     kineticTheoryModel kineticTheory
     (
         phasea,
diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/dragModels/GidaspowErgunWenYu/GidaspowErgunWenYu.C b/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/dragModels/GidaspowErgunWenYu/GidaspowErgunWenYu.C
index 0576f4694e583f8ba7890b051a821d1ec5a55192..7d6e41bf4cbf2ccfab0a1b14d06381d17e33aa7a 100644
--- a/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/dragModels/GidaspowErgunWenYu/GidaspowErgunWenYu.C
+++ b/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/dragModels/GidaspowErgunWenYu/GidaspowErgunWenYu.C
@@ -78,12 +78,12 @@ Foam::tmp<Foam::volScalarField> Foam::GidaspowErgunWenYu::K
 
     forAll(Re, celli)
     {
-        if(Re[celli] > 1000.0)
+        if (Re[celli] > 1000.0)
         {
             Cds[celli] = 0.44;
         }
     }
-    
+
     // Wen and Yu (1966)
     tmp<volScalarField> tKWenYu = 0.75*Cds*phaseb_.rho()*Ur*bp/phasea_.d();
     volScalarField& KWenYu = tKWenYu();
diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/dragModels/GidaspowSchillerNaumann/GidaspowSchillerNaumann.C b/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/dragModels/GidaspowSchillerNaumann/GidaspowSchillerNaumann.C
index 256d0861c036b13099ac2e9c922e0382e8381955..1be08abd3a69fb662da0d164d7dd446f347295cb 100644
--- a/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/dragModels/GidaspowSchillerNaumann/GidaspowSchillerNaumann.C
+++ b/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/dragModels/GidaspowSchillerNaumann/GidaspowSchillerNaumann.C
@@ -77,7 +77,7 @@ Foam::tmp<Foam::volScalarField> Foam::GidaspowSchillerNaumann::K
 
     forAll(Re, celli)
     {
-        if(Re[celli] > 1000.0)
+        if (Re[celli] > 1000.0)
         {
             Cds[celli] = 0.44;
         }
diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/dragModels/SchillerNaumann/SchillerNaumann.C b/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/dragModels/SchillerNaumann/SchillerNaumann.C
index 707c269c24d051cb66047a16b473b5394814c2e2..59e7bed10e0ec4012de36c3f07d8f09b1b38334f 100644
--- a/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/dragModels/SchillerNaumann/SchillerNaumann.C
+++ b/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/dragModels/SchillerNaumann/SchillerNaumann.C
@@ -74,7 +74,7 @@ Foam::tmp<Foam::volScalarField> Foam::SchillerNaumann::K
 
     forAll(Re, celli)
     {
-        if(Re[celli] > 1000.0)
+        if (Re[celli] > 1000.0)
         {
             Cds[celli] = 0.44;
         }
diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/dragModels/WenYu/WenYu.C b/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/dragModels/WenYu/WenYu.C
index 76465069333b86295590a3e9d1af7fe5a091bc5b..febe1d11f09b1b843b741647651d35dde1366662 100644
--- a/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/dragModels/WenYu/WenYu.C
+++ b/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/dragModels/WenYu/WenYu.C
@@ -77,7 +77,7 @@ Foam::tmp<Foam::volScalarField> Foam::WenYu::K
 
     forAll(Re, celli)
     {
-        if(Re[celli] > 1000.0)
+        if (Re[celli] > 1000.0)
         {
             Cds[celli] = 0.44;
         }
diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/dragModels/dragModel/newDragModel.C b/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/dragModels/dragModel/newDragModel.C
index 582fa4cdd352671c1c1b4cfabc87c8b3ec633509..8fb79ad403d8c107202b8b8f0f68df4719e2539e 100644
--- a/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/dragModels/dragModel/newDragModel.C
+++ b/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/dragModels/dragModel/newDragModel.C
@@ -41,7 +41,7 @@ Foam::autoPtr<Foam::dragModel> Foam::dragModel::New
         interfaceDict.lookup("dragModel" + phasea.name())
     );
 
-    Info << "Selecting dragModel for phase " 
+    Info<< "Selecting dragModel for phase "
         << phasea.name()
         << ": "
         << dragModelType << endl;
@@ -57,7 +57,7 @@ Foam::autoPtr<Foam::dragModel> Foam::dragModel::New
                 << dragModelType
                 << ", constructor not in hash table" << endl << endl
                 << "    Valid dragModel types are : " << endl;
-        Info << dictionaryConstructorTablePtr_->sortedToc() << abort(FatalError);
+        Info<< dictionaryConstructorTablePtr_->sortedToc() << abort(FatalError);
     }
 
     return cstrIter()(interfaceDict, alpha, phasea, phaseb);
diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/pEqn.H b/applications/solvers/multiphase/twoPhaseEulerFoam/pEqn.H
index ad48745519b6c530920f5e73da1ebe681c4ff843..57a25a299d3eb84cf4ac078a8aa69cefbfa9fcf5 100644
--- a/applications/solvers/multiphase/twoPhaseEulerFoam/pEqn.H
+++ b/applications/solvers/multiphase/twoPhaseEulerFoam/pEqn.H
@@ -47,7 +47,7 @@
 
     surfaceScalarField Dp("(rho*(1|A(U)))", alphaf*rUaAf/rhoa + betaf*rUbAf/rhob);
 
-    for(int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
+    for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
     {
         fvScalarMatrix pEqn
         (
diff --git a/applications/test/Dictionary/DictionaryTest.C b/applications/test/Dictionary/DictionaryTest.C
index 0af4dab6612e97fc340d434a29246d24f3e08a57..0f09f4f4a655d1c6720c5369204d671d77ba5c32 100644
--- a/applications/test/Dictionary/DictionaryTest.C
+++ b/applications/test/Dictionary/DictionaryTest.C
@@ -84,7 +84,7 @@ public:
 
     ~Scalar()
     {
-        Info <<"delete Scalar: " << data_ << endl;
+        Info<<"delete Scalar: " << data_ << endl;
     }
 
     friend Ostream& operator<<(Ostream& os, const Scalar& val)
@@ -169,7 +169,7 @@ int main(int argc, char *argv[])
     {
         Info<< " = " << iter() << endl;
     }
-    
+
     PtrDictionary<Scalar> scalarDict2;
     for (int i = 8; i<15; i++)
     {
@@ -186,22 +186,22 @@ int main(int argc, char *argv[])
     {
         Info<< "elem = " << *iter << endl;
     }
-    
+
     scalarDict.transfer(scalarDict2);
 
-    
+
     Scalar* p = scalarDict.lookupPtr("ent8");
-    
+
     // This does not (yet) work
     // Scalar* q = scalarDict.remove("ent10");
 
     if (p)
     {
-        Info << "found: " << *p << endl;
+        Info<< "found: " << *p << endl;
     }
     else
     {
-        Info << "no p: " << endl;
+        Info<< "no p: " << endl;
     }
 
     scalarDict.clear();
diff --git a/applications/test/DimensionedField/DimensionedFieldTest.C b/applications/test/DimensionedField/DimensionedFieldTest.C
deleted file mode 100644
index bc1f875dbd164756f8355fe879b1042178e2bc35..0000000000000000000000000000000000000000
--- a/applications/test/DimensionedField/DimensionedFieldTest.C
+++ /dev/null
@@ -1,133 +0,0 @@
-/*---------------------------------------------------------------------------*\
-  =========                 |
-  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
-   \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2009 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 2 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, write to the Free Software Foundation,
-    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-\*---------------------------------------------------------------------------*/
-
-#include "argList.H"
-#include "Time.H"
-#include "DimensionedFields.H"
-#include "DimensionedSphericalTensorField.H"
-#include "vector.H"
-#include "tensor.H"
-#include "GeoMesh.H"
-
-using namespace Foam;
-
-namespace Foam
-{
-
-class vMesh
-{
-
-public:
-
-    vMesh()
-    {}
-
-    label size() const
-    {
-        return 10;
-    }
-};
-
-};
-
-template<>
-const word Foam::DimensionedField<scalar, GeoMesh<vMesh> >::typeName
-(
-    "dimenionedScalarField"
-);
-
-template<>
-const word Foam::DimensionedField<vector, GeoMesh<vMesh> >::typeName
-(
-    "dimenionedVectorField"
-);
-
-template<>
-const word Foam::DimensionedField<tensor, GeoMesh<vMesh> >::typeName
-(
-    "dimenionedTensorField"
-);
-
-template<>
-const word Foam::DimensionedField<sphericalTensor, GeoMesh<vMesh> >::typeName
-(
-    "dimenionedSphericalTensorField"
-);
-
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-// Main program:
-
-int main(int argc, char *argv[])
-{
-
-#   include "setRootCase.H"
-#   include "createTime.H"
-
-    vMesh vm;
-
-    DimensionedField<scalar, GeoMesh<vMesh> > dsf
-    (
-        IOobject
-        (
-            "dsf",
-            runTime.timeName(),
-            runTime,
-            IOobject::MUST_READ,
-            IOobject::NO_WRITE
-        ),
-        vm
-    );
-
-    Info<< dsf << endl;
-    dsf += dsf;
-    dsf -= dimensionedScalar("5", dsf.dimensions(), 5.0);
-    Info<< dsf << endl;
-
-    Info<< sqr(dsf + dsf) - sqr(dsf + dsf) << endl;
-
-    DimensionedField<vector, GeoMesh<vMesh> > dvf
-    (
-        IOobject
-        (
-            "dvf",
-            runTime.timeName(),
-            runTime,
-            IOobject::MUST_READ,
-            IOobject::NO_WRITE
-        ),
-        vm
-    );
-
-    Info<< (dvf ^ (dvf ^ dvf)) << endl;
-
-    Info << "End\n" << endl;
-
-    return 0;
-}
-
-
-// ************************************************************************* //
diff --git a/applications/test/DimensionedField/Make/files b/applications/test/DimensionedField/Make/files
deleted file mode 100644
index 02c479015e6823f48993ab50ddc77e0b433d2a7c..0000000000000000000000000000000000000000
--- a/applications/test/DimensionedField/Make/files
+++ /dev/null
@@ -1,3 +0,0 @@
-DimensionedFieldTest.C
-
-EXE = $(FOAM_USER_APPBIN)/DimensionedFieldTest
diff --git a/applications/test/DimensionedField/Make/options b/applications/test/DimensionedField/Make/options
deleted file mode 100644
index 6a9e9810b3d5ce6684bdaf03143933480ff45e42..0000000000000000000000000000000000000000
--- a/applications/test/DimensionedField/Make/options
+++ /dev/null
@@ -1,2 +0,0 @@
-/* EXE_INC = -I$(LIB_SRC)/cfdTools/include */
-/* EXE_LIBS = -lfiniteVolume */
diff --git a/applications/test/HashSet/hashSetTest.C b/applications/test/HashSet/hashSetTest.C
index 21e1276604518f9b9adf4905305ed091702ac48e..fd40e349990559c6f6d8b98a2b7cc94474d234aa 100644
--- a/applications/test/HashSet/hashSetTest.C
+++ b/applications/test/HashSet/hashSetTest.C
@@ -92,6 +92,8 @@ int main(int argc, char *argv[])
     labelHashSet setD(1);
     setD.insert(11);
     setD.insert(100);
+    setD.insert(49);
+    setD.insert(36);
     setD.insert(2008);
 
     Info<< "setD : " << setD << endl;
@@ -138,6 +140,17 @@ int main(int argc, char *argv[])
     // this doesn't work (yet?)
     // setD[12] = true;
 
+    List<label> someLst(10);
+    forAll(someLst, elemI)
+    {
+        someLst[elemI] = elemI*elemI;
+    }
+
+    label added = setD.set(someLst);
+    Info<< "added " << added << " from " << someLst.size() << endl;
+    Info<< "setD : " << setD << endl;
+
+
     return 0;
 }
 
diff --git a/applications/test/HashTable3/hashTableTest3.C b/applications/test/HashTable3/hashTableTest3.C
index 910e4f229052bc8c9305ea7b30d30a3907cbbfd0..6229e6a30438189b855022634f2fb9b38041e76c 100644
--- a/applications/test/HashTable3/hashTableTest3.C
+++ b/applications/test/HashTable3/hashTableTest3.C
@@ -33,7 +33,6 @@ Description
 #include "HashPtrTable.H"
 #include "Map.H"
 #include "StaticHashTable.H"
-#include "HashTbl.H"
 #include "cpuTime.H"
 
 using namespace Foam;
@@ -53,7 +52,7 @@ int main(int argc, char *argv[])
     // Map<label> map(2 * nSize);
     // HashTable<label, label, Hash<label> > map(2 * nSize);
     // StaticHashTable<label, label, Hash<label> > map(2 * nSize);
-    HashTbl<label, label, Hash<label> > map(2 * nSize);
+    HashTable<label, label, Hash<label> > map(2 * nSize);
 
     Info<< "Constructed map of size: " << nSize
         << " (size " << map.size() << " capacity " << map.capacity() << ") "
diff --git a/applications/test/IndirectList/IndirectListTest.C b/applications/test/IndirectList/IndirectListTest.C
index 365c58a383014b277a43c9dd827e4b625944e853..b8abff977391a3b60d64fa4a10fb03e10325fd24 100644
--- a/applications/test/IndirectList/IndirectListTest.C
+++ b/applications/test/IndirectList/IndirectListTest.C
@@ -72,7 +72,7 @@ int main(int argc, char *argv[])
         << "list: " << idl() << nl
         << endl;
 
-    Info << "End\n" << endl;
+    Info<< "End\n" << endl;
 
     return 0;
 }
diff --git a/applications/test/LduMatrix/LduMatrixTest.C b/applications/test/LduMatrix/LduMatrixTest.C
index 91a6dfb68d2dbf41dff4b12ef34cc2d7e9f8fc6e..bc244ff525a0752058a47166c03b4a1daf294f0f 100644
--- a/applications/test/LduMatrix/LduMatrixTest.C
+++ b/applications/test/LduMatrix/LduMatrixTest.C
@@ -155,7 +155,7 @@ int main(int argc, char *argv[])
 
     Info<< psi << endl;
 
-    Info << "End\n" << endl;
+    Info<< "End\n" << endl;
 
     return 0;
 }
diff --git a/applications/test/LduMatrix/LduMatrixTest2.C b/applications/test/LduMatrix/LduMatrixTest2.C
index 02db866ae51df9da8ed8266c25dc70d1c5b77e37..5e47df1daf47167f6e2be6d0ea34c4fe7fa131a8 100644
--- a/applications/test/LduMatrix/LduMatrixTest2.C
+++ b/applications/test/LduMatrix/LduMatrixTest2.C
@@ -155,7 +155,7 @@ int main(int argc, char *argv[])
 
     Info<< psi << endl;
 
-    Info << "End\n" << endl;
+    Info<< "End\n" << endl;
 
     return 0;
 }
diff --git a/applications/test/Map/MapTest.C b/applications/test/Map/MapTest.C
index 7fb05e76a517146a116e45c6cd207e3a19863507..117f4337b6f08db8df8be6a079ff4154173812b9 100644
--- a/applications/test/Map/MapTest.C
+++ b/applications/test/Map/MapTest.C
@@ -53,15 +53,15 @@ int main(int argc, char *argv[])
 
     if (bananaIter == banana.end())
     {
-        Info << "not found" << endl;
+        Info<< "not found" << endl;
     }
     else
     {
-        Info << "5 is " << bananaIter() << endl;
+        Info<< "5 is " << bananaIter() << endl;
     }
 
     // Same with STL
-    Info << "Same with STL" << endl;
+    Info<< "Same with STL" << endl;
 
     std::map<label, bool> STLbanana;
     STLbanana[5] = true;
@@ -69,11 +69,11 @@ int main(int argc, char *argv[])
 
     if (STLbananaIter == STLbanana.end())
     {
-        Info << "not found" << endl;
+        Info<< "not found" << endl;
     }
     else
     {
-        Info << "5 is " << STLbananaIter->second << endl;
+        Info<< "5 is " << STLbananaIter->second << endl;
     }
 
 
diff --git a/applications/test/Matrix/MatrixTest.C b/applications/test/Matrix/MatrixTest.C
index 24bcc682575ca073ac911baa6a2af458fd3a7329..fabbb5c5f9394eaa9e5c6e89dde31b98e21cfd2c 100644
--- a/applications/test/Matrix/MatrixTest.C
+++ b/applications/test/Matrix/MatrixTest.C
@@ -24,7 +24,7 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "Matrix.H"
+#include "SquareMatrix.H"
 #include "vector.H"
 
 using namespace Foam;
@@ -34,7 +34,7 @@ using namespace Foam;
 
 int main(int argc, char *argv[])
 {
-    Matrix<scalar> hmm(3, 3);
+    SquareMatrix<scalar> hmm(3);
 
     hmm[0][0] = -3.0;
     hmm[0][1] = 10.0;
@@ -46,32 +46,32 @@ int main(int argc, char *argv[])
     hmm[2][1] = 6.0;
     hmm[2][2] = 1.0;
 
-    Info<< hmm << endl << hmm - 2.0*(-hmm) << endl;
+    //Info<< hmm << endl << hmm - 2.0*(-hmm) << endl;
     Info<< max(hmm) << endl;
     Info<< min(hmm) << endl;
 
-    Matrix<scalar> hmm2(3, 3, 1.0);
+    SquareMatrix<scalar> hmm2(3, 1.0);
 
     hmm = hmm2;
 
     Info<< hmm << endl;
 
-    Matrix<scalar> hmm3(Sin);
+    SquareMatrix<scalar> hmm3(Sin);
 
     Info<< hmm3 << endl;
 
-    Matrix<scalar> hmm4;
+    SquareMatrix<scalar> hmm4;
 
     hmm4 = hmm2;
 
     Info<< hmm4 << endl;
 
-    Matrix<scalar> hmm5;
+    SquareMatrix<scalar> hmm5;
 
     hmm4 = hmm5;
     Info<< hmm5 << endl;
 
-    Info << "End\n" << endl;
+    Info<< "End\n" << endl;
 
     return 0;
 }
diff --git a/applications/test/NamedEnum/namedEnumTest.C b/applications/test/NamedEnum/namedEnumTest.C
index 918e3b63b2a5eda4e5d91d85c32f65836f67cddd..728d54ecb819199733ed740296fe65234682395e 100644
--- a/applications/test/NamedEnum/namedEnumTest.C
+++ b/applications/test/NamedEnum/namedEnumTest.C
@@ -68,7 +68,7 @@ int main(int argc, char *argv[])
     namedEnumTest::options hmm(namedEnumTest::namedEnum.read(Sin));
     Info<< namedEnumTest::namedEnum[hmm] << endl;
 
-    Info << "End\n" << endl;
+    Info<< "End\n" << endl;
 
     return 0;
 }
diff --git a/applications/test/ODETest/ODETest.C b/applications/test/ODETest/ODETest.C
index dfc7a663bbddcf2893c2cedd0dd91c1c17d0c35a..acb444a0a52828e54d233ac88f83d398889cc9b3 100644
--- a/applications/test/ODETest/ODETest.C
+++ b/applications/test/ODETest/ODETest.C
@@ -69,7 +69,7 @@ public:
         const scalar x,
         const scalarField& y,
         scalarField& dfdx,
-        Matrix<scalar>& dfdy
+        scalarSquareMatrix& dfdy
     ) const
     {
         dfdx[0] = 0.0;
@@ -167,7 +167,7 @@ int main(int argc, char *argv[])
     Info<< nl << "Analytical: y(2.0) = " << yEnd << endl;
     Info      << "Numerical:  y(2.0) = " << y << ", hEst = " << hEst << endl;
 
-    Info << "\nEnd\n" << endl;
+    Info<< "\nEnd\n" << endl;
 
     return 0;
 }
diff --git a/applications/test/POSIX/POSIXTest.C b/applications/test/POSIX/POSIXTest.C
index 86679c2c9076368603a3e19abb03bd795769c2db..08052ecba9b1ea19afca3a2880616576cd579a06 100644
--- a/applications/test/POSIX/POSIXTest.C
+++ b/applications/test/POSIX/POSIXTest.C
@@ -37,7 +37,7 @@ int main(int argc, char *argv[])
 {
     rmDir("hmm");
 
-    Info << "End\n" << endl;
+    Info<< "End\n" << endl;
 
     return 0;
 }
diff --git a/applications/test/PackedList2/PackedListTest2.C b/applications/test/PackedList2/PackedListTest2.C
index ef027fee2e467666613530968ffd35bd338bc69f..bb61f6e308aa82dc5fe8489fd12c713346acff6f 100644
--- a/applications/test/PackedList2/PackedListTest2.C
+++ b/applications/test/PackedList2/PackedListTest2.C
@@ -135,7 +135,7 @@ int main(int argc, char *argv[])
     sum = 0;
     for (label iter = 0; iter < nIters; ++iter)
     {
-        for(unsigned int i = 0; i < stlVector.size(); i++)
+        for (unsigned int i = 0; i < stlVector.size(); i++)
         {
             sum += stlVector[i];
         }
@@ -386,7 +386,7 @@ int main(int argc, char *argv[])
         << " s" << endl;
 
 
-    Info << "End\n" << endl;
+    Info<< "End\n" << endl;
 
     return 0;
 }
diff --git a/applications/test/PtrList/PtrListTest.C b/applications/test/PtrList/PtrListTest.C
index 5413a662b889fed52c2c8b6bc218a3315eee3446..61f0985ea3926ac86631e0554373873b304b9c63 100644
--- a/applications/test/PtrList/PtrListTest.C
+++ b/applications/test/PtrList/PtrListTest.C
@@ -54,9 +54,11 @@ public:
 
     ~Scalar()
     {
-        Info <<"delete Scalar: " << data_ << endl;
+        Info<<"delete Scalar: " << data_ << endl;
     }
 
+    autoPtr<Scalar> clone() const;
+
     friend Ostream& operator<<(Ostream& os, const Scalar& val)
     {
         os << val.data_;
diff --git a/applications/test/Tuple2/Tuple2Test.C b/applications/test/Tuple2/Tuple2Test.C
index d770b4f83910d69003ca509e5e166b4e9449a8f0..b535f6a45c749fa86b6ed96945578a26df08d03c 100644
--- a/applications/test/Tuple2/Tuple2Test.C
+++ b/applications/test/Tuple2/Tuple2Test.C
@@ -44,7 +44,7 @@ int main()
 
     Info<< t2 << " " << t2.first() << " " << t2.second() << endl;
 
-    Info << "End\n" << endl;
+    Info<< "End\n" << endl;
 
     return 0;
 }
diff --git a/applications/test/UIndirectListTest/UIndirectListTest.C b/applications/test/UIndirectListTest/UIndirectListTest.C
index 6902f47eeab4e2ddf1c744606f5cc1a1387a78a7..120217b673b95506e67f0ae13856d4b9c0cf8adf 100644
--- a/applications/test/UIndirectListTest/UIndirectListTest.C
+++ b/applications/test/UIndirectListTest/UIndirectListTest.C
@@ -84,11 +84,11 @@ int main(int argc, char *argv[])
 
     // test List operations
 
-    List<double> flatList = UIndirectList<double>(completeList, addresses);
-    Info<< "List assigned from UIndirectList: " << flatList << endl;
+    List<double> flatList(UIndirectList<double>(completeList, addresses));
+    Info<< "List constructed from UIndirectList: " << flatList << endl;
 
-    List<double> flatList2(UIndirectList<double>(completeList, addresses));
-    Info<< "List constructed from UIndirectList: " << flatList2 << endl;
+    flatList = UIndirectList<double>(completeList, addresses);
+    Info<< "List assigned from UIndirectList: " << flatList << endl;
 
     flatList.append(UIndirectList<double>(completeList, addresses));
     Info<< "List::append(UIndirectList): " << flatList << endl;
@@ -100,7 +100,7 @@ int main(int argc, char *argv[])
     dynList.append(UIndirectList<double>(completeList, addresses));
     Info<< "DynamicList::append(UIndirectList): " << dynList << endl;
 
-    Info << "\nEnd\n" << endl;
+    Info<< "\nEnd\n" << endl;
 
     return 0;
 }
diff --git a/applications/test/callback/callbackTest.C b/applications/test/callback/callbackTest.C
index dc344246783ae01f7800d40f9ce5bf735e58c3a7..f9d35dd02390552bf5ad466bdc83f906a3ca06f4 100644
--- a/applications/test/callback/callbackTest.C
+++ b/applications/test/callback/callbackTest.C
@@ -118,7 +118,7 @@ int main(int argc, char *argv[])
 
     cbr.testCallbackFunction();
 
-    Info << "End\n" << endl;
+    Info<< "End\n" << endl;
 
     return 0;
 }
diff --git a/applications/test/dimensionedType/dimensionedTypeTest.C b/applications/test/dimensionedType/dimensionedTypeTest.C
index d87391ab6d83e7e779e5af90b064ea7073dfab5a..400d9a5d2124a0df262e904013a7ce224a5f9499 100644
--- a/applications/test/dimensionedType/dimensionedTypeTest.C
+++ b/applications/test/dimensionedType/dimensionedTypeTest.C
@@ -42,7 +42,7 @@ int main(int argc, char *argv[])
 
     Info<< ds*dt << " " << dt*ds << endl;
 
-    Info << "End\n" << endl;
+    Info<< "End\n" << endl;
 
     return 0;
 }
diff --git a/applications/test/extendedStencil/testExtendedStencil.C b/applications/test/extendedStencil/testExtendedStencil.C
index 876576b29eab8666ae74c85e9801fb00c7f22324..e8cde9051bc369cf5830dd34da1da14db25ccc9e 100644
--- a/applications/test/extendedStencil/testExtendedStencil.C
+++ b/applications/test/extendedStencil/testExtendedStencil.C
@@ -188,11 +188,11 @@ int main(int argc, char *argv[])
 //        (
 //            mesh
 //        );
-//        
+//
 //        Info<< "cellFaceCell:" << endl;
 //        writeStencilStats(addressing.stencil());
-//        
-//        
+//
+//
 //        //// Do some interpolation.
 //        //{
 //        //    const labelListList& stencil = addressing.stencil();
@@ -226,7 +226,7 @@ int main(int argc, char *argv[])
 //            mesh.C(),
 //            stencilPoints
 //        );
-//        
+//
 //        forAll(stencilPoints, faceI)
 //        {
 //            if (stencilPoints[faceI].size() >= 15)
@@ -443,10 +443,10 @@ int main(int argc, char *argv[])
         (
             mesh
         );
-        
+
         Info<< "cellFaceCell:" << endl;
         writeStencilStats(addressing.stencil());
-        
+
         // Collect stencil face centres
         List<List<point> > stencilPoints(mesh.nCells());
         addressing.collectData
@@ -454,7 +454,7 @@ int main(int argc, char *argv[])
             mesh.Cf(),
             stencilPoints
         );
-        
+
         forAll(stencilPoints, cellI)
         {
             writeStencilOBJ
@@ -477,7 +477,7 @@ int main(int argc, char *argv[])
 //        vf,
 //        stencilData
 //    );
-//    for(label faci = 0; faci < mesh.nInternalFaces(); faci++)
+//    for (label faci = 0; faci < mesh.nInternalFaces(); faci++)
 //    {
 //        const scalarList& stData = stencilData[faceI];
 //        const scalarList& stWeight = fit[faceI];
diff --git a/applications/test/fileName/fileNameTest.C b/applications/test/fileName/fileNameTest.C
index c4791f6f385b208c6484ae05e89e72a455873ec7..81ebd5c255bd4dc1839b2d8200886b4b14d14e4f 100644
--- a/applications/test/fileName/fileNameTest.C
+++ b/applications/test/fileName/fileNameTest.C
@@ -108,8 +108,7 @@ int main()
     Info<< " badName(die) => " << findEtcFile("badName", true) << nl
         << endl;
 
-    Info<< "\nEnd" << endl;
-
+    Info<< "\nEnd\n" << endl;
     return 0;
 }
 
diff --git a/applications/test/fileNameClean/fileNameCleanTest.C b/applications/test/fileNameClean/fileNameCleanTest.C
index b41cc434ca0c51a070de7fceedb11065ffc25008..2d791439e99ae8bdd833217e7d52098191cbf53b 100644
--- a/applications/test/fileNameClean/fileNameCleanTest.C
+++ b/applications/test/fileNameClean/fileNameCleanTest.C
@@ -95,8 +95,7 @@ int main(int argc, char *argv[])
         printCleaning(pathName);
     }
 
-    Info<< "\nEnd" << endl;
-
+    Info<< "\nEnd\n" << endl;
     return 0;
 }
 
diff --git a/applications/test/liquid/liquidTest.C b/applications/test/liquid/liquidTest.C
index 34837df39a36e0f2697fee15ce3401941a1ff3f0..fe32c13e2804f2f5863724203b6b67fe34884208 100644
--- a/applications/test/liquid/liquidTest.C
+++ b/applications/test/liquid/liquidTest.C
@@ -39,7 +39,7 @@ int main()
     Info<< fuel.rho(1e5, 300) << endl;
     Info<< fuel << endl;
 
-    Info << "End\n" << endl;
+    Info<< "End\n" << endl;
 
     return 0;
 }
diff --git a/applications/test/mesh/meshTest.C b/applications/test/mesh/meshTest.C
index 50419836759fd452f9a5dea4f9a5a64a1476b21b..91a003bc17d365d1e454e3b8c1bc09274232f3e5 100644
--- a/applications/test/mesh/meshTest.C
+++ b/applications/test/mesh/meshTest.C
@@ -59,7 +59,7 @@ int main(int argc, char *argv[])
 
     Info<< Cf << endl;
 
-    Info << "End\n" << endl;
+    Info<< "End\n" << endl;
 
     return 0;
 }
diff --git a/applications/test/momentOfInertia/Make/files b/applications/test/momentOfInertia/Make/files
new file mode 100644
index 0000000000000000000000000000000000000000..89848e34fb5a5634c3e240da3200e132db8d5551
--- /dev/null
+++ b/applications/test/momentOfInertia/Make/files
@@ -0,0 +1,3 @@
+momentOfInertiaTest.C
+
+EXE = $(FOAM_USER_APPBIN)/momentOfInertiaTest
diff --git a/applications/test/momentOfInertia/Make/options b/applications/test/momentOfInertia/Make/options
new file mode 100644
index 0000000000000000000000000000000000000000..54c035b8f55d183c1ad02bc372398feceaf31718
--- /dev/null
+++ b/applications/test/momentOfInertia/Make/options
@@ -0,0 +1,5 @@
+EXE_INC = \
+    -I$(LIB_SRC)/meshTools/lnInclude
+
+EXE_LIBS = \
+    -lmeshTools
diff --git a/applications/test/momentOfInertia/momentOfInertiaTest.C b/applications/test/momentOfInertia/momentOfInertiaTest.C
new file mode 100644
index 0000000000000000000000000000000000000000..b4ea06bba219daba6b9b2b5cc6f32e08e61f7007
--- /dev/null
+++ b/applications/test/momentOfInertia/momentOfInertiaTest.C
@@ -0,0 +1,112 @@
+/*---------------------------------------------------------------------------*\
+ =========                   |
+ \\      /   F ield          | OpenFOAM: The Open Source CFD Toolbox
+  \\    /    O peration      |
+   \\  /     A nd            | Copyright (C) 2009-2009 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 2 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, write to the Free Software Foundation,
+    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+Application
+    momentOfInertiaTest
+
+Description
+    Calculates the inertia tensor and principal axes and moments of a
+    test face.
+
+\*---------------------------------------------------------------------------*/
+
+#include "ListOps.H"
+#include "face.H"
+#include "OFstream.H"
+#include "meshTools.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+using namespace Foam;
+
+int main(int argc, char *argv[])
+{
+    label nPts = 6;
+
+    pointField pts(nPts);
+
+    pts[0] = point(4.495, 3.717, -4.112);
+    pts[1] = point(4.421, 3.932, -4.112);
+    pts[2] = point(4.379, 4.053, -4.112);
+    pts[3] = point(4.301, 4.026, -4.300);
+    pts[4] = point(4.294, 4.024, -4.317);
+    pts[5] = point(4.409, 3.687, -4.317);
+
+    scalar density = 1.0;
+
+    face f(identity(nPts));
+
+    point Cf = f.centre(pts);
+
+    tensor J = tensor::zero;
+
+    J = f.inertia(pts, Cf, density);
+
+    vector eVal = eigenValues(J);
+
+    tensor eVec = eigenVectors(J);
+
+    Info<< nl << "Inertia tensor of test face " << J << nl
+        << "eigenValues (principal moments) " << eVal << nl
+        << "eigenVectors (principal axes) " << eVec
+        << endl;
+
+    OFstream str("momentOfInertiaTest.obj");
+
+    Info<< nl << "Writing test face and scaled principal axes to "
+        << str.name() << endl;
+
+    forAll(pts, ptI)
+    {
+        meshTools::writeOBJ(str, pts[ptI]);
+    }
+
+    str << "l";
+
+    forAll(f, fI)
+    {
+        str << ' ' << fI + 1;
+    }
+
+    str << " 1" << endl;
+
+    scalar scale = mag(Cf - pts[f[0]])/eVal.component(findMin(eVal));
+
+    meshTools::writeOBJ(str, Cf);
+    meshTools::writeOBJ(str, Cf + scale*eVal.x()*eVec.x());
+    meshTools::writeOBJ(str, Cf + scale*eVal.y()*eVec.y());
+    meshTools::writeOBJ(str, Cf + scale*eVal.z()*eVec.z());
+
+    for (label i = nPts + 1; i < nPts + 4; i++)
+    {
+        str << "l " << nPts + 1 << ' ' << i + 1 << endl;
+    }
+
+    Info<< nl << "End" << nl << endl;
+
+    return 0;
+}
+
+
+// ************************************************************************* //
diff --git a/applications/test/pTraits/pTraitsTest.C b/applications/test/pTraits/pTraitsTest.C
index 4fcdfce7198e991c6d2e56e482c972fbee5432d4..2697e6b73263e0145c280d258fb2adbd1a7e9659 100644
--- a/applications/test/pTraits/pTraitsTest.C
+++ b/applications/test/pTraits/pTraitsTest.C
@@ -38,7 +38,7 @@ int main()
 {
     Info<< pTraits<scalar>::typeName << endl;
 
-    Info << "End\n" << endl;
+    Info<< "End\n" << endl;
 
     return 0;
 }
diff --git a/applications/test/parallel/parallelTest.C b/applications/test/parallel/parallelTest.C
index 6120de31a51670a1d2f2e71ea77004fa45613e61..caf9e6fc8d9ec2fd8147e882528cc538e40b8dff 100644
--- a/applications/test/parallel/parallelTest.C
+++ b/applications/test/parallel/parallelTest.C
@@ -84,7 +84,7 @@ int main(int argc, char *argv[])
         // Sync how many to send
         labelListList allNTrans(Pstream::nProcs());
         allNTrans[Pstream::myProcNo()] = nSend;
-        combineReduce(allNTrans, mapDistribute::listEq());
+        combineReduce(allNTrans, UPstream::listEq());
 
         // Collect items to be sent
         labelListList sendMap(Pstream::nProcs());
@@ -161,7 +161,7 @@ int main(int argc, char *argv[])
                 toMaster << data;
             }
 
-            Perr<< "slave receiving from master " 
+            Perr<< "slave receiving from master "
                 << Pstream::masterNo() << endl;
             IPstream fromMaster(Pstream::blocking, Pstream::masterNo());
             fromMaster >> data;
diff --git a/applications/test/primitivePatch/testPrimitivePatch.C b/applications/test/primitivePatch/testPrimitivePatch.C
index e19b7d0512ba0517975e2395a3d5c5da8bc1694b..cf24ab3435f7fe5be5d5dca5e3ec2ab45b36ae5e 100644
--- a/applications/test/primitivePatch/testPrimitivePatch.C
+++ b/applications/test/primitivePatch/testPrimitivePatch.C
@@ -137,7 +137,7 @@ void writeFaceEdges
         const labelList& myEdges = faceEdges[faceI];
 
         forAll(myEdges, i)
-        {   
+        {
             const edge& e = edges[myEdges[i]];
 
             feStream<< "l " << e.start()+1 << ' ' << e.end()+1 << endl;
@@ -172,7 +172,7 @@ void writeEdgeFaces
         const labelList& myFaces = edgeFaces[edgeI];
 
         forAll(myFaces, i)
-        {   
+        {
             efStream<< "l " << myFaces[0]+1 << ' ' << myFaces[i]+1 << endl;
         }
     }
@@ -249,7 +249,7 @@ int main(int argc, char *argv[])
 
     writeFaceFaces(localPoints, localFaces, faceFaces);
 
-    Info << "End\n" << endl;
+    Info<< "End\n" << endl;
 
     return 0;
 }
diff --git a/applications/test/readCHEMKINIII/readCHEMKINIII.C b/applications/test/readCHEMKINIII/readCHEMKINIII.C
index a028e9fd2bd1409adcc9954519712c746d0c5510..10514de3fe13402a27efa5e8d67b0233542b8469 100644
--- a/applications/test/readCHEMKINIII/readCHEMKINIII.C
+++ b/applications/test/readCHEMKINIII/readCHEMKINIII.C
@@ -57,7 +57,7 @@ int main(int argc, char *argv[])
     //Info<< ck.specieThermo() << endl;
     //Info<< ck.reactions() << endl;
 
-    PtrList<chemkinReader::reaction> reactions = ck.reactions();
+    const SLPtrList<gasReaction>& reactions = ck.reactions();
 
     {
         OFstream reactionStream("reactions");
@@ -70,17 +70,17 @@ int main(int argc, char *argv[])
         label nReactions(readLabel(reactionStream));
         reactionStream.readBeginList(args.executable().c_str());
 
-        PtrList<chemkinReader::reaction> testReactions(nReactions);
+        PtrList<gasReaction> testReactions(nReactions);
 
         forAll (testReactions, i)
         {
             testReactions.set
             (
                 i,
-                chemkinReader::reaction::New
+                gasReaction::New
                 (
                     ck.species(),
-                    ck.specieThermo(),
+                    ck.speciesThermo(),
                     reactionStream
                 )
             );
@@ -91,7 +91,7 @@ int main(int argc, char *argv[])
         Info<< testReactions << endl;
     }
 
-    Info << "End\n" << endl;
+    Info<< "End\n" << endl;
 
     return 0;
 }
diff --git a/applications/test/router/processorRouter.C b/applications/test/router/processorRouter.C
index e94025ff2b6ad0616022767d5343aafd3d62e0fd..5f68822cf30a55a476a3d8a5af6834ce30a1e1ce 100644
--- a/applications/test/router/processorRouter.C
+++ b/applications/test/router/processorRouter.C
@@ -71,7 +71,7 @@ labelList procNeighbours(const polyMesh& mesh)
         {
             const polyPatch& patch = mesh.boundaryMesh()[patchI];
 
-            const processorPolyPatch& procPatch = 
+            const processorPolyPatch& procPatch =
                 refCast<const processorPolyPatch>(patch);
 
             label procId = procPatch.neighbProcNo() - Pstream::firstSlave() + 1;
@@ -96,7 +96,7 @@ point meshCentre(const polyMesh& mesh)
 
 int main(int argc, char *argv[])
 {
-#   include "setRootCase.H"    
+#   include "setRootCase.H"
 #   include "createTime.H"
 #   include "createMesh.H"
 
@@ -230,7 +230,7 @@ int main(int argc, char *argv[])
                     // Dump route as lines.
                     labelList route(cellRouter.getRoute(-(pathI + 1)));
 
-                    for(label elemI = 1; elemI < route.size(); elemI++)
+                    for (label elemI = 1; elemI < route.size(); elemI++)
                     {
                         objFile
                             << "l " << route[elemI-1]+1 << ' '
diff --git a/applications/test/router/router.C b/applications/test/router/router.C
index 1af001a81f97174474d242e37206e5255038f4e8..a4747396964d397a50b4458d639f9f8385bcaeb1 100644
--- a/applications/test/router/router.C
+++ b/applications/test/router/router.C
@@ -38,7 +38,7 @@ Foam::label Foam::router::count(const label weight) const
     {
         cnt += weights_[nodeI];
     }
-    
+
     return cnt;
 }
 
@@ -315,7 +315,7 @@ bool Foam::router::route(const labelList& path, const label pathValue)
     setWeights(0, path[0]);
 
     // Check if all endPoints can be reached
-    for(label leafI = 1; leafI < path.size(); leafI++)
+    for (label leafI = 1; leafI < path.size(); leafI++)
     {
         if (weights_[path[leafI]] == labelMax)
         {
@@ -329,7 +329,7 @@ bool Foam::router::route(const labelList& path, const label pathValue)
     }
 
     // Search back from all endpoints to start and fix weights
-    for(label leafI = 1; leafI < path.size(); leafI++)
+    for (label leafI = 1; leafI < path.size(); leafI++)
     {
         fixWeights
         (
@@ -370,7 +370,7 @@ bool Foam::router::route(const labelList& path, const label pathValue)
         {
             weights_[nodeI] = 0;
         }
-    }    
+    }
 
     return true;
 }
diff --git a/applications/test/simpleMatrix/simpleMatrixTest.C b/applications/test/simpleMatrix/simpleMatrixTest.C
index e26c4ea4a7502af3c2e613b8fbbb5f227348533d..709eb819f31f0ec4ff7dc39e06f9c763438897db 100644
--- a/applications/test/simpleMatrix/simpleMatrixTest.C
+++ b/applications/test/simpleMatrix/simpleMatrixTest.C
@@ -56,7 +56,7 @@ int main(int argc, char *argv[])
     Info<< hmm.LUsolve() << endl;
     Info<< hmm << endl;
 
-    Info << "End\n" << endl;
+    Info<< "End\n" << endl;
 
     return 0;
 }
diff --git a/applications/test/slicedField/slicedFieldTest.C b/applications/test/slicedField/slicedFieldTest.C
index a82b4ac71298032c02073b84fc4f86c6eee13b23..dd8da2522389c2507158c15e9652ad444827b590 100644
--- a/applications/test/slicedField/slicedFieldTest.C
+++ b/applications/test/slicedField/slicedFieldTest.C
@@ -23,7 +23,7 @@ License
     Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
 
 Application
-    volField
+    slicedFieldTest
 
 Description
 
@@ -32,16 +32,16 @@ Description
 #include "fvCFD.H"
 #include "SlicedGeometricField.H"
 #include "slicedFvPatchFields.H"
+#include "slicedSurfaceFields.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 int main(int argc, char *argv[])
 {
+    #include "setRootCase.H"
 
-#   include "setRootCase.H"
-
-#   include "createTime.H"
-#   include "createMesh.H"
+    #include "createTime.H"
+    #include "createMesh.H"
 
     Info<< "Reading field p\n" << endl;
     volScalarField p
@@ -91,7 +91,7 @@ int main(int argc, char *argv[])
     Info<< C << endl;
     Info<< (C & U) << endl;
 
-    SlicedGeometricField<vector, fvPatchField, slicedFvPatchField, surfaceMesh>
+    SlicedGeometricField<vector, fvsPatchField, slicedFvsPatchField, surfaceMesh>
     Sf
     (
         IOobject
@@ -105,7 +105,7 @@ int main(int argc, char *argv[])
         mesh.faceAreas()
     );
 
-    Info<< Sf << endl;
+    //Info<< Sf << endl;
 
     return 0;
 }
diff --git a/applications/test/string/stringTest.C b/applications/test/string/stringTest.C
index 2ed59bf88f7b4ab293a37bfe71b8251d51e38aea..7c74de93ed2a2d9fbbc7b700440d8ffd445e8321 100644
--- a/applications/test/string/stringTest.C
+++ b/applications/test/string/stringTest.C
@@ -102,8 +102,7 @@ int main(int argc, char *argv[])
     Info<< "Ostream<<  >" << s2 << "<\n";
     Info<< "hash:" << hex << string::hash()(s2) << endl;
 
-    Info << "End\n" << endl;
-
+    Info<< "\nEnd\n" << endl;
     return 0;
 }
 
diff --git a/applications/test/testPointEdgeWave/testPointEdgeWave.C b/applications/test/testPointEdgeWave/testPointEdgeWave.C
index 3a1ff900eb8c561517579165f7c426446d831f12..10856cbead9564fcf9ba5601a66eab5aab87913d 100644
--- a/applications/test/testPointEdgeWave/testPointEdgeWave.C
+++ b/applications/test/testPointEdgeWave/testPointEdgeWave.C
@@ -48,13 +48,11 @@ int main(int argc, char *argv[])
 #   include "createTime.H"
 #   include "createPolyMesh.H"
 
-    pointMesh pMesh(mesh);
-
     const polyBoundaryMesh& patches = mesh.boundaryMesh();
 
     // Get name of patch
     word patchName(args.additionalArgs()[0]);
-    
+
     // Find the label in patches by name.
     label patchI = patches.findPatchID(patchName);
 
@@ -99,7 +97,7 @@ int main(int argc, char *argv[])
 
     PointEdgeWave<pointEdgePoint> wallCalc
     (
-        pMesh,
+        mesh,
         wallPoints,
         wallInfo,
 
@@ -119,7 +117,7 @@ int main(int argc, char *argv[])
             IOobject::NO_READ,
             IOobject::AUTO_WRITE
         ),
-        pMesh,
+        pointMesh::New(mesh),
         dimensionedScalar("wallDist", dimLength, 0.0)
     );
 
@@ -133,8 +131,7 @@ int main(int argc, char *argv[])
 
     psf.write();
 
-    Info << nl << "End" << endl;
-
+    Info<< "\nEnd\n" << endl;
     return 0;
 }
 
diff --git a/applications/test/volField/volFieldTest.C b/applications/test/volField/volFieldTest.C
index 3b7dafef8e4fd17d291874d5bce44d90cc297295..f910c22544415e9974e1d74d497d3f597a6ae4e9 100644
--- a/applications/test/volField/volFieldTest.C
+++ b/applications/test/volField/volFieldTest.C
@@ -34,11 +34,10 @@ Application
 
 int main(int argc, char *argv[])
 {
+    #include "setRootCase.H"
 
-#   include "setRootCase.H"
-
-#   include "createTime.H"
-#   include "createMesh.H"
+    #include "createTime.H"
+    #include "createMesh.H"
 
     Info<< "Reading field p\n" << endl;
     volScalarField p
@@ -70,12 +69,9 @@ int main(int argc, char *argv[])
         mesh
     );
 
-#   include "createPhi.H"
-
-    //Info<< transform(dimensionedTensor("I", dimless, 0.1*I), U) << endl;
-
+    #include "createPhi.H"
 
-    GeometricField<sphericalTensor, fvPatchField, volMesh> st
+    GeometricField<symmTensor, fvPatchField, volMesh> st
     (
         IOobject
         (
@@ -86,8 +82,8 @@ int main(int argc, char *argv[])
             IOobject::NO_WRITE
         ),
         mesh,
-        dimensioned<sphericalTensor>("st", dimless, sphericalTensor::I),
-        zeroGradientFvPatchSphericalTensorField::typeName
+        dimensioned<symmTensor>("st", dimless, symmTensor::one),
+        zeroGradientFvPatchSymmTensorField::typeName
     );
 
     //Info<< fvc::div(st) << endl;
diff --git a/applications/utilities/errorEstimation/estimateScalarError/estimateScalarError.C b/applications/utilities/errorEstimation/estimateScalarError/estimateScalarError.C
index 9fb3a646d651fd9e49bda17cc88cb4217d295915..76f67f6cdbad9c030a45c5f8738f7aa961e0acdb 100644
--- a/applications/utilities/errorEstimation/estimateScalarError/estimateScalarError.C
+++ b/applications/utilities/errorEstimation/estimateScalarError/estimateScalarError.C
@@ -98,10 +98,10 @@ int main(int argc, char *argv[])
 
         if (THeader.headerOk() && Uheader.headerOk())
         {
-            Info << "Reading T" << endl;
+            Info<< "Reading T" << endl;
             volScalarField T(THeader, mesh);
 
-            Info << "Reading U" << endl;
+            Info<< "Reading U" << endl;
             volVectorField U(Uheader, mesh);
 
 #           include "createPhi.H"
diff --git a/applications/utilities/errorEstimation/icoErrorEstimate/icoErrorEstimate.C b/applications/utilities/errorEstimation/icoErrorEstimate/icoErrorEstimate.C
index c236b76eb4077d3ac58404f393fb49bc12c0f931..df1069f0bfc908bc4b964e3bc0b26c2418f7ebf7 100644
--- a/applications/utilities/errorEstimation/icoErrorEstimate/icoErrorEstimate.C
+++ b/applications/utilities/errorEstimation/icoErrorEstimate/icoErrorEstimate.C
@@ -93,10 +93,10 @@ int main(int argc, char *argv[])
 
         if (pHeader.headerOk() && Uheader.headerOk())
         {
-            Info << "Reading p" << endl;
+            Info<< "Reading p" << endl;
             volScalarField p(pHeader, mesh);
 
-            Info << "Reading U" << endl;
+            Info<< "Reading U" << endl;
             volVectorField U(Uheader, mesh);
 
 #           include "createPhi.H"
diff --git a/applications/utilities/errorEstimation/icoMomentError/icoMomentError.C b/applications/utilities/errorEstimation/icoMomentError/icoMomentError.C
index 67551e1eeccc631b48d02a815307f9f52e309748..edfe1a3b598a20d42fe61455927bd0b23e47addb 100644
--- a/applications/utilities/errorEstimation/icoMomentError/icoMomentError.C
+++ b/applications/utilities/errorEstimation/icoMomentError/icoMomentError.C
@@ -94,10 +94,10 @@ int main(int argc, char *argv[])
 
         if (pHeader.headerOk() && Uheader.headerOk())
         {
-            Info << "Reading p" << endl;
+            Info<< "Reading p" << endl;
             volScalarField p(pHeader, mesh);
 
-            Info << "Reading U" << endl;
+            Info<< "Reading U" << endl;
             volVectorField U(Uheader, mesh);
 
 #           include "createPhi.H"
diff --git a/applications/utilities/errorEstimation/momentScalarError/momentScalarError.C b/applications/utilities/errorEstimation/momentScalarError/momentScalarError.C
index f1767e75b01e6f2aa025bf39be577c686f2effa4..145f03f737cbcd9393634de9c19f21e2070986cb 100644
--- a/applications/utilities/errorEstimation/momentScalarError/momentScalarError.C
+++ b/applications/utilities/errorEstimation/momentScalarError/momentScalarError.C
@@ -99,10 +99,10 @@ int main(int argc, char *argv[])
 
         if (THeader.headerOk() && Uheader.headerOk())
         {
-            Info << "Reading T" << endl;
+            Info<< "Reading T" << endl;
             volScalarField T(THeader, mesh);
 
-            Info << "Reading U" << endl;
+            Info<< "Reading U" << endl;
             volVectorField U(Uheader, mesh);
 
 #           include "createPhi.H"
diff --git a/applications/utilities/mesh/advanced/autoRefineMesh/autoRefineMesh.C b/applications/utilities/mesh/advanced/autoRefineMesh/autoRefineMesh.C
index 82e6f2c4c912863c9c8948bfbe8dcb47813a0b63..858ceb2fdb9d3659271118976892cb2d35b2db7a 100644
--- a/applications/utilities/mesh/advanced/autoRefineMesh/autoRefineMesh.C
+++ b/applications/utilities/mesh/advanced/autoRefineMesh/autoRefineMesh.C
@@ -1015,7 +1015,7 @@ int main(int argc, char *argv[])
     }
 
 
-    Info << "End\n" << endl;
+    Info<< "End\n" << endl;
 
     return 0;
 }
diff --git a/applications/utilities/mesh/advanced/collapseEdges/collapseEdges.C b/applications/utilities/mesh/advanced/collapseEdges/collapseEdges.C
index 51ae42fb25c6f7f6e22ef6886536396f4d37934e..bc0a575207d8a8f9f28e721f6bc42f80f800d497 100644
--- a/applications/utilities/mesh/advanced/collapseEdges/collapseEdges.C
+++ b/applications/utilities/mesh/advanced/collapseEdges/collapseEdges.C
@@ -596,7 +596,7 @@ int main(int argc, char *argv[])
         mesh.write();
     }
 
-    Info << "End\n" << endl;
+    Info<< "End\n" << endl;
 
     return 0;
 }
diff --git a/applications/utilities/mesh/advanced/combinePatchFaces/combinePatchFaces.C b/applications/utilities/mesh/advanced/combinePatchFaces/combinePatchFaces.C
index 5e240daff160087d0548267752782b6143839953..5fc2803c8d8ca22e66797eef75c466d4ad8d7b29 100644
--- a/applications/utilities/mesh/advanced/combinePatchFaces/combinePatchFaces.C
+++ b/applications/utilities/mesh/advanced/combinePatchFaces/combinePatchFaces.C
@@ -510,7 +510,7 @@ int main(int argc, char *argv[])
         Info<< "Mesh unchanged." << endl;
     }
 
-    Info << "End\n" << endl;
+    Info<< "End\n" << endl;
 
     return 0;
 }
diff --git a/applications/utilities/mesh/advanced/modifyMesh/Tuple.H b/applications/utilities/mesh/advanced/modifyMesh/Tuple.H
deleted file mode 100644
index 5660e085dc3850539943acf997569c45a222ad07..0000000000000000000000000000000000000000
--- a/applications/utilities/mesh/advanced/modifyMesh/Tuple.H
+++ /dev/null
@@ -1,215 +0,0 @@
-/*---------------------------------------------------------------------------*\
-  =========                 |
-  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
-   \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2009 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 2 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, write to the Free Software Foundation,
-    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-Class
-    Foam::Tuple
-
-Description
-    A 2 Tuple. Differs from Tuple in that the two elements can be different
-    type.
-
-
-\*---------------------------------------------------------------------------*/
-
-#ifndef Tuple_H
-#define Tuple_H
-
-#include "Istream.H"
-#include "Ostream.H"
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-namespace Foam
-{
-
-// Forward declaration of friend functions and operators
-
-template<class Type1, class Type2>
-class Tuple;
-
-template<class Type1, class Type2>
-Istream& operator>>(Istream&, Tuple<Type1, Type2>&);
-
-template<class Type1, class Type2>
-Ostream& operator<<(Ostream&, const Tuple<Type1, Type2>&);
-
-/*---------------------------------------------------------------------------*\
-                            Class Tuple Declaration
-\*---------------------------------------------------------------------------*/
-
-template<class Type1, class Type2>
-class Tuple
-{
-    // Private data
-
-       Type1 first_;
-       Type2 second_;
-
-
-public:
-
-    // Constructors
-
-        //- Null constructor for lists
-        inline Tuple()
-        {}
-
-        //- Construct from components
-        inline Tuple(const Type1& first, const Type2& second)
-        :
-            first_(first),
-            second_(second)
-        {}
-
-        //- Construct from Istream
-        inline Tuple(Istream& is)
-        {
-            // Read beginning of pair
-            is.readBegin("pair");
-
-            is >> first_ >> second_;
-
-            // Read end of pair
-            is.readEnd("pair");
-
-            // Check state of Istream
-            is.check("Tuple::Tuple(Istream&)");
-        }
-
-
-    // Member Functions
-
-        //- Return first
-        inline Type1 first() const
-        {
-            return first_;
-        }
-
-        //- Return first
-        inline Type1& first()
-        {
-            return first_;
-        }
-
-        //- Return second
-        inline Type2 second() const
-        {
-            return second_;
-        }
-
-        //- Return second
-        inline Type2& second()
-        {
-            return second_;
-        }
-
-        //- Return reverse pair
-        inline Tuple<Type1, Type2> reverseTuple() const
-        {
-            return Tuple<Type1, Type2>(second_, first_);
-        }
-
-
-    // Friend Operators
-
-        inline friend bool operator==
-        (
-            const Tuple<Type1, Type2>& a,
-            const Tuple<Type1, Type2>& b
-        )
-        {
-            return
-            (
-                (a.first_ == b.first_) && (a.second_ == b.second_)
-            );
-        }
-
-        inline friend bool operator!=
-        (
-            const Tuple<Type1, Type2>& a,
-            const Tuple<Type1, Type2>& b
-        )
-        {
-            return (!(a == b));
-        }
-
-
-    // IOstream Operators
-
-        friend Istream& operator>> <Type1, Type2>
-        (
-            Istream& is,
-            Tuple<Type1, Type2>& p
-        );
-        friend Ostream& operator<< <Type1, Type2>
-        (
-            Ostream& os,
-            const Tuple<Type1, Type2>& p
-        );
-};
-
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-template<class Type1, class Type2>
-Istream& operator>>(Istream& is, Tuple<Type1, Type2>& p)
-{
-    // Read beginning of Tuple<Type, Type>
-    is.readBegin("Tuple<Type, Type>");
-
-    is >> p.first_ >> p.second_;
-
-    // Read end of Tuple<Type, Type>
-    is.readEnd("Tuple<Type, Type>");
-
-    // Check state of Ostream
-    is.check("Istream& operator>>(Istream&, Tuple<Type, Type>&)");
-
-    return is;
-}
-
-template<class Type1, class Type2>
-Ostream& operator<<(Ostream& os, const Tuple<Type1, Type2>& p)
-{
-    os  << token::BEGIN_LIST
-        << p.first_ << token::SPACE
-        << p.second_
-        << token::END_LIST;
-
-    // Check state of Ostream
-    os.check("Ostream& operator<<(Ostream&, const Tuple<Type, Type>&)");
-
-    return os;
-}
-
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-} // End namespace Foam
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-#endif
-
-// ************************************************************************* //
diff --git a/applications/utilities/mesh/advanced/modifyMesh/modifyMesh.C b/applications/utilities/mesh/advanced/modifyMesh/modifyMesh.C
index a78ade8d6d42231a9514b922b821bec35cd75c19..efe2b761ed4b39a337ed9a36c9b1aedd1b5b9d25 100644
--- a/applications/utilities/mesh/advanced/modifyMesh/modifyMesh.C
+++ b/applications/utilities/mesh/advanced/modifyMesh/modifyMesh.C
@@ -375,8 +375,8 @@ int main(int argc, char *argv[])
 
     bool cellsToSplit = cellsToPyramidise.size();
 
-    //List<Tuple<pointField,point> >
-    //  cellsToCreate(dict.lookup("cellsToCreate"));
+    // List<Tuple2<pointField,point> >
+    //     cellsToCreate(dict.lookup("cellsToCreate"));
 
     Info<< "Read from " << dict.name() << nl
         << "  Boundary cutting module:" << nl
@@ -560,7 +560,7 @@ int main(int argc, char *argv[])
         }
 
         // Write resulting mesh
-        Info << "Writing modified mesh to time " << runTime.timeName() << endl;
+        Info<< "Writing modified mesh to time " << runTime.timeName() << endl;
         mesh.write();
     }
     else if (edgeToPos.size())
@@ -613,7 +613,7 @@ int main(int argc, char *argv[])
         }
 
         // Write resulting mesh
-        Info << "Writing modified mesh to time " << runTime.timeName() << endl;
+        Info<< "Writing modified mesh to time " << runTime.timeName() << endl;
         mesh.write();
     }
     else
@@ -656,13 +656,12 @@ int main(int argc, char *argv[])
         }
 
         // Write resulting mesh
-        Info << "Writing modified mesh to time " << runTime.timeName() << endl;
+        Info<< "Writing modified mesh to time " << runTime.timeName() << endl;
         mesh.write();
     }
 
 
-    Info << nl << "End" << endl;
-
+    Info<< "\nEnd\n" << endl;
     return 0;
 }
 
diff --git a/applications/utilities/mesh/advanced/refineWallLayer/refineWallLayer.C b/applications/utilities/mesh/advanced/refineWallLayer/refineWallLayer.C
index 4e48feeea549bf7d5b0dda2dff8f4c0c8241f4ea..7e42676f3a413ece91b20cfe01ec0848bac435e7 100644
--- a/applications/utilities/mesh/advanced/refineWallLayer/refineWallLayer.C
+++ b/applications/utilities/mesh/advanced/refineWallLayer/refineWallLayer.C
@@ -234,11 +234,11 @@ int main(int argc, char *argv[])
     }
 
     // Write resulting mesh
-    Info << "Writing refined morphMesh to time " << runTime.timeName() << endl;
+    Info<< "Writing refined morphMesh to time " << runTime.timeName() << endl;
 
     mesh.write();
 
-    Info << "End\n" << endl;
+    Info<< "End\n" << endl;
 
     return 0;
 }
diff --git a/applications/utilities/mesh/advanced/refinementLevel/refinementLevel.C b/applications/utilities/mesh/advanced/refinementLevel/refinementLevel.C
index 7732c985b8484a2c822c846c3a5b554da162aa80..d3b1e14c63e5dffa651cdbd7504d98ce914a4057 100644
--- a/applications/utilities/mesh/advanced/refinementLevel/refinementLevel.C
+++ b/applications/utilities/mesh/advanced/refinementLevel/refinementLevel.C
@@ -126,41 +126,41 @@ int main(int argc, char *argv[])
     // Create bin0. Have upperlimit as factor times lowerlimit.
     bins.append(DynamicList<label>());
     lowerLimits.append(sortedVols[0]);
-    upperLimits.append(1.1*lowerLimits[lowerLimits.size()-1]);
+    upperLimits.append(1.1 * lowerLimits.last());
 
     forAll(sortedVols, i)
     {
-        if (sortedVols[i] > upperLimits[upperLimits.size()-1])
+        if (sortedVols[i] > upperLimits.last())
         {
             // New value outside of current bin
 
             // Shrink old bin.
-            DynamicList<label>& bin = bins[bins.size()-1];
+            DynamicList<label>& bin = bins.last();
 
             bin.shrink();
 
             Info<< "Collected " << bin.size() << " elements in bin "
-                << lowerLimits[lowerLimits.size()-1] << " .. "
-                << upperLimits[upperLimits.size()-1] << endl;
+                << lowerLimits.last() << " .. "
+                << upperLimits.last() << endl;
 
             // Create new bin.
             bins.append(DynamicList<label>());
             lowerLimits.append(sortedVols[i]);
-            upperLimits.append(1.1*lowerLimits[lowerLimits.size()-1]);
+            upperLimits.append(1.1 * lowerLimits.last());
 
-            Info<< "Creating new bin " << lowerLimits[lowerLimits.size()-1]
-                << " .. " << upperLimits[upperLimits.size()-1]
+            Info<< "Creating new bin " << lowerLimits.last()
+                << " .. " << upperLimits.last()
                 << endl;
         }
 
         // Append to current bin.
-        DynamicList<label>& bin = bins[bins.size()-1];
+        DynamicList<label>& bin = bins.last();
 
         bin.append(sortedVols.indices()[i]);
     }
     Info<< endl;
 
-    bins[bins.size()-1].shrink();
+    bins.last().shrink();
     bins.shrink();
     lowerLimits.shrink();
     upperLimits.shrink();
@@ -355,8 +355,7 @@ int main(int argc, char *argv[])
             << nl << endl;
     }
 
-    Info << nl << "End" << endl;
-
+    Info<< "\nEnd\n" << endl;
     return 0;
 }
 
diff --git a/applications/utilities/mesh/advanced/selectCells/selectCells.C b/applications/utilities/mesh/advanced/selectCells/selectCells.C
index c7dbdd8e42da3f7d080acc54fd36af7768c54209..4d690016be3703c44ceb4a9a86174c57e781e585 100644
--- a/applications/utilities/mesh/advanced/selectCells/selectCells.C
+++ b/applications/utilities/mesh/advanced/selectCells/selectCells.C
@@ -469,7 +469,7 @@ int main(int argc, char *argv[])
             MESH,       // meshType
             NONMESH,    // fill type
             mesh.nCells()
-        ); 
+        );
 
 
         Info<< "Removing points connecting cells unconnected by faces ..."
@@ -510,7 +510,7 @@ int main(int argc, char *argv[])
     writeSet(selectedCells, "cells selected for meshing");
 
 
-    Info << "End\n" << endl;
+    Info<< "End\n" << endl;
 
     return 0;
 }
diff --git a/applications/utilities/mesh/advanced/splitCells/splitCells.C b/applications/utilities/mesh/advanced/splitCells/splitCells.C
index c916be8daa13324e333b20146943fda309bbe4cd..6cad468c2c37ea7ed6158e54ade21599bce595aa 100644
--- a/applications/utilities/mesh/advanced/splitCells/splitCells.C
+++ b/applications/utilities/mesh/advanced/splitCells/splitCells.C
@@ -701,7 +701,7 @@ int main(int argc, char *argv[])
         mesh.write();
     }
 
-    Info << "End\n" << endl;
+    Info<< "End\n" << endl;
 
     return 0;
 }
diff --git a/applications/utilities/mesh/conversion/ansysToFoam/ansysToFoam.L b/applications/utilities/mesh/conversion/ansysToFoam/ansysToFoam.L
index 2fffcaa813f65749989388733813571eaa9bdcdf..bcdf44f265f9c4f6568dca11c61e6e50d08410fd 100644
--- a/applications/utilities/mesh/conversion/ansysToFoam/ansysToFoam.L
+++ b/applications/utilities/mesh/conversion/ansysToFoam/ansysToFoam.L
@@ -39,6 +39,8 @@ Description
  \* ------------------------------------------------------------------------- */
 
 #include <sstream>
+// For EOF only
+#include <cstdio>
 
 #include "scalar.H"
 #include "IStringStream.H"
@@ -262,10 +264,10 @@ int main(int argc, char *argv[])
     }
 
     yyFlexLexer lexer(&ansysStream);
-    while(lexer.yylex() != 0)
+    while (lexer.yylex() != 0)
     {}
 
-    Info << "Creating points" << endl;
+    Info<< "Creating points" << endl;
 
     pointField points(slPoints.size());
 
@@ -295,7 +297,7 @@ int main(int argc, char *argv[])
         pointMap[pointMapIter()] = i++;
     }
 
-    Info << "Creating cells" << endl;
+    Info<< "Creating cells" << endl;
 
     labelList cellMap(maxCelli+1);
 
@@ -407,7 +409,7 @@ int main(int argc, char *argv[])
         { 4,  2,  1,  3,  0,  5}, // hex
     };
 
-    Info << "Creating boundary patches" << endl;
+    Info<< "Creating boundary patches" << endl;
 
     faceListList boundary(slPatchCells.size());
     wordList patchNames(slPatchCells.size());
@@ -440,11 +442,11 @@ int main(int argc, char *argv[])
 
         boundary[patchI] = patchFaces;
         patchNames[patchI] = word("patch") + name(patchI + 1);
-        Info << "Patch " << patchI << " named " << patchNames[patchI]
+        Info<< "Patch " << patchI << " named " << patchNames[patchI]
             << ": " << boundary[patchI].size() << " faces" << endl;
     }
 
-    Info << "ansysToFoam: " << endl
+    Info<< "ansysToFoam: " << endl
         << "Ansys file format does not provide information about the type of "
         << "the patch (eg. wall, symmetry plane, cyclic etc)." << endl
         << "All the patches have been created "
@@ -489,7 +491,7 @@ int main(int argc, char *argv[])
     // Set the precision of the points data to 10
     IOstream::defaultPrecision(10);
 
-    Info << "Writing polyMesh" << endl;
+    Info<< "Writing polyMesh" << endl;
     pShapeMesh.write();
 
     Info<< nl << "end" << endl;
diff --git a/applications/utilities/mesh/conversion/cfx4ToFoam/cfx4ToFoam.C b/applications/utilities/mesh/conversion/cfx4ToFoam/cfx4ToFoam.C
index d193a481330205b146f4c3afe20ec4fab7ea1a25..7684db4c32f78c115bedb53f625f9e3a8d3c964d 100644
--- a/applications/utilities/mesh/conversion/cfx4ToFoam/cfx4ToFoam.C
+++ b/applications/utilities/mesh/conversion/cfx4ToFoam/cfx4ToFoam.C
@@ -73,7 +73,7 @@ int main(int argc, char *argv[])
 
     cfxFile >> nblock >> npatch >> nglue >> nelem >> npoint;
 
-    Info << "Reading blocks" << endl;
+    Info<< "Reading blocks" << endl;
 
     PtrList<hexBlock> blocks(nblock);
 
@@ -90,7 +90,7 @@ int main(int argc, char *argv[])
         }
     }
 
-    Info << "Reading patch definitions" << endl;
+    Info<< "Reading patch definitions" << endl;
 
     wordList cfxPatchTypes(npatch);
     wordList cfxPatchNames(npatch);
@@ -126,7 +126,7 @@ int main(int argc, char *argv[])
         }
     }
 
-    Info << "Reading block glueing information" << endl;
+    Info<< "Reading block glueing information" << endl;
 
     labelList glueMasterPatches(nglue, -1);
     labelList glueSlavePatches(nglue, -1);
@@ -145,15 +145,15 @@ int main(int argc, char *argv[])
         }
     }
 
-    Info << "Reading block points" << endl;
+    Info<< "Reading block points" << endl;
 
     forAll (blocks, blockI)
     {
-        Info << "block " << blockI << " is a ";
+        Info<< "block " << blockI << " is a ";
         blocks[blockI].readPoints(cfxFile);
     }
 
-    Info << "Calculating block offsets" << endl;
+    Info<< "Calculating block offsets" << endl;
 
     labelList blockOffsets(nblock, -1);
 
@@ -172,7 +172,7 @@ int main(int argc, char *argv[])
           + blocks[blockI - 1].nBlockPoints();
     }
 
-    Info << "Assembling patches" << endl;
+    Info<< "Assembling patches" << endl;
 
     faceListList rawPatches(npatch);
 
@@ -203,13 +203,13 @@ int main(int argc, char *argv[])
         }
     }
 
-    Info << "Merging points ";
+    Info<< "Merging points ";
 
     labelList pointMergeList(nMeshPoints, -1);
 
     // In order to ensure robust merging, it is necessary to traverse
     // the patch glueing list until the pointMergeList stops changing.
-    // 
+    //
 
     // For efficiency, create merge pairs in the first pass
     labelListListList glueMergePairs(glueMasterPatches.size());
@@ -396,7 +396,7 @@ int main(int argc, char *argv[])
                     )
                     {
                         changedPointMerge = true;
-                            
+
                         pointMergeList[PpointLabel]
                       = pointMergeList[NpointLabel]
                       = min
@@ -408,10 +408,10 @@ int main(int argc, char *argv[])
                 }
             }
         }
-        Info << "." << flush;
+        Info<< "." << flush;
     }
     while (changedPointMerge && nPasses < 8);
-    Info << endl;
+    Info<< endl;
 
     if (changedPointMerge == true)
     {
@@ -509,7 +509,7 @@ int main(int argc, char *argv[])
 
     nMeshPoints = nNewPoints;
 
-    Info << "Creating points" << endl;
+    Info<< "Creating points" << endl;
 
     pointField points(nMeshPoints);
 
@@ -536,7 +536,7 @@ int main(int argc, char *argv[])
         points *= scaleFactor;
     }
 
-    Info << "Creating cells" << endl;
+    Info<< "Creating cells" << endl;
 
     cellShapeList cellShapes(nMeshCells);
 
@@ -568,7 +568,7 @@ int main(int argc, char *argv[])
         }
     }
 
-    Info << "Creating boundary patches" << endl;
+    Info<< "Creating boundary patches" << endl;
 
     faceListList boundary(npatch);
     wordList patchNames(npatch);
@@ -600,7 +600,7 @@ int main(int argc, char *argv[])
 
             if (existingPatch >= 0)
             {
-                Info << "CFX patch " << patchI
+                Info<< "CFX patch " << patchI
                     << ", of type " << cfxPatchTypes[patchI]
                     << ", name " << cfxPatchNames[patchI]
                     << " already exists as FOAM patch " << existingPatch
@@ -652,7 +652,7 @@ int main(int argc, char *argv[])
                     }
                 }
 
-                Info << "CFX patch " << patchI
+                Info<< "CFX patch " << patchI
                     << ", of type " << cfxPatchTypes[patchI]
                     << ", name " << cfxPatchNames[patchI]
                     << " converted into FOAM patch " << nCreatedPatches
@@ -660,7 +660,7 @@ int main(int argc, char *argv[])
 
                 if (cfxPatchTypes[patchI] == "WALL")
                 {
-                    Info << "wall." << endl;
+                    Info<< "wall." << endl;
 
                     patchTypes[nCreatedPatches] = wallPolyPatch::typeName;
                     patchNames[nCreatedPatches] = cfxPatchNames[patchI];
@@ -668,7 +668,7 @@ int main(int argc, char *argv[])
                 }
                 else if (cfxPatchTypes[patchI] == "SYMMET")
                 {
-                    Info << "symmetryPlane." << endl;
+                    Info<< "symmetryPlane." << endl;
 
                     patchTypes[nCreatedPatches] = symmetryPolyPatch::typeName;
                     patchNames[nCreatedPatches] = cfxPatchNames[patchI];
@@ -683,7 +683,7 @@ int main(int argc, char *argv[])
                  || cfxPatchTypes[patchI] == "USER2D"
                 )
                 {
-                    Info << "generic." << endl;
+                    Info<< "generic." << endl;
 
                     patchTypes[nCreatedPatches] = polyPatch::typeName;
                     patchNames[nCreatedPatches] = cfxPatchNames[patchI];
@@ -737,10 +737,10 @@ int main(int argc, char *argv[])
     // Set the precision of the points data to 10
     IOstream::defaultPrecision(10);
 
-    Info << "Writing polyMesh" << endl;
+    Info<< "Writing polyMesh" << endl;
     pShapeMesh.write();
 
-    Info << "End\n" << endl;
+    Info<< "End\n" << endl;
 
     return 0;
 }
diff --git a/applications/utilities/mesh/conversion/cfx4ToFoam/hexBlock.C b/applications/utilities/mesh/conversion/cfx4ToFoam/hexBlock.C
index b9bfee00ffbfa8f6e5c45d4586192e67dc9cb362..bf16792211a08e9521e4f453e3c829e6bd174f61 100644
--- a/applications/utilities/mesh/conversion/cfx4ToFoam/hexBlock.C
+++ b/applications/utilities/mesh/conversion/cfx4ToFoam/hexBlock.C
@@ -70,12 +70,12 @@ void hexBlock::readPoints(Istream& is)
 
     if (((i ^ j) & k) > 0)
     {
-        Info << "right-handed block" << endl;
+        Info<< "right-handed block" << endl;
         blockHandedness_ = right;
     }
     else
     {
-        Info << "left-handed block" << endl;
+        Info<< "left-handed block" << endl;
         blockHandedness_ = left;
     }
 }
diff --git a/applications/utilities/mesh/conversion/fluent3DMeshToFoam/fluent3DMeshToFoam.L b/applications/utilities/mesh/conversion/fluent3DMeshToFoam/fluent3DMeshToFoam.L
index b66b9512a8568717d59067426539aaea4f469210..cf46939eaeb73fa17130c965cdbe545695e420aa 100644
--- a/applications/utilities/mesh/conversion/fluent3DMeshToFoam/fluent3DMeshToFoam.L
+++ b/applications/utilities/mesh/conversion/fluent3DMeshToFoam/fluent3DMeshToFoam.L
@@ -324,7 +324,7 @@ endOfSection               {space}")"{space}
         // point group type skipped
         strtol(endPtr, &endPtr, 16);
 
-        pointi = pointGroupStartIndex[pointGroupStartIndex.size()-1];
+        pointi = pointGroupStartIndex.last();
 
         // reset number of components to default
         pointGroupNumberOfComponents = 3;
@@ -336,11 +336,11 @@ endOfSection               {space}")"{space}
         }
 
         Info<< "PointGroup: "
-            << pointGroupZoneID[pointGroupZoneID.size()-1]
+            << pointGroupZoneID.last()
             << " start: "
-            << pointGroupStartIndex[pointGroupStartIndex.size()-1]
+            << pointGroupStartIndex.last()
             << " end: "
-            << pointGroupEndIndex[pointGroupEndIndex.size()-1] << flush;
+            << pointGroupEndIndex.last() << flush;
     }
 
 <readNumberOfPoints,readPointGroupData>{endOfSection} {
@@ -387,14 +387,14 @@ endOfSection               {space}")"{space}
         Info<< "done." << endl;
 
         // check read of points
-        if (pointi != pointGroupEndIndex[pointGroupEndIndex.size()-1]+1)
+        if (pointi != pointGroupEndIndex.last()+1)
         {
             Warning
                 << "Problem with reading points: " << nl
                 << "    start index: "
-                << pointGroupStartIndex[pointGroupStartIndex.size()-1]
+                << pointGroupStartIndex.last()
                 << " end index: "
-                << pointGroupEndIndex[pointGroupEndIndex.size()-1]
+                << pointGroupEndIndex.last()
                 << " last points read: " << pointi << nl
                 << "    on line " << lineNo << endl;
         }
@@ -440,14 +440,14 @@ endOfSection               {space}")"{space}
 
         faceGroupElementType = strtol(endPtr, &endPtr, 16);
 
-        facei = faceGroupStartIndex[faceGroupStartIndex.size()-1];
+        facei = faceGroupStartIndex.last();
 
         Info<< "FaceGroup: "
-            << faceGroupZoneID[faceGroupZoneID.size()-1]
+            << faceGroupZoneID.last()
             << " start: "
-            << faceGroupStartIndex[faceGroupStartIndex.size()-1]
+            << faceGroupStartIndex.last()
             << " end: "
-            << faceGroupEndIndex[faceGroupEndIndex.size()-1] << flush;
+            << faceGroupEndIndex.last() << flush;
     }
 
 <readNumberOfFaces,readFaceGroupData>{space}{endOfSection} {
@@ -507,14 +507,14 @@ endOfSection               {space}")"{space}
         Info<< "done." << endl;
 
         // check read of fluentFaces
-        if (facei != faceGroupEndIndex[faceGroupEndIndex.size()-1]+1)
+        if (facei != faceGroupEndIndex.last()+1)
         {
             Warning
                 << "Problem with reading fluentFaces: " << nl
                 << "    start index: "
-                << faceGroupStartIndex[faceGroupStartIndex.size()-1]
+                << faceGroupStartIndex.last()
                 << " end index: "
-                << faceGroupEndIndex[faceGroupEndIndex.size()-1]
+                << faceGroupEndIndex.last()
                 << " last fluentFaces read: " << facei << nl
                 << "    on line " << lineNo << endl;
         }
@@ -560,13 +560,13 @@ endOfSection               {space}")"{space}
         cellGroupType.append(strtol(endPtr, &endPtr, 16));
 
         Info<< "CellGroup: "
-            << cellGroupZoneID[cellGroupZoneID.size()-1]
+            << cellGroupZoneID.last()
             << " start: "
-            << cellGroupStartIndex[cellGroupStartIndex.size()-1]
+            << cellGroupStartIndex.last()
             << " end: "
-            << cellGroupEndIndex[cellGroupEndIndex.size()-1]
+            << cellGroupEndIndex.last()
             << " type: "
-            << cellGroupType[cellGroupType.size()-1]
+            << cellGroupType.last()
             << endl;
     }
 
@@ -587,13 +587,13 @@ endOfSection               {space}")"{space}
         strtol(endPtr, &endPtr, 16);
 
         Info<< "CellGroup: "
-            << cellGroupZoneID[cellGroupZoneID.size()-1]
+            << cellGroupZoneID.last()
             << " start: "
-            << cellGroupStartIndex[cellGroupStartIndex.size()-1]
+            << cellGroupStartIndex.last()
             << " end: "
-            << cellGroupEndIndex[cellGroupEndIndex.size()-1]
+            << cellGroupEndIndex.last()
             << " type: "
-            << cellGroupType[cellGroupType.size()-1]
+            << cellGroupType.last()
             << endl;
     }
 
@@ -813,7 +813,7 @@ int main(int argc, char *argv[])
 
     yyFlexLexer lexer(&fluentStream.stdStream());
 
-    while(lexer.yylex() != 0)
+    while (lexer.yylex() != 0)
     {}
 
     Info<< "\nFINISHED LEXING\n\n";
@@ -973,7 +973,7 @@ int main(int argc, char *argv[])
 
             // Set the owner of these faces to -1 so that they do not get
             // added to the mesh
-            for(label facei = start; facei <= end; facei++)
+            for (label facei = start; facei <= end; facei++)
             {
                 owner[facei] = -1;
             }
@@ -1356,7 +1356,7 @@ int main(int argc, char *argv[])
     mesh.write();
 
 
-    Info<< nl << "End" << endl;
+    Info<< "\nEnd\n" << endl;
     return 0;
 }
 
diff --git a/applications/utilities/mesh/conversion/fluentMeshToFoam/fluentMeshToFoam.L b/applications/utilities/mesh/conversion/fluentMeshToFoam/fluentMeshToFoam.L
index d1afc4523a5e0ba97cacaa6abd9a4eeecdeebfa7..3460a213e87598728a01fba28dc801bbea4bd383 100644
--- a/applications/utilities/mesh/conversion/fluentMeshToFoam/fluentMeshToFoam.L
+++ b/applications/utilities/mesh/conversion/fluentMeshToFoam/fluentMeshToFoam.L
@@ -898,7 +898,7 @@ int main(int argc, char *argv[])
     }
 
     yyFlexLexer lexer(&fluentStream);
-    while(lexer.yylex() != 0)
+    while (lexer.yylex() != 0)
     {}
 
     Info<< "\n\nFINISHED LEXING\n\n\n";
@@ -1388,7 +1388,7 @@ int main(int argc, char *argv[])
                 meshFaces[j] = cMeshFace;
                 pFaceSet.insert(cMeshFace);
             }
-            if(writeSets)
+            if (writeSets)
             {
                 Info<< "Writing patch " << patchNames[patchI]
                     << " of size " << sz << " to faceSet." << endl;
@@ -1404,7 +1404,11 @@ int main(int argc, char *argv[])
         //it will be put in a default wall boundary
         //internal boundaries are simply ignored
 
-        if(patchTypes[patchI] != "internal" && !pShapeMesh.isInternalFace(meshFaces[0]))
+        if
+        (
+            patchTypes[patchI] != "internal"
+         && !pShapeMesh.isInternalFace(meshFaces[0])
+        )
         {
             //first face is external and has valid non-internal type
 
@@ -1423,7 +1427,7 @@ int main(int argc, char *argv[])
                         << exit(FatalError);
                 }
 
-                if(facePatchID[faceI - pShapeMesh.nInternalFaces()]!= -1)
+                if (facePatchID[faceI - pShapeMesh.nInternalFaces()]!= -1)
                 {
                     FatalErrorIn(args.executable())
                         << "Face " << faceI << " on new patch "
@@ -1475,7 +1479,7 @@ int main(int argc, char *argv[])
         DynamicList<label> defaultBoundaryFaces(facePatchID.size());
         forAll(facePatchID, idI)
         {
-            if(facePatchID[idI] == -1)
+            if (facePatchID[idI] == -1)
             {
                 defaultBoundaryFaces.append(idI);
                 facePatchID[idI] = nBoundaries;
@@ -1575,50 +1579,50 @@ int main(int argc, char *argv[])
             boundaryZones[pI].append(bPatches[pI].name());
         }
 
-	    label cnt=0;
-	    SLList<label>::iterator cg = cellGroupZoneID.begin();
-	    SLList<label>::iterator start = cellGroupStartIndex.begin();
-	    SLList<label>::iterator end = cellGroupEndIndex.begin();
+        label cnt=0;
+        SLList<label>::iterator cg = cellGroupZoneID.begin();
+        SLList<label>::iterator start = cellGroupStartIndex.begin();
+        SLList<label>::iterator end = cellGroupEndIndex.begin();
 
-	    for (; cg != cellGroupZoneID.end(); ++cg, ++start, ++end)
-	    {
-	        const word& name = patchNameIDs[cg()];
-	        const word& type = patchTypeIDs[cg()];
+        for (; cg != cellGroupZoneID.end(); ++cg, ++start, ++end)
+        {
+            const word& name = patchNameIDs[cg()];
+            const word& type = patchTypeIDs[cg()];
 
-	        Info<< "Writing cell zone: " << name
+            Info<< "Writing cell zone: " << name
                 << " of type " << type << " starting at " << start() - 1
                 << " ending at " << end() - 1 << " to cellSet." << endl;
 
-	        labelList cls(end() - start() + 1);
+            labelList cls(end() - start() + 1);
 
             // Mark zone cells, used for finding faces
             boolList zoneCell(pShapeMesh.nCells(), false);
 
-	        // shift cell indizes by 1
-	        label nr=0;
-	        for (label celli = (start() - 1); celli < end(); celli++)
+            // shift cell indizes by 1
+            label nr=0;
+            for (label celli = (start() - 1); celli < end(); celli++)
             {
                 cls[nr]=celli;
                 zoneCell[celli] = true;
                 nr++;
-	        }
+            }
 
-	        cz[cnt] = new cellZone
-	        (
+            cz[cnt] = new cellZone
+            (
                 name,
                 cls,
                 cnt,
                 pShapeMesh.cellZones()
-	        );
+            );
 
             DynamicList<label> zoneFaces(pShapeMesh.nFaces());
             forAll(pShapeMesh.faceNeighbour(), faceI)
             {
                 label nei = pShapeMesh.faceNeighbour()[faceI];
                 label own = pShapeMesh.faceOwner()[faceI];
-                if(nei != -1)
+                if (nei != -1)
                 {
-                    if(zoneCell[nei] && zoneCell[own])
+                    if (zoneCell[nei] && zoneCell[own])
                     {
                         zoneFaces.append(faceI);
                     }
@@ -1641,7 +1645,7 @@ int main(int argc, char *argv[])
                 const labelList& faceCells = bPatches[pI].faceCells();
                 forAll(faceCells, fcI)
                 {
-                    if(zoneCell[faceCells[fcI] ])
+                    if (zoneCell[faceCells[fcI] ])
                     {
                         boundaryZones[pI].append(name);
                         break;
@@ -1649,8 +1653,8 @@ int main(int argc, char *argv[])
                 }
             }
 
-	        cnt++;
-	    }
+            cnt++;
+        }
 
         pShapeMesh.addZones(pz, fz, cz);
 
@@ -1715,7 +1719,7 @@ int main(int argc, char *argv[])
                 cellSet internal(pShapeMesh, name, end() - start());
 
                 // shift cell indizes by 1
-                for(label celli=start() - 1; celli<=end() - 1; celli++)
+                for (label celli = start() - 1; celli <= end() - 1; celli++)
                 {
                     internal.insert(celli);
                 }
@@ -1729,7 +1733,7 @@ int main(int argc, char *argv[])
         }
     }
 
-    Info<< nl << "End" << endl;
+    Info<< "\nEnd\n" << endl;
     return 0;
 }
 
diff --git a/applications/utilities/mesh/conversion/foamMeshToFluent/fluentFvMesh.C b/applications/utilities/mesh/conversion/foamMeshToFluent/fluentFvMesh.C
index 65ee7d1b497396b953e203a8b9d0a64e41c66c1d..228194e4c3069fc25ab4029b256d3a13c32dc5fa 100644
--- a/applications/utilities/mesh/conversion/foamMeshToFluent/fluentFvMesh.C
+++ b/applications/utilities/mesh/conversion/foamMeshToFluent/fluentFvMesh.C
@@ -63,7 +63,7 @@ void Foam::fluentFvMesh::writeFluentMesh() const
         ).c_str()
     );
 
-    Info << "Writing Header" << endl;
+    Info<< "Writing Header" << endl;
 
     fluentMeshFile
         << "(0 \"FOAM to Fluent Mesh File\")" << std::endl << std::endl
diff --git a/applications/utilities/mesh/conversion/foamMeshToFluent/foamMeshToFluent.C b/applications/utilities/mesh/conversion/foamMeshToFluent/foamMeshToFluent.C
index a276e534a17f44b64e0a629a3e721934ccc52d3f..a4d8b25f3be24cf67d4379cc85c9e177ab95e06d 100644
--- a/applications/utilities/mesh/conversion/foamMeshToFluent/foamMeshToFluent.C
+++ b/applications/utilities/mesh/conversion/foamMeshToFluent/foamMeshToFluent.C
@@ -57,7 +57,7 @@ int main(int argc, char *argv[])
 
     mesh.writeFluentMesh();
 
-    Info << "End\n" << endl;
+    Info<< "End\n" << endl;
 
     return 0;
 }
diff --git a/applications/utilities/mesh/conversion/gambitToFoam/gambitToFoam.L b/applications/utilities/mesh/conversion/gambitToFoam/gambitToFoam.L
index f815e81b5327c2a86fc4407831a48603c995130b..bc88b46c1e0333331f431c3498f5f2414208ea07 100644
--- a/applications/utilities/mesh/conversion/gambitToFoam/gambitToFoam.L
+++ b/applications/utilities/mesh/conversion/gambitToFoam/gambitToFoam.L
@@ -41,6 +41,9 @@ Description
 #include "scalarList.H"
 #include "IStringStream.H"
 
+// For EOF only
+#include <cstdio>
+
 using namespace Foam;
 
 #include "argList.H"
@@ -230,7 +233,7 @@ mtype                 {space}"MTYPE:"{space}
 
 <readProgramID>{space}{word} {
 
-        Info << "Written by " << YYText() << " ";
+        Info<< "Written by " << YYText() << " ";
         BEGIN(controlInfo);
     }
 
@@ -242,20 +245,20 @@ mtype                 {space}"MTYPE:"{space}
 
 <readVersionID>{space}{versionNumber} {
 
-        Info << " version " << YYText() << endl;
+        Info<< " version " << YYText() << endl;
         BEGIN(controlInfo);
     }
 
 
 <controlInfo>{space}{dateDDMonYYYY}{space}{time} {
 
-        Info << "File written on " << YYText() << endl;
+        Info<< "File written on " << YYText() << endl;
     }
 
 
 <controlInfo>{space}{dateDDMMYYYY}{space}{time} {
 
-        Info << "File written on " << YYText() << endl;
+        Info<< "File written on " << YYText() << endl;
     }
 
 
@@ -301,7 +304,7 @@ mtype                 {space}"MTYPE:"{space}
 {nodalCoords}{spaceNl} {
 
         curNumberOfNodes = 0;
-        Info << "Reading nodal coordinates" << endl;
+        Info<< "Reading nodal coordinates" << endl;
         BEGIN(nodalCoords);
     }
 
@@ -329,7 +332,7 @@ mtype                 {space}"MTYPE:"{space}
 {cellsAndElements}{spaceNl} {
 
         curNumberOfCells = 0;
-        Info << "Reading cells" << endl;
+        Info<< "Reading cells" << endl;
         BEGIN(cellsAndElements);
     }
 
@@ -419,7 +422,7 @@ mtype                 {space}"MTYPE:"{space}
  /*             ------ Reading element group information ------               */
 
 {cellStreams}{spaceNl} {
-        Info << "Reading cell streams" << endl;
+        Info<< "Reading cell streams" << endl;
         BEGIN(cellStreams);
     }
 
@@ -501,7 +504,7 @@ mtype                 {space}"MTYPE:"{space}
 
 
 <cellStreamFlags>{labelList} {
-        Info << "Reading cell stream labels" << endl;
+        Info<< "Reading cell stream labels" << endl;
         BEGIN(cellStreamLabels);
     }
 
@@ -526,7 +529,7 @@ mtype                 {space}"MTYPE:"{space}
 
 <cellStreamLabels>{endOfSection}\n {
 
-        Info << "Finished reading cell stream labels" << endl;
+        Info<< "Finished reading cell stream labels" << endl;
 
         // reset current group ID and a number of flags
         curGroupID = 0;
@@ -538,7 +541,7 @@ mtype                 {space}"MTYPE:"{space}
 
 {boundaryPatch}{spaceNl} {
         curPatchFace = 0;
-        Info << "Reading patches" << endl;
+        Info<< "Reading patches" << endl;
         BEGIN(boundaryPatchParams);
     }
 
@@ -662,10 +665,10 @@ int main(int argc, char *argv[])
     }
 
     yyFlexLexer lexer(&gambitStream);
-    while(lexer.yylex() != 0)
+    while (lexer.yylex() != 0)
     {}
 
-    Info << "Finished lexing" << endl;
+    Info<< "Finished lexing" << endl;
 
     // make a point mapping array
     label maxPointIndex = 0;
@@ -812,7 +815,7 @@ int main(int argc, char *argv[])
         }
     }
 
-    Info << "gambitToFoam: " << endl
+    Info<< "gambitToFoam: " << endl
         << "Gambit file format does not provide information about the type of "
         << "the patch (eg. wall, symmetry plane, cyclic etc)." << endl
         << "All the patches have been created "
@@ -861,10 +864,10 @@ int main(int argc, char *argv[])
     // Set the precision of the points data to 10
     IOstream::defaultPrecision(10);
 
-    Info << "Writing polyMesh" << endl;
+    Info<< "Writing polyMesh" << endl;
     pShapeMesh.write();
 
-    Info<< nl << "End" << endl;
+    Info<< "\nEnd\n" << endl;
     return 0;
 }
 
diff --git a/applications/utilities/mesh/conversion/gmshToFoam/gmshToFoam.C b/applications/utilities/mesh/conversion/gmshToFoam/gmshToFoam.C
index a7f9d01a7f0a3285844e29ccf60cf260c3b01643..16977b92c6788d7761cd4da49b40de7c6f036609 100644
--- a/applications/utilities/mesh/conversion/gmshToFoam/gmshToFoam.C
+++ b/applications/utilities/mesh/conversion/gmshToFoam/gmshToFoam.C
@@ -314,14 +314,14 @@ void readPhysNames(IFstream& inFile, Map<word>& physicalNames)
         IStringStream lineStr(line);
         label nSpaces = lineStr.str().count(' ');
 
-        if(nSpaces == 1)
+        if (nSpaces == 1)
         {
             lineStr >> regionI >> regionName;
 
             Info<< "    " << regionI << '\t'
                 << string::validate<word>(regionName) << endl;
         }
-        else if(nSpaces == 2)
+        else if (nSpaces == 2)
         {
             // >= Gmsh2.4 physical types has tag in front.
             label physType;
@@ -885,7 +885,7 @@ int main(int argc, char *argv[])
     // Now use the patchFaces to patch up the outside faces of the mesh.
 
     // Get the patch for all the outside faces (= default patch added as last)
-    const polyPatch& pp = mesh.boundaryMesh()[mesh.boundaryMesh().size()-1];
+    const polyPatch& pp = mesh.boundaryMesh().last();
 
     // Storage for faceZones.
     List<DynamicList<label> > zoneFaces(patchFaces.size());
diff --git a/applications/utilities/mesh/conversion/ideasUnvToFoam/ideasUnvToFoam.C b/applications/utilities/mesh/conversion/ideasUnvToFoam/ideasUnvToFoam.C
index 1776285e462db03cd31365ece6e603c9304e18eb..f289e8bb389a3e91b243cfb0022e94b90c9f8479 100644
--- a/applications/utilities/mesh/conversion/ideasUnvToFoam/ideasUnvToFoam.C
+++ b/applications/utilities/mesh/conversion/ideasUnvToFoam/ideasUnvToFoam.C
@@ -324,13 +324,13 @@ void readCells
             cellVerts.append(cellShape(tet, cVerts, true));
             cellMaterial.append(physProp);
 
-            if (cellVerts[cellVerts.size()-1].size() != cVerts.size())
+            if (cellVerts.last().size() != cVerts.size())
             {
                 Pout<< "Line:" << is.lineNumber()
                     << " element:" << cellI
                     << " type:" << feID
                     << " collapsed from " << cVerts << nl
-                    << " to:" << cellVerts[cellVerts.size()-1]
+                    << " to:" << cellVerts.last()
                     << endl;
             }
         }
@@ -347,13 +347,13 @@ void readCells
             cellVerts.append(cellShape(prism, cVerts, true));
             cellMaterial.append(physProp);
 
-            if (cellVerts[cellVerts.size()-1].size() != cVerts.size())
+            if (cellVerts.last().size() != cVerts.size())
             {
                 Pout<< "Line:" << is.lineNumber()
                     << " element:" << cellI
                     << " type:" << feID
                     << " collapsed from " << cVerts << nl
-                    << " to:" << cellVerts[cellVerts.size()-1]
+                    << " to:" << cellVerts.last()
                     << endl;
             }
         }
@@ -371,13 +371,13 @@ void readCells
             cellVerts.append(cellShape(hex, cVerts, true));
             cellMaterial.append(physProp);
 
-            if (cellVerts[cellVerts.size()-1].size() != cVerts.size())
+            if (cellVerts.last().size() != cVerts.size())
             {
                 Pout<< "Line:" << is.lineNumber()
                     << " element:" << cellI
                     << " type:" << feID
                     << " collapsed from " << cVerts << nl
-                    << " to:" << cellVerts[cellVerts.size()-1]
+                    << " to:" << cellVerts.last()
                     << endl;
             }
         }
@@ -412,7 +412,7 @@ void readPatches
     Sout<< "Starting reading patches at line " << is.lineNumber() << '.'
         << endl;
 
-    while(true)
+    while (true)
     {
         string line;
         is.getLine(line);
@@ -511,7 +511,7 @@ void readDOFS
     }
 
     Info<< "For DOF set " << group
-        << " named " << patchNames[patchNames.size()-1]
+        << " named " << patchNames.last()
         << " trying to read vertex indices."
         << endl;
 
@@ -534,7 +534,7 @@ void readDOFS
     }
 
     Info<< "For DOF set " << group
-        << " named " << patchNames[patchNames.size()-1]
+        << " named " << patchNames.last()
         << " read " << vertices.size() << " vertex indices." << endl;
 
     dofVertices.append(vertices.shrink());
diff --git a/applications/utilities/mesh/conversion/kivaToFoam/kivaToFoam.C b/applications/utilities/mesh/conversion/kivaToFoam/kivaToFoam.C
index f76e4dae462db79a9446aaed6fe9d99dc3a370c6..551741974bf2be71dabfe5dd454f43bfada765b4 100644
--- a/applications/utilities/mesh/conversion/kivaToFoam/kivaToFoam.C
+++ b/applications/utilities/mesh/conversion/kivaToFoam/kivaToFoam.C
@@ -103,7 +103,7 @@ int main(int argc, char *argv[])
 
 #   include "readKivaGrid.H"
 
-    Info << "End\n" << endl;
+    Info<< "End\n" << endl;
 
     return 0;
 }
diff --git a/applications/utilities/mesh/conversion/kivaToFoam/readKivaGrid.H b/applications/utilities/mesh/conversion/kivaToFoam/readKivaGrid.H
index ba2b615df18aa7cc6b32de4133ae0d65be446987..92c7b7c355f558bf0c3a0251bd41caba7ec0b618 100644
--- a/applications/utilities/mesh/conversion/kivaToFoam/readKivaGrid.H
+++ b/applications/utilities/mesh/conversion/kivaToFoam/readKivaGrid.H
@@ -20,7 +20,7 @@ pointField points(nPoints);
 label i4;
 labelList idface(nPoints), fv(nPoints);
 
-for(label i=0; i<nPoints; i++)
+for (label i=0; i<nPoints; i++)
 {
     scalar ffv;
     kivaFile
@@ -44,7 +44,7 @@ labelList i1tab(nPoints), i3tab(nPoints), i8tab(nPoints), idreg(nPoints),
 
 label nBfaces = 0;
 
-for(label i=0; i<nPoints; i++)
+for (label i=0; i<nPoints; i++)
 {
     label i1, i3, i8;
     scalar ff, fbcl, fbcf, fbcb;
@@ -85,7 +85,7 @@ if (mTable == 0)
 
 labelList imtab(nPoints), jmtab(nPoints), kmtab(nPoints);
 
-for(label i=0; i<nPoints; i++)
+for (label i=0; i<nPoints; i++)
 {
     label im, jm, km;
     kivaFile >> i4 >> im >> jm >> km;
@@ -115,7 +115,7 @@ forAll (pointMap, i)
 }
 
 // Initialise all cells to hex and search and set map for collocated points
-for(label i=0; i<nPoints; i++)
+for (label i=0; i<nPoints; i++)
 {
     if (f[i] > 0.0)
     {
@@ -237,7 +237,7 @@ List<SLList<face> > pFaces[nBCs];
 face quadFace(4);
 face triFace(3);
 
-for(label i=0; i<nPoints; i++)
+for (label i=0; i<nPoints; i++)
 {
     if (f[i] > 0)
     {
diff --git a/applications/utilities/mesh/conversion/plot3dToFoam/hexBlock.C b/applications/utilities/mesh/conversion/plot3dToFoam/hexBlock.C
index c1f781f899862e51ad9afc9bce0e41a81636ecd3..3ed248a86ebb1a4d3d4f051c750a88d986445d63 100644
--- a/applications/utilities/mesh/conversion/plot3dToFoam/hexBlock.C
+++ b/applications/utilities/mesh/conversion/plot3dToFoam/hexBlock.C
@@ -70,7 +70,7 @@ void hexBlock::setHandedness()
                     }
                     else
                     {
-                        Info << "Left-handed block." << endl;
+                        Info<< "Left-handed block." << endl;
                         blockHandedness_ = left;
                     }
                     return;
diff --git a/applications/utilities/mesh/conversion/polyDualMesh/meshDualiser.C b/applications/utilities/mesh/conversion/polyDualMesh/meshDualiser.C
index dfc1fbb20e651bb85c0ea2edee738d3e111234ae..52898444ae4bacd21d0885035d2778e5e3f7d02c 100644
--- a/applications/utilities/mesh/conversion/polyDualMesh/meshDualiser.C
+++ b/applications/utilities/mesh/conversion/polyDualMesh/meshDualiser.C
@@ -1410,7 +1410,7 @@ void Foam::meshDualiser::setRefinement
                     meshMod
                 );
             }
-            while(fp != 0);
+            while (fp != 0);
         }
     }
 
diff --git a/applications/utilities/mesh/conversion/sammToFoam/createPolyBoundary.C b/applications/utilities/mesh/conversion/sammToFoam/createPolyBoundary.C
index efca6a37b5854ff93dc7fc29b5aa95e276a87e9e..f3fc9a6e1dcda75a28ef798bdd08332bdf896a0b 100644
--- a/applications/utilities/mesh/conversion/sammToFoam/createPolyBoundary.C
+++ b/applications/utilities/mesh/conversion/sammToFoam/createPolyBoundary.C
@@ -111,8 +111,8 @@ void sammMesh::createPolyBoundary()
     // reset the size of the face list
     meshFaces_.setSize(nCreatedFaces);
 
-    Info << "Number of boundary faces: " << nBoundaryFacesFound << endl;
-    Info << "Total number of faces: " << nCreatedFaces << endl;
+    Info<< "Number of boundary faces: " << nBoundaryFacesFound << endl;
+    Info<< "Total number of faces: " << nCreatedFaces << endl;
 }
 
 
diff --git a/applications/utilities/mesh/conversion/sammToFoam/createPolyCells.C b/applications/utilities/mesh/conversion/sammToFoam/createPolyCells.C
index b2f1a54c4f579d481818fac61795d934b13fccb5..80dd2e7541c10a77e54d7a39869f53a349a5b30c 100644
--- a/applications/utilities/mesh/conversion/sammToFoam/createPolyCells.C
+++ b/applications/utilities/mesh/conversion/sammToFoam/createPolyCells.C
@@ -55,7 +55,7 @@ void sammMesh::createPolyCells()
         maxFaces += cellFaces_[cellI].size();
     }
 
-    Info << "Maximum possible number of faces in mesh: " << maxFaces << endl;
+    Info<< "Maximum possible number of faces in mesh: " << maxFaces << endl;
 
     meshFaces_.setSize(maxFaces);
 
@@ -72,7 +72,7 @@ void sammMesh::createPolyCells()
         // Insertion cannot be done in one go as the faces need to be
         // added into the list in the increasing order of neighbour
         // cells.  Therefore, all neighbours will be detected first
-        // and then added in the correct order.  
+        // and then added in the correct order.
 
         const faceList& curFaces = cellFaces_[cellI];
 
@@ -109,7 +109,7 @@ void sammMesh::createPolyCells()
                     label curNei = curNeighbours[neiI];
 
                     // reject neighbours with the lower label. This should
-                    // also reject current cell. 
+                    // also reject current cell.
                     if (curNei > cellI)
                     {
                         // get the list of search faces
diff --git a/applications/utilities/mesh/conversion/sammToFoam/purgeCellShapes.C b/applications/utilities/mesh/conversion/sammToFoam/purgeCellShapes.C
index 50fd89ce8f7ec14157dd0208a053c9995942406c..3abcdd645fa6c308c3c7e708642c5d751db3acab 100644
--- a/applications/utilities/mesh/conversion/sammToFoam/purgeCellShapes.C
+++ b/applications/utilities/mesh/conversion/sammToFoam/purgeCellShapes.C
@@ -55,12 +55,12 @@ void sammMesh::purgeCellShapes()
 
             if (!found)
             {
-                Info << "Purging cell shape " << cellI << endl;
+                Info<< "Purging cell shape " << cellI << endl;
                 cellShapes_[cellI] = cellShape(*unknownPtr_, labelList(0));
                 break;
             }
         }
-    }   
+    }
 }
 
 
diff --git a/applications/utilities/mesh/conversion/sammToFoam/readCouples.C b/applications/utilities/mesh/conversion/sammToFoam/readCouples.C
index 161123803ec0d0489d9513c917a4c346fc1733e8..3d9609e84de77e682c8c612dcbab6cfec4249183 100644
--- a/applications/utilities/mesh/conversion/sammToFoam/readCouples.C
+++ b/applications/utilities/mesh/conversion/sammToFoam/readCouples.C
@@ -40,7 +40,7 @@ void sammMesh::readCouples()
 
     if (couplesFile.good())
     {
-        Info << "\nReading couples" << endl;
+        Info<< "\nReading couples" << endl;
 
         // A mesh with couples cannot be a shape mesh
         isShapeMesh_ = false;
@@ -71,7 +71,7 @@ void sammMesh::readCouples()
             // get reference to master cell faces
             faceList& masterFaces = cellFaces_[masterCell - 1];
 
-//             Info << "Master cell: " << masterCell - 1 << " index: "
+//             Info<< "Master cell: " << masterCell - 1 << " index: "
 //                 << cellShapes_[masterCell - 1].model().index()
 //                 << " face: " <<
 //                 masterFaces
@@ -116,14 +116,14 @@ void sammMesh::readCouples()
                                 [slaveFace]
                         ].reverseFace();
 
-//                 Info << " slave cell: " << slaveCell - 1 << " index: "
+//                 Info<< " slave cell: " << slaveCell - 1 << " index: "
 //                     << cellShapes_[slaveCell - 1].model().index()
 //                     << " face: " << masterFaces[slaveToAdd] << endl;
 
                 slaveToAdd++;
 
             }
-//             Info << endl;
+//             Info<< endl;
 
         }
 
diff --git a/applications/utilities/mesh/conversion/sammToFoam/sammMesh.C b/applications/utilities/mesh/conversion/sammToFoam/sammMesh.C
index a5bfd9791c28a5529525ca32efab93bb2c00f54e..8ed4ddea84bc4f56eb5d7922e7bfacd58d301c58 100644
--- a/applications/utilities/mesh/conversion/sammToFoam/sammMesh.C
+++ b/applications/utilities/mesh/conversion/sammToFoam/sammMesh.C
@@ -104,7 +104,7 @@ List<const label*> sammMesh::sammAddressingTable
 // Make polyhedral mesh data (packing)
 void sammMesh::createPolyMeshData()
 {
-    Info << "Creating a polyMesh" << endl;
+    Info<< "Creating a polyMesh" << endl;
 
     createPolyCells();
 
@@ -124,7 +124,7 @@ void sammMesh::createPolyMeshData()
         {
             if (curFaceLabels[faceI] == -1)
             {
-                Info << "cell " << cellI
+                Info<< "cell " << cellI
                     << " has got an unmatched face. "
                     << "Index: " << cellShapes_[cellI].model().index() << endl
 //                     << "cell shape: " << cellShapes_[cellI] << endl
@@ -142,7 +142,7 @@ void sammMesh::createPolyMeshData()
 
     if (nProblemCells > 0)
     {
-        Info << "Number of problem cells: " << nProblemCells << endl;
+        Info<< "Number of problem cells: " << nProblemCells << endl;
     }
 }
 
diff --git a/applications/utilities/mesh/conversion/sammToFoam/sammToFoam.C b/applications/utilities/mesh/conversion/sammToFoam/sammToFoam.C
index 8095529d3270eeb39c7bbe16771b388aa50b0ced..0f5f2a2eb83e0675c14a50a9460a70549cadb003 100644
--- a/applications/utilities/mesh/conversion/sammToFoam/sammToFoam.C
+++ b/applications/utilities/mesh/conversion/sammToFoam/sammToFoam.C
@@ -61,10 +61,10 @@ int main(int argc, char *argv[])
     // Set the precision of the points data to 10
     IOstream::defaultPrecision(10);
 
-    Info << "Writing mesh" << endl;
+    Info<< "Writing mesh" << endl;
     makeMesh.writeMesh();
 
-    Info<< nl << "End" << nl << endl;
+    Info<< "\nEnd\n" << endl;
 
     return 0;
 }
diff --git a/applications/utilities/mesh/conversion/sammToFoam/writeMesh.C b/applications/utilities/mesh/conversion/sammToFoam/writeMesh.C
index 546b6e24de485dcb329579c913fc5bc72926d44d..141765be351633a50eb7d36989720d1328dfa81b 100644
--- a/applications/utilities/mesh/conversion/sammToFoam/writeMesh.C
+++ b/applications/utilities/mesh/conversion/sammToFoam/writeMesh.C
@@ -37,7 +37,7 @@ void sammMesh::writeMesh()
 {
     if (isShapeMesh_)
     {
-        Info << "This is a shapeMesh." << endl;
+        Info<< "This is a shapeMesh." << endl;
 
         polyMesh pShapeMesh
         (
@@ -57,7 +57,7 @@ void sammMesh::writeMesh()
             patchPhysicalTypes_
         );
 
-        Info << "Writing polyMesh" << endl;
+        Info<< "Writing polyMesh" << endl;
         pShapeMesh.write();
     }
     else
@@ -66,7 +66,7 @@ void sammMesh::writeMesh()
 
         createPolyMeshData();
 
-        Info << "This is a polyMesh" << endl;
+        Info<< "This is a polyMesh" << endl;
 
         polyMesh pMesh
         (
@@ -83,7 +83,7 @@ void sammMesh::writeMesh()
 
         pMesh.addPatches(polyBoundaryPatches(pMesh));
 
-        Info << "Writing polyMesh" << endl;
+        Info<< "Writing polyMesh" << endl;
         pMesh.write();
     }
 }
diff --git a/applications/utilities/mesh/conversion/starToFoam/createBoundaryFaces.C b/applications/utilities/mesh/conversion/starToFoam/createBoundaryFaces.C
index 09a09de8d31fcf7fe84345f593c98447f8974df2..3875b68345a3a7874205676e3fc254d0a4fb7bdf 100644
--- a/applications/utilities/mesh/conversion/starToFoam/createBoundaryFaces.C
+++ b/applications/utilities/mesh/conversion/starToFoam/createBoundaryFaces.C
@@ -127,7 +127,7 @@ void starMesh::markBoundaryFaces()
                 {
                     const label curCellIndex = facePointCells[cellI];
 
-                    const faceList& curCellFaces = 
+                    const faceList& curCellFaces =
                         cellFaces_[curCellIndex];
 
                     forAll(curCellFaces, cellFaceI)
@@ -159,11 +159,11 @@ void starMesh::markBoundaryFaces()
                 {
                     if (curFace[spI] > -1 && curFace[spI] < starPointID_.size())
                     {
-                        Info << "," << starPointID_[curFace[spI]];
+                        Info<< "," << starPointID_[curFace[spI]];
                     }
                     else
                     {
-                        Info << ",???";
+                        Info<< ",???";
                     }
                 }
 
@@ -176,7 +176,7 @@ void starMesh::markBoundaryFaces()
 
 void starMesh::collectBoundaryFaces()
 {
-    Info << "Collecting boundary faces" << endl;
+    Info<< "Collecting boundary faces" << endl;
     forAll(boundary_, patchI)
     {
         faceList& patchFaces = boundary_[patchI];
@@ -193,7 +193,7 @@ void starMesh::collectBoundaryFaces()
         }
     }
 
-    Info << "Finished collecting boundary faces" << endl;
+    Info<< "Finished collecting boundary faces" << endl;
 }
 
 
diff --git a/applications/utilities/mesh/conversion/starToFoam/createCoupleMatches.C b/applications/utilities/mesh/conversion/starToFoam/createCoupleMatches.C
index 5857f03e243a3259949b1f214ba5e9efddbef9ce..d1a074c391b10456fd73e29f25f1a9627131be5c 100644
--- a/applications/utilities/mesh/conversion/starToFoam/createCoupleMatches.C
+++ b/applications/utilities/mesh/conversion/starToFoam/createCoupleMatches.C
@@ -67,7 +67,7 @@ void starMesh::createCoupleMatches()
     {
         if (coupleI % infoJump == 0)
         {
-            Info << "Doing couple " << coupleI << ". STAR couple ID: "
+            Info<< "Doing couple " << coupleI << ". STAR couple ID: "
                 << couples_[coupleI].coupleID() << endl;
         }
 
@@ -179,7 +179,7 @@ void starMesh::createCoupleMatches()
                 d -= n*(n & d);
 
 #               ifdef DEBUG_COUPLE_INTERSECTION
-                Info << "curMasterEdge: " << curMasterEdge << endl
+                Info<< "curMasterEdge: " << curMasterEdge << endl
                     << "P: " << P << endl << "d: " << d << endl;
 #               endif
 
@@ -198,7 +198,7 @@ void starMesh::createCoupleMatches()
                     scalar det = -(e & (n ^ d));
 
 #                   ifdef DEBUG_COUPLE_INTERSECTION
-                    Info << "curSlaveEdge: " << curSlaveEdge << endl
+                    Info<< "curSlaveEdge: " << curSlaveEdge << endl
                         << "S: " << S << endl
                         << "e: " << e << endl;
 #                   endif
@@ -209,7 +209,7 @@ void starMesh::createCoupleMatches()
                         scalar beta = ((S - P) & (n ^ d))/det;
 
 #                       ifdef DEBUG_COUPLE_INTERSECTION
-                        Info << " beta: " << beta << endl;
+                        Info<< " beta: " << beta << endl;
 #                       endif
 
                         if (beta > -smallMergeTol_ && beta < 1 + smallMergeTol_)
@@ -219,7 +219,7 @@ void starMesh::createCoupleMatches()
                                 (((S - P) & d) + beta*(d & e))/magSqr(d);
 
 #                           ifdef DEBUG_COUPLE_INTERSECTION
-                            Info << " alpha: " << alpha << endl;
+                            Info<< " alpha: " << alpha << endl;
 #                           endif
 
                             if
@@ -413,7 +413,7 @@ void starMesh::createCoupleMatches()
                             scalar beta1 = (sp & e)/magSqr(e);
 
 #                           ifdef DEBUG_COUPLE_INTERSECTION
-                            Info << "P: " << P << " S: " << S << " d: " << d
+                            Info<< "P: " << P << " S: " << S << " d: " << d
                                 << " e: " << e << " sp: " << sp
                                 << " beta1: " << beta1 << endl;
 #                           endif
@@ -446,7 +446,7 @@ void starMesh::createCoupleMatches()
                             )
                             {
 #                               ifdef DEBUG_COUPLE_INTERSECTION
-                                Info << "adding irregular slave "
+                                Info<< "adding irregular slave "
                                     << "intersection2: "
                                     << points_[masterEdges[masterEdgeI].end()]
                                     << endl;
@@ -463,10 +463,10 @@ void starMesh::createCoupleMatches()
             } // end of master edges
 
 #           ifdef DEBUG_COUPLE_INTERSECTION
-            Info << "additional slave edge points: " << endl;
+            Info<< "additional slave edge points: " << endl;
             forAll (slaveEdgePoints, edgeI)
             {
-                Info << "edge: " << edgeI << ": " << slaveEdgePoints[edgeI]
+                Info<< "edge: " << edgeI << ": " << slaveEdgePoints[edgeI]
                     << endl;
             }
 #           endif
@@ -475,7 +475,7 @@ void starMesh::createCoupleMatches()
             if (nLivePoints + coupleFacePoints.size() >= points_.size())
             {
                 // increase the size of the points list
-                Info << "Resizing points list" << endl;
+                Info<< "Resizing points list" << endl;
                 points_.setSize(points_.size() + couples_.size());
             }
 
@@ -511,7 +511,7 @@ void starMesh::createCoupleMatches()
             label nTmpMasterLabels = 0;
 
 #           ifdef DEBUG_COUPLE_INTERSECTION
-            Info << "masterFace: " << masterFace << endl
+            Info<< "masterFace: " << masterFace << endl
                 << "nAdditionalMasterPoints: " << nAdditionalMasterPoints
                 << endl;
 #           endif
@@ -545,7 +545,7 @@ void starMesh::createCoupleMatches()
                     points_[masterEdges[masterEdgeI].start()];
 
                 // loop until the next label to add is -1
-                for(;;)
+                for (;;)
                 {
                     label nextPointLabel = -1;
                     label usedI = -1;
@@ -588,7 +588,7 @@ void starMesh::createCoupleMatches()
                         }
 
 #                       ifdef DEBUG_FACE_ORDERING
-                        Info << "nextPointLabel: " << nextPointLabel << endl;
+                        Info<< "nextPointLabel: " << nextPointLabel << endl;
 #                       endif
 
                         i++;
@@ -619,7 +619,7 @@ void starMesh::createCoupleMatches()
             tmpMasterFace.setSize(nTmpMasterLabels);
 
 #           ifdef DEBUG_FACE_ORDERING
-            Info << "tmpMasterFace: " << tmpMasterFace << endl;
+            Info<< "tmpMasterFace: " << tmpMasterFace << endl;
 #           endif
 
             // Eliminate all zero-length edges
@@ -657,7 +657,7 @@ void starMesh::createCoupleMatches()
                         );
 
 #                   ifdef DEBUG_FACE_ORDERING
-                    Info << "Collapsed: nMaster: " << nMaster
+                    Info<< "Collapsed: nMaster: " << nMaster
                         << " label: " << newMasterFace[nMaster] << endl;
 #                   endif
 
@@ -727,7 +727,7 @@ void starMesh::createCoupleMatches()
                 vector edgeVector = slaveEdges[slaveEdgeI].vec(points_);
 
 #               ifdef DEBUG_FACE_ORDERING
-                Info << "curSEdgePoints.size(): "
+                Info<< "curSEdgePoints.size(): "
                     << curSEdgePoints.size() << endl
                     << "edgeVector: " << edgeVector << endl;
 #               endif
@@ -739,7 +739,7 @@ void starMesh::createCoupleMatches()
                     points_[slaveEdges[slaveEdgeI].start()];
 
                 // loop until the next label to add is -1
-                for(;;)
+                for (;;)
                 {
                     label nextPointLabel = -1;
                     label usedI = -1;
@@ -782,7 +782,7 @@ void starMesh::createCoupleMatches()
                         }
 
 #                       ifdef DEBUG_FACE_ORDERING
-                        Info << "nextPointLabel: " << nextPointLabel << endl;
+                        Info<< "nextPointLabel: " << nextPointLabel << endl;
 #                       endif
 
                         i++;
@@ -813,7 +813,7 @@ void starMesh::createCoupleMatches()
             tmpSlaveFace.setSize(nTmpSlaveLabels);
 
 #           ifdef DEBUG_FACE_ORDERING
-            Info << "tmpSlaveFace: " << tmpSlaveFace << endl;
+            Info<< "tmpSlaveFace: " << tmpSlaveFace << endl;
 #           endif
 
             // Eliminate all zero-length edges
@@ -834,7 +834,7 @@ void starMesh::createCoupleMatches()
             forAll(slvEdgesToCollapse, edgeI)
             {
 #               ifdef DEBUG_FACE_ORDERING
-                Info << "slave edge length: " << edgeI << ", "
+                Info<< "slave edge length: " << edgeI << ", "
                     << slvEdgesToCollapse[edgeI].mag(points_)<< endl;
 #               endif
 
@@ -880,7 +880,7 @@ void starMesh::createCoupleMatches()
             edgeList newSlaveEdges = newSlaveFace.edges();
 
 #           ifdef DEBUG_RIGHT_HAND_WALK
-            Info << "newMasterEdges: " << newMasterEdges << endl
+            Info<< "newMasterEdges: " << newMasterEdges << endl
                 << "newSlaveEdges: " << newSlaveEdges << endl;
 #           endif
 
@@ -926,7 +926,7 @@ void starMesh::createCoupleMatches()
                     startEdgeFound = 2;
 
 #                   ifdef DEBUG_RIGHT_HAND_WALK
-                    Info << "slave edge found" << endl;
+                    Info<< "slave edge found" << endl;
 #                   endif
 
                     break;
@@ -969,7 +969,7 @@ void starMesh::createCoupleMatches()
                         startEdgeFound = 1;
 
 #                       ifdef DEBUG_RIGHT_HAND_WALK
-                        Info << "master edge found" << endl;
+                        Info<< "master edge found" << endl;
 #                       endif
 
                         break;
@@ -986,7 +986,7 @@ void starMesh::createCoupleMatches()
             if (startEdgeFound > 0)
             {
 #               ifdef DEBUG_RIGHT_HAND_WALK
-                Info << "start edge: " << startEdge << endl;
+                Info<< "start edge: " << startEdge << endl;
 #               endif
 
                 // Loop through both faces and add all edges
@@ -1004,7 +1004,7 @@ void starMesh::createCoupleMatches()
                 planeNormal /= mag(planeNormal) + VSMALL;
 
 #               ifdef DEBUG_RIGHT_HAND_WALK
-                Info << "planeNormal: " << planeNormal << endl;
+                Info<< "planeNormal: " << planeNormal << endl;
 #               endif
 
                 // Do a check to control the right-hand turn.  This is
@@ -1034,7 +1034,7 @@ void starMesh::createCoupleMatches()
                 if (tripleProduct < 0)
                 {
 #                   ifdef DEBUG_RIGHT_HAND_WALK
-                    Info << "Turning edge for right-hand turn rule" << endl;
+                    Info<< "Turning edge for right-hand turn rule" << endl;
 #                   endif
                     startEdge = startEdge.reverseEdge();
                 }
@@ -1155,7 +1155,7 @@ void starMesh::createCoupleMatches()
                         scalar curGoStraight = newDir & ahead;
 
 #                       ifdef DEBUG_RIGHT_HAND_WALK
-                        Info << "curRightTurn: " << curRightTurn
+                        Info<< "curRightTurn: " << curRightTurn
                             << " curGoStraight: " << curGoStraight << endl;
 #                       endif
 
@@ -1167,7 +1167,7 @@ void starMesh::createCoupleMatches()
                                 if (curGoStraight > goStraight)
                                 {
 #                                   ifdef DEBUG_RIGHT_HAND_WALK
-                                    Info << "a" << endl;
+                                    Info<< "a" << endl;
 #                                   endif
 
                                     // Good edge, turning left less than before
@@ -1179,7 +1179,7 @@ void starMesh::createCoupleMatches()
                             else // new edge turning right
                             {
 #                               ifdef DEBUG_RIGHT_HAND_WALK
-                                Info << "b" << endl;
+                                Info<< "b" << endl;
 #                               endif
 
                                 // good edge, turning right
@@ -1197,7 +1197,7 @@ void starMesh::createCoupleMatches()
                                 if (curGoStraight < goStraight)
                                 {
 #                                   ifdef DEBUG_RIGHT_HAND_WALK
-                                    Info << "c" << endl;
+                                    Info<< "c" << endl;
 #                                   endif
 
                                     // good edge, turning right more than before
@@ -1256,7 +1256,7 @@ void starMesh::createCoupleMatches()
                 intersectedFace.setSize(nIntFacePoints);
 
 #               ifdef DEBUG_COUPLE
-                Info << "intersectedFace: " << intersectedFace << endl;
+                Info<< "intersectedFace: " << intersectedFace << endl;
 #               endif
 
                 // check the intersection face for duplicate points
@@ -1315,7 +1315,7 @@ void starMesh::createCoupleMatches()
             forAll (intersectedFace, intPointI)
             {
 #               ifdef DEBUG_COUPLE_PROJECTION
-                Info << "Proj: old point: "
+                Info<< "Proj: old point: "
                     << points_[intersectedFace[intPointI]] << endl;
 #               endif
 
@@ -1501,7 +1501,7 @@ void starMesh::createCoupleMatches()
         points_.setSize(nLivePoints);
 
         // Finished
-        Info << "Finished doing couples" << endl;
+        Info<< "Finished doing couples" << endl;
     }
 }
 
diff --git a/applications/utilities/mesh/conversion/starToFoam/createPolyBoundary.C b/applications/utilities/mesh/conversion/starToFoam/createPolyBoundary.C
index 5f1e4b726045d4c96433d30af01a186a87edd631..e8eb4ec479c85108f35e0d1e1f745b02a7f1914b 100644
--- a/applications/utilities/mesh/conversion/starToFoam/createPolyBoundary.C
+++ b/applications/utilities/mesh/conversion/starToFoam/createPolyBoundary.C
@@ -99,7 +99,7 @@ void starMesh::createPolyBoundary()
                                         << curCellFaces[cellFaceI]
                                         << endl;
 
-                                    Info << "PROSTAR Command: vset,news,vlis";
+                                    Info<< "PROSTAR Command: vset,news,vlis";
                                     forAll (curCellFaces[cellFaceI], spI)
                                     {
                                         // check if the point is given by STAR
@@ -118,10 +118,10 @@ void starMesh::createPolyBoundary()
                                         }
                                         else
                                         {
-                                            Info << ",???";
+                                            Info<< ",???";
                                         }
                                     }
-                                    Info << " $ bset,add,vset,all" << endl;
+                                    Info<< " $ bset,add,vset,all" << endl;
                                 }
                                 else
                                 {
@@ -135,7 +135,7 @@ void starMesh::createPolyBoundary()
                                         << curCellFaces[cellFaceI]
                                         << endl;
 
-                                    Info << "PROSTAR Command: vset,news,vlis";
+                                    Info<< "PROSTAR Command: vset,news,vlis";
                                     forAll (curCellFaces[cellFaceI], spI)
                                     {
                                         // check if the point is given by STAR
@@ -154,10 +154,10 @@ void starMesh::createPolyBoundary()
                                         }
                                         else
                                         {
-                                            Info << ",???";
+                                            Info<< ",???";
                                         }
                                     }
-                                    Info << " $ bset,add,vset,all" << endl;
+                                    Info<< " $ bset,add,vset,all" << endl;
 
                                 }
                             }
@@ -191,7 +191,7 @@ void starMesh::createPolyBoundary()
             {
                 const face& missingFace = cellFaces_[cellI][faceI];
 
-                Info << "starMesh::createPolyBoundary() : "
+                Info<< "starMesh::createPolyBoundary() : "
                     << "missing face found in cell " << cellI
                     << ".\nType: " << cellShapes_[cellI].model().name()
                     << ". STAR cell number: " << starCellID_[cellI]
@@ -199,7 +199,7 @@ void starMesh::createPolyBoundary()
 
                 nMissingFaceFound++;
 
-                Info << "PROSTAR Command: vset,news,vlis";
+                Info<< "PROSTAR Command: vset,news,vlis";
                 forAll (missingFace, spI)
                 {
                     // check if the point is given by STAR or created locally
@@ -209,21 +209,21 @@ void starMesh::createPolyBoundary()
                      && missingFace[spI] < starPointID_.size()
                     )
                     {
-                        Info << "," << starPointID_[missingFace[spI]];
+                        Info<< "," << starPointID_[missingFace[spI]];
                     }
                     else
                     {
-                        Info << ",???";
+                        Info<< ",???";
                     }
                 }
-                Info << " $ bset,add,vset,all" << endl;
+                Info<< " $ bset,add,vset,all" << endl;
             }
         }
     }
 
     if (nMissingFaceFound > 0)
     {
-        Info << "Number of unmatched faces: " << nMissingFaceFound << endl;
+        Info<< "Number of unmatched faces: " << nMissingFaceFound << endl;
     }
 
     // reset the size of the face list
@@ -256,14 +256,14 @@ void starMesh::createPolyBoundary()
         {
             const face& problemFace = meshFaces_[faceI];
 
-            Info << "starMesh::createPolyBoundary() : "
+            Info<< "starMesh::createPolyBoundary() : "
                 << "problem with face " << faceI << ": addressed "
                 << markupFaces[faceI] << " times (should be 2!). Face: "
                 << problemFace << endl;
 
             nProblemFacesFound++;
 
-            Info << "PROSTAR Command: vset,news,vlis";
+            Info<< "PROSTAR Command: vset,news,vlis";
             forAll (problemFace, spI)
             {
                 // check if the point is given by STAR or created locally
@@ -273,25 +273,25 @@ void starMesh::createPolyBoundary()
                  && problemFace[spI] < starPointID_.size()
                 )
                 {
-                    Info << "," << starPointID_[problemFace[spI]];
+                    Info<< "," << starPointID_[problemFace[spI]];
                 }
                 else
                 {
-                    Info << ",???";
+                    Info<< ",???";
                 }
             }
-            Info << " $ bset,add,vset,all" << endl;
+            Info<< " $ bset,add,vset,all" << endl;
         }
     }
 
     if (nProblemFacesFound > 0)
     {
-        Info << "Number of incorrectly matched faces: "
+        Info<< "Number of incorrectly matched faces: "
             << nProblemFacesFound << endl;
     }
 
-    Info << "Number of boundary faces: " << nBoundaryFacesFound << endl;
-    Info << "Total number of faces: " << nCreatedFaces << endl;
+    Info<< "Number of boundary faces: " << nBoundaryFacesFound << endl;
+    Info<< "Total number of faces: " << nCreatedFaces << endl;
 }
 
 
diff --git a/applications/utilities/mesh/conversion/starToFoam/createPolyCells.C b/applications/utilities/mesh/conversion/starToFoam/createPolyCells.C
index fc2e65a0b984503a3ce8a30ec13e48d70c1a61f5..c4847fc3903faf20cfd2a11a7fd9af405d02eac5 100644
--- a/applications/utilities/mesh/conversion/starToFoam/createPolyCells.C
+++ b/applications/utilities/mesh/conversion/starToFoam/createPolyCells.C
@@ -55,7 +55,7 @@ void starMesh::createPolyCells()
         maxFaces += cellFaces_[cellI].size();
     }
 
-    Info << "Maximum possible number of faces in mesh: " << maxFaces << endl;
+    Info<< "Maximum possible number of faces in mesh: " << maxFaces << endl;
 
     meshFaces_.setSize(maxFaces);
 
@@ -72,7 +72,7 @@ void starMesh::createPolyCells()
         // Insertion cannot be done in one go as the faces need to be
         // added into the list in the increasing order of neighbour
         // cells.  Therefore, all neighbours will be detected first
-        // and then added in the correct order.  
+        // and then added in the correct order.
 
         const faceList& curFaces = cellFaces_[cellI];
 
@@ -109,7 +109,7 @@ void starMesh::createPolyCells()
                     label curNei = curNeighbours[neiI];
 
                     // reject neighbours with the lower label. This should
-                    // also reject current cell. 
+                    // also reject current cell.
                     if (curNei > cellI)
                     {
                         // get the list of search faces
diff --git a/applications/utilities/mesh/conversion/starToFoam/mergeCoupleFacePoints.C b/applications/utilities/mesh/conversion/starToFoam/mergeCoupleFacePoints.C
index 5850c723e0f707643bbc04768043e7e1dfbe757a..73ca9628d8db42652315f3121d133b3c76062499 100644
--- a/applications/utilities/mesh/conversion/starToFoam/mergeCoupleFacePoints.C
+++ b/applications/utilities/mesh/conversion/starToFoam/mergeCoupleFacePoints.C
@@ -48,9 +48,9 @@ void starMesh::mergeCoupleFacePoints()
     // merge set.  Once all cells (and thus points) are visited, go
     // through the renumbering list and for each merging point use the
     // label of the merge set as the new point label.
-    // This is VERY fancy. Use care if/when changing. 
+    // This is VERY fancy. Use care if/when changing.
 
-    Info << endl << "Creating merge sets" << endl;
+    Info<< endl << "Creating merge sets" << endl;
 
     // Create a renumbering list for points
     // In the first instance the renumbering list is used as a
@@ -162,7 +162,7 @@ void starMesh::mergeCoupleFacePoints()
 
                             if (nMergeSets >= mergeSetID.size())
                             {
-                                Info << "Resizing mergeSetID" << endl;
+                                Info<< "Resizing mergeSetID" << endl;
 
                                 mergeSetID.setSize
                                     (mergeSetID.size() + mergeIncrement);
@@ -327,7 +327,7 @@ void starMesh::mergeCoupleFacePoints()
             // This should be OK as the compressed points list will always
             // have less points that the original lists.  Even if there is
             // no points removed, this will copy the list back onto itself
-            // 
+            //
             renumberPoints[pointI] = nUsedPoints;
             points_[nUsedPoints] = points_[pointI];
 
@@ -345,7 +345,7 @@ void starMesh::mergeCoupleFacePoints()
     // reset number of points which need to be sorted
     points_.setSize(nUsedPoints);
 
-    Info << "Renumbering all faces" << endl;
+    Info<< "Renumbering all faces" << endl;
 
     forAll (cellFaces_, cellI)
     {
@@ -374,7 +374,7 @@ void starMesh::mergeCoupleFacePoints()
         }
     }
 
-    Info << "Renumbering all cell shapes" << endl;
+    Info<< "Renumbering all cell shapes" << endl;
 
     forAll (cellShapes_, cellI)
     {
@@ -402,7 +402,7 @@ void starMesh::mergeCoupleFacePoints()
         }
     }
 
-    Info << "Renumbering STAR point lookup" << endl;
+    Info<< "Renumbering STAR point lookup" << endl;
 
     labelList oldStarPointID = starPointID_;
 
diff --git a/applications/utilities/mesh/conversion/starToFoam/purgeCellShapes.C b/applications/utilities/mesh/conversion/starToFoam/purgeCellShapes.C
index 88f62252361f4699a64efce88c3b90d936cc756b..92dedc00e62a013f4b2a65f212d52915186a1e9e 100644
--- a/applications/utilities/mesh/conversion/starToFoam/purgeCellShapes.C
+++ b/applications/utilities/mesh/conversion/starToFoam/purgeCellShapes.C
@@ -55,12 +55,12 @@ void starMesh::purgeCellShapes()
 
             if (!found)
             {
-                Info << "Purging cell shape " << cellI << endl;
+                Info<< "Purging cell shape " << cellI << endl;
                 cellShapes_[cellI] = cellShape(*unknownPtr_, labelList(0));
                 break;
             }
         }
-    }   
+    }
 }
 
 
diff --git a/applications/utilities/mesh/conversion/starToFoam/readCouples.C b/applications/utilities/mesh/conversion/starToFoam/readCouples.C
index 975dab47d8199ea17b4f94c387de8372dcefb0e1..4d586c3da7f2090045e30f8aa9cb4000e40fa7ca 100644
--- a/applications/utilities/mesh/conversion/starToFoam/readCouples.C
+++ b/applications/utilities/mesh/conversion/starToFoam/readCouples.C
@@ -44,7 +44,7 @@ void starMesh::readCouples()
 
         if (couplesFile.good())
         {
-            Info << "\nReading couples" << endl;
+            Info<< "\nReading couples" << endl;
 
             label matchLabel, nEntries, typeFlag;
             label starMasterCell, rotXMasterFace;
@@ -178,7 +178,7 @@ void starMesh::readCouples()
             }
         }
 
-        Info << "finished reading couples" << endl;
+        Info<< "finished reading couples" << endl;
     }
 }
 
diff --git a/applications/utilities/mesh/conversion/starToFoam/starMesh.C b/applications/utilities/mesh/conversion/starToFoam/starMesh.C
index a495ae03624437cc6d0a5e769ebf4ae0d9c49b8e..9f9ddfe94b5fff50caef4dfead37a9b963e1c3d9 100644
--- a/applications/utilities/mesh/conversion/starToFoam/starMesh.C
+++ b/applications/utilities/mesh/conversion/starToFoam/starMesh.C
@@ -87,7 +87,7 @@ const label starMesh::sammAddressingTable[9][12] =
 // (first index) and STAR face number
 // - first column is always -1
 // - last column is -1 for all but hexagonal prism
-// WARNING: Possible bug for sammTrim2 
+// WARNING: Possible bug for sammTrim2
 // The lookup table for SAMM shapes is based on the rotation of the
 // shape. This would imply that the table below needs to be split between
 // the regular shapes (3-9), which are OK, and the SAMM shapes, for which
@@ -95,7 +95,7 @@ const label starMesh::sammAddressingTable[9][12] =
 // cell, firts find out the face index in the normal rotation using the cell
 // face permutation table and then use the index from the shape face lookup.
 // Additionally, have in mind that this silliness does not allow matches
-// on face 7 and 8 of the samm cell. 
+// on face 7 and 8 of the samm cell.
 
 const label starMesh::sammFacePermutationTable[24][8] =
 {
@@ -180,7 +180,7 @@ const label starMesh::shapeFaceLookup[19][9] =
 // samm trim 8:
 // star number: 1 2 3 4 5 6 7 8  In ROTATION 0
 // foam number: 2 5 4 7 1 0 3 6
-// confirmed:   1 0 6 
+// confirmed:   1 0 6
 
 
 // * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
@@ -188,7 +188,7 @@ const label starMesh::shapeFaceLookup[19][9] =
 // Make polyhedral mesh data (packing)
 void starMesh::createPolyMeshData()
 {
-    Info << "Creating a polyMesh" << endl;
+    Info<< "Creating a polyMesh" << endl;
 
     createPolyCells();
 
@@ -203,7 +203,7 @@ void starMesh::createPolyMeshData()
 // a memory peak
 void starMesh::clearExtraStorage()
 {
-    Info << "Clearing extra storage" << endl;
+    Info<< "Clearing extra storage" << endl;
 
     starPointLabelLookup_.setSize(0);
     starPointID_.setSize(0);
diff --git a/applications/utilities/mesh/conversion/starToFoam/starToFoam.C b/applications/utilities/mesh/conversion/starToFoam/starToFoam.C
index 2c2aeaa76b5ba2cc2a3350c6ebe7075e21ff3f23..7ed1cddd368a185c2810f5238b8e79669c19e489 100644
--- a/applications/utilities/mesh/conversion/starToFoam/starToFoam.C
+++ b/applications/utilities/mesh/conversion/starToFoam/starToFoam.C
@@ -61,10 +61,10 @@ int main(int argc, char *argv[])
     // Set the precision of the points data to 10
     IOstream::defaultPrecision(10);
 
-    Info << "Writing mesh" << endl;
+    Info<< "Writing mesh" << endl;
     makeMesh.writeMesh();
 
-    Info<< nl << "End" << nl << endl;
+    Info<< "\nEnd\n" << endl;
 
     return 0;
 }
diff --git a/applications/utilities/mesh/conversion/starToFoam/writeMesh.C b/applications/utilities/mesh/conversion/starToFoam/writeMesh.C
index 3e0cdee1fbce0caa0cb38d79b25eeeca1d3f08e7..746087fb7e37130b93949a6b52964e11eb0267c2 100644
--- a/applications/utilities/mesh/conversion/starToFoam/writeMesh.C
+++ b/applications/utilities/mesh/conversion/starToFoam/writeMesh.C
@@ -37,9 +37,9 @@ void starMesh::writeMesh()
 {
     if (isShapeMesh_)
     {
-        Info << "This is a shapeMesh." << endl;
+        Info<< "This is a shapeMesh." << endl;
 
-        Info << "Default patch type set to empty" << endl;
+        Info<< "Default patch type set to empty" << endl;
 
         clearExtraStorage();
 
@@ -61,7 +61,7 @@ void starMesh::writeMesh()
             patchPhysicalTypes_
         );
 
-        Info << "Writing polyMesh" << endl;
+        Info<< "Writing polyMesh" << endl;
         pShapeMesh.write();
     }
     else
@@ -70,7 +70,7 @@ void starMesh::writeMesh()
 
         createPolyMeshData();
 
-        Info << "This is a polyMesh" << endl;
+        Info<< "This is a polyMesh" << endl;
 
         clearExtraStorage();
 
@@ -90,7 +90,7 @@ void starMesh::writeMesh()
         // adding patches also checks the mesh
         pMesh.addPatches(polyBoundaryPatches(pMesh));
 
-        Info << "Writing polyMesh" << endl;
+        Info<< "Writing polyMesh" << endl;
         pMesh.write();
     }
 }
diff --git a/applications/utilities/mesh/conversion/writeMeshObj/writeMeshObj.C b/applications/utilities/mesh/conversion/writeMeshObj/writeMeshObj.C
index d2b23fef161b22f9f746251fc4b5c87a02bb4a29..c00be771118e664310f55dd9e2d2f5e5ec0a9951 100644
--- a/applications/utilities/mesh/conversion/writeMeshObj/writeMeshObj.C
+++ b/applications/utilities/mesh/conversion/writeMeshObj/writeMeshObj.C
@@ -62,7 +62,7 @@ void writePoints(const polyMesh& mesh, const fileName& timeName)
 
     fileName pointFile(mesh.time().path()/"meshPoints_" + timeName + ".obj");
 
-    Info << "Writing mesh points and edges to " << pointFile << endl;
+    Info<< "Writing mesh points and edges to " << pointFile << endl;
 
     OFstream pointStream(pointFile);
 
@@ -91,7 +91,7 @@ void writePoints
 {
     fileName fName(mesh.time().path()/"meshPoints_" + timeName + ".obj");
 
-    Info << "Writing mesh points and edges to " << fName << endl;
+    Info<< "Writing mesh points and edges to " << fName << endl;
 
     OFstream str(fName);
 
@@ -162,7 +162,7 @@ void writePoints
       / "meshPoints_" + timeName + '_' + name(cellI) + ".obj"
     );
 
-    Info << "Writing mesh points and edges to " << fName << endl;
+    Info<< "Writing mesh points and edges to " << fName << endl;
 
     OFstream pointStream(fName);
 
@@ -182,7 +182,7 @@ void writeFaceCentres(const polyMesh& mesh,const fileName& timeName)
       / "meshFaceCentres_" + timeName + ".obj"
     );
 
-    Info << "Writing mesh face centres to " << faceFile << endl;
+    Info<< "Writing mesh face centres to " << faceFile << endl;
 
     OFstream faceStream(faceFile);
 
@@ -200,7 +200,7 @@ void writeCellCentres(const polyMesh& mesh, const fileName& timeName)
         mesh.time().path()/"meshCellCentres_" + timeName + ".obj"
     );
 
-    Info << "Writing mesh cell centres to " << cellFile << endl;
+    Info<< "Writing mesh cell centres to " << cellFile << endl;
 
     OFstream cellStream(cellFile);
 
@@ -228,7 +228,7 @@ void writePatchCentres
             mesh.time().path()/"patch_" + pp.name() + '_' + timeName + ".obj"
         );
 
-        Info << "Writing patch face centres to " << faceFile << endl;
+        Info<< "Writing patch face centres to " << faceFile << endl;
 
         OFstream patchFaceStream(faceFile);
 
@@ -258,7 +258,7 @@ void writePatchFaces
           / "patchFaces_" + pp.name() + '_' + timeName + ".obj"
         );
 
-        Info << "Writing patch faces to " << faceFile << endl;
+        Info<< "Writing patch faces to " << faceFile << endl;
 
         OFstream patchFaceStream(faceFile);
 
@@ -301,7 +301,7 @@ void writePatchBoundaryEdges
           / "patchEdges_" + pp.name() + '_' + timeName + ".obj"
         );
 
-        Info << "Writing patch edges to " << edgeFile << endl;
+        Info<< "Writing patch edges to " << edgeFile << endl;
 
         OFstream patchEdgeStream(edgeFile);
 
@@ -351,7 +351,7 @@ void writePointCells
       / "pointEdges_" + timeName + '_' + name(pointI) + ".obj"
     );
 
-    Info << "Writing pointEdges to " << pFile << endl;
+    Info<< "Writing pointEdges to " << pFile << endl;
 
     OFstream pointStream(pFile);
 
@@ -492,7 +492,7 @@ int main(int argc, char *argv[])
                   + ".obj"
                 );
 
-                Info << "Writing mesh points and edges to " << fName << endl;
+                Info<< "Writing mesh points and edges to " << fName << endl;
 
                 OFstream str(fName);
 
@@ -506,7 +506,7 @@ int main(int argc, char *argv[])
             }
             else if
             (
-                !patchFaces 
+                !patchFaces
              && !patchEdges
              && !doCell
              && !doPoint
@@ -530,14 +530,14 @@ int main(int argc, char *argv[])
         }
         else
         {
-            Info << "No mesh." << endl;
+            Info<< "No mesh." << endl;
         }
 
-        Info << nl << endl;
+        Info<< nl << endl;
     }
 
 
-    Info << "End\n" << endl;
+    Info<< "End\n" << endl;
 
     return 0;
 }
diff --git a/applications/utilities/mesh/generation/blockMesh/blockMeshApp.C b/applications/utilities/mesh/generation/blockMesh/blockMeshApp.C
index 6cdec703dcd52eae4e0568b5f3babef066a26803..bb30cfd4a561d3f90bd2971502b250909f284a69 100644
--- a/applications/utilities/mesh/generation/blockMesh/blockMeshApp.C
+++ b/applications/utilities/mesh/generation/blockMesh/blockMeshApp.C
@@ -382,7 +382,7 @@ int main(int argc, char *argv[])
         }
     }
 
-    Info<< nl << "End" << endl;
+    Info<< "\nEnd\n" << endl;
 
     return 0;
 }
diff --git a/applications/utilities/mesh/generation/blockMesh/mergePatchPairs.H b/applications/utilities/mesh/generation/blockMesh/mergePatchPairs.H
index aeb3137adfe091daaabbda9490016527a066afe9..2fd2fe2dc1d5d1f6f8bef68d48b66638d80316d9 100644
--- a/applications/utilities/mesh/generation/blockMesh/mergePatchPairs.H
+++ b/applications/utilities/mesh/generation/blockMesh/mergePatchPairs.H
@@ -83,11 +83,11 @@
                 );
             }  // end of all merge pairs
 
-            Info << "Adding point and face zones" << endl;
+            Info<< "Adding point and face zones" << endl;
             mesh.addZones(pz, fz, cz);
 
 
-            Info << "Creating attachPolyTopoChanger" << endl;
+            Info<< "Creating attachPolyTopoChanger" << endl;
             attachPolyTopoChanger polyMeshAttacher(mesh);
             polyMeshAttacher.setSize(mergePatchPairs.size());
 
diff --git a/applications/utilities/mesh/generation/extrude2DMesh/doExtrude2DMesh.C b/applications/utilities/mesh/generation/extrude2DMesh/doExtrude2DMesh.C
index c71f91079c8cda68c77b86054a9d8cf01c2c4a27..ff8f118d1ca7e8bb302bdcc15e60ceab09ad457a 100644
--- a/applications/utilities/mesh/generation/extrude2DMesh/doExtrude2DMesh.C
+++ b/applications/utilities/mesh/generation/extrude2DMesh/doExtrude2DMesh.C
@@ -89,7 +89,7 @@ int main(int argc, char *argv[])
     // ~~~~~~~~~~~~~~~~~~~~~~
 
     scalar minRange = GREAT;
-    direction extrudeDir = -1;
+    direction extrudeDir = 4;   //illegal value.
 
     for (direction dir = 0; dir < 3; dir++)
     {
diff --git a/applications/utilities/mesh/generation/extrudeMesh/extrudeMesh.C b/applications/utilities/mesh/generation/extrudeMesh/extrudeMesh.C
index 5aadec52c9cba46ff39ed64e92031a848eb8e0fe..f970c80e71c4cf5cbce74cf9f5ed82e784f118bd 100644
--- a/applications/utilities/mesh/generation/extrudeMesh/extrudeMesh.C
+++ b/applications/utilities/mesh/generation/extrudeMesh/extrudeMesh.C
@@ -418,8 +418,8 @@ int main(int argc, char *argv[])
         frontPatchFaces.setSize(layerFaces.size());
         forAll(backPatchFaces, i)
         {
-            backPatchFaces[i] = layerFaces[i][0];
-            frontPatchFaces[i] = layerFaces[i][layerFaces[i].size()-1];
+            backPatchFaces[i]  = layerFaces[i].first();
+            frontPatchFaces[i] = layerFaces[i].last();
         }
 
         // Create dummy fvSchemes, fvSolution
@@ -693,7 +693,7 @@ int main(int argc, char *argv[])
             << exit(FatalError);
     }
 
-    Info << "End\n" << endl;
+    Info<< "End\n" << endl;
 
     return 0;
 }
diff --git a/applications/utilities/mesh/generation/snappyHexMesh/Make/options b/applications/utilities/mesh/generation/snappyHexMesh/Make/options
index e6db59c8250a374574abe60d32f0445bc89f226a..d2ae5219d3c7ff37174e855b7607db591e83a070 100644
--- a/applications/utilities/mesh/generation/snappyHexMesh/Make/options
+++ b/applications/utilities/mesh/generation/snappyHexMesh/Make/options
@@ -1,6 +1,6 @@
 EXE_INC = \
     /* -g -DFULLDEBUG -O0 */ \
-    -I$(LIB_SRC)/decompositionMethods/decompositionMethods/lnInclude \
+    -I$(LIB_SRC)/parallel/decompositionMethods/lnInclude \
     -I$(LIB_SRC)/mesh/autoMesh/lnInclude \
     -I$(LIB_SRC)/meshTools/lnInclude \
     -I$(LIB_SRC)/triSurface/lnInclude \
diff --git a/applications/utilities/mesh/generation/snappyHexMesh/snappyHexMeshDict b/applications/utilities/mesh/generation/snappyHexMesh/snappyHexMeshDict
index 92c92d72e5ae9bacad9c7944aa6d79ff119b5dfa..ab8adca478e8fc7235c1949081d1d213f150f569 100644
--- a/applications/utilities/mesh/generation/snappyHexMesh/snappyHexMeshDict
+++ b/applications/utilities/mesh/generation/snappyHexMesh/snappyHexMeshDict
@@ -274,7 +274,7 @@ addLayersControls
     maxThicknessToMedialRatio 0.3;
 
     // Angle used to pick up medial axis points
-    minMedianAxisAngle 130;
+    minMedianAxisAngle 90;
 
     // Create buffer region for new layer terminations
     nBufferCellsNoExtrude 0;
diff --git a/applications/utilities/mesh/manipulation/cellSet/cellSet.C b/applications/utilities/mesh/manipulation/cellSet/cellSet.C
index e8036274261ada966abc16b8210fdf36fcf84623..9edfa8d44a28ce931e4d76cbb6bcca62dbc7373d 100644
--- a/applications/utilities/mesh/manipulation/cellSet/cellSet.C
+++ b/applications/utilities/mesh/manipulation/cellSet/cellSet.C
@@ -189,7 +189,7 @@ int main(int argc, char *argv[])
         currentSet.write();
     }
 
-    Info << nl << "End" << endl;
+    Info<< "\nEnd\n" << endl;
 
     return 0;
 }
diff --git a/applications/utilities/mesh/manipulation/checkMesh/checkMesh.C b/applications/utilities/mesh/manipulation/checkMesh/checkMesh.C
index 6caeffbd4ec7d53a8392460a635f4820c9740940..0ce3a9d8e6483e355cfc12e5b2a22231e5aff936 100644
--- a/applications/utilities/mesh/manipulation/checkMesh/checkMesh.C
+++ b/applications/utilities/mesh/manipulation/checkMesh/checkMesh.C
@@ -120,7 +120,7 @@ int main(int argc, char *argv[])
             }
             else
             {
-                Info << "\nMesh OK.\n" << endl;
+                Info<< "\nMesh OK.\n" << endl;
             }
         }
     }
diff --git a/applications/utilities/mesh/manipulation/checkMesh/printMeshStats.C b/applications/utilities/mesh/manipulation/checkMesh/printMeshStats.C
index 269656594c5c6524c6508c7c602967ac419173df..462d1531f8d3139c111934a82580be07eb40c6c3 100644
--- a/applications/utilities/mesh/manipulation/checkMesh/printMeshStats.C
+++ b/applications/utilities/mesh/manipulation/checkMesh/printMeshStats.C
@@ -96,7 +96,7 @@ void Foam::printMeshStats(const polyMesh& mesh, const bool allTopology)
     label nTetWedge = 0;
     label nUnknown = 0;
 
-    for(label cellI = 0; cellI < mesh.nCells(); cellI++)
+    for (label cellI = 0; cellI < mesh.nCells(); cellI++)
     {
         if (hex.isA(mesh, cellI))
         {
diff --git a/applications/utilities/mesh/manipulation/createBaffles/createBaffles.C b/applications/utilities/mesh/manipulation/createBaffles/createBaffles.C
index c6fa2012188efe580b77cd5527572b7a09cfd58f..64403919f39d4899c7d7093b619bd93bb16e7334 100644
--- a/applications/utilities/mesh/manipulation/createBaffles/createBaffles.C
+++ b/applications/utilities/mesh/manipulation/createBaffles/createBaffles.C
@@ -186,7 +186,7 @@ int main(int argc, char *argv[])
         {
             newPatches.append(findPatchID(mesh, patchNames[i]));
             Info<< "Using additional patch " << patchNames[i]
-                << " at index " << newPatches[newPatches.size()-1] << endl;
+                << " at index " << newPatches.last() << endl;
         }
     }
 
diff --git a/applications/utilities/mesh/manipulation/faceSet/faceSet.C b/applications/utilities/mesh/manipulation/faceSet/faceSet.C
index 8441a1cdbe2ce773f4021ad2e572e7de02959b79..9bd9736cab31320557d705f9af4b8e0ef775d628 100644
--- a/applications/utilities/mesh/manipulation/faceSet/faceSet.C
+++ b/applications/utilities/mesh/manipulation/faceSet/faceSet.C
@@ -189,7 +189,7 @@ int main(int argc, char *argv[])
         currentSet.write();
     }
 
-    Info << nl << "End" << endl;
+    Info<< "\nEnd\n" << endl;
 
     return 0;
 }
diff --git a/applications/utilities/mesh/manipulation/flattenMesh/flattenMesh.C b/applications/utilities/mesh/manipulation/flattenMesh/flattenMesh.C
index 69ba27f117535a54228ae3900e02ea6bcb3dbd6a..81fd297a888ed39a7c530a180c853d147cc06b79 100644
--- a/applications/utilities/mesh/manipulation/flattenMesh/flattenMesh.C
+++ b/applications/utilities/mesh/manipulation/flattenMesh/flattenMesh.C
@@ -95,7 +95,7 @@ int main(int argc, char *argv[])
     // Set the precision of the points data to 10
     IOstream::defaultPrecision(10);
 
-    Info << "Writing points into directory " << points.path() << nl << endl;
+    Info<< "Writing points into directory " << points.path() << nl << endl;
     points.write();
 
     return 0;
diff --git a/applications/utilities/mesh/manipulation/insideCells/insideCells.C b/applications/utilities/mesh/manipulation/insideCells/insideCells.C
index 7087e0506258a52dda7c281b90f2cfbd0c52909f..22f99465632927c606b7909e4b9e197d74d12a47 100644
--- a/applications/utilities/mesh/manipulation/insideCells/insideCells.C
+++ b/applications/utilities/mesh/manipulation/insideCells/insideCells.C
@@ -89,7 +89,7 @@ int main(int argc, char *argv[])
 
     insideCells.write();
 
-    Info << "End\n" << endl;
+    Info<< "End\n" << endl;
 
     return 0;
 }
diff --git a/applications/utilities/mesh/manipulation/mergeMeshes/mergeMeshes.C b/applications/utilities/mesh/manipulation/mergeMeshes/mergeMeshes.C
index b13dfb86ef04bc243b54d7517902d8e7a103ce7d..620201ba91795b2bfbb362b3c603811fded8cfba 100644
--- a/applications/utilities/mesh/manipulation/mergeMeshes/mergeMeshes.C
+++ b/applications/utilities/mesh/manipulation/mergeMeshes/mergeMeshes.C
@@ -77,7 +77,7 @@ int main(int argc, char *argv[])
     masterMesh.merge();
     masterMesh.polyMesh::write();
 
-    Info << nl << "End" << endl;
+    Info<< "\nEnd\n" << endl;
 
     return 0;
 }
diff --git a/applications/utilities/mesh/manipulation/mergeMeshes/mergePolyMesh.C b/applications/utilities/mesh/manipulation/mergeMeshes/mergePolyMesh.C
index 616cfb4ce74b274996d3a770e7cdd4b1248d10d1..d1b633a4b9ee61adaaa06b8b5c0478111756a001 100644
--- a/applications/utilities/mesh/manipulation/mergeMeshes/mergePolyMesh.C
+++ b/applications/utilities/mesh/manipulation/mergeMeshes/mergePolyMesh.C
@@ -385,7 +385,7 @@ void Foam::mergePolyMesh::merge()
     // Add the patches if necessary
     if (patchNames_.size() != boundaryMesh().size())
     {
-        Info << "Copying old patches" << endl;
+        Info<< "Copying old patches" << endl;
 
         List<polyPatch*> newPatches(patchNames_.size());
 
@@ -399,7 +399,7 @@ void Foam::mergePolyMesh::merge()
             newPatches[patchI] = oldPatches[patchI].clone(oldPatches).ptr();
         }
 
-        Info << "Adding new patches. " << endl;
+        Info<< "Adding new patches. " << endl;
 
         label endOfLastPatch =
             oldPatches[patchI - 1].start() + oldPatches[patchI - 1].size();
diff --git a/applications/utilities/mesh/manipulation/mirrorMesh/mirrorFvMesh.C b/applications/utilities/mesh/manipulation/mirrorMesh/mirrorFvMesh.C
index 9876f4a06f7e8025054049522e9c6e9e4a6cafc1..0c976715904f7a8374658ce2331a71d2ad242a66 100644
--- a/applications/utilities/mesh/manipulation/mirrorMesh/mirrorFvMesh.C
+++ b/applications/utilities/mesh/manipulation/mirrorMesh/mirrorFvMesh.C
@@ -33,8 +33,8 @@ License
 const Foam::label Foam::mirrorFvMesh::cellRenumber[8][8] =
 {
     {-1, -1, -1, -1, -1, -1, -1, -1},    // unknown
-    {-1, -1, -1, -1, -1, -1, -1, -1},    // 
-    {-1, -1, -1, -1, -1, -1, -1, -1},    // 
+    {-1, -1, -1, -1, -1, -1, -1, -1},    //
+    {-1, -1, -1, -1, -1, -1, -1, -1},    //
     { 0,  3,  2,  1,  4,  7,  6,  5},    // hex
     { 2,  1,  0,  5,  4,  3,  6, -1},    // wedge
     { 0,  2,  1,  3,  5,  4, -1, -1},    // prism
@@ -74,7 +74,7 @@ Foam::mirrorFvMesh::mirrorFvMesh(const IOobject& io)
     const polyPatchList& oldPatches = boundaryMesh();
 
     // Mirror the points
-    Info << "Mirroring points. Old points: " << oldPoints.size();
+    Info<< "Mirroring points. Old points: " << oldPoints.size();
 
     pointField newPoints(2*oldPoints.size());
     label nNewPoints = 0;
@@ -120,10 +120,10 @@ Foam::mirrorFvMesh::mirrorFvMesh(const IOobject& io)
     }
 
     // Reset the size of the point list
-    Info << " New points: " << nNewPoints << endl;
+    Info<< " New points: " << nNewPoints << endl;
     newPoints.setSize(nNewPoints);
 
-    Info << "Mirroring faces. Old faces: " << oldFaces.size();
+    Info<< "Mirroring faces. Old faces: " << oldFaces.size();
 
     // Algorithm:
     // During mirroring, the faces that were previously boundary faces
@@ -329,14 +329,14 @@ Foam::mirrorFvMesh::mirrorFvMesh(const IOobject& io)
 
     // Tidy up the lists
     newFaces.setSize(nNewFaces);
-    Info << " New faces: " << nNewFaces << endl;
+    Info<< " New faces: " << nNewFaces << endl;
 
     newPatchTypes.setSize(nNewPatches);
     newPatchNames.setSize(nNewPatches);
     newPatchSizes.setSize(nNewPatches);
     newPatchStarts.setSize(nNewPatches);
 
-    Info << "Mirroring patches. Old patches: " << boundary().size()
+    Info<< "Mirroring patches. Old patches: " << boundary().size()
         << " New patches: " << nNewPatches << endl;
 
     Info<< "Mirroring cells.  Old cells: " << oldCells.size()
@@ -378,9 +378,9 @@ Foam::mirrorFvMesh::mirrorFvMesh(const IOobject& io)
     }
 
     // Mirror the cell shapes
-    Info << "Mirroring cell shapes." << endl;
+    Info<< "Mirroring cell shapes." << endl;
 
-    Info << nl << "Creating new mesh" << endl;
+    Info<< nl << "Creating new mesh" << endl;
     mirrorMeshPtr_ = new fvMesh
     (
         io,
diff --git a/applications/utilities/mesh/manipulation/mirrorMesh/mirrorMesh.C b/applications/utilities/mesh/manipulation/mirrorMesh/mirrorMesh.C
index a8b93b8d6823e63708484c3f39f2ec5d8e756d8a..a762dda0da4784d327365f159a4fb101c1838960 100644
--- a/applications/utilities/mesh/manipulation/mirrorMesh/mirrorMesh.C
+++ b/applications/utilities/mesh/manipulation/mirrorMesh/mirrorMesh.C
@@ -54,10 +54,10 @@ int main(int argc, char *argv[])
     // Set the precision of the points data to 10
     IOstream::defaultPrecision(10);
 
-    Info << "Writing mirrored mesh" << endl;
+    Info<< "Writing mirrored mesh" << endl;
     mesh.mirrorMesh().write();
 
-    Info << "End" << endl;
+    Info<< "End" << endl;
 
     return 0;
 }
diff --git a/applications/utilities/mesh/manipulation/objToVTK/objToVTK.C b/applications/utilities/mesh/manipulation/objToVTK/objToVTK.C
index 07190e49f9842dbfbae3f00ec5d7544934ff9df6..cf0b6ccd2790117f2e5437c4574186b9c8c528ae 100644
--- a/applications/utilities/mesh/manipulation/objToVTK/objToVTK.C
+++ b/applications/utilities/mesh/manipulation/objToVTK/objToVTK.C
@@ -266,7 +266,7 @@ int main(int argc, char *argv[])
         }
     }
 
-    Info << "End\n" << endl;
+    Info<< "End\n" << endl;
 
     return 0;
 }
diff --git a/applications/utilities/mesh/manipulation/pointSet/pointSet.C b/applications/utilities/mesh/manipulation/pointSet/pointSet.C
index 1aa70191f84cc2e1b16875a2f206ab9fcfeea870..fb0c7b12fd7899f391bccca44c87bb0f41043287 100644
--- a/applications/utilities/mesh/manipulation/pointSet/pointSet.C
+++ b/applications/utilities/mesh/manipulation/pointSet/pointSet.C
@@ -189,7 +189,7 @@ int main(int argc, char *argv[])
         currentSet.write();
     }
 
-    Info << nl << "End" << endl;
+    Info<< "\nEnd\n" << endl;
 
     return 0;
 }
diff --git a/applications/utilities/mesh/manipulation/renumberMesh/Make/options b/applications/utilities/mesh/manipulation/renumberMesh/Make/options
index a8d7971b3b4a3ff72007b43a9db20a85694ca376..3b3b8ad48f32676c2865d1da6cef3fc0d0f803f7 100644
--- a/applications/utilities/mesh/manipulation/renumberMesh/Make/options
+++ b/applications/utilities/mesh/manipulation/renumberMesh/Make/options
@@ -2,7 +2,7 @@ EXE_INC = \
     -I$(LIB_SRC)/meshTools/lnInclude \
     -I$(LIB_SRC)/dynamicMesh/lnInclude \
     -I$(LIB_SRC)/finiteVolume/lnInclude \
-    -I$(LIB_SRC)/decompositionMethods/decompositionMethods/lnInclude
+    -I$(LIB_SRC)/parallel/decompositionMethods/lnInclude
 
 EXE_LIBS = \
     -lmeshTools \
diff --git a/applications/utilities/mesh/manipulation/rotateMesh/rotateMesh.C b/applications/utilities/mesh/manipulation/rotateMesh/rotateMesh.C
index d7a84ee45a88d7cf9bbe91dd50a8ac728ecd65f6..84b2ed78a79419c78012888731c4b5e3d522450a 100644
--- a/applications/utilities/mesh/manipulation/rotateMesh/rotateMesh.C
+++ b/applications/utilities/mesh/manipulation/rotateMesh/rotateMesh.C
@@ -103,7 +103,7 @@ int main(int argc, char *argv[])
         // Set the precision of the points data to 10
         IOstream::defaultPrecision(10);
 
-        Info << "Writing points into directory " << points.path() << nl << endl;
+        Info<< "Writing points into directory " << points.path() << nl << endl;
         points.write();
     }
 
diff --git a/applications/utilities/mesh/manipulation/setSet/setSet.C b/applications/utilities/mesh/manipulation/setSet/setSet.C
index 7b348015d40cf5147d80f8eb5868b398bf086c5c..b704c71a5de2dd2f83f9526e94234b4e53ff0c71 100644
--- a/applications/utilities/mesh/manipulation/setSet/setSet.C
+++ b/applications/utilities/mesh/manipulation/setSet/setSet.C
@@ -284,10 +284,10 @@ void printHelp(Ostream& os)
         << endl
         << "Zones can be set using zoneSets from corresponding sets:" << endl
         << "    cellZoneSet c0Zone new setToCellZone c0" << endl
-        << "    faceZoneSet f0Zone new setToFaceZone f0" << endl 
+        << "    faceZoneSet f0Zone new setToFaceZone f0" << endl
         << endl
         << "or if orientation is important:" << endl
-        << "    faceZoneSet f0Zone new setsToFaceZone f0 c0" << endl 
+        << "    faceZoneSet f0Zone new setsToFaceZone f0 c0" << endl
         << endl
         << "ZoneSets can be manipulated using the general actions:" << endl
         << "    list            - prints the contents of the set" << endl
@@ -992,7 +992,7 @@ int main(int argc, char *argv[])
         delete fileStreamPtr;
     }
 
-    Pout<< "\nEnd" << endl;
+    Pout<< "\nEnd\n" << endl;
 
     return 0;
 }
diff --git a/applications/utilities/mesh/manipulation/setsToZones/setsToZones.C b/applications/utilities/mesh/manipulation/setsToZones/setsToZones.C
index df419e118b70418f11d54e277dc60f701576855a..30aba0f5ab8f7a9552cdb98d249e89e9f66f5900 100644
--- a/applications/utilities/mesh/manipulation/setsToZones/setsToZones.C
+++ b/applications/utilities/mesh/manipulation/setsToZones/setsToZones.C
@@ -341,7 +341,7 @@ int main(int argc, char *argv[])
             << exit(FatalError);
     }
 
-    Info<< nl << "End" << endl;
+    Info<< "\nEnd\n" << endl;
 
     return 0;
 }
diff --git a/applications/utilities/mesh/manipulation/splitMesh/splitMesh.C b/applications/utilities/mesh/manipulation/splitMesh/splitMesh.C
index de6d5c10e4ec187c3f0b6c1999772120e62be77a..d1455a55c5636b429ff77bb800b0674932ee0f89 100644
--- a/applications/utilities/mesh/manipulation/splitMesh/splitMesh.C
+++ b/applications/utilities/mesh/manipulation/splitMesh/splitMesh.C
@@ -236,7 +236,7 @@ int main(int argc, char *argv[])
             mesh.faceZones()
         );
 
-    Info << "Adding point and face zones" << endl;
+    Info<< "Adding point and face zones" << endl;
     mesh.addZones(pz, fz, cz);
 
     attachPolyTopoChanger splitter(mesh);
diff --git a/applications/utilities/mesh/manipulation/splitMeshRegions/splitMeshRegions.C b/applications/utilities/mesh/manipulation/splitMeshRegions/splitMeshRegions.C
index be267f872476d9597ee360dc9ea33013451645ca..6abde97e612ea29dae6ca7295e4a1eae426806ad 100644
--- a/applications/utilities/mesh/manipulation/splitMeshRegions/splitMeshRegions.C
+++ b/applications/utilities/mesh/manipulation/splitMeshRegions/splitMeshRegions.C
@@ -36,16 +36,17 @@ Description
     - mesh with cells put into cellZones (-makeCellZones)
 
     Note:
-    - Should work in parallel but cellZone interfaces cannot align with
-    processor boundaries so use the correct option in decomposition to
-    preserve those interfaces.
+    - Should work in parallel.
+    cellZones can differ on either side of processor boundaries in which case
+    the faces get moved from processor patch to directMapped patch. Not
+    ery well tested.
     - If a cell zone gets split into more than one region it can detect
     the largest matching region (-sloppyCellZones). This will accept any
     region that covers more than 50% of the zone. It has to be a subset
     so cannot have any cells in any other zone.
     - useCellZonesOnly does not do a walk and uses the cellZones only. Use
     this if you don't mind having disconnected domains in a single region.
-    This option requires all cells to be in one (and one only) region.
+    This option requires all cells to be in one (and one only) cellZone.
 
 \*---------------------------------------------------------------------------*/
 
@@ -514,6 +515,10 @@ void getInterfaceSizes
     EdgeMap<label>& interfaceSizes
 )
 {
+
+    // Internal faces
+    // ~~~~~~~~~~~~~~
+
     forAll(mesh.faceNeighbour(), faceI)
     {
         label ownRegion = cellRegion[mesh.faceOwner()[faceI]];
@@ -540,6 +545,47 @@ void getInterfaceSizes
         }
     }
 
+    // Boundary faces
+    // ~~~~~~~~~~~~~~
+
+    // Neighbour cellRegion.
+    labelList coupledRegion(mesh.nFaces()-mesh.nInternalFaces());
+
+    forAll(coupledRegion, i)
+    {
+        label cellI = mesh.faceOwner()[i+mesh.nInternalFaces()];
+        coupledRegion[i] = cellRegion[cellI];
+    }
+    syncTools::swapBoundaryFaceList(mesh, coupledRegion, false);
+
+    forAll(coupledRegion, i)
+    {
+        label faceI = i+mesh.nInternalFaces();
+        label ownRegion = cellRegion[mesh.faceOwner()[faceI]];
+        label neiRegion = coupledRegion[i];
+
+        if (ownRegion != neiRegion)
+        {
+            edge interface
+            (
+                min(ownRegion, neiRegion),
+                max(ownRegion, neiRegion)
+            );
+
+            EdgeMap<label>::iterator iter = interfaceSizes.find(interface);
+
+            if (iter != interfaceSizes.end())
+            {
+                iter()++;
+            }
+            else
+            {
+                interfaceSizes.insert(interface, 1);
+            }
+        }
+    }
+
+
     if (sumParallel && Pstream::parRun())
     {
         if (Pstream::master())
@@ -672,6 +718,17 @@ autoPtr<mapPolyMesh> createRegionMesh
     }
 
 
+    // Neighbour cellRegion.
+    labelList coupledRegion(mesh.nFaces()-mesh.nInternalFaces());
+
+    forAll(coupledRegion, i)
+    {
+        label cellI = mesh.faceOwner()[i+mesh.nInternalFaces()];
+        coupledRegion[i] = cellRegion[cellI];
+    }
+    syncTools::swapBoundaryFaceList(mesh, coupledRegion, false);
+
+
     // Topology change container. Start off from existing mesh.
     polyTopoChange meshMod(mesh);
 
@@ -691,16 +748,17 @@ autoPtr<mapPolyMesh> createRegionMesh
     {
         label faceI = exposedFaces[i];
 
-        if (!mesh.isInternalFace(faceI))
+        label ownRegion = cellRegion[mesh.faceOwner()[faceI]];
+        label neiRegion = -1;
+
+        if (mesh.isInternalFace(faceI))
         {
-            FatalErrorIn("createRegionMesh(..)")
-                << "Exposed face:" << faceI << " is not an internal face."
-                << " fc:" << mesh.faceCentres()[faceI]
-                << exit(FatalError);
+            neiRegion = cellRegion[mesh.faceNeighbour()[faceI]];
+        }
+        else
+        {
+            neiRegion = coupledRegion[faceI-mesh.nInternalFaces()];
         }
-
-        label ownRegion = cellRegion[mesh.faceOwner()[faceI]];
-        label neiRegion = cellRegion[mesh.faceNeighbour()[faceI]];
 
         label otherRegion = -1;
 
@@ -1357,22 +1415,14 @@ int main(int argc, char *argv[])
             }
         }
 
-        // Different cellZones on either side of processor patch are not
-        // allowed for now. Convert to processorPatches or what?
+        // Different cellZones on either side of processor patch.
         forAll(neiZoneID, i)
         {
             label faceI = i+mesh.nInternalFaces();
 
             if (zoneID[mesh.faceOwner()[faceI]] != neiZoneID[i])
             {
-                //blockedFace[faceI] = true;
-                FatalErrorIn(args.executable())
-                    << "Coupled face " << faceI
-                    << " fc:" << mesh.faceCentres()[faceI]
-                    << " has cellZone " << zoneID[mesh.faceOwner()[faceI]]
-                    << " on owner side but cellZone " << neiZoneID[i]
-                    << " on other side. This is not allowed."
-                    << exit(FatalError);
+                blockedFace[faceI] = true;
             }
         }
     }
diff --git a/applications/utilities/mesh/manipulation/stitchMesh/stitchMesh.C b/applications/utilities/mesh/manipulation/stitchMesh/stitchMesh.C
index a5adac74e87d19a1a973835265d719375a47dfb8..9d164f3553872b8514a65ec3cd1b768f495e08e2 100644
--- a/applications/utilities/mesh/manipulation/stitchMesh/stitchMesh.C
+++ b/applications/utilities/mesh/manipulation/stitchMesh/stitchMesh.C
@@ -172,7 +172,7 @@ int main(int argc, char *argv[])
 
     // set up the tolerances for the sliding mesh
     dictionary slidingTolerances;
-    if (args.options().found("toleranceDict")) 
+    if (args.options().found("toleranceDict"))
     {
         IOdictionary toleranceFile(
             IOobject(
@@ -180,7 +180,7 @@ int main(int argc, char *argv[])
                 runTime.constant(),
                 mesh,
                 IOobject::MUST_READ,
-                IOobject::NO_WRITE                 
+                IOobject::NO_WRITE
             )
         );
         slidingTolerances += toleranceFile;
@@ -231,7 +231,7 @@ int main(int argc, char *argv[])
 
         // Note: make sure to add the zones BEFORE constructing polyMeshModifier
         // (since looks up various zones at construction time)
-        Info << "Adding point and face zones" << endl;
+        Info<< "Adding point and face zones" << endl;
         mesh.addZones(pz.shrink(), fz.shrink(), cz.shrink());
 
         // Add the perfect interface mesh modifier
@@ -316,7 +316,7 @@ int main(int argc, char *argv[])
 
         // Note: make sure to add the zones BEFORE constructing polyMeshModifier
         // (since looks up various zones at construction time)
-        Info << "Adding point and face zones" << endl;
+        Info<< "Adding point and face zones" << endl;
         mesh.addZones(pz.shrink(), fz.shrink(), cz.shrink());
 
         // Add the sliding interface mesh modifier
@@ -393,7 +393,7 @@ int main(int argc, char *argv[])
         mesh.setInstance(oldInstance);
         stitcher.instance() = oldInstance;
     }
-    Info << nl << "Writing polyMesh to time " << runTime.timeName() << endl;
+    Info<< nl << "Writing polyMesh to time " << runTime.timeName() << endl;
 
     IOstream::defaultPrecision(10);
 
diff --git a/applications/utilities/mesh/manipulation/subsetMesh/subsetMesh.C b/applications/utilities/mesh/manipulation/subsetMesh/subsetMesh.C
index f00cc8716fe0a1db3043dd93cc672e3b287a1515..303df1cbae05214a22aa5a4507691cda94580374 100644
--- a/applications/utilities/mesh/manipulation/subsetMesh/subsetMesh.C
+++ b/applications/utilities/mesh/manipulation/subsetMesh/subsetMesh.C
@@ -439,7 +439,7 @@ int main(int argc, char *argv[])
     }
 
 
-    Info << nl << "End" << endl;
+    Info<< "\nEnd\n" << endl;
 
     return 0;
 }
diff --git a/applications/utilities/mesh/manipulation/transformPoints/transformPoints.C b/applications/utilities/mesh/manipulation/transformPoints/transformPoints.C
index a76c4ad327b9939e7d26ce5ad7c604aa0602b9c4..f9b6354dd4e31d2c04d8e79b6da69661ea257baf 100644
--- a/applications/utilities/mesh/manipulation/transformPoints/transformPoints.C
+++ b/applications/utilities/mesh/manipulation/transformPoints/transformPoints.C
@@ -267,7 +267,7 @@ int main(int argc, char *argv[])
     // Set the precision of the points data to 10
     IOstream::defaultPrecision(10);
 
-    Info << "Writing points into directory " << points.path() << nl << endl;
+    Info<< "Writing points into directory " << points.path() << nl << endl;
     points.write();
 
     return 0;
diff --git a/applications/utilities/miscellaneous/foamDebugSwitches/Make/options b/applications/utilities/miscellaneous/foamDebugSwitches/Make/options
index 421e59a7f140817e59bae04ae1837f5528023836..e473b84bb97d6b6674fe75f865e16df486bf5bb3 100644
--- a/applications/utilities/miscellaneous/foamDebugSwitches/Make/options
+++ b/applications/utilities/miscellaneous/foamDebugSwitches/Make/options
@@ -1,43 +1,59 @@
 EXE_LIBS = \
+    -lautoMesh \
+    -lbarotropicCompressibilityModel \
     -lbasicThermophysicalModels \
+    -lblockMesh \
     -lchemistryModel \
-    -lreactionThermophysicalModels \
+    -lcoalCombustion \
     -lcompressibleLESModels \
+    -lcompressibleRASModels \
+    -lcompressibleTurbulenceModel \
+    -lconversion \
     -ldecompositionMethods \
     -ldieselSpray \
+    -ldsmc \
     -ldynamicFvMesh \
     -ldynamicMesh \
     -ledgeMesh \
     -lengine \
     -lerrorEstimation \
+    -lfieldFunctionObjects \
     -lfiniteVolume \
     -lforces \
     -lfvMotionSolvers \
+    -lgenericPatchFields \
     -lincompressibleLESModels \
-    -lincompressibleTransportModels \
-    -lcompressibleRASModels \
     -lincompressibleRASModels \
+    -lincompressibleTransportModels \
+    -lincompressibleTurbulenceModel \
     -linterfaceProperties \
-    -llagrangianIntermediate \
+    -lIOFunctionObjects \
     -llagrangian \
+    -llagrangianIntermediate \
     -llaminarFlameSpeedModels \
     -lLESdeltas \
     -lLESfilters \
     -lliquidMixture \
     -lliquids \
     -lmeshTools \
+    -lmolecularMeasurements \
+    -lmolecule \
     -lODE \
     -lOpenFOAM \
     -lpdf \
-    -lphaseModel \
+    -lpotential \
     -lradiation \
     -lrandomProcesses \
+    -lreactionThermophysicalModels \
     -lsampling \
     -lsolidMixture \
+    -lsolidParticle \
     -lsolids \
     -lspecie \
+    -lsurfMesh \
+    -lsystemCall \
+    -lthermalPorousZone \
     -lthermophysicalFunctions \
     -ltopoChangerFvMesh \
     -ltriSurface \
-    -lautoMesh \
-    -lblockMesh
+    -lutilityFunctionObjects
diff --git a/applications/utilities/miscellaneous/patchSummary/patchSummary.C b/applications/utilities/miscellaneous/patchSummary/patchSummary.C
index 67ae5270274bc6a6dd84d0fc510ae9979ae954a4..33028ea017f46da7dd2e9cdfbc80c9b8204e16fc 100644
--- a/applications/utilities/miscellaneous/patchSummary/patchSummary.C
+++ b/applications/utilities/miscellaneous/patchSummary/patchSummary.C
@@ -98,11 +98,11 @@ int main(int argc, char *argv[])
             outputFieldList<sphericalTensor>(vsptf, patchI);
             outputFieldList<symmTensor>(vsytf, patchI);
             outputFieldList<tensor>(vtf, patchI);
-            Info << endl;
+            Info<< endl;
         }
     }
 
-    Info << "End\n" << endl;
+    Info<< "End\n" << endl;
 
     return 0;
 }
diff --git a/applications/utilities/parallelProcessing/decomposePar/Make/files b/applications/utilities/parallelProcessing/decomposePar/Make/files
index d5b8de23cb73bcd5cd29d90725ffc1f2e8e96956..076ecd41bf0d9d5dc6c407fe6090941a978a6197 100644
--- a/applications/utilities/parallelProcessing/decomposePar/Make/files
+++ b/applications/utilities/parallelProcessing/decomposePar/Make/files
@@ -1,7 +1,7 @@
-decomposeMesh.C
 decomposePar.C
 domainDecomposition.C
-distributeCells.C
+domainDecompositionMesh.C
+domainDecompositionDistribute.C
 fvFieldDecomposer.C
 pointFieldDecomposer.C
 lagrangianFieldDecomposer.C
diff --git a/applications/utilities/parallelProcessing/decomposePar/Make/options b/applications/utilities/parallelProcessing/decomposePar/Make/options
index a1b8151fdd0fef6e0a5087b2708fea8ffd0ce2aa..58cb426daf10bcd05385a3a1805d2abdf48c10e6 100644
--- a/applications/utilities/parallelProcessing/decomposePar/Make/options
+++ b/applications/utilities/parallelProcessing/decomposePar/Make/options
@@ -1,5 +1,5 @@
 EXE_INC = \
-    -I$(LIB_SRC)/decompositionMethods/decompositionMethods/lnInclude \
+    -I$(LIB_SRC)/parallel/decompositionMethods/lnInclude \
     -I$(LIB_SRC)/finiteVolume/lnInclude \
     -I$(LIB_SRC)/lagrangian/basic/lnInclude \
     -I$(LIB_SRC)/meshTools/lnInclude
diff --git a/applications/utilities/parallelProcessing/decomposePar/decomposePar.C b/applications/utilities/parallelProcessing/decomposePar/decomposePar.C
index b2e08a6907a7fa0b4d5943dee6e577cbebf7748c..f8a8ca01d57b492b5f2604462fb091d7fcf055e4 100644
--- a/applications/utilities/parallelProcessing/decomposePar/decomposePar.C
+++ b/applications/utilities/parallelProcessing/decomposePar/decomposePar.C
@@ -106,7 +106,6 @@ int main(int argc, char *argv[])
         Info<< "Decomposing mesh " << regionName << nl << endl;
     }
 
-
     bool writeCellDist           = args.optionFound("cellDist");
     bool copyUniform             = args.optionFound("copyUniform");
     bool decomposeFieldsOnly     = args.optionFound("fields");
diff --git a/applications/utilities/parallelProcessing/decomposePar/domainDecomposition.C b/applications/utilities/parallelProcessing/decomposePar/domainDecomposition.C
index d3b9bd049249ba3211935864d8438eb32a204517..392594cc6240d2482102bac10d5ce0212c00023e 100644
--- a/applications/utilities/parallelProcessing/decomposePar/domainDecomposition.C
+++ b/applications/utilities/parallelProcessing/decomposePar/domainDecomposition.C
@@ -38,7 +38,7 @@ License
 
 // * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
 
-void domainDecomposition::mark
+void Foam::domainDecomposition::mark
 (
     const labelList& zoneElems,
     const label zoneI,
@@ -66,7 +66,7 @@ void domainDecomposition::mark
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
 // from components
-domainDecomposition::domainDecomposition(const IOobject& io)
+Foam::domainDecomposition::domainDecomposition(const IOobject& io)
 :
     fvMesh(io),
     decompositionDict_
@@ -105,13 +105,13 @@ domainDecomposition::domainDecomposition(const IOobject& io)
 
 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
 
-domainDecomposition::~domainDecomposition()
+Foam::domainDecomposition::~domainDecomposition()
 {}
 
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
-bool domainDecomposition::writeDecomposition()
+bool Foam::domainDecomposition::writeDecomposition()
 {
     Info<< "\nConstructing processor meshes" << endl;
 
diff --git a/applications/utilities/parallelProcessing/decomposePar/domainDecomposition.H b/applications/utilities/parallelProcessing/decomposePar/domainDecomposition.H
index 6ec357a02ef08eb837324816a275e88255aab648..c8b8d9ac3dca6d8232866c1c073c444c00b84b7e 100644
--- a/applications/utilities/parallelProcessing/decomposePar/domainDecomposition.H
+++ b/applications/utilities/parallelProcessing/decomposePar/domainDecomposition.H
@@ -26,7 +26,7 @@ Class
     Foam::domainDecomposition
 
 Description
-    Automatic domain decomposition class for FOAM meshes
+    Automatic domain decomposition class for finite-volume meshes
 
 SourceFiles
     domainDecomposition.C
@@ -42,13 +42,11 @@ SourceFiles
 #include "PtrList.H"
 #include "point.H"
 
-#ifndef namespaceFoam
-#define namespaceFoam
-    using namespace Foam;
-#endif
+namespace Foam
+{
 
 /*---------------------------------------------------------------------------*\
-                           Class domainDecomposition Declaration
+                     Class domainDecomposition Declaration
 \*---------------------------------------------------------------------------*/
 
 class domainDecomposition
@@ -79,7 +77,7 @@ class domainDecomposition
         // original face. In order to do this properly, all face
         // indices will be incremented by 1 and the decremented as
         // necessary t avoid the problem of face number zero having no
-        // sign.  
+        // sign.
         labelListList procFaceAddressing_;
 
         //- Labels of cells for each processor
@@ -165,6 +163,11 @@ public:
 };
 
 
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Foam
+
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 #endif
diff --git a/applications/utilities/parallelProcessing/decomposePar/distributeCells.C b/applications/utilities/parallelProcessing/decomposePar/domainDecompositionDistribute.C
similarity index 99%
rename from applications/utilities/parallelProcessing/decomposePar/distributeCells.C
rename to applications/utilities/parallelProcessing/decomposePar/domainDecompositionDistribute.C
index ffd54ac6851818258383cbae31e424dbfdbd7519..d6e68ea880e13749712f983aab80ddc9fe044a47 100644
--- a/applications/utilities/parallelProcessing/decomposePar/distributeCells.C
+++ b/applications/utilities/parallelProcessing/decomposePar/domainDecompositionDistribute.C
@@ -33,7 +33,7 @@ License
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-void domainDecomposition::distributeCells()
+void Foam::domainDecomposition::distributeCells()
 {
     Info<< "\nCalculating distribution of cells" << endl;
 
diff --git a/applications/utilities/parallelProcessing/decomposePar/decomposeMesh.C b/applications/utilities/parallelProcessing/decomposePar/domainDecompositionMesh.C
similarity index 97%
rename from applications/utilities/parallelProcessing/decomposePar/decomposeMesh.C
rename to applications/utilities/parallelProcessing/decomposePar/domainDecompositionMesh.C
index 2e29b243aaef87077953eb5c18755e2347358ab4..1b31d9edd59b4c7c7cc0d46c87b4af619e5985a3 100644
--- a/applications/utilities/parallelProcessing/decomposePar/decomposeMesh.C
+++ b/applications/utilities/parallelProcessing/decomposePar/domainDecompositionMesh.C
@@ -40,7 +40,7 @@ Description
 
 // * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
 
-void domainDecomposition::decomposeMesh(const bool filterEmptyPatches)
+void Foam::domainDecomposition::decomposeMesh(const bool filterEmptyPatches)
 {
     // Decide which cell goes to which processor
     distributeCells();
@@ -87,7 +87,7 @@ void domainDecomposition::decomposeMesh(const bool filterEmptyPatches)
         }
     }
 
-    Info << "\nDistributing faces to processors" << endl;
+    Info<< "\nDistributing faces to processors" << endl;
 
     // Loop through all internal faces and decide which processor they belong to
     // First visit all internal faces. If cells at both sides belong to the
@@ -158,7 +158,7 @@ void domainDecomposition::decomposeMesh(const bool filterEmptyPatches)
                         SLList<label>::iterator curInterProcBdrsNeiIter =
                             interProcBoundaries[neighbourProc].begin();
 
-                        SLList<SLList<label> >::iterator 
+                        SLList<SLList<label> >::iterator
                             curInterProcBFacesNeiIter =
                             interProcBFaces[neighbourProc].begin();
 
@@ -307,7 +307,7 @@ void domainDecomposition::decomposeMesh(const bool filterEmptyPatches)
                         SLList<label>::iterator curInterProcBdrsOwnIter =
                             interProcBoundaries[ownerProc].begin();
 
-                        SLList<SLList<label> >::iterator 
+                        SLList<SLList<label> >::iterator
                             curInterProcBFacesOwnIter =
                             interProcBFaces[ownerProc].begin();
 
@@ -432,7 +432,7 @@ void domainDecomposition::decomposeMesh(const bool filterEmptyPatches)
                         // Note: I cannot add the other side of the cyclic
                         // boundary here because this would violate the order.
                         // They will be added in a separate loop below
-                        // 
+                        //
                     }
                 }
 
@@ -483,7 +483,7 @@ void domainDecomposition::decomposeMesh(const bool filterEmptyPatches)
             // calculate the size
             label nFacesOnProcessor = curProcFaces.size();
 
-            for 
+            for
             (
                 SLList<SLList<label> >::iterator curInterProcBFacesIter =
                     interProcBFaces[procI].begin();
@@ -506,7 +506,7 @@ void domainDecomposition::decomposeMesh(const bool filterEmptyPatches)
 
             // Add internal and boundary faces
             // Remember to increment the index by one such that the
-            // turning index works properly.  
+            // turning index works properly.
             for
             (
                 SLList<label>::iterator curProcFacesIter = curProcFaces.begin();
@@ -576,7 +576,7 @@ void domainDecomposition::decomposeMesh(const bool filterEmptyPatches)
                     // add the face
 
                     // Remember to increment the index by one such that the
-                    // turning index works properly.  
+                    // turning index works properly.
                     if (cellToProc_[owner[curFacesIter()]] == procI)
                     {
                         curProcFaceAddressing[nFaces] = curFacesIter() + 1;
@@ -598,7 +598,7 @@ void domainDecomposition::decomposeMesh(const bool filterEmptyPatches)
         }
     }
 
-    Info << "\nCalculating processor boundary addressing" << endl;
+    Info<< "\nCalculating processor boundary addressing" << endl;
     // For every patch of processor boundary, find the index of the original
     // patch. Mis-alignment is caused by the fact that patches with zero size
     // are omitted. For processor patches, set index to -1.
@@ -656,7 +656,7 @@ void domainDecomposition::decomposeMesh(const bool filterEmptyPatches)
         curBoundaryAddressing.setSize(nPatches);
     }
 
-    Info << "\nDistributing points to processors" << endl;
+    Info<< "\nDistributing points to processors" << endl;
     // For every processor, loop through the list of faces for the processor.
     // For every face, loop through the list of points and mark the point as
     // used for the processor. Collect the list of used points for the
@@ -748,7 +748,7 @@ void domainDecomposition::decomposeMesh(const bool filterEmptyPatches)
                 {
                     // Mark the original face as used
                     // Remember to decrement the index by one (turning index)
-                    // 
+                    //
                     const label curF = mag(curFaceLabels[facei]) - 1;
 
                     const face& f = fcs[curF];
@@ -775,3 +775,5 @@ void domainDecomposition::decomposeMesh(const bool filterEmptyPatches)
         sort(globallySharedPoints_);
     }
 }
+
+// ************************************************************************* //
diff --git a/applications/utilities/parallelProcessing/decomposePar/fvFieldDecomposer.C b/applications/utilities/parallelProcessing/decomposePar/fvFieldDecomposer.C
index f5a6451c1266b6a0e02c165c3501c037c7f85b64..ca440ec85c210bd2574e898d4cfed06a8c4f75e7 100644
--- a/applications/utilities/parallelProcessing/decomposePar/fvFieldDecomposer.C
+++ b/applications/utilities/parallelProcessing/decomposePar/fvFieldDecomposer.C
@@ -26,14 +26,10 @@ License
 
 #include "fvFieldDecomposer.H"
 
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-namespace Foam
-{
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-fvFieldDecomposer::patchFieldDecomposer::patchFieldDecomposer
+Foam::fvFieldDecomposer::patchFieldDecomposer::patchFieldDecomposer
 (
     const unallocLabelList& addressingSlice,
     const label addressingOffset
@@ -41,15 +37,15 @@ fvFieldDecomposer::patchFieldDecomposer::patchFieldDecomposer
 :
     directAddressing_(addressingSlice)
 {
-    forAll (directAddressing_, i)
+    forAll(directAddressing_, i)
     {
-        // Subtract one to align addressing.  
+        // Subtract one to align addressing.
         directAddressing_[i] -= addressingOffset + 1;
     }
 }
 
 
-fvFieldDecomposer::processorVolPatchFieldDecomposer::
+Foam::fvFieldDecomposer::processorVolPatchFieldDecomposer::
 processorVolPatchFieldDecomposer
 (
     const fvMesh& mesh,
@@ -61,9 +57,9 @@ processorVolPatchFieldDecomposer
     const labelList& own = mesh.faceOwner();
     const labelList& neighb = mesh.faceNeighbour();
 
-    forAll (directAddressing_, i)
+    forAll(directAddressing_, i)
     {
-        // Subtract one to align addressing.  
+        // Subtract one to align addressing.
         label ai = mag(addressingSlice[i]) - 1;
 
         if (ai < neighb.size())
@@ -97,7 +93,7 @@ processorVolPatchFieldDecomposer
 }
 
 
-fvFieldDecomposer::processorSurfacePatchFieldDecomposer::
+Foam::fvFieldDecomposer::processorSurfacePatchFieldDecomposer::
 processorSurfacePatchFieldDecomposer
 (
     const unallocLabelList& addressingSlice
@@ -106,7 +102,7 @@ processorSurfacePatchFieldDecomposer
     addressing_(addressingSlice.size()),
     weights_(addressingSlice.size())
 {
-    forAll (addressing_, i)
+    forAll(addressing_, i)
     {
         addressing_[i].setSize(1);
         weights_[i].setSize(1);
@@ -117,7 +113,7 @@ processorSurfacePatchFieldDecomposer
 }
 
 
-fvFieldDecomposer::fvFieldDecomposer
+Foam::fvFieldDecomposer::fvFieldDecomposer
 (
     const fvMesh& completeMesh,
     const fvMesh& procMesh,
@@ -147,7 +143,7 @@ fvFieldDecomposer::fvFieldDecomposer
         static_cast<processorSurfacePatchFieldDecomposer*>(NULL)
     )
 {
-    forAll (boundaryAddressing_, patchi)
+    forAll(boundaryAddressing_, patchi)
     {
         if (boundaryAddressing_[patchi] >= 0)
         {
@@ -162,14 +158,14 @@ fvFieldDecomposer::fvFieldDecomposer
         }
         else
         {
-            processorVolPatchFieldDecomposerPtrs_[patchi] = 
+            processorVolPatchFieldDecomposerPtrs_[patchi] =
                 new processorVolPatchFieldDecomposer
                 (
                     completeMesh_,
                     procMesh_.boundary()[patchi].patchSlice(faceAddressing_)
                 );
 
-            processorSurfacePatchFieldDecomposerPtrs_[patchi] = 
+            processorSurfacePatchFieldDecomposerPtrs_[patchi] =
                 new processorSurfacePatchFieldDecomposer
                 (
                     static_cast<const unallocLabelList&>
@@ -187,9 +183,9 @@ fvFieldDecomposer::fvFieldDecomposer
 
 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
 
-fvFieldDecomposer::~fvFieldDecomposer()
+Foam::fvFieldDecomposer::~fvFieldDecomposer()
 {
-    forAll (patchFieldDecomposerPtrs_, patchi)
+    forAll(patchFieldDecomposerPtrs_, patchi)
     {
         if (patchFieldDecomposerPtrs_[patchi])
         {
@@ -197,7 +193,7 @@ fvFieldDecomposer::~fvFieldDecomposer()
         }
     }
 
-    forAll (processorVolPatchFieldDecomposerPtrs_, patchi)
+    forAll(processorVolPatchFieldDecomposerPtrs_, patchi)
     {
         if (processorVolPatchFieldDecomposerPtrs_[patchi])
         {
@@ -205,7 +201,7 @@ fvFieldDecomposer::~fvFieldDecomposer()
         }
     }
 
-    forAll (processorSurfacePatchFieldDecomposerPtrs_, patchi)
+    forAll(processorSurfacePatchFieldDecomposerPtrs_, patchi)
     {
         if (processorSurfacePatchFieldDecomposerPtrs_[patchi])
         {
@@ -214,9 +210,4 @@ fvFieldDecomposer::~fvFieldDecomposer()
     }
 }
 
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-} // End namespace Foam
-
 // ************************************************************************* //
diff --git a/applications/utilities/parallelProcessing/decomposePar/fvFieldDecomposerDecomposeFields.C b/applications/utilities/parallelProcessing/decomposePar/fvFieldDecomposerDecomposeFields.C
index 512ea77d1d7473017a06395001b8413f1ef79de4..afea303fbcb6b194f350dc05dedda87556239f6d 100644
--- a/applications/utilities/parallelProcessing/decomposePar/fvFieldDecomposerDecomposeFields.C
+++ b/applications/utilities/parallelProcessing/decomposePar/fvFieldDecomposerDecomposeFields.C
@@ -28,16 +28,11 @@ License
 #include "processorFvPatchField.H"
 #include "processorFvsPatchField.H"
 
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-namespace Foam
-{
-
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
 template<class Type>
-tmp<GeometricField<Type, fvPatchField, volMesh> >
-fvFieldDecomposer::decomposeField
+Foam::tmp<Foam::GeometricField<Type, Foam::fvPatchField, Foam::volMesh> >
+Foam::fvFieldDecomposer::decomposeField
 (
     const GeometricField<Type, fvPatchField, volMesh>& field
 ) const
@@ -106,8 +101,8 @@ fvFieldDecomposer::decomposeField
 
 
 template<class Type>
-tmp<GeometricField<Type, fvsPatchField, surfaceMesh> >
-fvFieldDecomposer::decomposeField
+Foam::tmp<Foam::GeometricField<Type, Foam::fvsPatchField, Foam::surfaceMesh> >
+Foam::fvFieldDecomposer::decomposeField
 (
     const GeometricField<Type, fvsPatchField, surfaceMesh>& field
 ) const
@@ -217,7 +212,7 @@ fvFieldDecomposer::decomposeField
 
 
 template<class GeoField>
-void fvFieldDecomposer::decomposeFields
+void Foam::fvFieldDecomposer::decomposeFields
 (
     const PtrList<GeoField>& fields
 ) const
@@ -229,8 +224,4 @@ void fvFieldDecomposer::decomposeFields
 }
 
 
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-} // End namespace Foam
-
 // ************************************************************************* //
diff --git a/applications/utilities/parallelProcessing/decomposePar/lagrangianFieldDecomposer.C b/applications/utilities/parallelProcessing/decomposePar/lagrangianFieldDecomposer.C
index 5d8a7f4301c9463cb1d56eccf1a7a2ddcc41b083..200a4fbccec1e1a6725e485fc2c2a0ed30c5e30f 100644
--- a/applications/utilities/parallelProcessing/decomposePar/lagrangianFieldDecomposer.C
+++ b/applications/utilities/parallelProcessing/decomposePar/lagrangianFieldDecomposer.C
@@ -29,16 +29,10 @@ Description
 
 #include "lagrangianFieldDecomposer.H"
 
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-namespace Foam
-{
-
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
 // Construct from components
-lagrangianFieldDecomposer::lagrangianFieldDecomposer
+Foam::lagrangianFieldDecomposer::lagrangianFieldDecomposer
 (
     const polyMesh& mesh,
     const polyMesh& procMesh,
@@ -88,6 +82,4 @@ lagrangianFieldDecomposer::lagrangianFieldDecomposer
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-} // End namespace Foam
-
 // ************************************************************************* //
diff --git a/applications/utilities/parallelProcessing/decomposePar/lagrangianFieldDecomposerDecomposeFields.C b/applications/utilities/parallelProcessing/decomposePar/lagrangianFieldDecomposerDecomposeFields.C
index ae852298086ba05a9b5ce45199171031b8a84662..36a5888d458d46939f4931501993282bde40ba29 100644
--- a/applications/utilities/parallelProcessing/decomposePar/lagrangianFieldDecomposerDecomposeFields.C
+++ b/applications/utilities/parallelProcessing/decomposePar/lagrangianFieldDecomposerDecomposeFields.C
@@ -27,15 +27,10 @@ License
 #include "lagrangianFieldDecomposer.H"
 #include "IOobjectList.H"
 
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-namespace Foam
-{
-
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
 template<class Type>
-void lagrangianFieldDecomposer::readFields
+void Foam::lagrangianFieldDecomposer::readFields
 (
     const label cloudI,
     const IOobjectList& lagrangianObjects,
@@ -70,7 +65,8 @@ void lagrangianFieldDecomposer::readFields
 
 
 template<class Type>
-tmp<IOField<Type> > lagrangianFieldDecomposer::decomposeField
+Foam::tmp<Foam::IOField<Type> >
+Foam::lagrangianFieldDecomposer::decomposeField
 (
     const word& cloudName,
     const IOField<Type>& field
@@ -100,7 +96,7 @@ tmp<IOField<Type> > lagrangianFieldDecomposer::decomposeField
 
 
 template<class GeoField>
-void lagrangianFieldDecomposer::decomposeFields
+void Foam::lagrangianFieldDecomposer::decomposeFields
 (
     const word& cloudName,
     const PtrList<GeoField>& fields
@@ -116,8 +112,4 @@ void lagrangianFieldDecomposer::decomposeFields
 }
 
 
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-} // End namespace Foam
-
 // ************************************************************************* //
diff --git a/applications/utilities/parallelProcessing/decomposePar/pointFieldDecomposer.C b/applications/utilities/parallelProcessing/decomposePar/pointFieldDecomposer.C
index 9be8a89e551cb6d00f569b08ffb7e0ac7cfe9e60..53c8d59aee799f22a1ec45ea9d31029490029ca7 100644
--- a/applications/utilities/parallelProcessing/decomposePar/pointFieldDecomposer.C
+++ b/applications/utilities/parallelProcessing/decomposePar/pointFieldDecomposer.C
@@ -26,14 +26,9 @@ License
 
 #include "pointFieldDecomposer.H"
 
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-namespace Foam
-{
-
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
-    
-pointFieldDecomposer::patchFieldDecomposer::patchFieldDecomposer
+
+Foam::pointFieldDecomposer::patchFieldDecomposer::patchFieldDecomposer
 (
     const pointPatch& completeMeshPatch,
     const pointPatch& procMeshPatch,
@@ -52,7 +47,7 @@ pointFieldDecomposer::patchFieldDecomposer::patchFieldDecomposer
 
     const labelList& completeMeshPatchPoints = completeMeshPatch.meshPoints();
 
-    forAll (completeMeshPatchPoints, pointi)
+    forAll(completeMeshPatchPoints, pointi)
     {
         pointMap[completeMeshPatchPoints[pointi]] = pointi;
     }
@@ -61,7 +56,7 @@ pointFieldDecomposer::patchFieldDecomposer::patchFieldDecomposer
     // patch
     const labelList& procMeshPatchPoints = procMeshPatch.meshPoints();
 
-    forAll (procMeshPatchPoints, pointi)
+    forAll(procMeshPatchPoints, pointi)
     {
         directAddressing_[pointi] =
             pointMap[directAddr[procMeshPatchPoints[pointi]]];
@@ -79,7 +74,7 @@ pointFieldDecomposer::patchFieldDecomposer::patchFieldDecomposer
 }
 
 
-pointFieldDecomposer::pointFieldDecomposer
+Foam::pointFieldDecomposer::pointFieldDecomposer
 (
     const pointMesh& completeMesh,
     const pointMesh& procMesh,
@@ -97,7 +92,7 @@ pointFieldDecomposer::pointFieldDecomposer
         static_cast<patchFieldDecomposer*>(NULL)
     )
 {
-    forAll (boundaryAddressing_, patchi)
+    forAll(boundaryAddressing_, patchi)
     {
         if (boundaryAddressing_[patchi] >= 0)
         {
@@ -114,9 +109,9 @@ pointFieldDecomposer::pointFieldDecomposer
 
 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
 
-pointFieldDecomposer::~pointFieldDecomposer()
+Foam::pointFieldDecomposer::~pointFieldDecomposer()
 {
-    forAll (patchFieldDecomposerPtrs_, patchi)
+    forAll(patchFieldDecomposerPtrs_, patchi)
     {
         if (patchFieldDecomposerPtrs_[patchi])
         {
@@ -128,6 +123,4 @@ pointFieldDecomposer::~pointFieldDecomposer()
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-} // End namespace Foam
-
 // ************************************************************************* //
diff --git a/applications/utilities/parallelProcessing/decomposePar/pointFieldDecomposerDecomposeFields.C b/applications/utilities/parallelProcessing/decomposePar/pointFieldDecomposerDecomposeFields.C
index 5bd8144c06b1fa6010bbc97ec96d4e86c178a050..4f22046b39d85e836ede65c57c08cf64086ae63f 100644
--- a/applications/utilities/parallelProcessing/decomposePar/pointFieldDecomposerDecomposeFields.C
+++ b/applications/utilities/parallelProcessing/decomposePar/pointFieldDecomposerDecomposeFields.C
@@ -28,16 +28,11 @@ License
 #include "processorPointPatchFields.H"
 #include "globalPointPatchFields.H"
 
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-namespace Foam
-{
-
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
 template<class Type>
-tmp<GeometricField<Type, pointPatchField, pointMesh> >
-pointFieldDecomposer::decomposeField
+Foam::tmp<Foam::GeometricField<Type, Foam::pointPatchField, Foam::pointMesh> >
+Foam::pointFieldDecomposer::decomposeField
 (
     const GeometricField<Type, pointPatchField, pointMesh>& field
 ) const
@@ -117,7 +112,7 @@ pointFieldDecomposer::decomposeField
 
 
 template<class GeoField>
-void pointFieldDecomposer::decomposeFields
+void Foam::pointFieldDecomposer::decomposeFields
 (
     const PtrList<GeoField>& fields
 ) const
@@ -131,6 +126,4 @@ void pointFieldDecomposer::decomposeFields
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-} // End namespace Foam
-
 // ************************************************************************* //
diff --git a/applications/utilities/parallelProcessing/reconstructPar/Make/files b/applications/utilities/parallelProcessing/reconstructPar/Make/files
index fa4f2375fd1ccd187ebd3307c86826ff49c2e7ec..37acabe62dbc9c7eb1c485f2ee7df91c734e1bc2 100644
--- a/applications/utilities/parallelProcessing/reconstructPar/Make/files
+++ b/applications/utilities/parallelProcessing/reconstructPar/Make/files
@@ -1,7 +1,3 @@
-processorMeshes.C
-fvFieldReconstructor.C
-pointFieldReconstructor.C
-reconstructLagrangianPositions.C
 reconstructPar.C
 
 EXE = $(FOAM_APPBIN)/reconstructPar
diff --git a/applications/utilities/parallelProcessing/reconstructPar/Make/options b/applications/utilities/parallelProcessing/reconstructPar/Make/options
index b041c31836a1f66e3fa559170637574539005686..cfa9eb8dfcd8624d2271517573a6efb6e3cc228d 100644
--- a/applications/utilities/parallelProcessing/reconstructPar/Make/options
+++ b/applications/utilities/parallelProcessing/reconstructPar/Make/options
@@ -1,9 +1,11 @@
 EXE_INC = \
     -I$(LIB_SRC)/finiteVolume/lnInclude \
-    -I$(LIB_SRC)/lagrangian/basic/lnInclude
+    -I$(LIB_SRC)/lagrangian/basic/lnInclude \
+    -I$(LIB_SRC)/parallel/reconstruct/lnInclude
 
 EXE_LIBS = \
     -lfiniteVolume \
     -lgenericPatchFields \
     -llagrangian \
-    -lmeshTools
+    -lmeshTools \
+    -lreconstruct
diff --git a/applications/utilities/parallelProcessing/reconstructPar/reconstructPar.C b/applications/utilities/parallelProcessing/reconstructPar/reconstructPar.C
index dd014c299fa1b27cc0e2ab784b12eb8442a2cd3d..fd354a47807b4d1f9f551272a302261bb268d57c 100644
--- a/applications/utilities/parallelProcessing/reconstructPar/reconstructPar.C
+++ b/applications/utilities/parallelProcessing/reconstructPar/reconstructPar.C
@@ -137,7 +137,7 @@ int main(int argc, char *argv[])
         // Set time for global database
         runTime.setTime(timeDirs[timeI], timeI);
 
-        Info << "Time = " << runTime.timeName() << endl << endl;
+        Info<< "Time = " << runTime.timeName() << endl << endl;
 
         // Set time for all databases
         forAll (databases, procI)
@@ -183,7 +183,7 @@ int main(int argc, char *argv[])
          || objects.lookupClass(surfaceScalarField::typeName).size()
         )
         {
-            Info << "Reconstructing FV fields" << nl << endl;
+            Info<< "Reconstructing FV fields" << nl << endl;
 
             fvFieldReconstructor fvReconstructor
             (
@@ -228,7 +228,7 @@ int main(int argc, char *argv[])
         }
         else
         {
-            Info << "No FV fields" << nl << endl;
+            Info<< "No FV fields" << nl << endl;
         }
 
 
@@ -242,7 +242,7 @@ int main(int argc, char *argv[])
          || objects.lookupClass(pointTensorField::typeName).size()
         )
         {
-            Info << "Reconstructing point fields" << nl << endl;
+            Info<< "Reconstructing point fields" << nl << endl;
 
             pointMesh pMesh(mesh);
             PtrList<pointMesh> pMeshes(procMeshes.meshes().size());
@@ -268,7 +268,7 @@ int main(int argc, char *argv[])
         }
         else
         {
-            Info << "No point fields" << nl << endl;
+            Info<< "No point fields" << nl << endl;
         }
 
 
@@ -388,7 +388,7 @@ int main(int argc, char *argv[])
             }
             else
             {
-                Info << "No lagrangian fields" << nl << endl;
+                Info<< "No lagrangian fields" << nl << endl;
             }
         }
 
diff --git a/applications/utilities/parallelProcessing/redistributeMeshPar/Make/options b/applications/utilities/parallelProcessing/redistributeMeshPar/Make/options
index c0f7a0877670d32235f3e117f3e4141ab34c6ee7..45ab666e2496296d016b1c0fd4e64df9ecf0f4a0 100644
--- a/applications/utilities/parallelProcessing/redistributeMeshPar/Make/options
+++ b/applications/utilities/parallelProcessing/redistributeMeshPar/Make/options
@@ -1,5 +1,5 @@
 EXE_INC = \
-    -I$(LIB_SRC)/decompositionMethods/decompositionMethods/lnInclude \
+    -I$(LIB_SRC)/parallel/decompositionMethods/lnInclude \
     -I$(LIB_SRC)/finiteVolume/lnInclude \
     -I$(LIB_SRC)/meshTools/lnInclude \
     -I$(LIB_SRC)/dynamicMesh/lnInclude
diff --git a/applications/utilities/parallelProcessing/redistributeMeshPar/redistributeMeshPar.C b/applications/utilities/parallelProcessing/redistributeMeshPar/redistributeMeshPar.C
index cb0aa6469fc9991a4f64d5dc578b3e3bd0629773..20398a16d3ed4d7ea11bd8d0c5f775ee17c30445 100644
--- a/applications/utilities/parallelProcessing/redistributeMeshPar/redistributeMeshPar.C
+++ b/applications/utilities/parallelProcessing/redistributeMeshPar/redistributeMeshPar.C
@@ -33,11 +33,11 @@ Description
     Balances mesh and writes new mesh to new time directory.
 
     Can also work like decomposePar:
-
+    @verbatim
         mkdir processor0
         cp -r constant processor0
         mpirun -np ddd redistributeMeshPar -parallel
-
+    @endverbatim
 \*---------------------------------------------------------------------------*/
 
 #include "Field.H"
diff --git a/applications/utilities/postProcessing/dataConversion/foamDataToFluent/foamDataToFluent.C b/applications/utilities/postProcessing/dataConversion/foamDataToFluent/foamDataToFluent.C
index 4a63948f422eb9f7d7d028158b8be41f93012795..41df27a4c8f5feed505986a42b1f56f805f51963 100644
--- a/applications/utilities/postProcessing/dataConversion/foamDataToFluent/foamDataToFluent.C
+++ b/applications/utilities/postProcessing/dataConversion/foamDataToFluent/foamDataToFluent.C
@@ -183,7 +183,7 @@ int main(int argc, char *argv[])
         Info<< endl;
     }
 
-    Info << "End\n" << endl;
+    Info<< "End\n" << endl;
 
     return 0;
 }
diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightCaseTail.H b/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightCaseTail.H
index 43c1a3f801bcf9f3373de9bace53b32a790d66d6..0ddde7448a85d3e2086e880cf00c7b5321e9d947 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightCaseTail.H
+++ b/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightCaseTail.H
@@ -16,7 +16,7 @@ if (Pstream::master())
     if (Times[0].value() < 0)
     {
         Tcorr = - Times[0].value();
-        Info << "Correcting time values. Adding " << Tcorr << endl;
+        Info<< "Correcting time values. Adding " << Tcorr << endl;
     }
 
     for (int n=startTime; n<endTime; n++)
diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightMesh.C b/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightMesh.C
index c3262e6b9c4d3d98e1eacb8d5f50af6cb45fedb9..4796f4b4f10bffda04a886988f7dde7ec9de196b 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightMesh.C
+++ b/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightMesh.C
@@ -428,112 +428,379 @@ void Foam::ensightMesh::writePrimsBinary
 }
 
 
-void Foam::ensightMesh::writePolys
+void Foam::ensightMesh::writePolysNFaces
+(
+    const labelList& polys,
+    const cellList& cellFaces,
+    OFstream& ensightGeometryFile
+) const
+{
+        forAll(polys, i)
+        {
+            ensightGeometryFile
+                << setw(10) << cellFaces[polys[i]].size() << nl;
+        }
+}
+
+
+void Foam::ensightMesh::writePolysNPointsPerFace
 (
     const labelList& polys,
     const cellList& cellFaces,
     const faceList& faces,
-    const label pointOffset,
     OFstream& ensightGeometryFile
 ) const
 {
-    if (polys.size())
+    forAll(polys, i)
     {
-        ensightGeometryFile
-            << "nfaced" << nl << setw(10) << polys.size() << nl;
+        const labelList& cf = cellFaces[polys[i]];
 
-        label po = pointOffset + 1;
-
-        forAll(polys, i)
+        forAll(cf, faceI)
         {
             ensightGeometryFile
-                << setw(10) << cellFaces[polys[i]].size() << nl;
+                << setw(10) << faces[cf[faceI]].size() << nl;
         }
+    }
+}
 
-        forAll(polys, i)
+
+void Foam::ensightMesh::writePolysPoints
+(
+    const labelList& polys,
+    const cellList& cellFaces,
+    const faceList& faces,
+    const label pointOffset,
+    OFstream& ensightGeometryFile
+) const
+{
+    label po = pointOffset + 1;
+
+    forAll(polys, i)
+    {
+        const labelList& cf = cellFaces[polys[i]];
+
+        forAll(cf, faceI)
         {
-            const labelList& cf = cellFaces[polys[i]];
+            const face& f = faces[cf[faceI]];
 
-            forAll(cf, faceI)
+            forAll(f, pointI)
             {
+                ensightGeometryFile << setw(10) << f[pointI] + po;
+            }
+            ensightGeometryFile << nl;
+        }
+    }
+}
+
+
+void Foam::ensightMesh::writeAllPolys
+(
+    const labelList& pointOffsets,
+    OFstream& ensightGeometryFile
+) const
+{
+    if (meshCellSets_.nPolys)
+    {
+        const cellList& cellFaces = mesh_.cells();
+        const faceList& faces = mesh_.faces();
+
+        if (Pstream::master())
+        {
+            ensightGeometryFile
+                << "nfaced" << nl << setw(10) << meshCellSets_.nPolys << nl;
+        }
+
+        // Number of faces for each poly cell
+        if (Pstream::master())
+        {
+            // Master
+            writePolysNFaces
+            (
+                meshCellSets_.polys,
+                cellFaces,
                 ensightGeometryFile
-                    << setw(10) << faces[cf[faceI]].size() << nl;
+            );
+            // Slaves
+            for (int slave=1; slave<Pstream::nProcs(); slave++)
+            {
+                IPstream fromSlave(Pstream::scheduled, slave);
+                labelList polys(fromSlave);
+                cellList cellFaces(fromSlave);
+
+                writePolysNFaces
+                (
+                    polys,
+                    cellFaces,
+                    ensightGeometryFile
+                );
             }
         }
+        else
+        {
+            OPstream toMaster(Pstream::scheduled, Pstream::masterNo());
+            toMaster<< meshCellSets_.polys << cellFaces;
+        }
 
-        forAll(polys, i)
+        // Number of points for each face of the above list
+        if (Pstream::master())
         {
-            const labelList& cf = cellFaces[polys[i]];
+            // Master
+            writePolysNPointsPerFace
+            (
+                meshCellSets_.polys,
+                cellFaces,
+                faces,
+                ensightGeometryFile
+            );
+            // Slaves
+            for (int slave=1; slave<Pstream::nProcs(); slave++)
+            {
+                IPstream fromSlave(Pstream::scheduled, slave);
+                labelList polys(fromSlave);
+                cellList cellFaces(fromSlave);
+                faceList faces(fromSlave);
 
-            forAll(cf, faceI)
+                writePolysNPointsPerFace
+                (
+                    polys,
+                    cellFaces,
+                    faces,
+                    ensightGeometryFile
+                );
+            }
+        }
+        else
+        {
+            OPstream toMaster(Pstream::scheduled, Pstream::masterNo());
+            toMaster<< meshCellSets_.polys << cellFaces << faces;
+        }
+
+        // List of points id for each face of the above list
+        if (Pstream::master())
+        {
+            // Master
+            writePolysPoints
+            (
+                meshCellSets_.polys,
+                cellFaces,
+                faces,
+                0,
+                ensightGeometryFile
+            );
+            // Slaves
+            for (int slave=1; slave<Pstream::nProcs(); slave++)
             {
-                const face& f = faces[cf[faceI]];
+                IPstream fromSlave(Pstream::scheduled, slave);
+                labelList polys(fromSlave);
+                cellList cellFaces(fromSlave);
+                faceList faces(fromSlave);
 
-                forAll(f, pointI)
-                {
-                    ensightGeometryFile << setw(10) << f[pointI] + po;
-                }
-                ensightGeometryFile << nl;
+                writePolysPoints
+                (
+                    polys,
+                    cellFaces,
+                    faces,
+                    pointOffsets[slave-1],
+                    ensightGeometryFile
+                );
             }
         }
+        else
+        {
+            OPstream toMaster(Pstream::scheduled, Pstream::masterNo());
+            toMaster<< meshCellSets_.polys << cellFaces << faces;
+        }
     }
 }
 
 
-void Foam::ensightMesh::writePolysBinary
+void Foam::ensightMesh::writePolysNFacesBinary
 (
     const labelList& polys,
     const cellList& cellFaces,
-    const faceList& faces,
-    const label pointOffset,
     std::ofstream& ensightGeometryFile
 ) const
 {
-    if (polys.size())
+    forAll(polys, i)
     {
-        writeEnsDataBinary("nfaced",ensightGeometryFile);
-        writeEnsDataBinary(polys.size(),ensightGeometryFile);
+        writeEnsDataBinary
+        (
+            cellFaces[polys[i]].size(),
+            ensightGeometryFile
+        );
+    }
+}
 
-        label po = pointOffset + 1;
 
-        //TODO No buffer at the moment. To be done for speed purposes!
-        forAll(polys, i)
+void Foam::ensightMesh::writePolysNPointsPerFaceBinary
+(
+    const labelList& polys,
+    const cellList& cellFaces,
+    const faceList& faces,
+    std::ofstream& ensightGeometryFile
+) const
+{
+    forAll(polys, i)
+    {
+        const labelList& cf = cellFaces[polys[i]];
+
+        forAll(cf, faceI)
         {
             writeEnsDataBinary
             (
-                cellFaces[polys[i]].size(),
+                faces[cf[faceI]].size(),
                 ensightGeometryFile
             );
         }
+    }
+}
 
-        forAll(polys, i)
+
+void Foam::ensightMesh::writePolysPointsBinary
+(
+    const labelList& polys,
+    const cellList& cellFaces,
+    const faceList& faces,
+    const label pointOffset,
+    std::ofstream& ensightGeometryFile
+) const
+{
+    label po = pointOffset + 1;
+
+    forAll(polys, i)
+    {
+        const labelList& cf = cellFaces[polys[i]];
+
+        forAll(cf, faceI)
         {
-            const labelList& cf = cellFaces[polys[i]];
+            const face& f = faces[cf[faceI]];
 
-            forAll(cf, faceI)
+            forAll(f, pointI)
             {
-                writeEnsDataBinary
+                writeEnsDataBinary(f[pointI] + po,ensightGeometryFile);
+            }
+        }
+    }
+}
+
+
+void Foam::ensightMesh::writeAllPolysBinary
+(
+    const labelList& pointOffsets,
+    std::ofstream& ensightGeometryFile
+) const
+{
+    if (meshCellSets_.nPolys)
+    {
+        const cellList& cellFaces = mesh_.cells();
+        const faceList& faces = mesh_.faces();
+
+        if (Pstream::master())
+        {
+            writeEnsDataBinary("nfaced",ensightGeometryFile);
+            writeEnsDataBinary(meshCellSets_.nPolys,ensightGeometryFile);
+        }
+
+        // Number of faces for each poly cell
+        if (Pstream::master())
+        {
+            // Master
+            writePolysNFacesBinary
+            (
+                meshCellSets_.polys,
+                cellFaces,
+                ensightGeometryFile
+            );
+            // Slaves
+            for (int slave=1; slave<Pstream::nProcs(); slave++)
+            {
+                IPstream fromSlave(Pstream::scheduled, slave);
+                labelList polys(fromSlave);
+                cellList cellFaces(fromSlave);
+
+                writePolysNFacesBinary
                 (
-                    faces[cf[faceI]].size(),
+                    polys,
+                    cellFaces,
                     ensightGeometryFile
                 );
             }
         }
+        else
+        {
+            OPstream toMaster(Pstream::scheduled, Pstream::masterNo());
+            toMaster<< meshCellSets_.polys << cellFaces;
+        }
 
-        forAll(polys, i)
+        // Number of points for each face of the above list
+        if (Pstream::master())
         {
-            const labelList& cf = cellFaces[polys[i]];
+            // Master
+            writePolysNPointsPerFaceBinary
+            (
+                meshCellSets_.polys,
+                cellFaces,
+                faces,
+                ensightGeometryFile
+            );
+            // Slaves
+            for (int slave=1; slave<Pstream::nProcs(); slave++)
+            {
+                IPstream fromSlave(Pstream::scheduled, slave);
+                labelList polys(fromSlave);
+                cellList cellFaces(fromSlave);
+                faceList faces(fromSlave);
+
+                writePolysNPointsPerFaceBinary
+                (
+                    polys,
+                    cellFaces,
+                    faces,
+                    ensightGeometryFile
+                );
+            }
+        }
+        else
+        {
+            OPstream toMaster(Pstream::scheduled, Pstream::masterNo());
+            toMaster<< meshCellSets_.polys << cellFaces << faces;
+        }
 
-            forAll(cf, faceI)
+        // List of points id for each face of the above list
+        if (Pstream::master())
+        {
+            // Master
+            writePolysPointsBinary
+            (
+                meshCellSets_.polys,
+                cellFaces,
+                faces,
+                0,
+                ensightGeometryFile
+            );
+            // Slaves
+            for (int slave=1; slave<Pstream::nProcs(); slave++)
             {
-                const face& f = faces[cf[faceI]];
+                IPstream fromSlave(Pstream::scheduled, slave);
+                labelList polys(fromSlave);
+                cellList cellFaces(fromSlave);
+                faceList faces(fromSlave);
 
-                forAll(f, pointI)
-                {
-                    writeEnsDataBinary(f[pointI] + po,ensightGeometryFile);
-                }
+                writePolysPointsBinary
+                (
+                    polys,
+                    cellFaces,
+                    faces,
+                    pointOffsets[slave-1],
+                    ensightGeometryFile
+                );
             }
         }
+        else
+        {
+            OPstream toMaster(Pstream::scheduled, Pstream::masterNo());
+            toMaster<< meshCellSets_.polys << cellFaces << faces;
+        }
     }
 }
 
@@ -600,148 +867,359 @@ void Foam::ensightMesh::writeAllPrimsBinary
                 IPstream fromSlave(Pstream::scheduled, slave);
                 cellShapeList cellShapes(fromSlave);
 
-                writePrimsBinary
+                writePrimsBinary
+                (
+                    cellShapes,
+                    pointOffsets[slave-1],
+                    ensightGeometryFile
+                );
+            }
+        }
+        else
+        {
+            OPstream toMaster(Pstream::scheduled, Pstream::masterNo());
+            toMaster<< cellShapes;
+        }
+    }
+}
+
+
+void Foam::ensightMesh::writeFacePrims
+(
+    const faceList& patchFaces,
+    const label pointOffset,
+    OFstream& ensightGeometryFile
+) const
+{
+    if (patchFaces.size())
+    {
+        label po = pointOffset + 1;
+
+        forAll(patchFaces, i)
+        {
+            const face& patchFace = patchFaces[i];
+
+            forAll(patchFace, pointI)
+            {
+                ensightGeometryFile << setw(10) << patchFace[pointI] + po;
+            }
+            ensightGeometryFile << nl;
+        }
+    }
+}
+
+
+void Foam::ensightMesh::writeFacePrimsBinary
+(
+    const faceList& patchFaces,
+    const label pointOffset,
+    std::ofstream& ensightGeometryFile
+) const
+{
+    if (patchFaces.size())
+    {
+        label po = pointOffset + 1;
+
+        forAll(patchFaces, i)
+        {
+            const face& patchFace = patchFaces[i];
+
+            forAll(patchFace, pointI)
+            {
+                writeEnsDataBinary
+                (
+                    patchFace[pointI] + po,
+                    ensightGeometryFile
+                );
+            }
+        }
+    }
+}
+
+
+Foam::faceList Foam::ensightMesh::map
+(
+    const faceList& patchFaces,
+    const labelList& prims
+) const
+{
+    faceList ppf(prims.size());
+
+    forAll (prims, i)
+    {
+        ppf[i] = patchFaces[prims[i]];
+    }
+
+    return ppf;
+}
+
+
+void Foam::ensightMesh::writeAllFacePrims
+(
+    const char* key,
+    const labelList& prims,
+    const label nPrims,
+    const faceList& patchFaces,
+    const labelList& pointOffsets,
+    const labelList& patchProcessors,
+    OFstream& ensightGeometryFile
+) const
+{
+    if (nPrims)
+    {
+        if (Pstream::master())
+        {
+            ensightGeometryFile << key << nl << setw(10) << nPrims << nl;
+
+            if (&prims != NULL)
+            {
+                writeFacePrims
                 (
-                    cellShapes,
-                    pointOffsets[slave-1],
+                    map(patchFaces, prims),
+                    0,
                     ensightGeometryFile
                 );
             }
+
+            forAll (patchProcessors, i)
+            {
+                if (patchProcessors[i] != 0)
+                {
+                    label slave = patchProcessors[i];
+                    IPstream fromSlave(Pstream::scheduled, slave);
+                    faceList patchFaces(fromSlave);
+
+                    writeFacePrims
+                    (
+                        patchFaces,
+                        pointOffsets[i],
+                        ensightGeometryFile
+                    );
+                }
+            }
         }
-        else
+        else if (&prims != NULL)
         {
             OPstream toMaster(Pstream::scheduled, Pstream::masterNo());
-            toMaster<< cellShapes;
+            toMaster<< map(patchFaces, prims);
         }
     }
 }
 
 
-void Foam::ensightMesh::writeFacePrims
+void Foam::ensightMesh::writeNSidedNPointsPerFace
 (
-    const char* key,
     const faceList& patchFaces,
-    const label pointOffset,
     OFstream& ensightGeometryFile
 ) const
 {
-    if (patchFaces.size())
+    forAll(patchFaces, i)
     {
-        if (word(key) == "nsided")
-        {
-            ensightGeometryFile
-                << key << nl << setw(10) << patchFaces.size() << nl;
-
-            forAll(patchFaces, i)
-            {
-                ensightGeometryFile
-                    << setw(10) << patchFaces[i].size() << nl;
-            }
-        }
-
-        label po = pointOffset + 1;
-
-        forAll(patchFaces, i)
-        {
-            const face& patchFace = patchFaces[i];
-
-            forAll(patchFace, pointI)
-            {
-                ensightGeometryFile << setw(10) << patchFace[pointI] + po;
-            }
-            ensightGeometryFile << nl;
-        }
+        ensightGeometryFile
+            << setw(10) << patchFaces[i].size() << nl;
     }
 }
 
 
-void Foam::ensightMesh::writeFacePrimsBinary
+void Foam::ensightMesh::writeNSidedPoints
 (
-    const char* key,
     const faceList& patchFaces,
     const label pointOffset,
-    std::ofstream& ensightGeometryFile
+    OFstream& ensightGeometryFile
 ) const
 {
-    if (patchFaces.size())
+    writeFacePrims
+    (
+        patchFaces,
+        pointOffset,
+        ensightGeometryFile
+    );
+}
+
+
+void Foam::ensightMesh::writeAllNSided
+(
+    const labelList& prims,
+    const label nPrims,
+    const faceList& patchFaces,
+    const labelList& pointOffsets,
+    const labelList& patchProcessors,
+    OFstream& ensightGeometryFile
+) const
+{
+    if (nPrims)
     {
-        //TODO No buffer at the moment. To be done for speed purposes!
-        if (word(key) == "nsided")
+        if (Pstream::master())
         {
-            writeEnsDataBinary(key,ensightGeometryFile);
-            writeEnsDataBinary(patchFaces.size(),ensightGeometryFile);
+            ensightGeometryFile
+                << "nsided" << nl << setw(10) << nPrims << nl;
+        }
 
-            forAll(patchFaces, i)
+        // Number of points for each face
+        if (Pstream::master())
+        {
+            if (&prims != NULL)
             {
-                writeEnsDataBinary
+                writeNSidedNPointsPerFace
                 (
-                    patchFaces[i].size(),
+                    map(patchFaces, prims),
                     ensightGeometryFile
                 );
             }
-        }
 
-        label po = pointOffset + 1;
+            forAll (patchProcessors, i)
+            {
+                if (patchProcessors[i] != 0)
+                {
+                    label slave = patchProcessors[i];
+                    IPstream fromSlave(Pstream::scheduled, slave);
+                    faceList patchFaces(fromSlave);
 
-        forAll(patchFaces, i)
+                    writeNSidedNPointsPerFace
+                    (
+                        patchFaces,
+                        ensightGeometryFile
+                    );
+                }
+            }
+        }
+        else if (&prims != NULL)
         {
-            const face& patchFace = patchFaces[i];
+            OPstream toMaster(Pstream::scheduled, Pstream::masterNo());
+            toMaster<< map(patchFaces, prims);
+        }
 
-            forAll(patchFace, pointI)
+        // List of points id for each face
+        if (Pstream::master())
+        {
+            if (&prims != NULL)
             {
-                writeEnsDataBinary
+                writeNSidedPoints
                 (
-                    patchFace[pointI] + po,
+                    map(patchFaces, prims),
+                    0,
                     ensightGeometryFile
                 );
             }
+
+            forAll (patchProcessors, i)
+            {
+                if (patchProcessors[i] != 0)
+                {
+                    label slave = patchProcessors[i];
+                    IPstream fromSlave(Pstream::scheduled, slave);
+                    faceList patchFaces(fromSlave);
+
+                    writeNSidedPoints
+                    (
+                        patchFaces,
+                        pointOffsets[i],
+                        ensightGeometryFile
+                    );
+                }
+            }
+        }
+        else if (&prims != NULL)
+        {
+            OPstream toMaster(Pstream::scheduled, Pstream::masterNo());
+            toMaster<< map(patchFaces, prims);
         }
     }
 }
 
 
-Foam::faceList Foam::ensightMesh::map
+void Foam::ensightMesh::writeNSidedPointsBinary
 (
     const faceList& patchFaces,
-    const labelList& prims
+    const label pointOffset,
+    std::ofstream& ensightGeometryFile
 ) const
 {
-    faceList ppf(prims.size());
+    writeFacePrimsBinary
+    (
+        patchFaces,
+        pointOffset,
+        ensightGeometryFile
+    );
+}
 
-    forAll (prims, i)
+
+void Foam::ensightMesh::writeNSidedNPointsPerFaceBinary
+(
+    const faceList& patchFaces,
+    std::ofstream& ensightGeometryFile
+) const
+{
+    forAll(patchFaces, i)
     {
-        ppf[i] = patchFaces[prims[i]];
+        writeEnsDataBinary
+        (
+            patchFaces[i].size(),
+            ensightGeometryFile
+        );
     }
-
-    return ppf;
 }
 
 
-void Foam::ensightMesh::writeAllFacePrims
+void Foam::ensightMesh::writeAllNSidedBinary
 (
-    const char* key,
     const labelList& prims,
     const label nPrims,
     const faceList& patchFaces,
     const labelList& pointOffsets,
     const labelList& patchProcessors,
-    OFstream& ensightGeometryFile
+    std::ofstream& ensightGeometryFile
 ) const
 {
     if (nPrims)
     {
         if (Pstream::master())
         {
-            if (word(key) != "nsided")
+            writeEnsDataBinary("nsided",ensightGeometryFile);
+            writeEnsDataBinary(nPrims,ensightGeometryFile);
+        }
+
+        // Number of points for each face
+        if (Pstream::master())
+        {
+            if (&prims != NULL)
+            {
+                writeNSidedNPointsPerFaceBinary
+                (
+                    map(patchFaces, prims),
+                    ensightGeometryFile
+                );
+            }
+
+            forAll (patchProcessors, i)
             {
-                ensightGeometryFile << key << nl << setw(10) << nPrims << nl;
+                if (patchProcessors[i] != 0)
+                {
+                    label slave = patchProcessors[i];
+                    IPstream fromSlave(Pstream::scheduled, slave);
+                    faceList patchFaces(fromSlave);
+
+                    writeNSidedNPointsPerFaceBinary
+                    (
+                        patchFaces,
+                        ensightGeometryFile
+                    );
+                }
             }
+        }
+        else if (&prims != NULL)
+        {
+            OPstream toMaster(Pstream::scheduled, Pstream::masterNo());
+            toMaster<< map(patchFaces, prims);
+        }
 
+        // List of points id for each face
+        if (Pstream::master())
+        {
             if (&prims != NULL)
             {
-                writeFacePrims
+                writeNSidedPointsBinary
                 (
-                    key,
                     map(patchFaces, prims),
                     0,
                     ensightGeometryFile
@@ -756,9 +1234,8 @@ void Foam::ensightMesh::writeAllFacePrims
                     IPstream fromSlave(Pstream::scheduled, slave);
                     faceList patchFaces(fromSlave);
 
-                    writeFacePrims
+                    writeNSidedPointsBinary
                     (
-                        key,
                         patchFaces,
                         pointOffsets[i],
                         ensightGeometryFile
@@ -790,17 +1267,13 @@ void Foam::ensightMesh::writeAllFacePrimsBinary
     {
         if (Pstream::master())
         {
-            if (word(key) != "nsided")
-            {
-                writeEnsDataBinary(key,ensightGeometryFile);
-                writeEnsDataBinary(nPrims,ensightGeometryFile);
-            }
+            writeEnsDataBinary(key,ensightGeometryFile);
+            writeEnsDataBinary(nPrims,ensightGeometryFile);
 
             if (&prims != NULL)
             {
                 writeFacePrimsBinary
                 (
-                    key,
                     map(patchFaces, prims),
                     0,
                     ensightGeometryFile
@@ -817,7 +1290,6 @@ void Foam::ensightMesh::writeAllFacePrimsBinary
 
                     writeFacePrimsBinary
                     (
-                        key,
                         patchFaces,
                         pointOffsets[i],
                         ensightGeometryFile
@@ -863,8 +1335,6 @@ void Foam::ensightMesh::writeAscii
 {
     const Time& runTime = mesh_.time();
     const pointField& points = mesh_.points();
-    const cellList& cellFaces = mesh_.cells();
-    const faceList& faces = mesh_.faces();
     const cellShapeList& cellShapes = mesh_.cellShapes();
 
     word timeFile = prepend;
@@ -990,48 +1460,11 @@ void Foam::ensightMesh::writeAscii
             ensightGeometryFile
         );
 
-
-        if (meshCellSets_.nPolys)
-        {
-            if (Pstream::master())
-            {
-                /*
-                ensightGeometryFile
-                    << "nfaced" << nl
-                    << setw(10) << meshCellSets_.nPolys << nl;
-                */
-                writePolys
-                (
-                    meshCellSets_.polys,
-                    cellFaces,
-                    faces,
-                    0,
-                    ensightGeometryFile
-                );
-
-                for (int slave=1; slave<Pstream::nProcs(); slave++)
-                {
-                    IPstream fromSlave(Pstream::scheduled, slave);
-                    labelList polys(fromSlave);
-                    cellList cellFaces(fromSlave);
-                    faceList faces(fromSlave);
-
-                    writePolys
-                    (
-                        polys,
-                        cellFaces,
-                        faces,
-                        pointOffsets[slave-1],
-                        ensightGeometryFile
-                    );
-                }
-            }
-            else
-            {
-                OPstream toMaster(Pstream::scheduled, Pstream::masterNo());
-                toMaster<< meshCellSets_.polys << cellFaces << faces;
-            }
-        }
+        writeAllPolys
+        (
+            pointOffsets,
+            ensightGeometryFile
+        );
     }
 
 
@@ -1166,9 +1599,8 @@ void Foam::ensightMesh::writeAscii
                     ensightGeometryFile
                 );
 
-                writeAllFacePrims
+                writeAllNSided
                 (
-                    "nsided",
                     polys,
                     nfp.nPolys,
                     patchFaces,
@@ -1197,8 +1629,6 @@ void Foam::ensightMesh::writeBinary
 {
     //const Time& runTime = mesh.time();
     const pointField& points = mesh_.points();
-    const cellList& cellFaces = mesh_.cells();
-    const faceList& faces = mesh_.faces();
     const cellShapeList& cellShapes = mesh_.cellShapes();
 
     word timeFile = prepend;
@@ -1316,47 +1746,11 @@ void Foam::ensightMesh::writeBinary
             ensightGeometryFile
         );
 
-        if (meshCellSets_.nPolys)
-        {
-            if (Pstream::master())
-            {
-                /*
-                ensightGeometryFile
-                    << "nfaced" << nl
-                    << setw(10) << meshCellSets_.nPolys << nl;
-                */
-                writePolysBinary
-                (
-                    meshCellSets_.polys,
-                    cellFaces,
-                    faces,
-                    0,
-                    ensightGeometryFile
-                );
-
-                for (int slave=1; slave<Pstream::nProcs(); slave++)
-                {
-                    IPstream fromSlave(Pstream::scheduled, slave);
-                    labelList polys(fromSlave);
-                    cellList cellFaces(fromSlave);
-                    faceList faces(fromSlave);
-
-                    writePolysBinary
-                    (
-                        polys,
-                        cellFaces,
-                        faces,
-                        pointOffsets[slave-1],
-                        ensightGeometryFile
-                    );
-                }
-            }
-            else
-            {
-                OPstream toMaster(Pstream::scheduled, Pstream::masterNo());
-                toMaster<< meshCellSets_.polys << cellFaces << faces;
-            }
-        }
+        writeAllPolysBinary
+        (
+            pointOffsets,
+            ensightGeometryFile
+        );
 
     }
 
@@ -1495,9 +1889,8 @@ void Foam::ensightMesh::writeBinary
                     ensightGeometryFile
                 );
 
-                writeAllFacePrimsBinary
+                writeAllNSidedBinary
                 (
-                    "nsided",
                     polys,
                     nfp.nPolys,
                     patchFaces,
@@ -1516,4 +1909,5 @@ void Foam::ensightMesh::writeBinary
     }
 }
 
+
 // ************************************************************************* //
diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightMesh.H b/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightMesh.H
index 4ddb084d3d054c34961fb8e1d4c3a5a3bcb3db52..3eb9a1e612beec67a213324dc0cf2d395abef9a3 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightMesh.H
+++ b/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightMesh.H
@@ -57,6 +57,7 @@ class argList;
 
 class ensightMesh
 {
+public:
         class nFacePrimitives
         {
         public:
@@ -75,6 +76,7 @@ class ensightMesh
             {}
         };
 
+private:
 
     // Private data
 
@@ -134,7 +136,22 @@ class ensightMesh
             OFstream& ensightGeometryFile
         ) const;
 
-        void writePolys
+        void writePolysNFaces
+        (
+            const labelList& polys,
+            const cellList& cellFaces,
+            OFstream& ensightGeometryFile
+        ) const;
+
+        void writePolysNPointsPerFace
+        (
+            const labelList& polys,
+            const cellList& cellFaces,
+            const faceList& faces,
+            OFstream& ensightGeometryFile
+        ) const;
+
+        void writePolysPoints
         (
             const labelList& polys,
             const cellList& cellFaces,
@@ -143,6 +160,12 @@ class ensightMesh
             OFstream& ensightGeometryFile
         ) const;
 
+        void writeAllPolys
+        (
+            const labelList& pointOffsets,
+            OFstream& ensightGeometryFile
+        ) const;
+
         void writeAllPrims
         (
             const char* key,
@@ -154,7 +177,6 @@ class ensightMesh
 
         void writeFacePrims
         (
-            const char* key,
             const faceList& patchFaces,
             const label pointOffset,
             OFstream& ensightGeometryFile
@@ -177,6 +199,29 @@ class ensightMesh
             OFstream& ensightGeometryFile
         ) const;
 
+        void writeNSidedNPointsPerFace
+        (
+            const faceList& patchFaces,
+            OFstream& ensightGeometryFile
+        ) const;
+
+        void writeNSidedPoints
+        (
+            const faceList& patchFaces,
+            const label pointOffset,
+            OFstream& ensightGeometryFile
+        ) const;
+
+        void writeAllNSided
+        (
+            const labelList& prims,
+            const label nPrims,
+            const faceList& patchFaces,
+            const labelList& pointOffsets,
+            const labelList& patchProcessors,
+            OFstream& ensightGeometryFile
+        ) const;
+
         void writeAscii
         (
             const fileName& postProcPath,
@@ -209,7 +254,22 @@ class ensightMesh
             std::ofstream& ensightGeometryFile
         ) const;
 
-        void writePolysBinary
+        void writePolysNFacesBinary
+        (
+            const labelList& polys,
+            const cellList& cellFaces,
+            std::ofstream& ensightGeometryFile
+        ) const;
+
+        void writePolysNPointsPerFaceBinary
+        (
+            const labelList& polys,
+            const cellList& cellFaces,
+            const faceList& faces,
+            std::ofstream& ensightGeometryFile
+        ) const;
+
+        void writePolysPointsBinary
         (
             const labelList& polys,
             const cellList& cellFaces,
@@ -218,6 +278,12 @@ class ensightMesh
             std::ofstream& ensightGeometryFile
         ) const;
 
+        void writeAllPolysBinary
+        (
+            const labelList& pointOffsets,
+            std::ofstream& ensightGeometryFile
+        ) const;
+
         void writeAllFacePrimsBinary
         (
             const char* key,
@@ -231,12 +297,33 @@ class ensightMesh
 
         void writeFacePrimsBinary
         (
-            const char* key,
             const faceList& patchFaces,
             const label pointOffset,
             std::ofstream& ensightGeometryFile
         ) const;
 
+        void writeNSidedPointsBinary
+        (
+            const faceList& patchFaces,
+            const label pointOffset,
+            std::ofstream& ensightGeometryFile
+        ) const;
+
+        void writeNSidedNPointsPerFaceBinary
+        (
+            const faceList& patchFaces,
+            std::ofstream& ensightGeometryFile
+        ) const;
+
+        void writeAllNSidedBinary
+        (
+            const labelList& prims,
+            const label nPrims,
+            const faceList& patchFaces,
+            const labelList& pointOffsets,
+            const labelList& patchProcessors,
+            std::ofstream& ensightGeometryFile
+        ) const;
 
 public:
 
diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsight/foamToEnsight.C b/applications/utilities/postProcessing/dataConversion/foamToEnsight/foamToEnsight.C
index fc0c3db61cbc4e968edb040fe328a0c1fc66f41c..d0a59b5116f4cd0a5dd8d73a16807b16856a5fc6 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToEnsight/foamToEnsight.C
+++ b/applications/utilities/postProcessing/dataConversion/foamToEnsight/foamToEnsight.C
@@ -175,7 +175,7 @@ int main(int argc, char *argv[])
     ensightMesh eMesh(mesh, args, binary);
 
     // Set Time to the last time before looking for the lagrangian objects
-    runTime.setTime(Times[Times.size()-1], Times.size()-1);
+    runTime.setTime(Times.last(), Times.size()-1);
 
     IOobjectList objects(mesh, runTime.timeName());
 
diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/findFields.H b/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/findFields.H
index 63ef5eef21d7baee8c01bc8683fc29c16516cd4c..7a6bd938dc466be02a3dfa887bf732dbcd7db6dd 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/findFields.H
+++ b/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/findFields.H
@@ -8,7 +8,7 @@ HashTable< HashTable<word> > cloudFields;
 
 if (timeDirs.size())
 {
-    IOobjectList objs(mesh, timeDirs[timeDirs.size()-1].name());
+    IOobjectList objs(mesh, timeDirs.last().name());
 
     forAllConstIter(IOobjectList, objs, fieldIter)
     {
@@ -34,7 +34,7 @@ if (timeDirs.size())
     fileNameList cloudDirs = readDir
     (
         runTime.path()
-      / timeDirs[timeDirs.size()-1].name()
+      / timeDirs.last().name()
       / regionPrefix
       / cloud::prefix,
         fileName::DIRECTORY
@@ -54,7 +54,7 @@ if (timeDirs.size())
         IOobjectList objs
         (
             mesh,
-            timeDirs[timeDirs.size()-1].name(),
+            timeDirs.last().name(),
             cloud::prefix/cloudName
         );
 
diff --git a/applications/utilities/postProcessing/dataConversion/foamToFieldview9/foamToFieldview9.C b/applications/utilities/postProcessing/dataConversion/foamToFieldview9/foamToFieldview9.C
index 87270649df41445b6b77676ab141dfc0e155b68f..8f69fe0b2f6b4d74369d0805b07b4741a70dd7c1 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToFieldview9/foamToFieldview9.C
+++ b/applications/utilities/postProcessing/dataConversion/foamToFieldview9/foamToFieldview9.C
@@ -982,7 +982,7 @@ int main(int argc, char *argv[])
         rm(fvParticleFileName);
     }
 
-    Info << "End\n" << endl;
+    Info<< "End\n" << endl;
 
     return 0;
 }
diff --git a/applications/utilities/postProcessing/dataConversion/foamToFieldview9/writeFunctions.C b/applications/utilities/postProcessing/dataConversion/foamToFieldview9/writeFunctions.C
index f44d4499013033c25c686134b6fef7e5878befbe..d4dcdbbcf15622c5435dbbb40ceb507ac0bce997 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToFieldview9/writeFunctions.C
+++ b/applications/utilities/postProcessing/dataConversion/foamToFieldview9/writeFunctions.C
@@ -75,7 +75,7 @@ void writeBytes(char* start, int nBytes)
 
     cout<< start << " : ";
 
-    for(int i = 0; i < nBytes; i++)
+    for (int i = 0; i < nBytes; i++)
     {
         cout<< " " << start[i];
     }
diff --git a/applications/utilities/postProcessing/dataConversion/foamToFieldview9/write_binary_uns.c b/applications/utilities/postProcessing/dataConversion/foamToFieldview9/write_binary_uns.c
index 105d042792fe4c7ed0c08c92e7e8b48c31ecd1e0..6cd3eb6620b4ebfed7b19341a08af33118e25f6a 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToFieldview9/write_binary_uns.c
+++ b/applications/utilities/postProcessing/dataConversion/foamToFieldview9/write_binary_uns.c
@@ -423,7 +423,7 @@ int main()
 
 	fwrite(ibuf, sizeof(int), 3, outfp);
 
-	for(i = 0; i < num_faces_trim_cell; ++i) /* loop over the faces */
+	for (i = 0; i < num_faces_trim_cell; ++i) /* loop over the faces */
 	    fwrite(trim_cell_face[i], sizeof(int), trim_cell_face[i][0] + 1,
 		   outfp);
 
@@ -433,7 +433,7 @@ int main()
 
 	fwrite(ibuf, sizeof(int), 3, outfp);
 
-	for(i = 0; i < num_faces_hang_cell; ++i) /* loop over the faces */
+	for (i = 0; i < num_faces_hang_cell; ++i) /* loop over the faces */
 	    fwrite(hang_cell_face[i], sizeof(int), hang_cell_face[i][0] + 1,
 		   outfp);
 
@@ -519,7 +519,7 @@ int main()
 	ibuf[0] = A_WALL; /* wall value */
 	ibuf[1] = 0; /* number of hanging nodes */
 
-	for(i = 0; i < num_faces_trim_cell; ++i) /* write out face info */
+	for (i = 0; i < num_faces_trim_cell; ++i) /* write out face info */
 	{
 	    fwrite(ibuf, sizeof(int), 1, outfp); /* write wall value */
 	    fwrite(trim_cell_face[i], sizeof(int), trim_cell_face[i][0] + 1,
@@ -541,7 +541,7 @@ int main()
 	ibuf[2] = 1; /* number of hanging nodes for face 3 */
 	ibuf[3] = 31; /* the node number for the hanging node on face 3*/
 
-	for(i = 0; i < 2; ++i) /* write out face info for first 2 faces */
+	for (i = 0; i < 2; ++i) /* write out face info for first 2 faces */
 	{
 	    fwrite(ibuf, sizeof(int), 1, outfp); /* write wall value */
 	    fwrite(hang_cell_face[i], sizeof(int), hang_cell_face[i][0] + 1,
@@ -555,7 +555,7 @@ int main()
 	fwrite(&ibuf[2], sizeof(int), 2, outfp);
 
 	/* write out face info for last 3 faces */
-	for(i = 3; i < num_faces_hang_cell; ++i)
+	for (i = 3; i < num_faces_hang_cell; ++i)
 	{
 	    fwrite(ibuf, sizeof(int), 1, outfp); /* write wall value */
 	    fwrite(hang_cell_face[i], sizeof(int), hang_cell_face[i][0] + 1,
diff --git a/applications/utilities/postProcessing/dataConversion/foamToGMV/foamToGMV.C b/applications/utilities/postProcessing/dataConversion/foamToGMV/foamToGMV.C
index 05300da489a48638d8a13a65c5cbdc24a8fe1945..d9b807e316dac412d18d71bbd88e4612b92f9f41 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToGMV/foamToGMV.C
+++ b/applications/utilities/postProcessing/dataConversion/foamToGMV/foamToGMV.C
@@ -62,14 +62,14 @@ int main(int argc, char *argv[])
 
     // get the available time-steps
     instantList TimeList = runTime.times();
-    Info << TimeList << endl;
+    Info<< TimeList << endl;
     label nTimes = TimeList.size();
 
-    for(label n=1; n < nTimes; n++)
+    for (label n=1; n < nTimes; n++)
     {
         if (TimeList[n].value() > startTime)
         {
-            Info << "Time = " << TimeList[n].value() << nl;
+            Info<< "Time = " << TimeList[n].value() << nl;
 
             // Set Time
             runTime.setTime(TimeList[n], n);
diff --git a/applications/utilities/postProcessing/dataConversion/foamToGMV/gmvOutput.H b/applications/utilities/postProcessing/dataConversion/foamToGMV/gmvOutput.H
index 03523ed2de769888547857e6e52898efc7a75d30..124bab141197f36f8e01883dd9fc0ca991a14ffe 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToGMV/gmvOutput.H
+++ b/applications/utilities/postProcessing/dataConversion/foamToGMV/gmvOutput.H
@@ -24,7 +24,7 @@ for (label i=0; i < nTypes; i++)
         {
             volScalarField gmvScalarField(fieldObject, mesh);
             gmvFile << fieldName << " 0" << nl;
-            for(label indx=0;indx<mesh.nCells();indx++)
+            for (label indx=0;indx<mesh.nCells();indx++)
             {
                 gmvFile << gmvScalarField[indx] << " ";
             }
diff --git a/applications/utilities/postProcessing/dataConversion/foamToGMV/gmvOutputHeader.H b/applications/utilities/postProcessing/dataConversion/foamToGMV/gmvOutputHeader.H
index ff904f9a709d804131986edffdbbccdc9c400c2c..46fa702ea1cf0f08c205170608bc5561ff55374c 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToGMV/gmvOutputHeader.H
+++ b/applications/utilities/postProcessing/dataConversion/foamToGMV/gmvOutputHeader.H
@@ -4,29 +4,29 @@ const cellShapeList& cells = mesh.cellShapes();
 
 gmvFile << "gmvinput " << format << nl;
 gmvFile << "nodes   " << nPoints << nl;
-for(label indx=0;indx<nPoints;indx++)
+for (label indx=0;indx<nPoints;indx++)
 {
     gmvFile << points[indx].x() << " ";
 }
 gmvFile << nl;
-for(label indx=0;indx<nPoints;indx++)
+for (label indx=0;indx<nPoints;indx++)
 {
     gmvFile << points[indx].y() << " ";
 }
 gmvFile << nl;
-for(label indx=0;indx<nPoints;indx++)
+for (label indx=0;indx<nPoints;indx++)
 {
     gmvFile << points[indx].z() << " ";
 }
 gmvFile << nl;
 gmvFile << "cells   " << cells.size() << nl;
-for(label indx=0;indx<cells.size();indx++)
+for (label indx=0;indx<cells.size();indx++)
 {
     label nNodes = cells[indx].size();
     if (nNodes == 8)
     {
         gmvFile << "hex     " << 8 << " ";
-        for(label ip=0; ip<nNodes; ip++)
+        for (label ip=0; ip<nNodes; ip++)
         {
             gmvFile << cells[indx][ip] + 1 << " ";        
         }
@@ -35,7 +35,7 @@ for(label indx=0;indx<cells.size();indx++)
     else if (nNodes == 4)
     {
         gmvFile << "tet     " << 4 << " ";
-        for(label ip=0; ip<nNodes; ip++)
+        for (label ip=0; ip<nNodes; ip++)
         {
             gmvFile << cells[indx][ip] + 1 << " ";        
         }
@@ -44,7 +44,7 @@ for(label indx=0;indx<cells.size();indx++)
     else if (nNodes == 6)
     {
         gmvFile << "prism   " << 6 << " ";
-        for(label ip=0; ip<nNodes; ip++)
+        for (label ip=0; ip<nNodes; ip++)
         {
             gmvFile << cells[indx][ip] + 1 << " ";        
         }
diff --git a/applications/utilities/postProcessing/dataConversion/foamToGMV/itoa.C b/applications/utilities/postProcessing/dataConversion/foamToGMV/itoa.C
index 391d2c041c3d51f5c2faf9ffaa3d028b5e28e3f0..73df488b11bf62bdcb1bcc73b4b09b3da4cf1333 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToGMV/itoa.C
+++ b/applications/utilities/postProcessing/dataConversion/foamToGMV/itoa.C
@@ -44,7 +44,7 @@ word itoa(const label n)
 
     label leftOfN = n;
 
-    for(label i=0; i<length; i++)
+    for (label i=0; i<length; i++)
     {
         label j = label(leftOfN/pow(10, length-i-1));
         leftOfN -= j*pow(10,length-i-1);
diff --git a/applications/utilities/postProcessing/dataConversion/foamToGMV/moveMesh.H b/applications/utilities/postProcessing/dataConversion/foamToGMV/moveMesh.H
index ba4e27425a0f50014726b8fe49d4bce86453a401..e84837fd1c287473360b44207c5862b41824971c 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToGMV/moveMesh.H
+++ b/applications/utilities/postProcessing/dataConversion/foamToGMV/moveMesh.H
@@ -1,6 +1,6 @@
 IOobject ioPoints
 (
-    "points", 
+    "points",
     runTime.timeName(),
     mesh.name(),
     mesh
@@ -8,7 +8,7 @@ IOobject ioPoints
 
 if (ioPoints.headerOk())
 {
-    Info << "new points available" << endl;
+    Info<< "new points available" << endl;
     // Reading new points
     pointIOField newPoints
     (
@@ -22,6 +22,6 @@ if (ioPoints.headerOk())
             IOobject::NO_WRITE
         )
     );
-    
+
     mesh.movePoints(newPoints);
 }
diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/Allwmake b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/Allwmake
deleted file mode 100755
index 5866aa8f371296d65d50ffd0b6454e745502bcb4..0000000000000000000000000000000000000000
--- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/Allwmake
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-
-if [ "$TEC_360_2009" ]
-then
-    wmake
-fi
diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/Make/options b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/Make/options
index d03f44ae8cd509c3bcec9b62b2c7fc1ec3c31185..0c2c8b721607451a821a332a47319da09606246a 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/Make/options
+++ b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/Make/options
@@ -1,14 +1,12 @@
 EXE_INC = \
-    -I$(TEC_360_2009)/include \
-    /* -I../tecio/tecsrc/lnInclude/ */ \
+    -I$(WM_THIRD_PARTY_DIR)/tecio/tecsrc/lnInclude \
     -I$(LIB_SRC)/lagrangian/basic/lnInclude \
     -I$(LIB_SRC)/finiteVolume/lnInclude \
     -I$(LIB_SRC)/meshTools/lnInclude
 
 
 EXE_LIBS = \
-    $(TEC_360_2009)/lib/tecio64.a \
-    /* -L$(FOAM_USER_LIBBIN) -ltecio */ \
+    -ltecio \
     -llagrangian \
     -lfiniteVolume \
     -lmeshTools
diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/foamToTecplot360.C b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/foamToTecplot360.C
index d514609ff2ac93904ef354e35880f8d21b458831..82d02f25232c98fb9ef12ebbdb16cae22cf23ac5 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/foamToTecplot360.C
+++ b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/foamToTecplot360.C
@@ -65,6 +65,9 @@ Usage
     information as a single argument. The double quotes denote a regular
     expression.
 
+    @param -useTimeName \n
+    use the time index in the VTK file name instead of the time index
+
 \*---------------------------------------------------------------------------*/
 
 #include "pointMesh.H"
@@ -240,7 +243,7 @@ int main(int argc, char *argv[])
 #   include "createNamedMesh.H"
 
     // TecplotData/ directory in the case
-    fileName fvPath(runTime.path()/"TecplotData-bin");
+    fileName fvPath(runTime.path()/"Tecplot360");
     // Directory of mesh (region0 gets filtered out)
     fileName regionPrefix = "";
 
@@ -536,7 +539,8 @@ int main(int argc, char *argv[])
             varLocation
         );
 
-        // strandID (= some zone id)
+        // strandID (= piece id. Gets incremented for every piece of geometry
+        // that is output)
         INTEGER4 strandID = 1;
 
 
@@ -647,7 +651,7 @@ int main(int argc, char *argv[])
                     writer.writePolyhedralZone
                     (
                         mesh.name(),        // regionName
-                        1,  //strandID,           // strandID
+                        strandID,           // strandID
                         mesh,
                         List<INTEGER4>(3, ValueLocation_Nodal),
                         nFaceNodes
@@ -684,7 +688,7 @@ int main(int argc, char *argv[])
                 writer.writePolyhedralZone
                 (
                     mesh.name(),        // regionName
-                    1,  //strandID,           // strandID
+                    strandID++,         // strandID
                     mesh,
                     varLocation,
                     0
@@ -776,7 +780,7 @@ int main(int argc, char *argv[])
             writer.writePolygonalZone
             (
                 setName,
-                1,  //strandID,
+                strandID++,
                 ipp,
                 allVarLocation
             );
@@ -793,7 +797,7 @@ int main(int argc, char *argv[])
                 (
                     writer.getFaceField
                     (
-                        fvc::interpolate(vsf[i])(),
+                        linearInterpolate(vsf[i])(),
                         faceLabels
                     )()
                 );
@@ -804,7 +808,7 @@ int main(int argc, char *argv[])
                 (
                     writer.getFaceField
                     (
-                        fvc::interpolate(vvf[i])(),
+                        linearInterpolate(vvf[i])(),
                         faceLabels
                     )()
                 );
@@ -815,7 +819,7 @@ int main(int argc, char *argv[])
                 (
                     writer.getFaceField
                     (
-                        fvc::interpolate(vSpheretf[i])(),
+                        linearInterpolate(vSpheretf[i])(),
                         faceLabels
                     )()
                 );
@@ -826,7 +830,7 @@ int main(int argc, char *argv[])
                 (
                     writer.getFaceField
                     (
-                        fvc::interpolate(vSymmtf[i])(),
+                        linearInterpolate(vSymmtf[i])(),
                         faceLabels
                     )()
                 );
@@ -837,7 +841,7 @@ int main(int argc, char *argv[])
                 (
                     writer.getFaceField
                     (
-                        fvc::interpolate(vtf[i])(),
+                        linearInterpolate(vtf[i])(),
                         faceLabels
                     )()
                 );
@@ -903,7 +907,7 @@ int main(int argc, char *argv[])
         {
             label patchID = patchIDs[i];
             const polyPatch& pp = patches[patchID];
-            INTEGER4 strandID = 1 + i;
+            //INTEGER4 strandID = 1 + i;
 
             Info<< "    Writing patch " << patchID << "\t" << pp.name()
                 << "\tstrand:" << strandID << nl << endl;
@@ -917,7 +921,7 @@ int main(int argc, char *argv[])
             writer.writePolygonalZone
             (
                 pp.name(),
-                strandID,
+                strandID++,     //strandID,
                 ipp,
                 allVarLocation
             );
@@ -1073,7 +1077,7 @@ int main(int argc, char *argv[])
                 writer.writePolygonalZone
                 (
                     pp.name(),
-                    1+patchIDs.size()+zoneI,    //strandID,
+                    strandID++, //1+patchIDs.size()+zoneI,    //strandID,
                     ipp,
                     allVarLocation
                 );
@@ -1090,7 +1094,7 @@ int main(int argc, char *argv[])
                     (
                         writer.getFaceField
                         (
-                            fvc::interpolate(vsf[i])(),
+                            linearInterpolate(vsf[i])(),
                             pp
                         )()
                     );
@@ -1101,7 +1105,7 @@ int main(int argc, char *argv[])
                     (
                         writer.getFaceField
                         (
-                            fvc::interpolate(vvf[i])(),
+                            linearInterpolate(vvf[i])(),
                             pp
                         )()
                     );
@@ -1112,7 +1116,7 @@ int main(int argc, char *argv[])
                     (
                         writer.getFaceField
                         (
-                            fvc::interpolate(vSpheretf[i])(),
+                            linearInterpolate(vSpheretf[i])(),
                             pp
                         )()
                     );
@@ -1123,7 +1127,7 @@ int main(int argc, char *argv[])
                     (
                         writer.getFaceField
                         (
-                            fvc::interpolate(vSymmtf[i])(),
+                            linearInterpolate(vSymmtf[i])(),
                             pp
                         )()
                     );
@@ -1134,7 +1138,7 @@ int main(int argc, char *argv[])
                     (
                         writer.getFaceField
                         (
-                            fvc::interpolate(vtf[i])(),
+                            linearInterpolate(vtf[i])(),
                             pp
                         )()
                     );
@@ -1196,29 +1200,29 @@ int main(int argc, char *argv[])
                 Info<< "        vectors           :";
                 print(Info, vectorNames);
 
-                wordList sphereNames
-                (
-                    sprayObjs.names
-                    (
-                        sphericalTensorIOField::typeName
-                    )
-                );
-                Info<< "        spherical tensors :";
-                print(Info, sphereNames);
-
-                wordList symmNames
-                (
-                    sprayObjs.names
-                    (
-                        symmTensorIOField::typeName
-                    )
-                );
-                Info<< "        symm tensors      :";
-                print(Info, symmNames);
-
-                wordList tensorNames(sprayObjs.names(tensorIOField::typeName));
-                Info<< "        tensors           :";
-                print(Info, tensorNames);
+                //wordList sphereNames
+                //(
+                //    sprayObjs.names
+                //    (
+                //        sphericalTensorIOField::typeName
+                //    )
+                //);
+                //Info<< "        spherical tensors :";
+                //print(Info, sphereNames);
+                //
+                //wordList symmNames
+                //(
+                //    sprayObjs.names
+                //    (
+                //        symmTensorIOField::typeName
+                //    )
+                //);
+                //Info<< "        symm tensors      :";
+                //print(Info, symmNames);
+                //
+                //wordList tensorNames(sprayObjs.names(tensorIOField::typeName));
+                //Info<< "        tensors           :";
+                //print(Info, tensorNames);
 
 
                 // Load cloud positions
@@ -1277,7 +1281,7 @@ int main(int argc, char *argv[])
                 writer.writeOrderedZone
                 (
                     cloudDirs[cloudI],
-                    strandID,
+                    strandID++,     //strandID,
                     parcels.size(),
                     allVarLocation
                 );
diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecplotWriter.C b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecplotWriter.C
index 47165d80a448adbec08991a0e7de239e1314a8cf..97e94d49824adfa674665e7e90aa498d2493b0b7 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecplotWriter.C
+++ b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecplotWriter.C
@@ -79,7 +79,7 @@ Pout<< endl
 void Foam::tecplotWriter::writePolyhedralZone
 (
     const word& zoneName,
-    const INTEGER4 strandID,
+    INTEGER4 strandID,
     const fvMesh& mesh,
     const List<INTEGER4>& varLocArray,
     INTEGER4 nFaceNodes
@@ -95,7 +95,6 @@ void Foam::tecplotWriter::writePolyhedralZone
     INTEGER4  KCellMax   = 0;         /* Not Used, set to zero */
 
     double    SolTime    = runTime_.value();     /* solution time   */
-    INTEGER4  StrandID   = 1;         /* static zone     */
     INTEGER4  ParentZone = 0;         /* no parent zone  */
 
     INTEGER4  IsBlock    = 1;         /* block format  */
@@ -135,7 +134,7 @@ Pout<< "zoneName:" << zoneName
             &JCellMax,                    
             &KCellMax,                    
             &SolTime,                
-            &StrandID,                    
+            &strandID,                    
             &ParentZone,                 
             &IsBlock,
             &NFConns,
diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecplotWriterTemplates.C b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecplotWriterTemplates.C
index f337b20d380836f9f06d2634f19470c0c108a407..f9a01d57a4ba31bd3aef10148a75ac0efb8554f9 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecplotWriterTemplates.C
+++ b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecplotWriterTemplates.C
@@ -26,11 +26,11 @@ License
 
 #include "tecplotWriter.H"
 
-extern "C"
-{
+//extern "C"
+//{
     #include "MASTER.h"
     #include "GLOBAL.h"
-}
+//}
 
 #include "fvc.H"
 
diff --git a/applications/utilities/postProcessing/dataConversion/smapToFoam/smapToFoam.C b/applications/utilities/postProcessing/dataConversion/smapToFoam/smapToFoam.C
index 748ce3f5991764aaea464b2dcf72d074efd6b810..1a29e87652603cb016eb8558ad279cc711bc365d 100644
--- a/applications/utilities/postProcessing/dataConversion/smapToFoam/smapToFoam.C
+++ b/applications/utilities/postProcessing/dataConversion/smapToFoam/smapToFoam.C
@@ -233,7 +233,7 @@ int main(int argc, char *argv[])
         }
     }
 
-    Info << "End\n" << endl;
+    Info<< "End\n" << endl;
 
     return 0;
 }
diff --git a/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/Allwmake b/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/Allwmake
deleted file mode 100755
index b1106aa608e77914b8c251d30e8978b6a00dcc3b..0000000000000000000000000000000000000000
--- a/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/Allwmake
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/bin/sh
-cd ${0%/*} || exit 1    # run from this directory
-set -x
-
-if [ -d "$ParaView_DIR" -a -r "$ParaView_DIR" ]
-then
-   case "$ParaView_VERSION" in
-   2*)
-      wmake libso vtkFoam
-      (
-         cd PVFoamReader
-         mkdir -p Make/$WM_OPTIONS > /dev/null 2>&1
-         cd Make/$WM_OPTIONS
-         cmake ../..
-         make
-      )
-      ;;
-   esac
-fi
-
-# ----------------------------------------------------------------- end-of-file
diff --git a/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/PVFoamReader/CMakeLists.txt b/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/PVFoamReader/CMakeLists.txt
deleted file mode 100644
index 1c88efbbfff2b768cc1cdb3938bc190d54d7e45e..0000000000000000000000000000000000000000
--- a/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/PVFoamReader/CMakeLists.txt
+++ /dev/null
@@ -1,79 +0,0 @@
-# Set the project/library name here.  Classes should be declared as
-# "class VTK_FoamReader_EXPORT vtkFoo", where PVFoamReader is the name of the
-# project set here.
-PROJECT(PVFoamReader)
-
-# Set your list of sources here.  Do not change the name of the
-# PVFoamReader_SRCS variable.
-SET(PVFoamReader_SRCS
-  vtkFoamReader.cxx
-  vtkFoamData.cxx
-)
-
-# List the kits from VTK that are needed by this project.  Do not
-# change the name of the PVFoamReader_LIBS variable.
-SET(PVFoamReader_LIBS
-  vtkGraphics
-)
-
-INCLUDE_DIRECTORIES(
-    $ENV{WM_PROJECT_DIR}/src/OpenFOAM/lnInclude
-    $ENV{WM_PROJECT_DIR}/src/finiteVolume/lnInclude
-    $ENV{ParaView_INST_DIR}/include
-    ../vtkFoam/lnInclude
-)
-ADD_DEFINITIONS(-DWM_$ENV{WM_PRECISION_OPTION})
-
-#-----------------------------------------------------------------------------
-# Most users should not need to change anything below this line.
-
-# Need to include class headers and the configuration header.
-INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR})
-INCLUDE_DIRECTORIES(${PROJECT_BINARY_DIR})
-
-# Import ParaView build settings.
-FIND_PACKAGE(ParaView)
-IF(NOT ParaView_FOUND)
-  MESSAGE(FATAL_ERROR "ParaView is required.  Set ParaView_DIR.")
-ENDIF(NOT ParaView_FOUND)
-IF(NOT PARAVIEW_BUILD_SHARED_LIBS)
-  MESSAGE(FATAL_ERROR "ParaView must be built with BUILD_SHARED_LIBS ON.")
-ENDIF(NOT PARAVIEW_BUILD_SHARED_LIBS)
-INCLUDE(${PARAVIEW_USE_FILE})
-
-# Configure output directories.
-SET (LIBRARY_OUTPUT_PATH $ENV{FOAM_LIBBIN} CACHE INTERNAL
-     "Single output directory for building all libraries.")
-SET (EXECUTABLE_OUTPUT_PATH $ENV{FOAM_APPBIN} CACHE INTERNAL
-     "Single output directory for building all executables.")
-
-# Create the configuration header.
-CONFIGURE_FILE(${PROJECT_SOURCE_DIR}/PVFoamReaderConfigure.h.in
-               ${PROJECT_BINARY_DIR}/vtk${PROJECT_NAME}Configure.h
-               @ONLY IMMEDIATE)
-
-# Must be defined before ADD_LIBRARY  for cmake version 2.3.4-20060317
-LINK_DIRECTORIES($ENV{FOAM_LIBBIN})
-LINK_DIRECTORIES($ENV{FOAM_USER_LIBBIN})
-
-# Create vtk client/server wrappers for the classes.
-VTK_WRAP_ClientServer(${PROJECT_NAME} PVFoamReaderCS_SRCS "${PVFoamReader_SRCS}")
-
-# Build the package as a plugin for ParaView.
-ADD_LIBRARY(${PROJECT_NAME} MODULE ${PVFoamReader_SRCS} ${PVFoamReaderCS_SRCS})
-LINK_DIRECTORIES($ENV{ParaView_INST_DIR}/lib)
-TARGET_LINK_LIBRARIES(${PROJECT_NAME} vtkClientServer)
-FOREACH(c ${PVFoamReader_LIBS})
-  TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${c}CS)
-ENDFOREACH(c)
-
-# Place the package configuration file into the build tree.
-CONFIGURE_FILE(${PROJECT_SOURCE_DIR}/PVFoamReader.xml.in
-               ${PROJECT_BINARY_DIR}/../${PROJECT_NAME}.xml @ONLY IMMEDIATE)
-
-# Place the package configuration file into the build tree.
-CONFIGURE_FILE(${PROJECT_SOURCE_DIR}/PVFoamReader.pvsm.in
-               ${PROJECT_BINARY_DIR}/../${PROJECT_NAME}.pvsm @ONLY IMMEDIATE)
-
-TARGET_LINK_LIBRARIES(${PROJECT_NAME} OpenFOAM finiteVolume vtkFoam)
-#-----------------------------------------------------------------------------
diff --git a/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/PVFoamReader/Make/PVFoamReader.pvsm b/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/PVFoamReader/Make/PVFoamReader.pvsm
deleted file mode 100644
index e3a097219e5bd6396d5e40f4eeac95c03be8a0f8..0000000000000000000000000000000000000000
--- a/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/PVFoamReader/Make/PVFoamReader.pvsm
+++ /dev/null
@@ -1,154 +0,0 @@
-<ServerManagerConfiguration>
-    <ProxyGroup name="sources">
-    <SourceProxy
-
-        name="FoamReader" 
-        class="vtkFoamReader">
-
-        <StringVectorProperty
-            name="FileName"
-            command="SetFileName"
-            number_of_elements="1">
-            <StringListDomain name="files"/>
-        </StringVectorProperty>
-
-        <IntVectorProperty 
-            name="UpdateGUI" 
-            command="SetUpdateGUI" 
-            number_of_elements="1"
-            default_values="0"> 
-            <BooleanDomain name="bool"/>
-        </IntVectorProperty>
-
-        <IntVectorProperty 
-            name="CacheMesh" 
-            command="SetCacheMesh" 
-            number_of_elements="1"
-            default_values="1">
-            <BooleanDomain name="bool"/>
-        </IntVectorProperty>
-
-        <IntVectorProperty 
-            name="TimeStepRangeInfo"
-            command="GetTimeStepRange"
-            information_only="1">
-            <SimpleIntInformationHelper/>
-        </IntVectorProperty>
-        <IntVectorProperty
-            name="TimeStep"
-            command="SetTimeStep"
-            number_of_elements="1"
-            animateable="1"
-            default_values="0">
-            <IntRangeDomain name="range">
-                <RequiredProperties>
-                    <Property name="TimeStepRangeInfo" function="Range"/>
-                </RequiredProperties>
-            </IntRangeDomain>
-        </IntVectorProperty>
-
-        <IntVectorProperty 
-            name="TimeStepLimitsInfo"
-            command="GetTimeStepLimits"
-            information_only="1">
-            <SimpleIntInformationHelper/>
-        </IntVectorProperty>
-        <IntVectorProperty
-            name="TimeStepLimits"
-            command="SetTimeStepLimits"
-            number_of_elements="2"
-            default_values="2 5" >
-            <IntRangeDomain name="range">
-                <RequiredProperties>
-                    <Property name="TimeStepLimitsInfo" function="Range"/>
-                </RequiredProperties>
-            </IntRangeDomain>
-        </IntVectorProperty>
-
-        <StringVectorProperty 
-            name="TimeArrayInfo"
-            information_only="1">
-            <ArraySelectionInformationHelper attribute_name="Time"/>
-        </StringVectorProperty>
-        <StringVectorProperty
-            name="TimeStatus"
-            command="SetTimeArrayStatus"
-            number_of_elements="0" 
-            repeat_command="1"
-            number_of_elements_per_command="2"
-            element_types="2 0"
-    	    information_property="TimeArrayInfo">
-            <ArraySelectionDomain name="array_list">
-                <RequiredProperties>
-                    <Property name="TimeArrayInfo"
-                    function="ArrayList"/>
-                </RequiredProperties>
-            </ArraySelectionDomain>
-        </StringVectorProperty>
-
-        <StringVectorProperty 
-            name="RegionArrayInfo"
-            information_only="1">
-            <ArraySelectionInformationHelper attribute_name="Region"/>
-        </StringVectorProperty>
-        <StringVectorProperty
-            name="RegionStatus"
-            command="SetRegionArrayStatus"
-            number_of_elements="0" 
-            repeat_command="1"
-            number_of_elements_per_command="2"
-            element_types="2 0"
-    	    information_property="RegionArrayInfo">
-            <ArraySelectionDomain name="array_list">
-                <RequiredProperties>
-                    <Property name="RegionArrayInfo"
-                        function="ArrayList"/>
-                </RequiredProperties>
-            </ArraySelectionDomain>
-        </StringVectorProperty>
-
-        <StringVectorProperty 
-            name="VolFieldArrayInfo"
-            information_only="1">
-            <ArraySelectionInformationHelper attribute_name="VolField"/>
-        </StringVectorProperty>
-        <StringVectorProperty
-            name="VolFieldStatus"
-            command="SetVolFieldArrayStatus"
-            number_of_elements="0" 
-            repeat_command="1"
-            number_of_elements_per_command="2"
-            element_types="2 0"
-    	    information_property="VolFieldArrayInfo">
-            <ArraySelectionDomain name="array_list">
-                <RequiredProperties>
-                    <Property name="VolFieldArrayInfo"
-                        function="ArrayList"/>
-                </RequiredProperties>
-            </ArraySelectionDomain>
-        </StringVectorProperty>
-
-        <StringVectorProperty 
-            name="PointFieldArrayInfo"
-            information_only="1">
-            <ArraySelectionInformationHelper attribute_name="PointField"/>
-        </StringVectorProperty>
-        <StringVectorProperty
-            name="PointFieldStatus"
-            command="SetPointFieldArrayStatus"
-            number_of_elements="0" 
-            repeat_command="1"
-            number_of_elements_per_command="2"
-            element_types="2 0"
-	        information_property="PointFieldArrayInfo">
-            <ArraySelectionDomain name="array_list">
-                <RequiredProperties>
-                    <Property name="PointFieldArrayInfo"
-                        function="ArrayList"/>
-                </RequiredProperties>
-            </ArraySelectionDomain>
-        </StringVectorProperty>
-
-    </SourceProxy>
-    </ProxyGroup>
-</ServerManagerConfiguration>
diff --git a/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/PVFoamReader/Make/PVFoamReader.xml b/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/PVFoamReader/Make/PVFoamReader.xml
deleted file mode 100644
index 91e00b78d68150cdae95e6221506415d09d4638a..0000000000000000000000000000000000000000
--- a/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/PVFoamReader/Make/PVFoamReader.xml
+++ /dev/null
@@ -1,71 +0,0 @@
-<ModuleInterfaces>
-    <Library name="PVFoamReader"/>
-    <ServerManagerFile name="PVFoamReader.pvsm"/>
-
-    <Module name="FoamReader"
-        class="vtkPVAdvancedReaderModule"
-        root_name="Foam"
-        output="vtkDataSet"
-        module_type="Reader"
-        extensions=".foam"
-        file_description="Foam case">
-
-        <Source class="vtkFoamReader"/>
-
-        <LabeledToggle
-            label="Update GUI"
-            trace_name="UpdateGUI"
-            property="UpdateGUI"
-            help="To update GUI without execution toggle this Accept and Reset."/>
-
-        <LabeledToggle
-            label="Cache Mesh"
-            trace_name="CacheMesh"
-            property="CacheMesh"
-            help="Cache the FOAM mesh between GUI selection changes."/>
-
-        <Scale
-            property="TimeStep"
-            trace_name="TimeStep"
-            label="Time step"
-            display_entry="0"
-            display_value="1"
-            entry_and_label_on_top="0"
-            help="Select a time step."
-            keeps_timesteps="1"
-            range_source="TimeStepRange"/>
-
-        <VectorEntry
-            property="TimeStepLimits"
-            type="int"
-            trace_name="TimeStepLimits"
-            length="2"
-            label="Lower and Upper Times"
-            help="Maximum lower and upper number of time steps displayed in the selection list."/>
-
-        <ArraySelection
-            label_text="Time"
-            property="TimeStatus"
-            trace_name="TimeArrays"/>
-
-        <ArraySelection
-            label_text="Region"
-            property="RegionStatus"
-            trace_name="RegionArrays"/>
-
-        <ArraySelection
-            label_text="Vol Field"
-            property="VolFieldStatus"
-            trace_name="CellArrays"/>
-
-        <ArraySelection
-            label_text="Point Field"
-            property="PointFieldStatus"
-            trace_name="PointArrays"/>
-
-        <Documentation>
-            ParaView Foam reader module
-        </Documentation>
-    </Module>
-
-</ModuleInterfaces>
diff --git a/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/PVFoamReader/PVFoamReader.pvsm.in b/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/PVFoamReader/PVFoamReader.pvsm.in
deleted file mode 100644
index e3a097219e5bd6396d5e40f4eeac95c03be8a0f8..0000000000000000000000000000000000000000
--- a/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/PVFoamReader/PVFoamReader.pvsm.in
+++ /dev/null
@@ -1,154 +0,0 @@
-<ServerManagerConfiguration>
-    <ProxyGroup name="sources">
-    <SourceProxy
-
-        name="FoamReader" 
-        class="vtkFoamReader">
-
-        <StringVectorProperty
-            name="FileName"
-            command="SetFileName"
-            number_of_elements="1">
-            <StringListDomain name="files"/>
-        </StringVectorProperty>
-
-        <IntVectorProperty 
-            name="UpdateGUI" 
-            command="SetUpdateGUI" 
-            number_of_elements="1"
-            default_values="0"> 
-            <BooleanDomain name="bool"/>
-        </IntVectorProperty>
-
-        <IntVectorProperty 
-            name="CacheMesh" 
-            command="SetCacheMesh" 
-            number_of_elements="1"
-            default_values="1">
-            <BooleanDomain name="bool"/>
-        </IntVectorProperty>
-
-        <IntVectorProperty 
-            name="TimeStepRangeInfo"
-            command="GetTimeStepRange"
-            information_only="1">
-            <SimpleIntInformationHelper/>
-        </IntVectorProperty>
-        <IntVectorProperty
-            name="TimeStep"
-            command="SetTimeStep"
-            number_of_elements="1"
-            animateable="1"
-            default_values="0">
-            <IntRangeDomain name="range">
-                <RequiredProperties>
-                    <Property name="TimeStepRangeInfo" function="Range"/>
-                </RequiredProperties>
-            </IntRangeDomain>
-        </IntVectorProperty>
-
-        <IntVectorProperty 
-            name="TimeStepLimitsInfo"
-            command="GetTimeStepLimits"
-            information_only="1">
-            <SimpleIntInformationHelper/>
-        </IntVectorProperty>
-        <IntVectorProperty
-            name="TimeStepLimits"
-            command="SetTimeStepLimits"
-            number_of_elements="2"
-            default_values="2 5" >
-            <IntRangeDomain name="range">
-                <RequiredProperties>
-                    <Property name="TimeStepLimitsInfo" function="Range"/>
-                </RequiredProperties>
-            </IntRangeDomain>
-        </IntVectorProperty>
-
-        <StringVectorProperty 
-            name="TimeArrayInfo"
-            information_only="1">
-            <ArraySelectionInformationHelper attribute_name="Time"/>
-        </StringVectorProperty>
-        <StringVectorProperty
-            name="TimeStatus"
-            command="SetTimeArrayStatus"
-            number_of_elements="0" 
-            repeat_command="1"
-            number_of_elements_per_command="2"
-            element_types="2 0"
-    	    information_property="TimeArrayInfo">
-            <ArraySelectionDomain name="array_list">
-                <RequiredProperties>
-                    <Property name="TimeArrayInfo"
-                    function="ArrayList"/>
-                </RequiredProperties>
-            </ArraySelectionDomain>
-        </StringVectorProperty>
-
-        <StringVectorProperty 
-            name="RegionArrayInfo"
-            information_only="1">
-            <ArraySelectionInformationHelper attribute_name="Region"/>
-        </StringVectorProperty>
-        <StringVectorProperty
-            name="RegionStatus"
-            command="SetRegionArrayStatus"
-            number_of_elements="0" 
-            repeat_command="1"
-            number_of_elements_per_command="2"
-            element_types="2 0"
-    	    information_property="RegionArrayInfo">
-            <ArraySelectionDomain name="array_list">
-                <RequiredProperties>
-                    <Property name="RegionArrayInfo"
-                        function="ArrayList"/>
-                </RequiredProperties>
-            </ArraySelectionDomain>
-        </StringVectorProperty>
-
-        <StringVectorProperty 
-            name="VolFieldArrayInfo"
-            information_only="1">
-            <ArraySelectionInformationHelper attribute_name="VolField"/>
-        </StringVectorProperty>
-        <StringVectorProperty
-            name="VolFieldStatus"
-            command="SetVolFieldArrayStatus"
-            number_of_elements="0" 
-            repeat_command="1"
-            number_of_elements_per_command="2"
-            element_types="2 0"
-    	    information_property="VolFieldArrayInfo">
-            <ArraySelectionDomain name="array_list">
-                <RequiredProperties>
-                    <Property name="VolFieldArrayInfo"
-                        function="ArrayList"/>
-                </RequiredProperties>
-            </ArraySelectionDomain>
-        </StringVectorProperty>
-
-        <StringVectorProperty 
-            name="PointFieldArrayInfo"
-            information_only="1">
-            <ArraySelectionInformationHelper attribute_name="PointField"/>
-        </StringVectorProperty>
-        <StringVectorProperty
-            name="PointFieldStatus"
-            command="SetPointFieldArrayStatus"
-            number_of_elements="0" 
-            repeat_command="1"
-            number_of_elements_per_command="2"
-            element_types="2 0"
-	        information_property="PointFieldArrayInfo">
-            <ArraySelectionDomain name="array_list">
-                <RequiredProperties>
-                    <Property name="PointFieldArrayInfo"
-                        function="ArrayList"/>
-                </RequiredProperties>
-            </ArraySelectionDomain>
-        </StringVectorProperty>
-
-    </SourceProxy>
-    </ProxyGroup>
-</ServerManagerConfiguration>
diff --git a/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/PVFoamReader/PVFoamReader.xml.in b/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/PVFoamReader/PVFoamReader.xml.in
deleted file mode 100644
index 5eb2a4a8e8a4f674474ac098450dfbb2748ff391..0000000000000000000000000000000000000000
--- a/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/PVFoamReader/PVFoamReader.xml.in
+++ /dev/null
@@ -1,71 +0,0 @@
-<ModuleInterfaces>
-    <Library name="@PROJECT_NAME@"/>
-    <ServerManagerFile name="@PROJECT_NAME@.pvsm"/>
-
-    <Module name="FoamReader"
-        class="vtkPVAdvancedReaderModule"
-        root_name="Foam"
-        output="vtkDataSet"
-        module_type="Reader"
-        extensions=".foam"
-        file_description="Foam case">
-
-        <Source class="vtkFoamReader"/>
-
-        <LabeledToggle
-            label="Update GUI"
-            trace_name="UpdateGUI"
-            property="UpdateGUI"
-            help="To update GUI without execution toggle this Accept and Reset."/>
-
-        <LabeledToggle
-            label="Cache Mesh"
-            trace_name="CacheMesh"
-            property="CacheMesh"
-            help="Cache the FOAM mesh between GUI selection changes."/>
-
-        <Scale
-            property="TimeStep"
-            trace_name="TimeStep"
-            label="Time step"
-            display_entry="0"
-            display_value="1"
-            entry_and_label_on_top="0"
-            help="Select a time step."
-            keeps_timesteps="1"
-            range_source="TimeStepRange"/>
-
-        <VectorEntry
-            property="TimeStepLimits"
-            type="int"
-            trace_name="TimeStepLimits"
-            length="2"
-            label="Lower and Upper Times"
-            help="Maximum lower and upper number of time steps displayed in the selection list."/>
-
-        <ArraySelection
-            label_text="Time"
-            property="TimeStatus"
-            trace_name="TimeArrays"/>
-
-        <ArraySelection
-            label_text="Region"
-            property="RegionStatus"
-            trace_name="RegionArrays"/>
-
-        <ArraySelection
-            label_text="Vol Field"
-            property="VolFieldStatus"
-            trace_name="CellArrays"/>
-
-        <ArraySelection
-            label_text="Point Field"
-            property="PointFieldStatus"
-            trace_name="PointArrays"/>
-
-        <Documentation>
-            ParaView Foam reader module
-        </Documentation>
-    </Module>
-
-</ModuleInterfaces>
diff --git a/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/PVFoamReader/PVFoamReaderConfigure.h.in b/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/PVFoamReader/PVFoamReaderConfigure.h.in
deleted file mode 100644
index aae4a079a2faf8d11545d4048049e4f0a4a258ed..0000000000000000000000000000000000000000
--- a/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/PVFoamReader/PVFoamReaderConfigure.h.in
+++ /dev/null
@@ -1,18 +0,0 @@
-/*=========================================================================
-This source has no copyright.  It is intended to be copied by users
-wishing to create their own ParaView plugin classes locally.
-=========================================================================*/
-#ifndef __vtk@PROJECT_NAME@_h
-#define __vtk@PROJECT_NAME@_h
-
-#if defined(_WIN32)
-# if defined(@PROJECT_NAME@_EXPORTS)
-#  define VTK_@PROJECT_NAME@_EXPORT __declspec(dllexport)
-# else
-#  define VTK_@PROJECT_NAME@_EXPORT __declspec(dllimport)
-# endif
-#else
-# define VTK_@PROJECT_NAME@_EXPORT
-#endif
-
-#endif
diff --git a/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/PVFoamReader/vtkFoamReader.cxx b/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/PVFoamReader/vtkFoamReader.cxx
deleted file mode 100644
index d977104ce28e26993b12342c86d4847a141a12ba..0000000000000000000000000000000000000000
--- a/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/PVFoamReader/vtkFoamReader.cxx
+++ /dev/null
@@ -1,411 +0,0 @@
-/*---------------------------------------------------------------------------*\
-  =========                 |
-  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
-   \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2009 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 2 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, write to the Free Software Foundation,
-    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-Description
-
-\*---------------------------------------------------------------------------*/
-
-#include <ctype.h>
-
-#include "vtkFoamReader.h"
-
-#include "vtkCallbackCommand.h"
-#include "vtkDataArraySelection.h"
-#include "vtkDataArrayCollection.h"
-#include "vtkObjectFactory.h"
-#include "vtkDataSet.h"
-#include "vtkErrorCode.h"
-#include "vtkUnstructuredGrid.h"
-
-#include "vtkFoam.H"
-
-// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
-
-vtkCxxRevisionMacro(vtkFoamReader, "$Revision: 1.20 $");
-vtkStandardNewMacro(vtkFoamReader);
-
-// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
-
-vtkFoamReader::vtkFoamReader()
-{
-    StoredOutputs = NULL;
-
-    FileName  = NULL;
-    foamData_ = NULL;
-
-    CacheMesh = 0;
-
-    UpdateGUI = 1;
-    UpdateGUIOld = 1;
-    TimeStep = 0;
-    TimeStepRange[0] = 0;
-    TimeStepRange[1] = 0;
-
-    TimeStepLimits[0] = 2;
-    TimeStepLimits[1] = 5;
-
-    TimeSelection = vtkDataArraySelection::New();
-    RegionSelection = vtkDataArraySelection::New();
-    VolFieldSelection = vtkDataArraySelection::New();
-    PointFieldSelection = vtkDataArraySelection::New();
-
-    // Setup the selection callback to modify this object when an array
-    // selection is changed.
-    SelectionObserver = vtkCallbackCommand::New();
-    SelectionObserver->SetCallback(&vtkFoamReader::SelectionModifiedCallback);
-    SelectionObserver->SetClientData(this);
-
-    TimeSelection->AddObserver
-    (
-        vtkCommand::ModifiedEvent,
-        this->SelectionObserver
-    );
-    RegionSelection->AddObserver
-    (
-        vtkCommand::ModifiedEvent,
-        this->SelectionObserver
-    );
-    VolFieldSelection->AddObserver
-    (
-        vtkCommand::ModifiedEvent,
-        this->SelectionObserver
-    );
-    PointFieldSelection->AddObserver
-    (
-        vtkCommand::ModifiedEvent,
-        this->SelectionObserver
-    );
-
-    // This is needed by ParaView 2.?.?
-    this->SetNumberOfOutputPorts(0);
-}
-
-
-// * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
-
-vtkFoamReader::~vtkFoamReader()
-{
-    if (foamData_)
-    {
-        delete foamData_;
-    }
-
-    if (StoredOutputs)
-    {
-        StoredOutputs->Delete();
-    }
-
-    if (FileName)
-    {
-        delete [] FileName;
-    }
-
-    TimeSelection->RemoveObserver(this->SelectionObserver);
-    RegionSelection->RemoveObserver(this->SelectionObserver);
-    VolFieldSelection->RemoveObserver(this->SelectionObserver);
-    PointFieldSelection->RemoveObserver(this->SelectionObserver);
-    SelectionObserver->Delete();
-
-    TimeSelection->Delete();
-    RegionSelection->Delete();
-    VolFieldSelection->Delete();
-    PointFieldSelection->Delete();
-}
-
-
-// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
-
-void vtkFoamReader::ExecuteInformation()
-{
-    if (!foamData_)
-    {
-        vtkDebugMacro( << "Reading Foam case" << FileName);
-        foamData_ = new Foam::vtkFoam(FileName, this);
-    }
-    else
-    {
-        foamData_->UpdateInformation();
-    }
-
-    vtkDebugMacro( << "end of ExecuteInformation\n");
-}
-
-
-void vtkFoamReader::Execute()
-{
-    if (!StoredOutputs)
-    {
-        foamData_->Update();
-
-        StoredOutputs = vtkFoamData::New();
-
-        for (int i = 0; i < GetNumberOfOutputs(); i++)
-        {
-            vtkDataObject* tmp = GetOutput(i);
-            vtkDataObject* output = tmp->NewInstance();
-            output->ShallowCopy(tmp);
-            StoredOutputs->SetNthOutput(i, output);
-            output->Delete();
-        }
-    }
-    else
-    {
-        for (int i = 0; i < GetNumberOfOutputs(); i++)
-        {
-            vtkDataObject* output = GetOutput(i);
-            int tempExtent[6];
-            output->GetUpdateExtent(tempExtent);
-            output->ShallowCopy(StoredOutputs->GetOutput(i));
-            output->SetUpdateExtent(tempExtent);
-        }
-
-        if (UpdateGUIOld == GetUpdateGUI())
-        {
-            foamData_->Update();
-
-            for (int i = 0; i < GetNumberOfOutputs(); i++)
-            {
-                vtkDataObject* tmp = GetOutput(i);
-                vtkDataObject* output = tmp->NewInstance();
-                output->ShallowCopy(tmp);
-                StoredOutputs->SetNthOutput(i, output);
-                output->Delete();
-            }
-        }
-    }
-
-    UpdateGUIOld = GetUpdateGUI();
-}
-
-
-void vtkFoamReader::SetFileName(const char *name)
-{
-    if (name && !FileName || (FileName && !strcmp(FileName,name)))
-    {
-        if (!FileName)
-        {
-            FileName = new char[strlen(name) + 1];
-            strcpy(FileName, name);
-        }
-    }
-    else
-    {
-        vtkErrorMacro("Changing case is not currently supported.\nPlease delete reader and create a new one for the new case.");
-        return;
-    }
-
-    /*
-    if ( FileName && name && (!strcmp(FileName,name)))
-    {
-        return;
-    }
-
-    if (!name && !FileName)
-    {
-        return;
-    }
-
-    if (FileName)
-    {
-        delete [] FileName;
-    }
-
-    FileName = new char[strlen(name) + 1];
-    strcpy(FileName, name);
-
-    if (foamData_)
-    {
-        delete foamData_;
-        foamData_ = NULL;
-
-        if (StoredOutputs)
-        {
-            StoredOutputs->Delete();
-            StoredOutputs = NULL;
-        }
-    }
-
-    Modified();
-    */
-}
-
-
-void vtkFoamReader::PrintSelf(ostream& os, vtkIndent indent)
-{
-    Superclass::PrintSelf(os,indent);
-
-    os  << indent << "File Name: " 
-        << (FileName ? FileName : "(none)") << "\n";
-}
-
-
-vtkDataArraySelection* vtkFoamReader::GetTimeSelection()
-{
-    return TimeSelection;
-}
-
-int vtkFoamReader::GetNumberOfTimeArrays()
-{
-    return TimeSelection->GetNumberOfArrays();
-}
-
-const char* vtkFoamReader::GetTimeArrayName(int index)
-{
-    return TimeSelection->GetArrayName(index);
-}
-
-int vtkFoamReader::GetTimeArrayStatus(const char* name)
-{
-    return TimeSelection->ArrayIsEnabled(name);
-}
-
-void vtkFoamReader::SetTimeArrayStatus(const char* name, int status)
-{
-    if(status)
-    {
-        TimeSelection->EnableArray(name);
-    }
-    else
-    {
-        TimeSelection->DisableArray(name);
-    }
-}
-
-vtkDataArraySelection* vtkFoamReader::GetRegionSelection()
-{
-    return RegionSelection;
-}
-
-int vtkFoamReader::GetNumberOfRegionArrays()
-{
-    return RegionSelection->GetNumberOfArrays();
-}
-
-const char* vtkFoamReader::GetRegionArrayName(int index)
-{
-    return RegionSelection->GetArrayName(index);
-}
-
-int vtkFoamReader::GetRegionArrayStatus(const char* name)
-{
-    return RegionSelection->ArrayIsEnabled(name);
-}
-
-void vtkFoamReader::SetRegionArrayStatus(const char* name, int status)
-{
-    if(status)
-    {
-        RegionSelection->EnableArray(name);
-    }
-    else
-    {
-        RegionSelection->DisableArray(name);
-    }
-}
-
-
-vtkDataArraySelection* vtkFoamReader::GetVolFieldSelection()
-{
-    return VolFieldSelection;
-}
-
-int vtkFoamReader::GetNumberOfVolFieldArrays()
-{
-    return VolFieldSelection->GetNumberOfArrays();
-}
-
-const char* vtkFoamReader::GetVolFieldArrayName(int index)
-{
-    return VolFieldSelection->GetArrayName(index);
-}
-
-int vtkFoamReader::GetVolFieldArrayStatus(const char* name)
-{
-    return VolFieldSelection->ArrayIsEnabled(name);
-}
-
-void vtkFoamReader::SetVolFieldArrayStatus(const char* name, int status)
-{
-    if(status)
-    {
-        VolFieldSelection->EnableArray(name);
-    }
-    else
-    {
-        VolFieldSelection->DisableArray(name);
-    }
-}
-
-
-vtkDataArraySelection* vtkFoamReader::GetPointFieldSelection()
-{
-    return PointFieldSelection;
-}
-
-int vtkFoamReader::GetNumberOfPointFieldArrays()
-{
-    return PointFieldSelection->GetNumberOfArrays();
-}
-
-const char* vtkFoamReader::GetPointFieldArrayName(int index)
-{
-    return PointFieldSelection->GetArrayName(index);
-}
-
-int vtkFoamReader::GetPointFieldArrayStatus(const char* name)
-{
-    return PointFieldSelection->ArrayIsEnabled(name);
-}
-
-void vtkFoamReader::SetPointFieldArrayStatus(const char* name, int status)
-{
-    if(status)
-    {
-        PointFieldSelection->EnableArray(name);
-    }
-    else
-    {
-        PointFieldSelection->DisableArray(name);
-    }
-}
-
-
-void vtkFoamReader::SelectionModifiedCallback
-(
-    vtkObject*,
-    unsigned long,
-    void* clientdata,
-    void*
-)
-{
-    static_cast<vtkFoamReader*>(clientdata)->SelectionModified();
-}
-
-void vtkFoamReader::SelectionModified()
-{
-    Modified();
-}
-
-
-// ************************************************************************* //
diff --git a/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/PVFoamReader/vtkFoamReader.h b/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/PVFoamReader/vtkFoamReader.h
deleted file mode 100644
index 023c064086ba8a8c691143dc27a65c18795f1a97..0000000000000000000000000000000000000000
--- a/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/PVFoamReader/vtkFoamReader.h
+++ /dev/null
@@ -1,200 +0,0 @@
-/*---------------------------------------------------------------------------*\
-  =========                 |
-  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
-   \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2009 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 2 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, write to the Free Software Foundation,
-    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-Class
-    vtkFoamReader
-
-Description
-
-SourceFiles
-    vtkFoamReader.cxx
-
-\*---------------------------------------------------------------------------*/
-
-#ifndef vtkFoamReader_h
-#define vtkFoamReader_h
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-#include "vtkDataSetSource.h"
-#include "vtkFoamData.h"
-
-// * * * * * * * * * * * * * Forward Declarations  * * * * * * * * * * * * * //
-
-namespace Foam
-{
-    class vtkFoam;
-}
-
-class vtkPoints;
-class vtkDataArraySelection;
-class vtkDataArrayCollection;
-class vtkCallbackCommand;
-
-/*---------------------------------------------------------------------------*\
-                         Class vtkFoamReader Declaration
-\*---------------------------------------------------------------------------*/
-
-class VTK_IO_EXPORT vtkFoamReader
-: 
-    public vtkDataSetSource
-{
-
-public:
-
-    //- Standard VTK class creation function
-    static vtkFoamReader *New();
-
-    //- Standard VTK class type and revision declaration macro
-    vtkTypeRevisionMacro(vtkFoamReader,vtkDataSetSource);
-
-    //- Standard VTK class print function
-    void PrintSelf(ostream& os, vtkIndent indent);
-
-    // File name of FOAM datafile to read
-    void SetFileName(const char *);
-    //vtkSetStringMacro(FileName);
-    vtkGetStringMacro(FileName);
-
-    // GUI update control
-    vtkSetMacro(UpdateGUI, int);
-    vtkGetMacro(UpdateGUI, int);
-
-    // FOAM mesh caching control
-    vtkSetMacro(CacheMesh, int);
-    vtkGetMacro(CacheMesh, int);
-
-    // Time-step slider control
-    vtkSetMacro(TimeStep, int);
-    vtkGetMacro(TimeStep, int);
-    vtkSetVector2Macro(TimeStepRange, int);
-    vtkGetVector2Macro(TimeStepRange, int);
-
-    // Control of the upper and lower limits on the number of times
-    // displayed in the selection list
-    vtkSetVector2Macro(TimeStepLimits, int);
-    vtkGetVector2Macro(TimeStepLimits, int);
-
-    // Time selection list control
-    vtkDataArraySelection* GetTimeSelection();
-    int GetNumberOfTimeArrays();
-    const char* GetTimeArrayName(int index);
-    int GetTimeArrayStatus(const char* name);
-    void SetTimeArrayStatus(const char* name, int status);
-
-    // Region selection list control
-    vtkDataArraySelection* GetRegionSelection();
-    int GetNumberOfRegionArrays();
-    const char* GetRegionArrayName(int index);
-    int GetRegionArrayStatus(const char* name);
-    void SetRegionArrayStatus(const char* name, int status);
-
-    // volField selection list control
-    vtkDataArraySelection* GetVolFieldSelection();
-    int GetNumberOfVolFieldArrays();
-    const char* GetVolFieldArrayName(int index);
-    int GetVolFieldArrayStatus(const char* name);
-    void SetVolFieldArrayStatus(const char* name, int status);
-
-    // pointField selection list control
-    vtkDataArraySelection* GetPointFieldSelection();
-    int GetNumberOfPointFieldArrays();
-    const char* GetPointFieldArrayName(int index);
-    int GetPointFieldArrayStatus(const char* name);
-    void SetPointFieldArrayStatus(const char* name, int status);  
-
-    // SetNthOutput provided so that vtkFoam can access it
-    void SetNthOutput(int num, vtkDataObject *output)
-    {
-        vtkDataSetSource::SetNthOutput(num, output);
-    }
-
-    // Standard VTK ExecuteInformation function overriding the base-class.
-    // Called by ParaView before GUI is displayed.
-    virtual void ExecuteInformation();
-
-    // Callback registered with the SelectionObserver
-    // for all the selection lists
-    static void SelectionModifiedCallback
-    (
-        vtkObject* caller,
-        unsigned long eid,
-        void* clientdata,
-        void* calldata
-    );
-
-    void SelectionModified();
-
-
-protected:
-
-    vtkFoamReader();
-    ~vtkFoamReader();
-
-    // Standard VTK execute function overriding the base-class.
-    // Called by ParaView when Accept is pressed.
-    void Execute();
-
-    // Cache for the outputs.  These are stored before the end of Execute()
-    // and re-instated at the beginning because the Outputs would disappear
-    // otherwise.
-    vtkFoamData* StoredOutputs;
-
-    // FOAM file name (*.foam)
-    char *FileName;
-
-    //BTX
-    Foam::vtkFoam* foamData_;
-    //ETX
-
-    int CacheMesh;
-
-    int UpdateGUI;
-    int UpdateGUIOld;
-    int TimeStep;
-    int TimeStepRange[2];
-
-    int TimeStepLimits[2];
-
-    vtkDataArraySelection* TimeSelection;
-    vtkDataArraySelection* RegionSelection;
-    vtkDataArraySelection* VolFieldSelection;
-    vtkDataArraySelection* PointFieldSelection;
-
-    // The observer to modify this object when the array selections are modified
-    vtkCallbackCommand* SelectionObserver;
-
-
-private:
-
-    vtkFoamReader(const vtkFoamReader&);  // Not implemented.
-    void operator=(const vtkFoamReader&);  // Not implemented.
-};
-
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-#endif
-
-// ************************************************************************* //
diff --git a/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/PVFoamReader/vtkPVFoamSelectTimeSet.cxx b/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/PVFoamReader/vtkPVFoamSelectTimeSet.cxx
deleted file mode 100644
index fd948578da81a6a9df0553c6f80c6ef841baece3..0000000000000000000000000000000000000000
--- a/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/PVFoamReader/vtkPVFoamSelectTimeSet.cxx
+++ /dev/null
@@ -1,531 +0,0 @@
-/*=========================================================================
-
-  Program:   ParaView
-  Module:    $RCSfile: vtkPVFoamSelectTimeSet.cxx,v $
-
-  Copyright (c) Kitware, Inc.
-  All rights reserved.
-  See Copyright.txt or http://www.paraview.org/HTML/Copyright.html for details.
-
-     This software is distributed WITHOUT ANY WARRANTY; without even
-     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
-     PURPOSE.  See the above copyright notice for more information.
-
-=========================================================================*/
-#include "vtkPVFoamSelectTimeSet.h"
-
-#include "vtkDataArrayCollection.h"
-#include "vtkFloatArray.h"
-#include "vtkKWFrame.h"
-#include "vtkKWLabel.h"
-#include "vtkKWLabeledFrame.h"
-#include "vtkKWMenu.h"
-#include "vtkObjectFactory.h"
-#include "vtkPVAnimationInterfaceEntry.h"
-#include "vtkPVApplication.h"
-#include "vtkPVProcessModule.h"
-#include "vtkPVScalarListWidgetProperty.h"
-#include "vtkPVSource.h"
-#include "vtkPVXMLElement.h"
-
-#include <vtkstd/string>
-
-//-----------------------------------------------------------------------------
-vtkStandardNewMacro(vtkPVFoamSelectTimeSet);
-vtkCxxRevisionMacro(vtkPVFoamSelectTimeSet, "$Revision: 1.39 $");
-
-//-----------------------------------------------------------------------------
-int vtkDataArrayCollectionCommand(ClientData cd, Tcl_Interp *interp,
-                                  int argc, char *argv[]);
-
-//-----------------------------------------------------------------------------
-vtkPVFoamSelectTimeSet::vtkPVFoamSelectTimeSet()
-{
-  this->LabeledFrame = vtkKWLabeledFrame::New();
-  this->LabeledFrame->SetParent(this);
-  
-  this->TimeLabel = vtkKWLabel::New();
-  this->TimeLabel->SetParent(this->LabeledFrame->GetFrame());
-
-  this->TreeFrame = vtkKWWidget::New();
-  this->TreeFrame->SetParent(this->LabeledFrame->GetFrame());
-
-  this->Tree = vtkKWWidget::New();
-  this->Tree->SetParent(this->TreeFrame);
-
-  this->TimeValue = 0.0;
-
-  this->FrameLabel = 0;
-  
-  this->TimeSets = vtkDataArrayCollection::New();
-  
-  this->Property = 0;
-  
-  this->SetCommand = 0;
-  this->ServerSideID.ID = 0;
-}
-
-//-----------------------------------------------------------------------------
-vtkPVFoamSelectTimeSet::~vtkPVFoamSelectTimeSet()
-{
-  this->LabeledFrame->Delete();
-  this->Tree->Delete();
-  this->TreeFrame->Delete();
-  this->TimeLabel->Delete();
-  this->SetFrameLabel(0);
-  this->TimeSets->Delete();
-  this->SetSetCommand(0);
-  if(this->ServerSideID.ID)
-    {
-    vtkPVProcessModule* pm = this->GetPVApplication()->GetProcessModule();
-    pm->DeleteStreamObject(this->ServerSideID);
-    pm->SendStream(vtkProcessModule::DATA_SERVER);
-    }
-}
-
-//-----------------------------------------------------------------------------
-void vtkPVFoamSelectTimeSet::SetLabel(const char* label)
-{
-  this->SetFrameLabel(label);
-  if (this->GetApplication())
-    {
-    this->LabeledFrame->SetLabel(label);
-    }
-}
-
-//-----------------------------------------------------------------------------
-const char* vtkPVFoamSelectTimeSet::GetLabel()
-{
-  return this->GetFrameLabel();
-}
-
-//-----------------------------------------------------------------------------
-void vtkPVFoamSelectTimeSet::Create(vtkKWApplication *pvApp)
-{
-  // Call the superclass to create the widget and set the appropriate flags
-
-  if (!this->vtkKWWidget::Create(pvApp, "frame", "-bd 2 -relief flat"))
-    {
-    vtkErrorMacro("Failed creating widget " << this->GetClassName());
-    return;
-    }
-
-  // For getting the widget in a script.
-  if ((this->TraceNameState == vtkPVWidget::Uninitialized ||
-       this->TraceNameState == vtkPVWidget::Default) )
-    {
-    this->SetTraceName("FoamSelectTimeSet");
-    this->SetTraceNameState(vtkPVWidget::SelfInitialized);
-    }
-  
-  this->LabeledFrame->Create(this->GetApplication(), 0);
-  if (this->FrameLabel)
-    {
-    this->LabeledFrame->SetLabel(this->FrameLabel);
-    }
-  this->TimeLabel->Create(this->GetApplication(), "");
-
-  char label[32];
-  sprintf(label, "Time value: %12.5e", 0.0);
-  this->TimeLabel->SetLabel(label);
-  this->Script("pack %s", this->TimeLabel->GetWidgetName());
-  
-  this->TreeFrame->Create(this->GetApplication(), "ScrolledWindow", 
-                          "-relief sunken -bd 2");
-
-  this->Tree->Create(this->GetApplication(), "Tree", 
-                     "-background white -bd 0 -width 15 -padx 2 "
-                     "-redraw 1 -relief flat -selectbackground red");
-  this->Script("%s bindText <ButtonPress-1>  {%s SetTimeValueCallback}",
-               this->Tree->GetWidgetName(), this->GetTclName());
-  this->Script("%s setwidget %s", this->TreeFrame->GetWidgetName(),
-               this->Tree->GetWidgetName());
-
-  this->Script("pack %s -expand t -fill x", this->TreeFrame->GetWidgetName());
-
-  this->Script("pack %s -side top -expand t -fill x", 
-               this->LabeledFrame->GetWidgetName());
-
-}
-
-//-----------------------------------------------------------------------------
-void vtkPVFoamSelectTimeSet::SetTimeValue(float time)
-{
-  if (this->TimeValue != time ||
-      !this->TimeLabel->GetLabel() ||
-      !strcmp(this->TimeLabel->GetLabel(), "No timesets available."))
-    { 
-    this->TimeValue = time; 
-    
-    char label[32];
-    sprintf(label, "Time value: %12.5e", time);
-    this->TimeLabel->SetLabel(label);
-    this->Modified(); 
-    } 
-}
-
-//-----------------------------------------------------------------------------
-void vtkPVFoamSelectTimeSet::SetTimeValueCallback(const char* item)
-{
-  if (this->TimeSets->GetNumberOfItems() == 0)
-    {
-    return;
-    }
-
-  if ( strncmp(item, "timeset", strlen("timeset")) == 0 )
-    {
-    this->Script("if [%s itemcget %s -open] "
-                 "{%s closetree %s} else {%s opentree %s}", 
-                 this->Tree->GetWidgetName(), item,
-                 this->Tree->GetWidgetName(), item,
-                 this->Tree->GetWidgetName(), item);
-    return;
-    }
-
-  this->Script("%s selection set %s", this->Tree->GetWidgetName(),
-               item);
-  this->Script("%s itemcget %s -data", this->Tree->GetWidgetName(),
-               item);
-  const char* result = this->GetApplication()->GetMainInterp()->result;
-  if (result[0] == '\0')
-    {
-    return;
-    }
-
-  int index[2];
-  sscanf(result, "%d %d", &(index[0]), &(index[1]));
-
-  this->SetTimeSetsFromReader();
-  this->SetTimeValue(this->TimeSets->GetItem(index[0])->GetTuple1(index[1]));
-  this->ModifiedCallback();
-}
-
-//-----------------------------------------------------------------------------
-void vtkPVFoamSelectTimeSet::AddRootNode(const char* name, const char* text)
-{
-  if (!this->GetApplication())
-    {
-    return;
-    }
-  this->Script("%s insert end root %s -text {%s}", this->Tree->GetWidgetName(),
-               name, text);
-}
-
-//-----------------------------------------------------------------------------
-void vtkPVFoamSelectTimeSet::AddChildNode(const char* parent, const char* name, 
-                                      const char* text, const char* data)
-{
-  if (!this->GetApplication())
-    {
-    return;
-    }
-  this->Script("%s insert end %s %s -text {%s} -data %s", 
-               this->Tree->GetWidgetName(), parent, name, text, data);
-}
-
-
-//-----------------------------------------------------------------------------
-void vtkPVFoamSelectTimeSet::SaveInBatchScript(ofstream *file)
-{
-  *file << "  [$pvTemp" << this->PVSource->GetVTKSourceID(0) 
-        <<  " GetProperty " << this->SetCommand << "] SetElements1 "
-        << this->Property->GetScalar(0) << endl;
-}
-
-//-----------------------------------------------------------------------------
-void vtkPVFoamSelectTimeSet::AcceptInternal(vtkClientServerID sourceID)
-{
-  if (this->ModifiedFlag)
-    {
-    this->Script("%s selection get", this->Tree->GetWidgetName());
-    this->AddTraceEntry("$kw(%s) SetTimeValueCallback {%s}", 
-                        this->GetTclName(), 
-                        this->GetApplication()->GetMainInterp()->result);
-    }
-
-  this->Property->SetVTKSourceID(sourceID);
-  this->Property->SetScalars(1, &this->TimeValue);
-  this->Property->AcceptInternal();
-
-  this->ModifiedFlag = 0;
-}
-
-//---------------------------------------------------------------------------
-void vtkPVFoamSelectTimeSet::Trace(ofstream *file)
-{
-  if ( ! this->InitializeTrace(file))
-    {
-    return;
-    }
-
-  this->Script("%s selection get", this->Tree->GetWidgetName());
-  *file << "$kw(" << this->GetTclName() << ") SetTimeValueCallback {"
-        << this->GetApplication()->GetMainInterp()->result << "}" << endl;
-}
-
-
-//-----------------------------------------------------------------------------
-void vtkPVFoamSelectTimeSet::ResetInternal()
-{
-  if ( ! this->ModifiedFlag)
-    {
-    return;
-    }
-
-  // Command to update the UI.
-  if (!this->Tree)
-    {
-    return;
-    }
-
-  this->Script("%s delete [%s nodes root]", this->Tree->GetWidgetName(),
-               this->Tree->GetWidgetName());
-  
-  this->SetTimeSetsFromReader();
-
-  int timeSetId=0;
-  char timeSetName[32];
-  char timeSetText[32];
-
-  char timeValueName[32];
-  char timeValueText[32];
-  char indices[32];
-
-  float actualTimeValue = this->Property->GetScalar(0);
-  int matchFound = 0;
-
-  this->ModifiedFlag = 0;
-
-  if (this->TimeSets->GetNumberOfItems() == 0)
-    {
-    this->Script("pack forget %s", this->TreeFrame->GetWidgetName());
-    this->TimeLabel->SetLabel("No timesets available.");
-    return;
-    }
-  else
-    {
-    this->SetTimeValue(actualTimeValue);
-    this->Script("pack %s -expand t -fill x", this->TreeFrame->GetWidgetName());
-    }
-
-  this->TimeSets->InitTraversal();
-  vtkDataArray* da;
-  while( (da=this->TimeSets->GetNextItem()) )
-    {
-    timeSetId++;
-    sprintf(timeSetName,"timeset%d", timeSetId);
-    sprintf(timeSetText,"Time Set %d", timeSetId); 
-    this->AddRootNode(timeSetName, timeSetText);
-    
-    vtkIdType tuple;
-    for(tuple=0; tuple<da->GetNumberOfTuples(); tuple++)
-      {
-      float timeValue = da->GetTuple1(tuple);
-      sprintf(timeValueName, "time%d_%-12.5e", timeSetId, timeValue);
-      sprintf(timeValueText, "%-12.5e", timeValue);
-      ostrstream str;
-      str << "{" << timeSetId-1 << " " << tuple << "}" << ends;
-      sprintf(indices, "%s", str.str());
-      str.rdbuf()->freeze(0);
-      this->AddChildNode(timeSetName, timeValueName, timeValueText, indices);
-      if (actualTimeValue == timeValue && !matchFound)
-        {
-        matchFound=1;
-        this->Script("%s selection set %s", this->Tree->GetWidgetName(),
-                     timeValueName);
-        }
-      }
-    if (timeSetId == 1)
-      {
-      this->Script("%s opentree %s", this->Tree->GetWidgetName(), 
-                   timeSetName);
-      }
-    }
-  
-  this->SetTimeValue(actualTimeValue);
-}
-
-//-----------------------------------------------------------------------------
-void vtkPVFoamSelectTimeSet::AddAnimationScriptsToMenu(vtkKWMenu *menu, 
-                                                   vtkPVAnimationInterfaceEntry *ai)
-{
-  char methodAndArgs[500];
-
-  sprintf(methodAndArgs, "AnimationMenuCallback %s", ai->GetTclName()); 
-  // I do not under stand why the trace name is used for the
-  // menu entry, but Berk must know.
-  menu->AddCommand(this->GetTraceName(), this, methodAndArgs, 0, "");
-}
-
-
-//-----------------------------------------------------------------------------
-// What a pain.  I need this method for tracing.
-// Maybe the animation should call PVwidget methods and not vtk object methods.
-void vtkPVFoamSelectTimeSet::AnimationMenuCallback(vtkPVAnimationInterfaceEntry *ai)
-{
-  if (ai->InitializeTrace(NULL))
-    {
-    this->AddTraceEntry("$kw(%s) AnimationMenuCallback $kw(%s)", 
-                        this->GetTclName(), ai->GetTclName());
-    }
-  
-  // I do not under stand why the trace name is used for the
-  // menu entry, but Berk must know.
-  ai->SetLabelAndScript(this->GetTraceName(), NULL, this->GetTraceName());
-  ai->SetCurrentProperty(this->Property);
-  ai->Update();
-}
-
-
-
-//-----------------------------------------------------------------------------
-vtkPVFoamSelectTimeSet* vtkPVFoamSelectTimeSet::ClonePrototype(vtkPVSource* pvSource,
-                                 vtkArrayMap<vtkPVWidget*, vtkPVWidget*>* map)
-{
-  vtkPVWidget* clone = this->ClonePrototypeInternal(pvSource, map);
-  return vtkPVFoamSelectTimeSet::SafeDownCast(clone);
-}
-
-//-----------------------------------------------------------------------------
-void vtkPVFoamSelectTimeSet::CopyProperties(vtkPVWidget* clone, 
-                                      vtkPVSource* pvSource,
-                              vtkArrayMap<vtkPVWidget*, vtkPVWidget*>* map)
-{
-  this->Superclass::CopyProperties(clone, pvSource, map);
-  vtkPVFoamSelectTimeSet* pvts = vtkPVFoamSelectTimeSet::SafeDownCast(clone);
-  if (pvts)
-    {
-    pvts->SetLabel(this->FrameLabel);
-    pvts->SetSetCommand(this->SetCommand);
-    }
-  else 
-    {
-    vtkErrorMacro(
-      "Internal error. Could not downcast clone to PVFoamSelectTimeSet.");
-    }
-}
-
-//-----------------------------------------------------------------------------
-int vtkPVFoamSelectTimeSet::ReadXMLAttributes(vtkPVXMLElement* element,
-                                        vtkPVXMLPackageParser* parser)
-{
-  if(!this->Superclass::ReadXMLAttributes(element, parser)) { return 0; }
-  
-  // Setup the Label.
-  const char* label = element->GetAttribute("label");
-  if(label)
-    {
-    this->SetLabel(label);
-    }
-  
-  this->SetSetCommand(element->GetAttribute("set_command"));
-  
-  return 1;
-}
-
-//-----------------------------------------------------------------------------
-void vtkPVFoamSelectTimeSet::SetTimeSetsFromReader()
-{
-  vtkPVProcessModule* pm = this->GetPVApplication()->GetProcessModule();
-  this->TimeSets->RemoveAllItems();
-
-  // Create the server-side helper if necessary.
-  if(!this->ServerSideID.ID)
-    {
-    this->ServerSideID = pm->NewStreamObject("vtkPVFoamServerSelectTimeSet");
-    pm->SendStream(vtkProcessModule::DATA_SERVER);
-    }
-
-  // Get the time sets from the reader on the server.
-  // Reader -> VTKSourceID (0). We assume that there is 1 VTKSource.
-  pm->GetStream() << vtkClientServerStream::Invoke
-                  << this->ServerSideID << "GetTimeSets"
-                  << this->PVSource->GetVTKSourceID(0)
-                  << vtkClientServerStream::End;
-  pm->SendStream(vtkProcessModule::DATA_SERVER_ROOT);
-  vtkClientServerStream timeSets;
-  if(!pm->GetLastServerResult().GetArgument(0, 0, &timeSets))
-    {
-    vtkErrorMacro("Error getting time sets from server.");
-    return;
-    }
-
-  // There is one time set per message.
-  for(int m=0; m < timeSets.GetNumberOfMessages(); ++m)
-    {
-    // Each argument in the message is a time set entry.
-    vtkFloatArray* timeSet = vtkFloatArray::New();
-    int n = timeSets.GetNumberOfArguments(m);
-    timeSet->SetNumberOfTuples(n);
-    for(int i=0; i < n; ++i)
-      {
-      float value;
-      if(!timeSets.GetArgument(m, i, &value))
-        {
-        vtkErrorMacro("Error reading time set value.");
-        timeSet->Delete();
-        return;
-        }
-      timeSet->SetTuple1(i, value);
-      }
-    this->TimeSets->AddItem(timeSet);
-    timeSet->Delete();
-    }
-  
-  if (this->Property->GetNumberOfScalars() == 0 &&
-      this->TimeSets->GetNumberOfItems() > 0)
-    {
-    vtkFloatArray *ts =
-      vtkFloatArray::SafeDownCast(this->TimeSets->GetItem(0));
-    this->Property->SetScalars(1, ts->GetPointer(0));
-    }
-}
-
-//----------------------------------------------------------------------------
-void vtkPVFoamSelectTimeSet::SaveInBatchScriptForPart(ofstream *file,
-                                                  vtkClientServerID sourceID)
-{
-  if (sourceID.ID == 0)
-    {
-    vtkErrorMacro(<< this->GetClassName()
-                  << " must not have SaveInBatchScript method.");
-    return;
-    } 
-
-  *file << "\t" << "pvTemp" << sourceID
-        << " SetTimeValue " << this->GetTimeValue()
-        << endl;;
-}
-
-//-----------------------------------------------------------------------------
-void vtkPVFoamSelectTimeSet::SetProperty(vtkPVWidgetProperty *prop)
-{
-  this->Property = vtkPVScalarListWidgetProperty::SafeDownCast(prop);
-  if (this->Property)
-    {
-    int numScalars = 1;
-    this->Property->SetVTKCommands(1, &this->SetCommand, &numScalars);
-    }
-}
-
-//-----------------------------------------------------------------------------
-vtkPVWidgetProperty* vtkPVFoamSelectTimeSet::GetProperty()
-{
-  return this->Property;
-}
-
-//-----------------------------------------------------------------------------
-vtkPVWidgetProperty* vtkPVFoamSelectTimeSet::CreateAppropriateProperty()
-{
-  return vtkPVScalarListWidgetProperty::New();
-}
-
-//-----------------------------------------------------------------------------
-void vtkPVFoamSelectTimeSet::PrintSelf(ostream& os, vtkIndent indent)
-{
-  this->Superclass::PrintSelf(os, indent);
-  os << indent << "TimeValue: " << this->TimeValue << endl;
-  os << indent << "LabeledFrame: " << this->LabeledFrame << endl;
-  os << indent << "SetCommand: "
-     << (this->SetCommand ? this->SetCommand : "(none)") << endl;
-}
diff --git a/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/PVFoamReader/vtkPVFoamSelectTimeSet.h b/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/PVFoamReader/vtkPVFoamSelectTimeSet.h
deleted file mode 100644
index 70ab8cc97fb2393529cc2424cefb7f36fa1206ec..0000000000000000000000000000000000000000
--- a/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/PVFoamReader/vtkPVFoamSelectTimeSet.h
+++ /dev/null
@@ -1,164 +0,0 @@
-/*=========================================================================
-
-  Program:   ParaView
-  Module:    $RCSfile: vtkPVFoamSelectTimeSet.h,v $
-
-  Copyright (c) Kitware, Inc.
-  All rights reserved.
-  See Copyright.txt or http://www.paraview.org/HTML/Copyright.html for details.
-
-     This software is distributed WITHOUT ANY WARRANTY; without even
-     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
-     PURPOSE.  See the above copyright notice for more information.
-
-=========================================================================*/
-// .NAME vtkPVFoamSelectTimeSet - Special time selection widget used by PVFoamReaderModule
-// .SECTION Description
-// This is a PVWidget specially designed to be used with PVFoamReaderModule.
-// It provides support for multiple sets. The time value selected by
-// the user is passed to the Foam reader with a SetTimeValue() call.
-
-#ifndef __vtkPVFoamSelectTimeSet_h
-#define __vtkPVFoamSelectTimeSet_h
-
-#include "vtkPVWidget.h"
-
-class vtkKWLabel;
-class vtkKWMenu;
-class vtkKWLabeledFrame;
-class vtkDataArrayCollection;
-class vtkPVScalarListWidgetProperty;
-
-class VTK_EXPORT vtkPVFoamSelectTimeSet : public vtkPVWidget
-{
-public:
-  static vtkPVFoamSelectTimeSet* New();
-  vtkTypeRevisionMacro(vtkPVFoamSelectTimeSet, vtkPVWidget);
-  void PrintSelf(ostream& os, vtkIndent indent);
-
-  virtual void Create(vtkKWApplication *pvApp);
-
-  //BTX
-  // Description:
-  // Called when accept button is pushed.
-  // Sets objects variable to the widgets value.
-  // Adds a trace entry.  Side effect is to turn modified flag off.
-  virtual void AcceptInternal(vtkClientServerID);
-  //ETX
-
-  // Description:
-  // Called when the reset button is pushed.
-  // Sets widget's value to the object-variable's value.
-  // Side effect is to turn the modified flag off.
-  virtual void ResetInternal();
-
-  // Description:
-  // Adds a script to the menu of the animation interface.
-  virtual void AddAnimationScriptsToMenu(vtkKWMenu *menu, 
-                                         vtkPVAnimationInterfaceEntry *ai);
-
-  // Description:
-  // Called whenthe animation method menu item is selected.
-  // Needed for proper tracing.
-  // It would be nice if the menu and cascade menus would trace
-  // invokation of items (?relying of enumeration of menu items or label?)
-  void AnimationMenuCallback(vtkPVAnimationInterfaceEntry *ai);
-
-  // Description:
-  // This is the labeled frame around the timeset tree.
-  vtkGetObjectMacro(LabeledFrame, vtkKWLabeledFrame);
-
-  // Description:
-  // Label displayed on the labeled frame.
-  void SetLabel(const char* label);
-  const char* GetLabel();
-
-  // Description:
-  // Updates the time value label and the time ivar.
-  void SetTimeValue(float time);
-  vtkGetMacro(TimeValue, float);
-
-  // Description:
-  // Calls this->SetTimeValue () and Reader->SetTimeValue()
-  // with currently selected time value.
-  void SetTimeValueCallback(const char* item);
-
-//BTX
-  // Description:
-  // Creates and returns a copy of this widget. It will create
-  // a new instance of the same type as the current object
-  // using NewInstance() and then copy some necessary state 
-  // parameters.
-  vtkPVFoamSelectTimeSet* ClonePrototype(vtkPVSource* pvSource,
-                                 vtkArrayMap<vtkPVWidget*, vtkPVWidget*>* map);
-//ETX
-
-  // Description:
-  // This serves a dual purpose.  For tracing and for saving state.
-  virtual void Trace(ofstream *file);
-
-  // Description:
-  // Set/get the property to use with this widget.
-  virtual void SetProperty(vtkPVWidgetProperty *prop);
-  virtual vtkPVWidgetProperty* GetProperty();
-  
-  // Description:
-  // Create the right property for use with this widget.
-  virtual vtkPVWidgetProperty* CreateAppropriateProperty();
-  
-  // Description:
-  // Set/get the command to pass the value to VTK.
-  vtkSetStringMacro(SetCommand);
-  vtkGetStringMacro(SetCommand);
-  
-  // Description:
-  // Save this widget to a file.
-  virtual void SaveInBatchScript(ofstream *file);
- 
-protected:
-  vtkPVFoamSelectTimeSet();
-  ~vtkPVFoamSelectTimeSet();
-
-  vtkPVFoamSelectTimeSet(const vtkPVFoamSelectTimeSet&); // Not implemented
-  void operator=(const vtkPVFoamSelectTimeSet&); // Not implemented
-
-  vtkPVScalarListWidgetProperty *Property;
-
-  char *SetCommand;
-  
-  vtkSetStringMacro(FrameLabel);
-  vtkGetStringMacro(FrameLabel);
-
-  vtkKWWidget* Tree;
-  vtkKWWidget* TreeFrame;
-  vtkKWLabel* TimeLabel;
-  vtkKWLabeledFrame* LabeledFrame;
-
-  void AddRootNode(const char* name, const char* text);
-  void AddChildNode(const char* parent, const char* name, 
-                    const char* text, const char* data);
-
-  float TimeValue;
-  char* FrameLabel;
-
-  vtkDataArrayCollection* TimeSets;
-  vtkClientServerID ServerSideID;
-
-  // Fill the TimeSets collection with that from the actual reader.
-  void SetTimeSetsFromReader();
-
-//BTX
-  virtual void CopyProperties(vtkPVWidget* clone, vtkPVSource* pvSource,
-                              vtkArrayMap<vtkPVWidget*, vtkPVWidget*>* map);
-//ETX
-  
-  int ReadXMLAttributes(vtkPVXMLElement* element,
-                        vtkPVXMLPackageParser* parser);
-
-  // Description:
-  // An interface for saving a widget into a script.
-  virtual void SaveInBatchScriptForPart(ofstream *file, vtkClientServerID);
-
-};
-
-#endif
diff --git a/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/PVFoamReader/vtkPVFoamServerSelectTimeSet.cxx b/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/PVFoamReader/vtkPVFoamServerSelectTimeSet.cxx
deleted file mode 100644
index acfce9bab2bbb6587c5a7303c703f0120bfd23fc..0000000000000000000000000000000000000000
--- a/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/PVFoamReader/vtkPVFoamServerSelectTimeSet.cxx
+++ /dev/null
@@ -1,85 +0,0 @@
-/*=========================================================================
-
-  Program:   ParaView
-  Module:    $RCSfile: vtkPVFoamServerSelectTimeSet.cxx,v $
-
-  Copyright (c) Kitware, Inc.
-  All rights reserved.
-  See Copyright.txt or http://www.paraview.org/HTML/Copyright.html for details.
-
-     This software is distributed WITHOUT ANY WARRANTY; without even
-     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
-     PURPOSE.  See the above copyright notice for more information.
-
-=========================================================================*/
-#include "vtkPVFoamServerSelectTimeSet.h"
-
-#include "vtkClientServerInterpreter.h"
-#include "vtkObjectFactory.h"
-#include "vtkPVProcessModule.h"
-#include "vtkFoamReader.h"
-#include "vtkDataArrayCollection.h"
-#include "vtkDataArrayCollectionIterator.h"
-#include "vtkClientServerStream.h"
-
-#include <vtkstd/string>
-
-//----------------------------------------------------------------------------
-vtkStandardNewMacro(vtkPVFoamServerSelectTimeSet);
-vtkCxxRevisionMacro(vtkPVFoamServerSelectTimeSet, "$Revision: 1.4 $");
-
-//----------------------------------------------------------------------------
-class vtkPVFoamServerSelectTimeSetInternals
-{
-public:
-  vtkClientServerStream Result;
-};
-
-//----------------------------------------------------------------------------
-vtkPVFoamServerSelectTimeSet::vtkPVFoamServerSelectTimeSet()
-{
-  this->Internal = new vtkPVFoamServerSelectTimeSetInternals;
-}
-
-//----------------------------------------------------------------------------
-vtkPVFoamServerSelectTimeSet::~vtkPVFoamServerSelectTimeSet()
-{
-  delete this->Internal;
-}
-
-//----------------------------------------------------------------------------
-void vtkPVFoamServerSelectTimeSet::PrintSelf(ostream& os, vtkIndent indent)
-{
-  this->Superclass::PrintSelf(os,indent);
-}
-
-//----------------------------------------------------------------------------
-const vtkClientServerStream&
-vtkPVFoamServerSelectTimeSet::GetTimeSets(vtkFoamReader* reader)
-{
-  // Reset the stream for a new list of time sets.
-  this->Internal->Result.Reset();
-
-  // Get the time sets from the reader.
-  vtkDataArrayCollection* timeSets = reader->GetTimeSets();
-
-  // Iterate through the time sets.
-  vtkDataArrayCollectionIterator* iter = vtkDataArrayCollectionIterator::New();
-  iter->SetCollection(timeSets);
-  for(iter->GoToFirstItem(); !iter->IsDoneWithTraversal();
-      iter->GoToNextItem())
-    {
-    // Each time set is stored in one message.
-    this->Internal->Result << vtkClientServerStream::Reply;
-    vtkDataArray* da = iter->GetDataArray();
-    for(int i=0; i < da->GetNumberOfTuples(); ++i)
-      {
-      this->Internal->Result << da->GetTuple1(i);
-      }
-    this->Internal->Result << vtkClientServerStream::End;
-    }
-  iter->Delete();
-
-  // Return the stream.
-  return this->Internal->Result;
-}
diff --git a/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/PVFoamReader/vtkPVFoamServerSelectTimeSet.h b/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/PVFoamReader/vtkPVFoamServerSelectTimeSet.h
deleted file mode 100644
index 99f755c9f39651decfd8be7cf684bbd6bc3d89e4..0000000000000000000000000000000000000000
--- a/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/PVFoamReader/vtkPVFoamServerSelectTimeSet.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*=========================================================================
-
-  Program:   ParaView
-  Module:    $RCSfile: vtkPVFoamServerSelectTimeSet.h,v $
-
-  Copyright (c) Kitware, Inc.
-  All rights reserved.
-  See Copyright.txt or http://www.paraview.org/HTML/Copyright.html for details.
-
-     This software is distributed WITHOUT ANY WARRANTY; without even
-     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
-     PURPOSE.  See the above copyright notice for more information.
-
-=========================================================================*/
-// .NAME vtkPVFoamServerSelectTimeSet - Server-side helper for vtkPVFoamSelectTimeSet.
-// .SECTION Description
-
-#ifndef __vtkPVFoamServerSelectTimeSet_h
-#define __vtkPVFoamServerSelectTimeSet_h
-
-#include "vtkPVServerObject.h"
-
-class vtkClientServerStream;
-class vtkPVFoamServerSelectTimeSetInternals;
-class vtkFoamReader;
-
-class VTK_EXPORT vtkPVFoamServerSelectTimeSet : public vtkPVServerObject
-{
-public:
-  static vtkPVFoamServerSelectTimeSet* New();
-  vtkTypeRevisionMacro(vtkPVFoamServerSelectTimeSet, vtkPVServerObject);
-  void PrintSelf(ostream& os, vtkIndent indent);
-
-  // Description:
-  // Get a list the time sets provided by the given reader.
-  const vtkClientServerStream& GetTimeSets(vtkFoamReader*);
-
-protected:
-  vtkPVFoamServerSelectTimeSet();
-  ~vtkPVFoamServerSelectTimeSet();
-
-  // Internal implementation details.
-  vtkPVFoamServerSelectTimeSetInternals* Internal;
-private:
-  vtkPVFoamServerSelectTimeSet(const vtkPVFoamServerSelectTimeSet&); // Not implemented
-  void operator=(const vtkPVFoamServerSelectTimeSet&); // Not implemented
-};
-
-#endif
diff --git a/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/vtkFoam/Make/files b/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/vtkFoam/Make/files
deleted file mode 100644
index f5a5526caa156bc2135854331db70929d286caf8..0000000000000000000000000000000000000000
--- a/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/vtkFoam/Make/files
+++ /dev/null
@@ -1,5 +0,0 @@
-vtkFoam.C
-vtkFoamAddInternalMesh.C
-vtkFoamAddPatch.C
-
-LIB = $(FOAM_LIBBIN)/libvtkFoam
diff --git a/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/vtkFoam/Make/options b/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/vtkFoam/Make/options
deleted file mode 100644
index 7dd2c76c8b3f0e89a1192f4cdf48e988b7b66e35..0000000000000000000000000000000000000000
--- a/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/vtkFoam/Make/options
+++ /dev/null
@@ -1,9 +0,0 @@
-EXE_INC = \
-    -I$(LIB_SRC)/finiteVolume/lnInclude \
-    -I$(ParaView_INST_DIR)/include \
-    -I../PVFoamReader
-
-LIB_LIBS = \
-    -lfiniteVolume \
-    -lgenericPatchFields \
-    $(GLIBS)
diff --git a/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/vtkFoam/vtkDataArrayTemplateImplicit.txx b/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/vtkFoam/vtkDataArrayTemplateImplicit.txx
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/vtkFoam/vtkFoam.C b/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/vtkFoam/vtkFoam.C
deleted file mode 100644
index 6a1830b5d14dd60a851496247830f9a6942c983c..0000000000000000000000000000000000000000
--- a/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/vtkFoam/vtkFoam.C
+++ /dev/null
@@ -1,665 +0,0 @@
-/*---------------------------------------------------------------------------*\
-  =========                 |
-  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
-   \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2009 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 2 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, write to the Free Software Foundation,
-    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-\*---------------------------------------------------------------------------*/
-
-#include "vtkFoam.H"
-
-#include "argList.H"
-#include "Time.H"
-#include "polyBoundaryMeshEntries.H"
-#include "IOobjectList.H"
-#include "wordList.H"
-#include "fvMesh.H"
-#include "volFields.H"
-#include "pointMesh.H"
-#include "volPointInterpolation.H"
-
-#include "vtkFoamReader.h"
-#include "vtkDataArraySelection.h"
-#include "vtkUnstructuredGrid.h"
-#include "vtkPointData.h"
-#include "vtkCellData.h"
-#include "vtkFloatArray.h"
-#include "vtkCharArray.h"
-
-// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
-
-defineTypeNameAndDebug(Foam::vtkFoam, 0);
-
-// * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
-
-#include "vtkFoamConvertFields.H"
-
-void Foam::vtkFoam::SetName
-(
-    vtkUnstructuredGrid* vtkMesh,
-    const char* name
-)
-{
-    vtkCharArray* nmArray =  vtkCharArray::New();
-    nmArray->SetName("Name");
-    size_t len = strlen(name);
-    nmArray->SetNumberOfTuples(static_cast<vtkIdType>(len)+1);
-    char* copy = nmArray->GetPointer(0);
-    memcpy(copy, name, len);
-    copy[len] = '\0';
-    vtkMesh->GetFieldData()->AddArray(nmArray);
-    nmArray->Delete();
-}
-
-
-Foam::string Foam::vtkFoam::padTimeString(const string& ts)
-{
-    return ts + string("            ", max(label(12 - ts.size()), 0));
-}
-
-
-// Pad the patch name string in order to account for dynamic changes
-// in patch names during topological changes
-Foam::string Foam::vtkFoam::padPatchString(const string& ps)
-{
-    label n = max(label(50 - ps.size()), 0);
-    return ps + string("                                                  ", n);
-}
-
-
-void Foam::vtkFoam::setSelectedTime
-(
-    Time& runTime,
-    vtkFoamReader* reader
-)
-{
-    // Get times list
-    instantList Times = runTime.times();
-    int timeIndex = min(max(reader->GetTimeStep() + 1, 0), Times.size()-1);
-
-    // If this is the first call timeIndex will be 0 ("constant")
-    // so reset to the first time step if one exists and deselect every
-    // element of the selection array
-    if (timeIndex == 0)
-    {
-        timeIndex = min(1, Times.size()-1);
-        reader->GetTimeSelection()->DisableAllArrays();
-    }
-
-    label selectedTimeIndex = -1;
-    label nSelectedTimes = reader->GetTimeSelection()->GetNumberOfArrays();
-
-    for (label i=nSelectedTimes-1; i>=0; i--)
-    {
-        if(reader->GetTimeSelection()->GetArraySetting(i))
-        {
-            word timeName = string::validate<word>
-            (
-                reader->GetTimeSelection()->GetArrayName(i)
-            );
-
-            forAll(Times, j)
-            {
-                if (Times[j].name() == timeName)
-                {
-                    selectedTimeIndex = j;
-                    break;
-                }
-            }
-            break;
-        }
-    }
-
-    if (selectedTimeIndex != -1)
-    {
-        timeIndex = min(selectedTimeIndex, Times.size()-1);
-    }
-
-    if (debug)
-    {
-        Info<< "Selecting time " << Times[timeIndex].name() << endl;
-    }
-
-    runTime.setTime(Times[timeIndex], timeIndex);
-
-    Times = runTime.times();
-
-    reader->SetTimeStepRange(0, max(Times.size()-2, 0));
-
-    // reset the time steps ...
-    reader->GetTimeSelection()->RemoveAllArrays();
-
-    int* TimeStepLimits = reader->GetTimeStepLimits();
-    label maxStartTimes = min(Times.size(), TimeStepLimits[0]);
-    label maxNTimes = min(Times.size() - maxStartTimes, TimeStepLimits[1]);
-
-    for (label i=0; i<maxStartTimes; i++)
-    {
-        reader->GetTimeSelection()
-            ->AddArray(padTimeString(Times[i].name()).c_str());
-    }
-
-    if (Times.size() > TimeStepLimits[0] + TimeStepLimits[1])
-    {
-        reader->GetTimeSelection()->AddArray(padTimeString("...").c_str());
-    }
-
-    for (label i=Times.size() - maxNTimes; i<Times.size(); i++)
-    {
-        reader->GetTimeSelection()
-            ->AddArray(padTimeString(Times[i].name()).c_str());
-    }
-
-    // Disable all the time selections (which are all selected by default) ...
-    reader->GetTimeSelection()->DisableAllArrays();
-
-    // But maintain the selections made previously
-    if (selectedTimeIndex != -1 && selectedTimeIndex < Times.size())
-    {
-        reader->GetTimeSelection()->EnableArray
-            (padTimeString(Times[selectedTimeIndex].name()).c_str());
-    }
-}
-
-
-void Foam::vtkFoam::updateSelectedRegions()
-{
-    if (debug)
-    {
-        Info<< "Foam::vtkFoam::updateSelectedRegions()" << endl;
-    }
-
-    label nRegions = reader_->GetRegionSelection()->GetNumberOfArrays();
-
-    selectedRegions_.setSize(nRegions);
-
-    // Read the selected patches and add to the region list
-    for (int i=0; i<nRegions; i++)
-    {
-        selectedRegions_[i] =
-            reader_->GetRegionSelection()->GetArraySetting(i);
-    }
-}
-
-
-void Foam::vtkFoam::convertMesh()
-{
-    if (debug)
-    {
-        Info<< "Foam::vtkFoam::convertMesh()" << endl;
-    }
-
-    const fvMesh& mesh = *meshPtr_;
-
-    // Read the internal mesh as region 0 if selected
-    if (reader_->GetRegionSelection()->GetArraySetting(0))
-    {
-        selectedRegions_[0] = true;
-        addInternalMesh
-        (
-            mesh,
-            vtkUnstructuredGrid::SafeDownCast(reader_->GetOutput(0))
-        );
-    }
-    else
-    {
-        selectedRegions_[0] = false;
-
-        vtkUnstructuredGrid *vtkMesh =
-            vtkUnstructuredGrid::SafeDownCast(reader_->GetOutput(0));
-
-        vtkMesh->Initialize();
-        SetName(vtkMesh, "(Internal Mesh)");
-    }
-
-
-    // Read the selected patches and add to the region list
-
-    polyBoundaryMeshEntries patchEntries
-    (
-        IOobject
-        (
-            "boundary",
-            dbPtr_().findInstance(polyMesh::meshSubDir, "boundary"),
-            polyMesh::meshSubDir,
-            dbPtr_(),
-            IOobject::MUST_READ,
-            IOobject::NO_WRITE,
-            false
-        )
-    );
-
-    label regioni = 0;
-    label regioniLast = 0;
-
-    // Read in the number Outputs (patch regions) currently being used
-    label currNOutputs = reader_->GetNumberOfOutputs();
-
-    // Cycle through all the patches in the boundary file for the relevant
-    // time step
-    forAll(patchEntries, entryi)
-    {
-        // Number of faces in the current patch (Used to detect dummy patches
-        // of size zero)
-        label nFaces(readLabel(patchEntries[entryi].dict().lookup("nFaces")));
-
-        // Check to see if the patch is currently a part of the displayed list
-        if
-        (
-            reader_->GetRegionSelection()->ArrayExists
-            (
-                padPatchString(patchEntries[entryi].keyword()).c_str()
-            )
-        )
-        {
-            if  (!nFaces)
-            {
-                // Remove patch if it is only a dummy patch in the current
-                // time step with zero faces
-                reader_->GetRegionSelection()->RemoveArrayByName
-                (
-                    padPatchString(patchEntries[entryi].keyword()).c_str()
-                );
-            }
-            else
-            {
-                // A patch already existent in the list and which
-                // continues to exist found
-                regioni++;
-            }
-        }
-        else
-        {
-            // A new patch so far not yet included into the list has been found
-            if  (nFaces)
-            {
-                regioni++;
-
-                // Add a new entry to the list of regions
-                reader_->GetRegionSelection()->AddArray
-                (
-                    padPatchString(patchEntries[entryi].keyword()).c_str()
-                );
-
-                // AddArray automatically enables a new array... disable
-                // it manually
-                reader_->GetRegionSelection()->DisableArray
-                (
-                    padPatchString(patchEntries[entryi].keyword()).c_str()
-                );
-            }
-        }
-
-        // Avoid Initialization of the same Output twice
-        if (regioni != regioniLast)
-        {
-            // Only setup an Output if it has not been setup before
-            if(regioni >= currNOutputs)
-            {
-                vtkUnstructuredGrid* ugrid = vtkUnstructuredGrid::New();
-                reader_->SetNthOutput(regioni,ugrid);
-                ugrid->Delete();
-            }
-            // Initialize -> Delete memory used, and reset to zero state
-            reader_->GetOutput(regioni)->Initialize();
-            regioniLast = regioni;
-        }
-    }
-
-    // Initialize (reset to zero and free) any outputs which are not used
-    // anymore
-    if (regioni < currNOutputs)
-    {
-        for(label i = (regioni+1); i < currNOutputs;i++)
-        {
-            reader_->GetOutput(i)->Initialize();
-        }
-    }
-
-    selectedRegions_.setSize(regioni + 1);
-
-    regioni = 0;
-
-    const polyBoundaryMesh& patches = mesh.boundaryMesh();
-
-    forAll (patches, patchi)
-    {
-        if (patches[patchi].size())
-        {
-            regioni++;
-
-            if (reader_->GetRegionSelection()->GetArraySetting(regioni))
-            {
-                selectedRegions_[regioni] = true;
-                addPatch
-                (
-                    patches[patchi],
-                    vtkUnstructuredGrid::SafeDownCast
-                    (
-                        reader_->GetOutput(regioni)
-                    )
-                );
-            }
-            else
-            {
-                selectedRegions_[regioni] = false;
-
-                vtkUnstructuredGrid *vtkMesh =
-                    vtkUnstructuredGrid::SafeDownCast
-                    (
-                        reader_->GetOutput(regioni)
-                    );
-
-                vtkMesh->Initialize();
-                SetName
-                (
-                    vtkMesh,
-                    ('(' + padPatchString(patches[patchi].name()) + ')').c_str()
-                );
-            }
-        }
-    }
-}
-
-
-// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
-
-Foam::vtkFoam::vtkFoam(const char* const FileName, vtkFoamReader* reader)
-:
-    reader_(reader),
-    argsPtr_(NULL),
-    dbPtr_(NULL),
-    meshPtr_(NULL)
-{
-    fileName fullCasePath(fileName(FileName).path());
-
-    if (!isDir(fullCasePath))
-    {
-        return;
-    }
-
-    char* argvStrings[3];
-    argvStrings[0] = new char[9];
-    strcpy(argvStrings[0], "/vtkFoam");
-    argvStrings[1] = new char[6];
-    strcpy(argvStrings[1], "-case");
-    argvStrings[2] = new char[fullCasePath.size()+1];
-    strcpy(argvStrings[2], fullCasePath.c_str());
-
-    int argc = 3;
-    char** argv = &argvStrings[0];
-    argsPtr_.reset(new argList(argc, argv));
-
-    for(int i = 0; i < argc; i++)
-    {
-        delete[] argvStrings[i];
-    }
-
-    dbPtr_.reset
-    (
-        new Time
-        (
-            Time::controlDictName,
-            argsPtr_().rootPath(),
-            argsPtr_().caseName()
-        )
-    );
-    dbPtr_().functionObjects().off();
-    setSelectedTime(dbPtr_(), reader_);
-
-    if (debug)
-    {
-        Info<< "vtkFoam::ExecuteInformation: Initialising outputs" << endl;
-    }
-
-    reader_->GetRegionSelection()->AddArray("Internal Mesh");
-
-    vtkUnstructuredGrid* ugrid = vtkUnstructuredGrid::New();
-    reader_->SetNthOutput(0, ugrid);
-    ugrid->Delete();
-    reader_->GetOutput(0)->Initialize();
-
-    polyBoundaryMeshEntries patchEntries
-    (
-        IOobject
-        (
-            "boundary",
-            dbPtr_().findInstance(polyMesh::meshSubDir, "boundary"),
-            polyMesh::meshSubDir,
-            dbPtr_(),
-            IOobject::MUST_READ,
-            IOobject::NO_WRITE,
-            false
-        )
-    );
-
-    label regioni = 0;
-    forAll(patchEntries, entryi)
-    {
-        label nFaces(readLabel(patchEntries[entryi].dict().lookup("nFaces")));
-
-        if (nFaces)
-        {
-            regioni++;
-
-            reader_->GetRegionSelection()->AddArray
-            (
-                padPatchString(patchEntries[entryi].keyword()).c_str()
-            );
-
-            vtkUnstructuredGrid* ugrid = vtkUnstructuredGrid::New();
-            reader_->SetNthOutput(regioni, ugrid);
-            ugrid->Delete();
-            reader_->GetOutput(regioni)->Initialize();
-        }
-    }
-
-    selectedRegions_.setSize(regioni + 1);
-    selectedRegions_ = true;
-
-    UpdateInformation();
-}
-
-
-// * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
-
-Foam::vtkFoam::~vtkFoam()
-{
-    // Do NOT delete meshPtr_ since still referenced somehow.
-}
-
-
-// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
-
-#include "vtkFoamAddFields.H"
-
-void Foam::vtkFoam::UpdateInformation()
-{
-    if (debug)
-    {
-        Info<< "TimeStep = " << reader_->GetTimeStep() << endl;
-    }
-
-    setSelectedTime(dbPtr_(), reader_);
-
-    // Search for list of objects for this time
-    IOobjectList objects(dbPtr_(), dbPtr_().timeName());
-
-    addFields<volScalarField>(reader_->GetVolFieldSelection(), objects);
-    addFields<volVectorField>(reader_->GetVolFieldSelection(), objects);
-    addFields<volSphericalTensorField>(reader_->GetVolFieldSelection(), objects);
-    addFields<volSymmTensorField>(reader_->GetVolFieldSelection(), objects);
-    addFields<volTensorField>(reader_->GetVolFieldSelection(), objects);
-
-    addFields<pointScalarField>(reader_->GetPointFieldSelection(), objects);
-    addFields<pointVectorField>(reader_->GetPointFieldSelection(), objects);
-    addFields<pointSphericalTensorField>(reader_->GetPointFieldSelection(), objects);
-    addFields<pointSymmTensorField>(reader_->GetPointFieldSelection(), objects);
-    addFields<pointTensorField>(reader_->GetPointFieldSelection(), objects);
-}
-
-
-void Foam::vtkFoam::Update()
-{
-    if
-    (
-        !reader_->GetCacheMesh()
-     || reader_->GetTimeSelection()->GetArraySetting(0)
-    )
-    {
-        meshPtr_= NULL;
-    }
-
-    // Clear the current set of selected fields
-
-    for (label i=0; i<reader_->GetNumberOfOutputs(); i++)
-    {
-        vtkUnstructuredGrid *vtkMesh =
-            vtkUnstructuredGrid::SafeDownCast(reader_->GetOutput(i));
-
-        vtkCellData* cellData = vtkMesh->GetCellData();
-        int numberOfCellArrays = cellData->GetNumberOfArrays();
-
-        wordList cellFieldNames(numberOfCellArrays);
-        for (int j=0; j<numberOfCellArrays; j++)
-        {
-            cellFieldNames[j] = cellData->GetArrayName(j);
-        }
-
-        for (int j=0; j<numberOfCellArrays; j++)
-        {
-            cellData->RemoveArray(cellFieldNames[j].c_str());
-        }
-
-        vtkPointData* pointData = vtkMesh->GetPointData();
-        int numberOfPointArrays = pointData->GetNumberOfArrays();
-
-        wordList pointFieldNames(numberOfPointArrays);
-        for (int j=0; j<numberOfPointArrays; j++)
-        {
-            pointFieldNames[j] = pointData->GetArrayName(j);
-        }
-
-        for (int j=0; j<numberOfPointArrays; j++)
-        {
-            pointData->RemoveArray(pointFieldNames[j].c_str());
-        }
-    }
-
-    // Check to see if the mesh has been created
-
-    if (!meshPtr_)
-    {
-        if (debug)
-        {
-            Info<< "Reading Mesh" << endl;
-        }
-        meshPtr_ =
-            new fvMesh
-            (
-                IOobject
-                (
-                    fvMesh::defaultRegion,
-                    dbPtr_().timeName(),
-                    dbPtr_()
-                )
-            );
-        convertMesh();
-    }
-    else
-    {
-        boolList oldSelectedRegions = selectedRegions_;
-        updateSelectedRegions();
-        if
-        (
-            meshPtr_->readUpdate() != fvMesh::UNCHANGED
-         || oldSelectedRegions != selectedRegions_
-        )
-        {
-            convertMesh();
-        }
-    }
-
-    if (debug)
-    {
-        Info<< "converting fields" << endl;
-    }
-
-    const fvMesh& mesh = *meshPtr_;
-
-    // Construct interpolation on the raw mesh
-    Foam::pointMesh pMesh(mesh);
-
-    Foam::volPointInterpolation pInterp(mesh, pMesh);
-
-    // Search for list of objects for this time
-    Foam::IOobjectList objects(mesh, dbPtr_().timeName());
-
-    convertVolFields<Foam::scalar>
-    (
-        mesh, pInterp, objects, reader_->GetVolFieldSelection()
-    );
-    convertVolFields<Foam::vector>
-    (
-        mesh, pInterp, objects, reader_->GetVolFieldSelection()
-    );
-    convertVolFields<Foam::sphericalTensor>
-    (
-        mesh, pInterp, objects, reader_->GetVolFieldSelection()
-    );
-    convertVolFields<Foam::symmTensor>
-    (
-        mesh, pInterp, objects, reader_->GetVolFieldSelection()
-    );
-    convertVolFields<Foam::tensor>
-    (
-        mesh, pInterp, objects, reader_->GetVolFieldSelection()
-    );
-
-    convertPointFields<Foam::scalar>
-    (
-        mesh, objects, reader_->GetPointFieldSelection()
-    );
-    convertPointFields<Foam::vector>
-    (
-        mesh, objects, reader_->GetPointFieldSelection()
-    );
-    convertPointFields<Foam::sphericalTensor>
-    (
-        mesh, objects, reader_->GetPointFieldSelection()
-    );
-    convertPointFields<Foam::symmTensor>
-    (
-        mesh, objects, reader_->GetPointFieldSelection()
-    );
-    convertPointFields<Foam::tensor>
-    (
-        mesh, objects, reader_->GetPointFieldSelection()
-    );
-
-    if (debug)
-    {
-        Info<< "done" << endl;
-    }
-}
-
-
-// ************************************************************************* //
diff --git a/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/vtkFoam/vtkFoam.H b/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/vtkFoam/vtkFoam.H
deleted file mode 100644
index baca6a38637d2e7172a025eb842796b97985297d..0000000000000000000000000000000000000000
--- a/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/vtkFoam/vtkFoam.H
+++ /dev/null
@@ -1,256 +0,0 @@
-/*---------------------------------------------------------------------------*\
-  =========                 |
-  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
-   \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2009 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 2 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, write to the Free Software Foundation,
-    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-Class
-    Foam::vtkFoam
-
-Description
-
-SourceFiles
-    vtkFoam.C
-    vtkFoamInsertNextPoint.H
-    vtkFoamAddFields.H
-    vtkFoamAddInternalMesh.H
-    vtkFoamConvertFields.H
-    vtkFoamConvertVolField.H
-    vtkFoamConvertPatchFaceField.H
-    vtkFoamConvertPointField.H
-    vtkFoamConvertPatchPointField.H
-
-\*---------------------------------------------------------------------------*/
-
-#ifndef vtkFoam_H
-#define vtkFoam_H
-
-#include "className.H"
-#include "fileName.H"
-#include "volPointInterpolation.H"
-
-// * * * * * * * * * * * * * Forward Declarations  * * * * * * * * * * * * * //
-
-// VTK class forward declarations
-class vtkFoamReader;
-class vtkUnstructuredGrid;
-class vtkPoints;
-class vtkDataArraySelection;
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-namespace Foam
-{
-
-// Foam class forward declarations
-class argList;
-class Time;
-class fvMesh;
-class IOobjectList;
-class polyPatch;
-
-
-/*---------------------------------------------------------------------------*\
-                           Class vtkFoam Declaration
-\*---------------------------------------------------------------------------*/
-
-class vtkFoam
-{
-    // Private data
-
-        //- Access to the controlling vtkFoamReader
-        vtkFoamReader *reader_;
-
-        autoPtr<argList> argsPtr_;
-        autoPtr<Time> dbPtr_;
-        fvMesh* meshPtr_;
-
-        //- Selected regions, [0] = internal mesh, [1-nPatches] = patches
-        boolList selectedRegions_;
-
-        //- Lables of cell-centres used as additional points when decomposing
-        // polyhedra
-        labelList addPointCellLabels_;
-
-        //- Label of original cell the decomposed cells are split from
-        labelList superCells_;
-
-
-    // Private Member Functions
-
-        //- Pad-out the time name to avoid bug in the GUI redraw
-        static string padTimeString(const string&);
-
-        //- Pad-out the patch name
-        static string padPatchString(const string&);
-
-        //- Find and set the selected time from all the methods of selection
-        static void setSelectedTime
-        (
-            Time& runTime,
-            vtkFoamReader* reader
-        );
-
-        //- Update the selected regions
-        void updateSelectedRegions();
-
-        //- Convert the mesh according to the list of selected regions
-        void convertMesh();
-
-        //- Add the internal mesh to the set of Outputs if selected
-        void addInternalMesh(const fvMesh&, vtkUnstructuredGrid*);
-
-        //- Add the internal patch to the set of Outputs if selected
-        void addPatch(const polyPatch&, vtkUnstructuredGrid*);
-
-        //- Add the fields in th selested time directory to the selection lists
-        template<class GeoField>
-        void addFields
-        (
-            vtkDataArraySelection *fieldSelection,
-            const IOobjectList& objects
-        );
-
-        //- Convert the selected volFields
-        template<class Type>
-        void convertVolFields
-        (
-            const fvMesh& mesh,
-            const volPointInterpolation& pInterp,
-            const IOobjectList& objects,
-            vtkDataArraySelection *fieldSelection
-        );
-
-        template<class Type>
-        void convertVolField
-        (
-            const GeometricField<Type, fvPatchField, volMesh>& tf
-        );
-
-        template<class Type>
-        void convertPatchFaceField
-        (
-            const word& name,
-            const Field<Type>& tf,
-            const label regioni
-        );
-
-        //- Convert the selected pointFields
-        template<class Type>
-        void convertPointFields
-        (
-            const fvMesh& mesh,
-            const IOobjectList& objects,
-            vtkDataArraySelection *fieldSelection
-        );
-
-        template<class Type>
-        void convertPointField
-        (
-            const GeometricField<Type, pointPatchField, pointMesh>& ptf,
-            const GeometricField<Type, fvPatchField, volMesh>& tf
-        );
-
-        template<class Type>
-        void convertPatchPointField
-        (
-            const word& name,
-            const Field<Type>& tf,
-            const label regioni
-        );
-
-        //- Set the name of the Output vtkUnstructuredGrid
-        void SetName(vtkUnstructuredGrid *vtkMesh, const char* name);
-
-
-        //- Disallow default bitwise copy construct
-        vtkFoam(const vtkFoam&);
-
-        //- Disallow default bitwise assignment
-        void operator=(const vtkFoam&);
-
-
-public:
-
-    // Static data members
-
-        ClassName("vtkFoam");
-
-
-    // Constructors
-
-        //- Construct from components
-        vtkFoam(const char* const FileName, vtkFoamReader* reader);
-
-
-    // Destructor
-
-        ~vtkFoam();
-
-
-    // Member Functions
-
-        void UpdateInformation();
-        void Update();
-};
-
-
-// * * * * * * * * * * * * * Template Specialisations  * * * * * * * * * * * //
-
-template<>
-void vtkFoam::convertVolField
-(
-    const GeometricField<scalar, fvPatchField, volMesh>& sf
-);
-
-template<>
-void vtkFoam::convertPatchFaceField
-(
-    const word& name,
-    const Field<scalar>& sf,
-    const label regioni
-);
-
-template<>
-void vtkFoam::convertPointField
-(
-    const GeometricField<scalar, pointPatchField, pointMesh>& psf,
-    const GeometricField<scalar, fvPatchField, volMesh>& sf
-);
-
-template<>
-void vtkFoam::convertPatchPointField
-(
-    const word& name,
-    const Field<scalar>& sf,
-    const label regioni
-);
-
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-} // End namespace Foam
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-#endif
-
-// ************************************************************************* //
diff --git a/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/vtkFoam/vtkFoamAddInternalMesh.C b/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/vtkFoam/vtkFoamAddInternalMesh.C
deleted file mode 100644
index aa818bb82796b7d62cd56d891332b8cacd72bdb9..0000000000000000000000000000000000000000
--- a/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/vtkFoam/vtkFoamAddInternalMesh.C
+++ /dev/null
@@ -1,299 +0,0 @@
-/*---------------------------------------------------------------------------*\
-  =========                 |
-  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
-   \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2009 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 2 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, write to the Free Software Foundation,
-    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-Description
-
-\*---------------------------------------------------------------------------*/
-
-#include "vtkFoam.H"
-#include "fvMesh.H"
-#include "cellModeller.H"
-
-#include "vtkUnstructuredGrid.h"
-#include "vtkCellArray.h"
-
-#include "vtkFoamInsertNextPoint.H"
-
-// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
-
-void Foam::vtkFoam::addInternalMesh
-(
-    const fvMesh& mesh,
-    vtkUnstructuredGrid* vtkMesh
-)
-{
-    SetName(vtkMesh, "Internal Mesh");
-
-    // Number of additional points needed by the decomposition of polyhedra
-    label nAddPoints = 0;
-
-    // Number of additional cells generated by the decomposition of polyhedra
-    label nAddCells = 0;
-
-    const cellModel& tet = *(cellModeller::lookup("tet"));
-    const cellModel& pyr = *(cellModeller::lookup("pyr"));
-    const cellModel& prism = *(cellModeller::lookup("prism"));
-    const cellModel& wedge = *(cellModeller::lookup("wedge"));
-    const cellModel& tetWedge = *(cellModeller::lookup("tetWedge"));
-    const cellModel& hex = *(cellModeller::lookup("hex"));
-
-    // Scan for cells which need to be decomposed and count additional points
-    // and cells
-    if (debug)
-    {
-        Info<< "building cell-shapes" << endl;
-    }
-    const cellShapeList& cellShapes = mesh.cellShapes();
-
-    if (debug)
-    {
-        Info<< "scanning" << endl;
-    }
-
-    forAll(cellShapes, cellI)
-    {
-        const cellModel& model = cellShapes[cellI].model();
-
-        if 
-        (
-            model != hex
-         && model != wedge
-         && model != prism
-         && model != pyr
-         && model != tet
-         && model != tetWedge
-        )
-        {
-            const cell& cFaces = mesh.cells()[cellI];
-
-            forAll(cFaces, cFaceI)
-            {
-                const face& f = mesh.faces()[cFaces[cFaceI]];
-
-                label nFacePoints = f.size();
-
-                label nQuads = (nFacePoints - 2)/2;
-                label nTris = (nFacePoints - 2)%2;
-                nAddCells += nQuads + nTris;
-            }
-
-            nAddCells--;
-            nAddPoints++;
-        }
-    }
-
-    // Set size of additional point addressing array
-    // (from added point to original cell)
-    addPointCellLabels_.setSize(nAddPoints);
-
-    // Set size of additional cells mapping array
-    // (from added cell to original cell)
-    superCells_.setSize(mesh.nCells() + nAddCells);
-
-    if (debug)
-    {
-        Info<< "converting points" << endl;
-    }
-
-    // Convert Foam mesh vertices to VTK
-    vtkPoints *vtkpoints = vtkPoints::New();
-    vtkpoints->Allocate(mesh.nPoints() + nAddPoints);
-
-    const Foam::pointField& points = mesh.points();
-
-    forAll(points, i)
-    {
-        vtkFoamInsertNextPoint(vtkpoints, points[i]);
-    }
-
-    if (debug)
-    {
-        Info<< "converting cells" << endl;
-    }
-
-    vtkMesh->Allocate(mesh.nCells() + nAddCells);
-
-    // Set counters for additional points and additional cells
-    label api = 0, aci = 0;
-
-    forAll(cellShapes, celli)
-    {
-        const cellShape& cellShape = cellShapes[celli];
-        const cellModel& cellModel = cellShape.model();
-
-        superCells_[aci++] = celli;
-
-        if (cellModel == tet)
-        {
-            vtkMesh->InsertNextCell
-            (
-                VTK_TETRA,
-                4,
-                const_cast<int*>(cellShape.begin())
-            );
-        }
-        else if (cellModel == pyr)
-        {
-            vtkMesh->InsertNextCell
-            (
-                VTK_PYRAMID,
-                5,
-                const_cast<int*>(cellShape.begin())
-            );
-        }
-        else if (cellModel == prism)
-        {
-            vtkMesh->InsertNextCell
-            (
-                VTK_WEDGE,
-                6,
-                const_cast<int*>(cellShape.begin())
-            );
-        }
-        else if (cellModel == tetWedge)
-        {
-            // Treat as squeezed prism
-
-            int vtkVerts[6];
-            vtkVerts[0] = cellShape[0];
-            vtkVerts[1] = cellShape[2];
-            vtkVerts[2] = cellShape[1];
-            vtkVerts[3] = cellShape[3];
-            vtkVerts[4] = cellShape[4];
-            vtkVerts[5] = cellShape[4];
-
-            vtkMesh->InsertNextCell(VTK_WEDGE, 6, vtkVerts);
-        }
-        else if (cellModel == wedge)
-        {
-            // Treat as squeezed hex
-
-            int vtkVerts[8];
-            vtkVerts[0] = cellShape[0];
-            vtkVerts[1] = cellShape[1];
-            vtkVerts[2] = cellShape[2];
-            vtkVerts[3] = cellShape[2];
-            vtkVerts[4] = cellShape[3];
-            vtkVerts[5] = cellShape[4];
-            vtkVerts[6] = cellShape[5];
-            vtkVerts[7] = cellShape[6];
-
-            vtkMesh->InsertNextCell(VTK_HEXAHEDRON, 8, vtkVerts);
-        }
-        else if (cellModel == hex)
-        {
-            vtkMesh->InsertNextCell
-            (
-                VTK_HEXAHEDRON,
-                8,
-                const_cast<int*>(cellShape.begin())
-            );
-        }
-        else
-        {
-            // Polyhedral cell. Decompose into tets + prisms.
-
-            // Mapping from additional point to cell
-            addPointCellLabels_[api] = celli;
-
-            // Insert the new vertex from the cell-centre
-            label newVertexLabel = mesh.nPoints() + api;
-            vtkFoamInsertNextPoint(vtkpoints, mesh.C()[celli]);
-
-            // Whether to insert cell in place of original or not.
-            bool substituteCell = true;
-
-            const labelList& cFaces = mesh.cells()[celli];
-
-            forAll(cFaces, cFaceI)
-            {
-                const face& f = mesh.faces()[cFaces[cFaceI]];
-
-                label nFacePoints = f.size();
-
-                label nQuads = (nFacePoints - 2)/2;
-                label nTris = (nFacePoints - 2)%2;
-
-                label qpi = 0;
-
-                for (label quadi=0; quadi<nQuads; quadi++)
-                {
-                    label thisCellI = -1;
-
-                    if (substituteCell)
-                    {
-                        thisCellI = celli;
-                        substituteCell = false;
-                    }
-                    else
-                    {
-                        thisCellI = mesh.nCells() + aci;
-                        superCells_[aci++] = celli;
-                    }
-
-                    int addVtkVerts[5];
-                    addVtkVerts[0] = f[0];
-                    addVtkVerts[1] = f[qpi + 1];
-                    addVtkVerts[2] = f[qpi + 2];
-                    addVtkVerts[3] = f[qpi + 3];
-                    addVtkVerts[4] = newVertexLabel;
-                    vtkMesh->InsertNextCell(VTK_PYRAMID, 5, addVtkVerts);
-
-                    qpi += 2;
-                }
-
-                if (nTris)
-                {
-                    label thisCellI = -1;
-
-                    if (substituteCell)
-                    {
-                        thisCellI = celli;
-                        substituteCell = false;
-                    }
-                    else
-                    {
-                        thisCellI = mesh.nCells() + aci;
-                        superCells_[aci++] = celli;
-                    }
-
-                    int addVtkVerts[4];
-                    addVtkVerts[0] = f[0];
-                    addVtkVerts[1] = f[qpi + 1];
-                    addVtkVerts[2] = f[qpi + 2];
-                    addVtkVerts[3] = newVertexLabel;
-                    vtkMesh->InsertNextCell(VTK_TETRA, 4, addVtkVerts);
-                }
-            }
-
-            api++;
-        }
-    }
-
-    vtkMesh->SetPoints(vtkpoints);
-    vtkpoints->Delete();
-}
-
-
-// ************************************************************************* //
diff --git a/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/vtkFoam/vtkFoamAddPatch.C b/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/vtkFoam/vtkFoamAddPatch.C
deleted file mode 100644
index 5db4f79555b30c5e3fd76b7802003ab3e09c674a..0000000000000000000000000000000000000000
--- a/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/vtkFoam/vtkFoamAddPatch.C
+++ /dev/null
@@ -1,115 +0,0 @@
-/*---------------------------------------------------------------------------*\
-  =========                 |
-  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
-   \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2009 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 2 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, write to the Free Software Foundation,
-    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-Description
-
-\*---------------------------------------------------------------------------*/
-
-#include "vtkFoam.H"
-#include "polyPatch.H"
-
-#include "vtkUnstructuredGrid.h"
-#include "vtkCellArray.h"
-
-#include "vtkFoamInsertNextPoint.H"
-
-// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
-
-void Foam::vtkFoam::addPatch
-(
-    const polyPatch& p,
-    vtkUnstructuredGrid *vtkPatch
-)
-{
-    if (debug)
-    {
-        Info<< "Adding patch " << p.name() << endl;
-    }
-
-    SetName(vtkPatch, p.name().c_str());
-
-    if (debug)
-    {
-        Info<< "converting points" << endl;
-    }
-
-    const Foam::pointField& points = p.localPoints();
-
-    // Convert Foam mesh vertices to VTK
-    vtkPoints *vtkpoints = vtkPoints::New();
-    vtkpoints->Allocate(points.size());
-
-    forAll(points, i)
-    {
-        vtkFoamInsertNextPoint(vtkpoints, points[i]);
-    }
-
-    if (debug)
-    {
-        Info<< "converting faces" << endl;
-    }
-
-    const faceList& faces = p.localFaces();
-
-    vtkPatch->Allocate(faces.size());
-
-    forAll(faces, facei)
-    {
-        const face& f = faces[facei];
-
-        if (f.size() == 3)
-        {
-            vtkPatch->InsertNextCell
-            (
-                VTK_TRIANGLE,
-                3,
-                const_cast<int*>(f.begin())
-            );
-        }
-        else if (f.size() == 4)
-        {
-            vtkPatch->InsertNextCell
-            (
-                VTK_QUAD,
-                4,
-                const_cast<int*>(f.begin())
-            );
-        }
-        else
-        {
-            vtkPatch->InsertNextCell
-            (
-                VTK_POLYGON,
-                f.size(),
-                const_cast<int*>(f.begin())
-            );
-        }
-    }
-
-    vtkPatch->SetPoints(vtkpoints);
-    vtkpoints->Delete();
-}
-
-
-// ************************************************************************* //
diff --git a/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/vtkFoam/vtkFoamConvertFields.H b/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/vtkFoam/vtkFoamConvertFields.H
deleted file mode 100644
index 6ba4435d1afe6cf7191937bae428951c2bd90049..0000000000000000000000000000000000000000
--- a/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/vtkFoam/vtkFoamConvertFields.H
+++ /dev/null
@@ -1,235 +0,0 @@
-/*---------------------------------------------------------------------------*\
-  =========                 |
-  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
-   \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2009 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 2 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, write to the Free Software Foundation,
-    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-InClass
-    Foam::vtkFoam
-
-\*---------------------------------------------------------------------------*/
-
-#ifndef vtkFoamConvertFields_H
-#define vtkFoamConvertFields_H
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-#include "vtkFoamConvertVolField.H"
-#include "vtkFoamConvertPointField.H"
-
-#include "vtkFoamConvertPatchFaceField.H"
-#include "vtkFoamConvertPatchPointField.H"
-
-#include "emptyFvPatchField.H"
-
-template<class Type>
-void Foam::vtkFoam::convertVolFields
-(
-    const fvMesh& mesh,
-    const volPointInterpolation& pInterp,
-    const IOobjectList& objects,
-    vtkDataArraySelection *fieldSelection
-)
-{
-    IOobjectList fieldObjects
-    (
-        objects.lookupClass
-        (
-            GeometricField<Type, fvPatchField, volMesh>::typeName
-        )
-    );
-
-    label nSelectedFields = fieldSelection->GetNumberOfArrays();
-
-    for (label i=0; i<nSelectedFields; i++)
-    {
-        if(fieldSelection->GetArraySetting(i))
-        {
-            word fieldName = fieldSelection->GetArrayName(i);
-
-            if (fieldObjects.found(fieldName))
-            {
-                GeometricField<Type, fvPatchField, volMesh> tf
-                (
-                    IOobject
-                    (
-                        fieldName,
-                        mesh.time().timeName(),
-                        mesh,
-                        IOobject::MUST_READ
-                    ),
-                    mesh
-                );
-
-                tmp<GeometricField<Type, pointPatchField, pointMesh> > tptf
-                (
-                    pInterp.interpolate(tf)
-                );
-
-                if (selectedRegions_[0])
-                {
-                    convertVolField(tf);
-                    convertPointField(tptf(), tf);
-                }
-
-                label regioni = 0;
-                forAll (mesh.boundaryMesh(), patchi)
-                {
-                    if (mesh.boundaryMesh()[patchi].size())
-                    {
-                        regioni++;
-
-                        if (selectedRegions_[regioni])
-                        {
-                            const fvPatchField<Type>& ptf
-                            (
-                                tf.boundaryField()[patchi]
-                            );
-
-                            if (!isType<emptyFvPatchField<Type> >(ptf))
-                            {
-                                convertPatchFaceField
-                                (
-                                    tf.name(),
-                                    ptf,
-                                    regioni
-                                );
-
-                                convertPatchPointField
-                                (
-                                    tptf().name(),
-                                    tptf().boundaryField()[patchi]
-                                        .patchInternalField()(),
-                                    regioni
-                                );
-                            }
-                            else
-                            {
-                                fvPatch p
-                                (
-                                    ptf.patch().patch(),
-                                    tf.mesh().boundary()
-                                );
-
-                                convertPatchFaceField
-                                (
-                                    tf.name(),
-                                    fvPatchField<Type>(p, tf)
-                                        .patchInternalField()(),
-                                    regioni
-                                );
-
-                                convertPatchPointField
-                                (
-                                    tptf().name(),
-                                    tptf().boundaryField()[patchi]
-                                       .patchInternalField()(),
-                                    regioni
-                                );
-                            }
-                        }
-                    }
-                }
-            }
-        }
-    }
-}
-
-
-template<class Type>
-void Foam::vtkFoam::convertPointFields
-(
-    const fvMesh& mesh,
-    const IOobjectList& objects,
-    vtkDataArraySelection *fieldSelection
-)
-{
-    IOobjectList fieldObjects
-    (
-        objects.lookupClass
-        (
-            GeometricField<Type, pointPatchField, pointMesh>::typeName
-        )
-    );
-
-    label nSelectedFields = fieldSelection->GetNumberOfArrays();
-
-    for (label i=0; i<nSelectedFields; i++)
-    {
-        if(fieldSelection->GetArraySetting(i))
-        {
-            word fieldName = fieldSelection->GetArrayName(i);
-
-            if (fieldObjects.found(fieldName))
-            {
-                pointMesh pMesh(mesh);
-
-                GeometricField<Type, pointPatchField, pointMesh> ptf
-                (
-                    IOobject
-                    (
-                        fieldName,
-                        mesh.time().timeName(),
-                        mesh,
-                        IOobject::MUST_READ
-                    ),
-                    pMesh
-                );
-
-                if (selectedRegions_[0])
-                {
-                    convertPointField
-                    (
-                        ptf,
-                        GeometricField<Type, fvPatchField, volMesh>::null()
-                    );
-                }
-
-                label regioni = 0;
-                forAll (mesh.boundaryMesh(), patchi)
-                {
-                    if (mesh.boundaryMesh()[patchi].size())
-                    {
-                        regioni++;
-
-                        if (selectedRegions_[regioni])
-                        {
-                            convertPatchPointField
-                            (
-                                ptf.name(),
-                                ptf.boundaryField()[patchi]
-                               .patchInternalField()(),
-                                regioni
-                            );
-                        }
-                    }
-                }
-            }
-        }
-    }
-}
-
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-#endif
-
-// ************************************************************************* //
diff --git a/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/vtkFoam/vtkFoamConvertPatchFaceField.H b/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/vtkFoam/vtkFoamConvertPatchFaceField.H
deleted file mode 100644
index 9b5fd9353f600b13f45a8be895c38db68c86da94..0000000000000000000000000000000000000000
--- a/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/vtkFoam/vtkFoamConvertPatchFaceField.H
+++ /dev/null
@@ -1,106 +0,0 @@
-/*---------------------------------------------------------------------------*\
-  =========                 |
-  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
-   \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2009 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 2 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, write to the Free Software Foundation,
-    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-InClass
-    Foam::vtkFoam
-
-\*---------------------------------------------------------------------------*/
-
-#ifndef vtkFoamConvertPatchFaceField_H
-#define vtkFoamConvertPatchFaceField_H
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-template<class Type>
-void Foam::vtkFoam::convertPatchFaceField
-(
-    const word& name,
-    const Field<Type>& ptf,
-    const label regioni
-)
-{
-    vtkUnstructuredGrid *vtkMesh =
-        vtkUnstructuredGrid::SafeDownCast(reader_->GetOutput(regioni));
-
-    vtkFloatArray *cellTypes = vtkFloatArray::New();
-    cellTypes->SetNumberOfTuples(ptf.size());
-    cellTypes->SetNumberOfComponents(Type::nComponents);
-    cellTypes->Allocate(Type::nComponents*ptf.size());
-    cellTypes->SetName(name.c_str());
-
-    float vec[Type::nComponents];
-
-    forAll(ptf, i)
-    {
-        const Type& t = ptf[i];
-        for (direction d=0; d<Type::nComponents; d++)
-        {
-            vec[d] = t[d];
-        }
-
-        cellTypes->InsertTuple(i, vec);
-    }
-
-    vtkMesh->GetCellData()->AddArray(cellTypes);
-    cellTypes->Delete();
-}
-
-
-template<>
-void Foam::vtkFoam::convertPatchFaceField
-(
-    const word& name,
-    const Field<scalar>& psf,
-    const label regioni
-)
-{
-    vtkUnstructuredGrid *vtkMesh =
-        vtkUnstructuredGrid::SafeDownCast(reader_->GetOutput(regioni));
-
-    vtkFloatArray *cellScalars = vtkFloatArray::New();
-    cellScalars->SetNumberOfTuples(psf.size());
-    cellScalars->SetNumberOfComponents(1);
-    cellScalars->Allocate(psf.size());
-    cellScalars->SetName(name.c_str());
-
-    forAll(psf, i)
-    {
-        cellScalars->InsertComponent(i, 0, psf[i]);
-    }
-
-    vtkMesh->GetCellData()->AddArray(cellScalars);
-    if (!vtkMesh->GetCellData()->GetScalars())
-    {
-        vtkMesh->GetCellData()->SetScalars(cellScalars);
-    }
-
-    cellScalars->Delete();
-}
-
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-#endif
-
-// ************************************************************************* //
diff --git a/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/vtkFoam/vtkFoamConvertPatchPointField.H b/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/vtkFoam/vtkFoamConvertPatchPointField.H
deleted file mode 100644
index 911ec08d714caeed843bd295d27976d6cba84970..0000000000000000000000000000000000000000
--- a/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/vtkFoam/vtkFoamConvertPatchPointField.H
+++ /dev/null
@@ -1,105 +0,0 @@
-/*---------------------------------------------------------------------------*\
-  =========                 |
-  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
-   \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2009 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 2 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, write to the Free Software Foundation,
-    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-InClass
-    Foam::vtkFoam
-
-\*---------------------------------------------------------------------------*/
-
-#ifndef vtkFoamConvertPatchPointField_H
-#define vtkFoamConvertPatchPointField_H
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-template<class Type>
-void Foam::vtkFoam::convertPatchPointField
-(
-    const word& name,
-    const Field<Type>& pptf,
-    const label regioni
-)
-{
-    vtkUnstructuredGrid *vtkMesh =
-        vtkUnstructuredGrid::SafeDownCast(reader_->GetOutput(regioni));
-
-    vtkFloatArray *pointTypes = vtkFloatArray::New();
-    pointTypes->SetNumberOfTuples(pptf.size());
-    pointTypes->SetNumberOfComponents(Type::nComponents);
-    pointTypes->Allocate(Type::nComponents*pptf.size());
-    pointTypes->SetName(name.c_str());
-
-    float vec[Type::nComponents];
-
-    forAll(pptf, i)
-    {
-        for (direction d=0; d<Type::nComponents; d++)
-        {
-            vec[d] = pptf[i][d];
-        }
-
-        pointTypes->InsertTuple(i, vec);
-    }
-
-    vtkMesh->GetPointData()->AddArray(pointTypes);
-    pointTypes->Delete();
-}
-
-
-template<>
-void Foam::vtkFoam::convertPatchPointField
-(
-    const word& name,
-    const Field<scalar>& ppsf,
-    const label regioni
-)
-{
-    vtkUnstructuredGrid *vtkMesh =
-        vtkUnstructuredGrid::SafeDownCast(reader_->GetOutput(regioni));
-
-    vtkFloatArray *pointScalars = vtkFloatArray::New();
-    pointScalars->SetNumberOfTuples(ppsf.size());
-    pointScalars->SetNumberOfComponents(1);
-    pointScalars->Allocate(ppsf.size());
-    pointScalars->SetName(name.c_str());
-
-    for (int i=0; i<ppsf.size(); i++)
-    {
-        pointScalars->InsertComponent(i, 0, ppsf[i]);
-    }
-
-    vtkMesh->GetPointData()->AddArray(pointScalars);
-    if (!vtkMesh->GetPointData()->GetScalars())
-    {
-        vtkMesh->GetPointData()->SetScalars(pointScalars);
-    }
-
-    pointScalars->Delete();
-}
-
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-#endif
-
-// ************************************************************************* //
diff --git a/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/vtkFoam/vtkFoamConvertPointField.H b/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/vtkFoam/vtkFoamConvertPointField.H
deleted file mode 100644
index d09d9da23eb5d134b0b7359490612e4ecbc0090a..0000000000000000000000000000000000000000
--- a/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/vtkFoam/vtkFoamConvertPointField.H
+++ /dev/null
@@ -1,163 +0,0 @@
-/*---------------------------------------------------------------------------*\
-  =========                 |
-  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
-   \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2009 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 2 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, write to the Free Software Foundation,
-    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-InClass
-    Foam::vtkFoam
-
-\*---------------------------------------------------------------------------*/
-
-#ifndef vtkFoamConvertPointField_H
-#define vtkFoamConvertPointField_H
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-#include "interpolatePointToCell.H"
-
-template<class Type>
-void Foam::vtkFoam::convertPointField
-(
-    const GeometricField<Type, pointPatchField, pointMesh>& ptf,
-    const GeometricField<Type, fvPatchField, volMesh>& tf
-)
-{
-    vtkUnstructuredGrid *vtkMesh =
-        vtkUnstructuredGrid::SafeDownCast(reader_->GetOutput(0));
-
-    vtkFloatArray *pointTypes = vtkFloatArray::New();
-    pointTypes->SetNumberOfTuples(ptf.size() + addPointCellLabels_.size());
-    pointTypes->SetNumberOfComponents(Type::nComponents);
-    pointTypes->Allocate(Type::nComponents*ptf.size());
-    pointTypes->SetName(ptf.name().c_str());
-
-    float vec[Type::nComponents];
-
-    forAll(ptf, i)
-    {
-        for (direction d=0; d<Type::nComponents; d++)
-        {
-            vec[d] = ptf[i][d];
-        }
-
-        pointTypes->InsertTuple(i, vec);
-    }
-
-    label i = ptf.size();
-
-    if (&tf != &GeometricField<Type, fvPatchField, volMesh>::null())
-    {
-        forAll(addPointCellLabels_, api)
-        {
-            Type t = tf[addPointCellLabels_[api]];
-
-            for (direction d=0; d<Type::nComponents; d++)
-            {
-                vec[d] = t[d];
-            }
-
-            pointTypes->InsertTuple(i++, vec);
-        }
-    }
-    else
-    {
-        forAll(addPointCellLabels_, api)
-        {
-            Type t = interpolatePointToCell(ptf, addPointCellLabels_[api]);
-
-            for (direction d=0; d<Type::nComponents; d++)
-            {
-                vec[d] = t[d];
-            }
-
-            pointTypes->InsertTuple(i++, vec);
-        }
-    }
-
-    vtkMesh->GetPointData()->AddArray(pointTypes);
-    pointTypes->Delete();
-}
-
-
-template<>
-void Foam::vtkFoam::convertPointField
-(
-    const GeometricField<scalar, pointPatchField, pointMesh>& psf,
-    const GeometricField<scalar, fvPatchField, volMesh>& sf
-)
-{
-    vtkUnstructuredGrid *vtkMesh =
-        vtkUnstructuredGrid::SafeDownCast(reader_->GetOutput(0));
-
-    vtkFloatArray *pointScalars = vtkFloatArray::New();
-    pointScalars->SetNumberOfTuples(psf.size() + addPointCellLabels_.size());
-    pointScalars->SetNumberOfComponents(1);
-    pointScalars->Allocate(psf.size());
-    pointScalars->SetName(psf.name().c_str());
-
-    for (int i=0; i<psf.size(); i++)
-    {
-        pointScalars->InsertComponent(i, 0, psf[i]);
-    }
-
-    label i = psf.size();
-
-    if (&sf != &GeometricField<scalar, fvPatchField, volMesh>::null())
-    {
-        forAll(addPointCellLabels_, api)
-        {
-            pointScalars->InsertComponent
-            (
-                i++,
-                0,
-                sf[addPointCellLabels_[api]]
-            );
-        }
-    }
-    else
-    {
-        forAll(addPointCellLabels_, api)
-        {
-            pointScalars->InsertComponent
-            (
-                i++,
-                0,
-                interpolatePointToCell(psf, addPointCellLabels_[api])
-            );
-        }
-    }
-
-    vtkMesh->GetPointData()->AddArray(pointScalars);
-    if (!vtkMesh->GetPointData()->GetScalars())
-    {
-        vtkMesh->GetPointData()->SetScalars(pointScalars);
-    }
-
-    pointScalars->Delete();
-}
-
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-#endif
-
-// ************************************************************************* //
diff --git a/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/vtkFoam/vtkFoamConvertVolField.H b/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/vtkFoam/vtkFoamConvertVolField.H
deleted file mode 100644
index 7762e906d17f2d49fdfecfc7fff96ffabd78941c..0000000000000000000000000000000000000000
--- a/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/vtkFoam/vtkFoamConvertVolField.H
+++ /dev/null
@@ -1,102 +0,0 @@
-/*---------------------------------------------------------------------------*\
-  =========                 |
-  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
-   \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2009 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 2 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, write to the Free Software Foundation,
-    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-InClass
-    Foam::vtkFoam
-
-\*---------------------------------------------------------------------------*/
-
-#ifndef vtkFoamConvertVolField_H
-#define vtkFoamConvertVolField_H
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-template<class Type>
-void Foam::vtkFoam::convertVolField
-(
-    const GeometricField<Type, fvPatchField, volMesh>& tf
-)
-{
-    vtkUnstructuredGrid *vtkMesh =
-        vtkUnstructuredGrid::SafeDownCast(reader_->GetOutput(0));
-
-    vtkFloatArray *cellTypes = vtkFloatArray::New();
-    cellTypes->SetNumberOfTuples(superCells_.size());
-    cellTypes->SetNumberOfComponents(Type::nComponents);
-    cellTypes->Allocate(Type::nComponents*tf.size());
-    cellTypes->SetName(tf.name().c_str());
-
-    float vec[Type::nComponents];
-
-    forAll(superCells_, sci)
-    {
-        const Type& t = tf[superCells_[sci]];
-        for (direction d=0; d<Type::nComponents; d++)
-        {
-            vec[d] = t[d];
-        }
-
-        cellTypes->InsertTuple(sci, vec);
-    }
-
-    vtkMesh->GetCellData()->AddArray(cellTypes);
-    cellTypes->Delete();
-}
-
-
-template<>
-void Foam::vtkFoam::convertVolField
-(
-    const GeometricField<scalar, fvPatchField, volMesh>& sf
-)
-{
-    vtkUnstructuredGrid *vtkMesh =
-        vtkUnstructuredGrid::SafeDownCast(reader_->GetOutput(0));
-
-    vtkFloatArray *cellScalars = vtkFloatArray::New();
-    cellScalars->SetNumberOfTuples(superCells_.size());
-    cellScalars->SetNumberOfComponents(1);
-    cellScalars->Allocate(sf.size());
-    cellScalars->SetName(sf.name().c_str());
-
-    forAll(superCells_, sci)
-    {
-        cellScalars->InsertComponent(sci, 0, sf[superCells_[sci]]);
-    }
-
-    vtkMesh->GetCellData()->AddArray(cellScalars);
-    if (!vtkMesh->GetCellData()->GetScalars())
-    {
-        vtkMesh->GetCellData()->SetScalars(cellScalars);
-    }
-
-    cellScalars->Delete();
-}
-
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-#endif
-
-// ************************************************************************* //
diff --git a/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/PV3FoamReader/PV3FoamReader_SM.xml b/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/PV3FoamReader/PV3FoamReader_SM.xml
index 8506772e5ce9b6a98c63fab60ebec6f40d74e9ef..18bccb0398ca89d61eed1e7a9166ee37c47b95f8 100644
--- a/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/PV3FoamReader/PV3FoamReader_SM.xml
+++ b/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/PV3FoamReader/PV3FoamReader_SM.xml
@@ -16,6 +16,17 @@
       </Documentation>
     </StringVectorProperty>
 
+    <!-- Send discrete time info to the animation panel -->
+    <DoubleVectorProperty
+      name="TimestepValues"
+      repeatable="1"
+      information_only="1">
+      <TimeStepsInformationHelper/>
+      <Documentation>
+        Available timestep values.
+      </Documentation>
+    </DoubleVectorProperty>
+
     <!-- Cache Mesh check-box -->
     <IntVectorProperty
       name="UiCacheMesh"
@@ -30,20 +41,33 @@
       </Documentation>
     </IntVectorProperty>
 
-
-    <!-- Send discrete time info to the animation panel -->
-    <DoubleVectorProperty
-      name="TimestepValues"
-      repeatable="1"
-      information_only="1">
-      <TimeStepsInformationHelper/>
+    <!-- Refresh button -->
+    <IntVectorProperty
+      name="UiRefresh"
+      command="SetRefresh"
+      number_of_elements="1"
+      is_internal="0"
+      default_values="0"
+      animateable="0">
+      <BooleanDomain name="bool"/>
       <Documentation>
-        Available timestep values.
+        Rescan for updated timesteps/fields.
       </Documentation>
-    </DoubleVectorProperty>
-
+    </IntVectorProperty>
 
-    <!-- Global settings -->
+    <!-- Skip Zero Time check-box -->
+    <IntVectorProperty
+      name="UiZeroTime"
+      command="SetSkipZeroTime"
+      number_of_elements="1"
+      is_internal="1"
+      default_values="0"
+      animateable="0">
+      <BooleanDomain name="bool"/>
+      <Documentation>
+        Skip including the 0/ time directory
+      </Documentation>
+    </IntVectorProperty>
 
     <!-- Extrapolate Patches check-box -->
     <IntVectorProperty
@@ -60,22 +84,24 @@
 
     <!-- Include Sets check-box -->
     <IntVectorProperty
-      name="IncludeSets"
+      name="UiIncludeSets"
       command="SetIncludeSets"
       number_of_elements="1"
+      is_internal="1"
       default_values="0"
       animateable="0">
       <Documentation>
-        Searches the polyMesh/sets/ directory
+        Search the polyMesh/sets/ directory
       </Documentation>
       <BooleanDomain name="bool"/>
     </IntVectorProperty>
 
     <!-- Include Zones check-box -->
     <IntVectorProperty
-      name="IncludeZones"
+      name="UiIncludeZones"
       command="SetIncludeZones"
       number_of_elements="1"
+      is_internal="1"
       default_values="0"
       animateable="0">
       <Documentation>
@@ -95,7 +121,7 @@
       animateable="0">
       <BooleanDomain name="bool"/>
       <Documentation>
-        Show patch names in render window.
+        Show patch names in render window
       </Documentation>
     </IntVectorProperty>
 
@@ -112,12 +138,13 @@
       </Documentation>
     </IntVectorProperty>
 
-
-    <!-- Selections -->
+    <!--
+       | Selections
+       -->
 
     <!-- Available Parts (volume, patches, lagrangian) array -->
     <StringVectorProperty
-      name="PartArrayInfo"
+      name="PartArrayStatus"
       information_only="1">
       <ArraySelectionInformationHelper attribute_name="Part"/>
     </StringVectorProperty>
@@ -129,18 +156,21 @@
       repeat_command="1"
       number_of_elements_per_command="2"
       element_types="2 0"
-      information_property="PartArrayInfo"
+      information_property="PartArrayStatus"
       animateable="0">
       <ArraySelectionDomain name="array_list">
         <RequiredProperties>
-          <Property name="PartArrayInfo" function="ArrayList"/>
+          <Property name="PartArrayStatus" function="ArrayList"/>
         </RequiredProperties>
       </ArraySelectionDomain>
+      <Documentation>
+        This property contains a list of the mesh parts (patches, sets, zones).
+      </Documentation>
     </StringVectorProperty>
 
     <!-- Available volFields array -->
     <StringVectorProperty
-      name="VolFieldArrayInfo"
+      name="VolFieldArrayStatus"
       information_only="1">
       <ArraySelectionInformationHelper attribute_name="VolField"/>
     </StringVectorProperty>
@@ -152,18 +182,21 @@
       repeat_command="1"
       number_of_elements_per_command="2"
       element_types="2 0"
-      information_property="VolFieldArrayInfo"
+      information_property="VolFieldArrayStatus"
       animateable="0">
       <ArraySelectionDomain name="array_list">
         <RequiredProperties>
-          <Property name="VolFieldArrayInfo" function="ArrayList"/>
+          <Property name="VolFieldArrayStatus" function="ArrayList"/>
         </RequiredProperties>
       </ArraySelectionDomain>
+      <Documentation>
+        This property contains a list of the volume fields
+      </Documentation>
     </StringVectorProperty>
 
     <!-- Available Lagrangian fields array -->
     <StringVectorProperty
-      name="LagrangianFieldArrayInfo"
+      name="LagrangianFieldArrayStatus"
       information_only="1">
       <ArraySelectionInformationHelper attribute_name="LagrangianField"/>
     </StringVectorProperty>
@@ -175,18 +208,21 @@
       repeat_command="1"
       number_of_elements_per_command="2"
       element_types="2 0"
-      information_property="LagrangianFieldArrayInfo"
+      information_property="LagrangianFieldArrayStatus"
       animateable="0">
       <ArraySelectionDomain name="array_list">
         <RequiredProperties>
-          <Property name="LagrangianFieldArrayInfo" function="ArrayList"/>
+          <Property name="LagrangianFieldArrayStatus" function="ArrayList"/>
         </RequiredProperties>
       </ArraySelectionDomain>
+      <Documentation>
+        This property contains a list of the lagrangian fields
+      </Documentation>
     </StringVectorProperty>
 
     <!-- Available pointFields array -->
     <StringVectorProperty
-      name="PointFieldArrayInfo"
+      name="PointFieldArrayStatus"
       information_only="1">
       <ArraySelectionInformationHelper attribute_name="PointField"/>
     </StringVectorProperty>
@@ -198,19 +234,26 @@
       repeat_command="1"
       number_of_elements_per_command="2"
       element_types="2 0"
-      information_property="PointFieldArrayInfo"
+      information_property="PointFieldArrayStatus"
       animateable="0">
       <ArraySelectionDomain name="array_list">
         <RequiredProperties>
-          <Property name="PointFieldArrayInfo" function="ArrayList"/>
+          <Property name="PointFieldArrayStatus" function="ArrayList"/>
         </RequiredProperties>
       </ArraySelectionDomain>
+      <Documentation>
+        This property contains a list of the point fields
+      </Documentation>
     </StringVectorProperty>
 
   <Hints>
     <Property name="FileName" show="0"/>
     <Property name="UiCacheMesh" show="0"/>
+    <Property name="UiZeroTime" show="0"/>
+    <Property name="UiRefresh" show="0"/>
     <Property name="UiShowPatchNames" show="0"/>
+    <Property name="UiIncludeSets" show="0"/>
+    <Property name="UiIncludeZones" show="0"/>
   </Hints>
 
 
diff --git a/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/PV3FoamReader/pqPV3FoamReaderPanel.cxx b/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/PV3FoamReader/pqPV3FoamReaderPanel.cxx
index 4f12089f45d71be3aa020764467268814bac681d..7d421cbedd0dc863e371e5c81ee08376580f5d00 100644
--- a/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/PV3FoamReader/pqPV3FoamReaderPanel.cxx
+++ b/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/PV3FoamReader/pqPV3FoamReaderPanel.cxx
@@ -32,9 +32,10 @@ License
 #include <QLabel>
 #include <QLayout>
 #include <QString>
+#include <QPushButton>
 #include <QtDebug>
 
-// Paraview<->QT UI
+// Paraview <-> QT UI
 #include "pqAnimationScene.h"
 #include "pqApplicationCore.h"
 #include "pqPipelineRepresentation.h"
@@ -56,51 +57,169 @@ pqPV3FoamReaderPanel::pqPV3FoamReaderPanel
     QWidget *p
 )
 :
-    pqAutoGeneratedObjectPanel(proxy, p),
-    sourceProxy_(vtkSMSourceProxy::SafeDownCast(this->proxy()))
+    pqAutoGeneratedObjectPanel(proxy, p)
 {
     // create first sublayout (at top of the panel)
-    QGridLayout *sect1 = new QGridLayout();
-    this->PanelLayout->addLayout(sect1, 0, 0, 1, -1);
+    QGridLayout *form = new QGridLayout();
+    this->PanelLayout->addLayout(form, 0, 0, 1, -1);
 
+    vtkSMProperty* prop = 0;
+
+    // refresh button for updating times/fields
+    if ((prop = this->proxy()->GetProperty("UiRefresh")) != 0)
+    {
+        prop->SetImmediateUpdate(1);
+        QPushButton *refresh = new QPushButton("Refresh Times");
+        refresh->setToolTip("Rescan for updated times/fields.");
+
+        form->addWidget(refresh, 0, 0, Qt::AlignLeft);
+        QObject::connect
+        (
+            refresh,
+            SIGNAL(clicked()),
+            this,
+            SLOT(RefreshPressed())
+        );
+    }
+
+    // checkbox for skip zeroTime
+    if ((prop = this->proxy()->GetProperty("UiZeroTime")) != 0)
+    {
+        // immediate update on the Server Manager side
+        prop->SetImmediateUpdate(true);
+
+        ZeroTime_ = new QCheckBox("Skip Zero Time");
+        ZeroTime_->setChecked
+        (
+            vtkSMIntVectorProperty::SafeDownCast(prop)->GetElement(0)
+        );
+        ZeroTime_->setToolTip
+        (
+            "Skip including the 0/ time directory."
+        );
+
+        form->addWidget(ZeroTime_, 0, 1, Qt::AlignLeft);
+        connect
+        (
+            ZeroTime_,
+            SIGNAL(stateChanged(int)),
+            this,
+            SLOT(ZeroTimeToggled())
+        );
+    }
 
-    // checkbox for caching mesh
-    CacheMesh_ = new QCheckBox("Cache Mesh");
-    CacheMesh_->setChecked(true);
 
     // checkbox for caching mesh
-    ShowPatchNames_ = new QCheckBox("Show Patch Names");
-    ShowPatchNames_->setChecked(false);
+    if ((prop = this->proxy()->GetProperty("UiCacheMesh")) != 0)
+    {
+        // immediate update on the Server Manager side
+        prop->SetImmediateUpdate(true);
 
-    connect
-    (
-        CacheMesh_,
-        SIGNAL(stateChanged(int)),
-        this,
-        SLOT(CacheMeshToggled())
-    );
+        CacheMesh_ = new QCheckBox("Cache Mesh");
+        CacheMesh_->setChecked
+        (
+            vtkSMIntVectorProperty::SafeDownCast(prop)->GetElement(0)
+        );
+        CacheMesh_->setToolTip
+        (
+            "Cache the fvMesh in memory."
+        );
 
-    connect
-    (
-        ShowPatchNames_,
-        SIGNAL(stateChanged(int)),
-        this,
-        SLOT(ShowPatchNamesToggled())
-    );
+        form->addWidget(CacheMesh_, 1, 0, Qt::AlignLeft);
+        connect
+        (
+            CacheMesh_,
+            SIGNAL(stateChanged(int)),
+            this,
+            SLOT(CacheMeshToggled())
+        );
+    }
 
-    sect1->addWidget(CacheMesh_);
-    sect1->addWidget(ShowPatchNames_);
 
+    // checkbox for patch names
+    if ((prop = this->proxy()->GetProperty("UiShowPatchNames")) != 0)
+    {
+        // immediate update on the Server Manager side
+        prop->SetImmediateUpdate(true);
+
+        ShowPatchNames_ = new QCheckBox("Patch Names");
+        ShowPatchNames_->setChecked
+        (
+            vtkSMIntVectorProperty::SafeDownCast(prop)->GetElement(0)
+        );
+        ShowPatchNames_->setToolTip
+        (
+            "Show patch names in render window."
+        );
+
+        // row/col 0,1
+        form->addWidget(ShowPatchNames_, 1, 1, Qt::AlignLeft);
+        connect
+        (
+            ShowPatchNames_,
+            SIGNAL(stateChanged(int)),
+            this,
+            SLOT(ShowPatchNamesToggled())
+        );
+    }
+
+
+    // checkbox for include sets
+    if ((prop = this->proxy()->GetProperty("UiIncludeSets")) != 0)
+    {
+        // immediate update on the Server Manager side
+        prop->SetImmediateUpdate(true);
+
+        IncludeSets_ = new QCheckBox("Include Sets");
+        IncludeSets_->setChecked
+        (
+            vtkSMIntVectorProperty::SafeDownCast(prop)->GetElement(0)
+        );
+        IncludeSets_->setToolTip
+        (
+            "Search the polyMesh/sets/ directory."
+        );
+
+        // row/col 1,0
+        form->addWidget(IncludeSets_, 2, 0, Qt::AlignLeft);
+        connect
+        (
+            IncludeSets_,
+            SIGNAL(stateChanged(int)),
+            this,
+            SLOT(IncludeSetsToggled())
+        );
+    }
+
+
+    // checkbox for include zones
+    if ((prop = this->proxy()->GetProperty("UiIncludeZones")) != 0)
+    {
+        // immediate update on the Server Manager side
+        prop->SetImmediateUpdate(true);
+
+        IncludeZones_ = new QCheckBox("Include Zones");
+        IncludeZones_->setChecked
+        (
+            vtkSMIntVectorProperty::SafeDownCast(prop)->GetElement(0)
+        );
+        IncludeZones_->setToolTip
+        (
+            "ZoneMesh information is used to find {cell,face,point}Zones. "
+            "The polyMesh/ directory is only checked on startup."
+        );
+
+        // row/col 1,1
+        form->addWidget(IncludeZones_, 2, 1, Qt::AlignLeft);
+        connect
+        (
+            IncludeZones_,
+            SIGNAL(stateChanged(int)),
+            this,
+            SLOT(IncludeZonesToggled())
+        );
+    }
 
-    // immediate update on the Server Manager side
-    vtkSMIntVectorProperty::SafeDownCast
-    (
-        sourceProxy_->GetProperty("UiCacheMesh")
-    )->SetImmediateUpdate(true);
-    vtkSMIntVectorProperty::SafeDownCast
-    (
-        sourceProxy_->GetProperty("UiShowPatchNames")
-    )->SetImmediateUpdate(true);
 }
 
 
@@ -110,16 +229,43 @@ void pqPV3FoamReaderPanel::CacheMeshToggled()
 {
     vtkSMIntVectorProperty::SafeDownCast
     (
-        sourceProxy_->GetProperty("UiCacheMesh")
+        this->proxy()->GetProperty("UiCacheMesh")
     )->SetElement(0, CacheMesh_->isChecked());
 }
 
 
+void pqPV3FoamReaderPanel::RefreshPressed()
+{
+    // update everything
+    vtkSMIntVectorProperty::SafeDownCast
+    (
+        this->proxy()->GetProperty("UiRefresh")
+    )->Modified();
+
+    vtkSMSourceProxy::SafeDownCast(this->proxy())->UpdatePipeline();
+
+    // render all views
+    pqApplicationCore::instance()->render();
+}
+
+
+void pqPV3FoamReaderPanel::ZeroTimeToggled()
+{
+    vtkSMIntVectorProperty::SafeDownCast
+    (
+        this->proxy()->GetProperty("UiZeroTime")
+    )->SetElement(0, ZeroTime_->isChecked());
+
+    // update everything
+    RefreshPressed();
+}
+
+
 void pqPV3FoamReaderPanel::ShowPatchNamesToggled()
 {
     vtkSMIntVectorProperty::SafeDownCast
     (
-        sourceProxy_->GetProperty("UiShowPatchNames")
+        this->proxy()->GetProperty("UiShowPatchNames")
     )->SetElement(0, ShowPatchNames_->isChecked());
 
     // update the active view
@@ -132,4 +278,37 @@ void pqPV3FoamReaderPanel::ShowPatchNamesToggled()
 }
 
 
+void pqPV3FoamReaderPanel::IncludeSetsToggled()
+{
+    vtkSMProperty* prop;
+
+    vtkSMIntVectorProperty::SafeDownCast
+    (
+        this->proxy()->GetProperty("UiIncludeSets")
+    )->SetElement(0, IncludeSets_->isChecked());
+
+    if ((prop = this->proxy()->GetProperty("PartArrayStatus")) != 0)
+    {
+        this->proxy()->UpdatePropertyInformation(prop);
+    }
+}
+
+
+void pqPV3FoamReaderPanel::IncludeZonesToggled()
+{
+    vtkSMProperty* prop;
+
+    vtkSMIntVectorProperty::SafeDownCast
+    (
+        this->proxy()->GetProperty("UiIncludeZones")
+    )->SetElement(0, IncludeZones_->isChecked());
+
+    if ((prop = this->proxy()->GetProperty("PartArrayStatus")) != 0)
+    {
+        this->proxy()->UpdatePropertyInformation(prop);
+    }
+
+}
+
+
 // ************************************************************************* //
diff --git a/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/PV3FoamReader/pqPV3FoamReaderPanel.h b/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/PV3FoamReader/pqPV3FoamReaderPanel.h
index fc4f5f9adad0b89b6f395a492632d1f24de18075..49a3e11edad26ca2b82e1aea9a260c7a75df569d 100644
--- a/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/PV3FoamReader/pqPV3FoamReaderPanel.h
+++ b/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/PV3FoamReader/pqPV3FoamReaderPanel.h
@@ -37,6 +37,7 @@ SourceFiles
 #ifndef pqPV3FoamReaderPanel_h
 #define pqPV3FoamReaderPanel_h
 
+
 #include "pqAutoGeneratedObjectPanel.h"
 
 // Forward declaration of QT classes
@@ -62,8 +63,8 @@ class pqPV3FoamReaderPanel
     Q_OBJECT;
     typedef pqAutoGeneratedObjectPanel Superclass;
 
-    //- Server Manager Source Proxy
-    vtkSMSourceProxy* sourceProxy_;
+    //- ZeroTime checkbox
+    QCheckBox* ZeroTime_;
 
     //- CacheMesh checkbox
     QCheckBox* CacheMesh_;
@@ -71,10 +72,20 @@ class pqPV3FoamReaderPanel
     //- Show Patch Names checkbox
     QCheckBox* ShowPatchNames_;
 
+    //- IncludeSets checkbox
+    QCheckBox* IncludeSets_;
+
+    //- IncludeZones checkbox
+    QCheckBox* IncludeZones_;
+
 protected slots:
 
     void CacheMeshToggled();
+    void ZeroTimeToggled();
+    void RefreshPressed();
     void ShowPatchNamesToggled();
+    void IncludeSetsToggled();
+    void IncludeZonesToggled();
 
 
 public:
diff --git a/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/PV3FoamReader/vtkPV3FoamReader.cxx b/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/PV3FoamReader/vtkPV3FoamReader.cxx
index 32b01eb7958d8ff805c8fdeeea779d1a34b32cf1..4e5806b99c6137fe7ca2b2dbbe411a362746d47b 100644
--- a/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/PV3FoamReader/vtkPV3FoamReader.cxx
+++ b/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/PV3FoamReader/vtkPV3FoamReader.cxx
@@ -79,7 +79,9 @@ vtkPV3FoamReader::vtkPV3FoamReader()
     TimeStepRange[1] = 0;
 
     CacheMesh = 1;
+    Refresh = 0;
 
+    SkipZeroTime = 0;
     ExtrapolatePatches = 0;
     IncludeSets = 0;
     IncludeZones = 0;
@@ -336,7 +338,6 @@ int vtkPV3FoamReader::RequestData
         foamData_->setTime(nRequestTime, requestTime);
     }
 
-
     vtkMultiBlockDataSet* output = vtkMultiBlockDataSet::SafeDownCast
     (
         outputVector->GetInformationObject(0)->Get
@@ -420,7 +421,39 @@ int vtkPV3FoamReader::RequestData
 }
 
 
-void vtkPV3FoamReader::SetShowPatchNames(const int val)
+void vtkPV3FoamReader::SetRefresh(int val)
+{
+    Modified();
+}
+
+
+void vtkPV3FoamReader::SetIncludeSets(int val)
+{
+    if (IncludeSets != val)
+    {
+        IncludeSets = val;
+        if (foamData_)
+        {
+            foamData_->updateInfo();
+        }
+    }
+}
+
+
+void vtkPV3FoamReader::SetIncludeZones(int val)
+{
+    if (IncludeZones != val)
+    {
+        IncludeZones = val;
+        if (foamData_)
+        {
+            foamData_->updateInfo();
+        }
+    }
+}
+
+
+void vtkPV3FoamReader::SetShowPatchNames(int val)
 {
     if (ShowPatchNames != val)
     {
@@ -430,7 +463,6 @@ void vtkPV3FoamReader::SetShowPatchNames(const int val)
 }
 
 
-
 void vtkPV3FoamReader::updatePatchNamesView(const bool show)
 {
     pqApplicationCore* appCore = pqApplicationCore::instance();
@@ -452,7 +484,7 @@ void vtkPV3FoamReader::updatePatchNamesView(const bool show)
     // Get all the pqRenderView instances
     QList<pqRenderView*> renderViews = smModel->findItems<pqRenderView*>();
 
-    for (int viewI=0; viewI<renderViews.size(); viewI++)
+    for (int viewI=0; viewI < renderViews.size(); ++viewI)
     {
         foamData_->renderPatchNames
         (
@@ -521,7 +553,8 @@ int vtkPV3FoamReader::GetPartArrayStatus(const char* name)
 
 void vtkPV3FoamReader::SetPartArrayStatus(const char* name, int status)
 {
-    vtkDebugMacro(<<"SetPartArrayStatus");
+    vtkDebugMacro("Set mesh part \"" << name << "\" status to: " << status);
+
     if (status)
     {
         PartSelection->EnableArray(name);
diff --git a/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/PV3FoamReader/vtkPV3FoamReader.h b/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/PV3FoamReader/vtkPV3FoamReader.h
index df73979205ef11886c27c7d0ced23907d9edfb9f..f3ac8a5d92958d69808af84d9435852c8e5efda9 100644
--- a/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/PV3FoamReader/vtkPV3FoamReader.h
+++ b/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/PV3FoamReader/vtkPV3FoamReader.h
@@ -83,6 +83,15 @@ public:
     vtkSetMacro(CacheMesh, int);
     vtkGetMacro(CacheMesh, int);
 
+    // Description:
+    // FOAM refresh times/fields
+    virtual void SetRefresh(int);
+
+    // Description:
+    // FOAM Skip/include the 0/ time directory
+    vtkSetMacro(SkipZeroTime, int);
+    vtkGetMacro(SkipZeroTime, int);
+
     // Description:
     // GUI update control
     vtkSetMacro(UpdateGUI, int);
@@ -93,13 +102,14 @@ public:
     vtkSetMacro(ExtrapolatePatches, int);
     vtkGetMacro(ExtrapolatePatches, int);
 
+    // Description:
     // FOAM read sets control
-    vtkSetMacro(IncludeSets, int);
+    virtual void SetIncludeSets(int);
     vtkGetMacro(IncludeSets, int);
 
     // Description:
     // FOAM read zones control
-    vtkSetMacro(IncludeZones, int);
+    virtual void SetIncludeZones(int);
     vtkGetMacro(IncludeZones, int);
 
     // Description:
@@ -113,7 +123,7 @@ public:
 
     // Description:
     // Parts selection list control
-    vtkDataArraySelection* GetPartSelection();
+    virtual vtkDataArraySelection* GetPartSelection();
     int  GetNumberOfPartArrays();
     int  GetPartArrayStatus(const char* name);
     void SetPartArrayStatus(const char* name, int status);
@@ -121,7 +131,7 @@ public:
 
     // Description:
     // volField selection list control
-    vtkDataArraySelection* GetVolFieldSelection();
+    virtual vtkDataArraySelection* GetVolFieldSelection();
     int  GetNumberOfVolFieldArrays();
     int  GetVolFieldArrayStatus(const char* name);
     void SetVolFieldArrayStatus(const char* name, int status);
@@ -129,7 +139,7 @@ public:
 
     // Description:
     // pointField selection list control
-    vtkDataArraySelection* GetPointFieldSelection();
+    virtual vtkDataArraySelection* GetPointFieldSelection();
     int  GetNumberOfPointFieldArrays();
     int  GetPointFieldArrayStatus(const char* name);
     void SetPointFieldArrayStatus(const char* name, int status);
@@ -137,7 +147,7 @@ public:
 
     // Description:
     // lagrangianField selection list control
-    vtkDataArraySelection* GetLagrangianFieldSelection();
+    virtual vtkDataArraySelection* GetLagrangianFieldSelection();
     int  GetNumberOfLagrangianFieldArrays();
     int  GetLagrangianFieldArrayStatus(const char* name);
     void SetLagrangianFieldArrayStatus(const char* name, int status);
@@ -156,7 +166,6 @@ public:
 
     void SelectionModified();
 
-
 protected:
 
     //- Construct null
@@ -185,9 +194,10 @@ protected:
     //- Fill in additional port information
     virtual int FillOutputPortInformation(int, vtkInformation*);
 
-    // The observer to modify this object when array selections are modified
+    //- The observer to modify this object when array selections are modified
     vtkCallbackCommand* SelectionObserver;
 
+    //- The file name for this case
     char* FileName;
 
 private:
@@ -202,14 +212,16 @@ private:
     void updatePatchNamesView(const bool show);
 
     int TimeStepRange[2];
+    int Refresh;
     int CacheMesh;
+    int SkipZeroTime;
 
     int ExtrapolatePatches;
     int IncludeSets;
     int IncludeZones;
     int ShowPatchNames;
 
-    //- Dummy variable/switch for invoke a reader update
+    //- Dummy variable/switch to invoke a reader update
     int UpdateGUI;
 
     vtkDataArraySelection* PartSelection;
diff --git a/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3Foam.C b/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3Foam.C
index 6a5ab601fb4be12d8f3d424b4f661bf84da1e51a..41933d5ebfec7834e4596c962deb875dc80d1284 100644
--- a/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3Foam.C
+++ b/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3Foam.C
@@ -50,16 +50,16 @@ defineTypeNameAndDebug(Foam::vtkPV3Foam, 0);
 
 void Foam::vtkPV3Foam::resetCounters()
 {
-    // Reset mesh part ids and sizes
-    partInfoVolume_.reset();
-    partInfoPatches_.reset();
-    partInfoLagrangian_.reset();
-    partInfoCellZones_.reset();
-    partInfoFaceZones_.reset();
-    partInfoPointZones_.reset();
-    partInfoCellSets_.reset();
-    partInfoFaceSets_.reset();
-    partInfoPointSets_.reset();
+    // Reset array range information (ids and sizes)
+    arrayRangeVolume_.reset();
+    arrayRangePatches_.reset();
+    arrayRangeLagrangian_.reset();
+    arrayRangeCellZones_.reset();
+    arrayRangeFaceZones_.reset();
+    arrayRangePointZones_.reset();
+    arrayRangeCellSets_.reset();
+    arrayRangeFaceSets_.reset();
+    arrayRangePointSets_.reset();
 }
 
 
@@ -92,21 +92,6 @@ void Foam::vtkPV3Foam::reduceMemory()
 
 int Foam::vtkPV3Foam::setTime(int nRequest, const double requestTimes[])
 {
-    if (debug)
-    {
-        Info<< "<beg> Foam::vtkPV3Foam::setTime(";
-        for (int requestI = 0; requestI < nRequest; ++requestI)
-        {
-            if (requestI)
-            {
-                Info<< ", ";
-            }
-
-            Info<< requestTimes[requestI];
-        }
-        Info << ") - previousIndex = " << timeIndex_ << endl;
-    }
-
     Time& runTime = dbPtr_();
 
     // Get times list
@@ -128,6 +113,22 @@ int Foam::vtkPV3Foam::setTime(int nRequest, const double requestTimes[])
         nearestIndex = 0;
     }
 
+    if (debug)
+    {
+        Info<< "<beg> Foam::vtkPV3Foam::setTime(";
+        for (int requestI = 0; requestI < nRequest; ++requestI)
+        {
+            if (requestI)
+            {
+                Info<< ", ";
+            }
+
+            Info<< requestTimes[requestI];
+        }
+        Info<< ") - previousIndex = " << timeIndex_
+            << ", nearestIndex = " << nearestIndex << endl;
+    }
+
 
     // see what has changed
     if (timeIndex_ != nearestIndex)
@@ -230,15 +231,15 @@ Foam::vtkPV3Foam::vtkPV3Foam
     timeIndex_(-1),
     meshChanged_(true),
     fieldsChanged_(true),
-    partInfoVolume_("unzoned"),
-    partInfoPatches_("patches"),
-    partInfoLagrangian_("lagrangian"),
-    partInfoCellZones_("cellZone"),
-    partInfoFaceZones_("faceZone"),
-    partInfoPointZones_("pointZone"),
-    partInfoCellSets_("cellSet"),
-    partInfoFaceSets_("faceSet"),
-    partInfoPointSets_("pointSet")
+    arrayRangeVolume_("unzoned"),
+    arrayRangePatches_("patches"),
+    arrayRangeLagrangian_("lagrangian"),
+    arrayRangeCellZones_("cellZone"),
+    arrayRangeFaceZones_("faceZone"),
+    arrayRangePointZones_("pointZone"),
+    arrayRangeCellSets_("cellSet"),
+    arrayRangeFaceSets_("faceSet"),
+    arrayRangePointSets_("pointSet")
 {
     if (debug)
     {
@@ -288,7 +289,7 @@ Foam::vtkPV3Foam::vtkPV3Foam
         meshRegion_ = caseName.substr(beg+1, end-beg-1);
 
         // some safety
-        if (!meshRegion_.size())
+        if (meshRegion_.empty())
         {
             meshRegion_ = polyMesh::defaultRegion;
         }
@@ -352,6 +353,14 @@ void Foam::vtkPV3Foam::updateInfo()
 
     vtkDataArraySelection* partSelection = reader_->GetPartSelection();
 
+    // there are two ways to ensure we have the correct list of parts:
+    // 1. remove everything and then set particular entries 'on'
+    // 2. build a 'char **' list and call SetArraysWithDefault()
+    //
+    // Nr. 2 has the potential advantage of not touching the modification
+    // time of the vtkDataArraySelection, but the qt/paraview proxy
+    // layer doesn't care about that anyhow.
+
     // enable 'internalMesh' on the first call
     // or preserve the enabled selections
     stringList enabledEntries;
@@ -369,11 +378,11 @@ void Foam::vtkPV3Foam::updateInfo()
     partSelection->RemoveAllArrays();
 
     // Update mesh parts list - add Lagrangian at the bottom
-    updateInfoInternalMesh();
-    updateInfoPatches();
-    updateInfoSets();
-    updateInfoZones();
-    updateInfoLagrangian();
+    updateInfoInternalMesh(partSelection);
+    updateInfoPatches(partSelection);
+    updateInfoSets(partSelection);
+    updateInfoZones(partSelection);
+    updateInfoLagrangian(partSelection);
 
     // restore the enabled selections
     setSelectedArrayEntries(partSelection, enabledEntries);
@@ -396,6 +405,8 @@ void Foam::vtkPV3Foam::updateInfo()
 
     if (debug)
     {
+        // just for debug info
+        getSelectedArrayEntries(partSelection);
         Info<< "<end> Foam::vtkPV3Foam::updateInfo" << endl;
     }
 
@@ -559,11 +570,25 @@ double* Foam::vtkPV3Foam::findTimes(int& nTimeSteps)
 
         nTimes = timeLst.size() - timeI;
 
-        // always skip "constant" time if possible
+        // skip "constant" time whenever possible
         if (timeI == 0 && nTimes > 1)
         {
-            timeI = 1;
-            --nTimes;
+            if (timeLst[timeI].name() == "constant")
+            {
+                ++timeI;
+                --nTimes;
+            }
+        }
+
+
+        // skip "0/" time if requested and possible
+        if (nTimes > 1 && reader_->GetSkipZeroTime())
+        {
+            if (mag(timeLst[timeI].value()) < SMALL)
+            {
+                ++timeI;
+                --nTimes;
+            }
         }
 
         if (nTimes)
@@ -607,10 +632,10 @@ void Foam::vtkPV3Foam::renderPatchNames(vtkRenderer* renderer, const bool show)
         wordHashSet selectedPatches = getSelected
         (
             reader_->GetPartSelection(),
-            partInfoPatches_
+            arrayRangePatches_
         );
 
-        if (!selectedPatches.size())
+        if (selectedPatches.empty())
         {
             return;
         }
diff --git a/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3Foam.H b/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3Foam.H
index 05c84744775953e3672c2805f215b7f2d7b966b3..6037e78781f193928365cfcae265603383f2d776 100644
--- a/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3Foam.H
+++ b/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3Foam.H
@@ -111,7 +111,7 @@ class vtkPV3Foam
     // Private classes
 
         //- Bookkeeping for GUI checklists and the multi-block organization
-        class partInfo
+        class arrayRange
         {
             const char *name_;
             int block_;
@@ -120,11 +120,11 @@ class vtkPV3Foam
 
         public:
 
-            partInfo(const char *name, const int blockNo=0)
+            arrayRange(const char *name, const int blockNo=0)
             :
                 name_(name),
                 block_(blockNo),
-                start_(-1),
+                start_(0),
                 size_(0)
             {}
 
@@ -142,21 +142,25 @@ class vtkPV3Foam
                 return prev;
             }
 
+            //- Return block name
             const char* name() const
             {
                 return name_;
             }
 
+            //- Return array start index
             int start() const
             {
                 return start_;
             }
 
+            //- Return array end index
             int end() const
             {
                 return start_ + size_;
             }
 
+            //- Return sublist size
             int size() const
             {
                 return size_;
@@ -167,16 +171,10 @@ class vtkPV3Foam
                 return !size_;
             }
 
-            void reset()
+            //- Reset the size to zero and optionally assign a new start
+            void reset(const int startAt = 0)
             {
-                start_ = -1;
-                size_ = 0;
-            }
-
-            //- Assign new start and reset the size
-            void operator=(const int i)
-            {
-                start_ = i;
+                start_ = startAt;
                 size_ = 0;
             }
 
@@ -282,15 +280,15 @@ class vtkPV3Foam
 
         //- First instance and size of various mesh parts
         //  used to index into partStatus_ and partDataset_
-        partInfo partInfoVolume_;
-        partInfo partInfoPatches_;
-        partInfo partInfoLagrangian_;
-        partInfo partInfoCellZones_;
-        partInfo partInfoFaceZones_;
-        partInfo partInfoPointZones_;
-        partInfo partInfoCellSets_;
-        partInfo partInfoFaceSets_;
-        partInfo partInfoPointSets_;
+        arrayRange arrayRangeVolume_;
+        arrayRange arrayRangePatches_;
+        arrayRange arrayRangeLagrangian_;
+        arrayRange arrayRangeCellZones_;
+        arrayRange arrayRangeFaceZones_;
+        arrayRange arrayRangePointZones_;
+        arrayRange arrayRangeCellSets_;
+        arrayRange arrayRangeFaceSets_;
+        arrayRange arrayRangePointSets_;
 
         //- Decomposed cells information (mesh regions)
         //  TODO: regions
@@ -313,7 +311,7 @@ class vtkPV3Foam
         (
             vtkMultiBlockDataSet* output,
             vtkDataSet* dataset,
-            const partInfo&,
+            const arrayRange&,
             const label datasetNo,
             const std::string& datasetName
         );
@@ -323,7 +321,7 @@ class vtkPV3Foam
         static vtkDataSet* GetDataSetFromBlock
         (
             vtkMultiBlockDataSet* output,
-            const partInfo&,
+            const arrayRange&,
             const label datasetNo
         );
 
@@ -332,7 +330,7 @@ class vtkPV3Foam
         static label GetNumberOfDataSets
         (
             vtkMultiBlockDataSet* output,
-            const partInfo&
+            const arrayRange&
         );
 
         //- Reset data counters
@@ -344,19 +342,19 @@ class vtkPV3Foam
             void updateMeshPartsStatus();
 
             //- Internal mesh info
-            void updateInfoInternalMesh();
+            void updateInfoInternalMesh(vtkDataArraySelection*);
 
             //- Lagrangian info
-            void updateInfoLagrangian();
+            void updateInfoLagrangian(vtkDataArraySelection*);
 
             //- Patch info
-            void updateInfoPatches();
+            void updateInfoPatches(vtkDataArraySelection*);
 
             //- Set info
-            void updateInfoSets();
+            void updateInfoSets(vtkDataArraySelection*);
 
             //- Zone info
-            void updateInfoZones();
+            void updateInfoZones(vtkDataArraySelection*);
 
             //- Read zone names for zoneType from file
             wordList readZoneNames(const word& zoneType);
@@ -511,7 +509,7 @@ class vtkPV3Foam
                 const GeometricField<Type, fvPatchField, volMesh>&,
                 autoPtr<GeometricField<Type, pointPatchField, pointMesh> >&,
                 vtkMultiBlockDataSet* output,
-                const partInfo& selector,
+                const arrayRange&,
                 const List<polyDecomp>& decompLst
             );
 
@@ -521,7 +519,7 @@ class vtkPV3Foam
             (
                 const GeometricField<Type, fvPatchField, volMesh>&,
                 vtkMultiBlockDataSet* output,
-                const partInfo&,
+                const arrayRange&,
                 const label datasetNo,
                 const polyDecomp&
             );
@@ -533,7 +531,7 @@ class vtkPV3Foam
                 const word& name,
                 const Field<Type>&,
                 vtkMultiBlockDataSet* output,
-                const partInfo&,
+                const arrayRange&,
                 const label datasetNo
             );
 
@@ -543,7 +541,7 @@ class vtkPV3Foam
             (
                 const GeometricField<Type, fvPatchField, volMesh>&,
                 vtkMultiBlockDataSet* output,
-                const partInfo&,
+                const arrayRange&,
                 const label datasetNo,
                 const fvMesh&,
                 const labelList& faceLabels
@@ -555,7 +553,7 @@ class vtkPV3Foam
             (
                 const GeometricField<Type, fvPatchField, volMesh>&,
                 vtkMultiBlockDataSet* output,
-                const partInfo&,
+                const arrayRange&,
                 const label datasetNo,
                 const fvMesh&,
                 const faceSet&
@@ -576,7 +574,7 @@ class vtkPV3Foam
             (
                 const IOField<Type>&,
                 vtkMultiBlockDataSet* output,
-                const partInfo&,
+                const arrayRange&,
                 const label datasetNo
             );
 
@@ -596,7 +594,7 @@ class vtkPV3Foam
             (
                 const GeometricField<Type, pointPatchField, pointMesh>&,
                 vtkMultiBlockDataSet* output,
-                const partInfo& selector,
+                const arrayRange&,
                 const List<polyDecomp>&
             );
 
@@ -607,7 +605,7 @@ class vtkPV3Foam
                 const GeometricField<Type, pointPatchField, pointMesh>&,
                 const GeometricField<Type, fvPatchField, volMesh>&,
                 vtkMultiBlockDataSet* output,
-                const partInfo&,
+                const arrayRange&,
                 const label datasetNo,
                 const polyDecomp&
             );
@@ -619,7 +617,7 @@ class vtkPV3Foam
                 const word& name,
                 const Field<Type>&,
                 vtkMultiBlockDataSet* output,
-                const partInfo&,
+                const arrayRange&,
                 const label datasetNo
             );
 
@@ -640,7 +638,7 @@ class vtkPV3Foam
             static wordHashSet getSelected
             (
                 vtkDataArraySelection*,
-                const partInfo&
+                const arrayRange&
             );
 
             //- Retrieve the current selections
@@ -650,7 +648,7 @@ class vtkPV3Foam
             static stringList getSelectedArrayEntries
             (
                 vtkDataArraySelection*,
-                const partInfo&
+                const arrayRange&
             );
 
             //- Set selection(s)
@@ -661,7 +659,7 @@ class vtkPV3Foam
             );
 
             //- Get the first word from the mesh parts selection
-            word getPartName(int);
+            word getPartName(const int);
 
 
         //- Disallow default bitwise copy construct
diff --git a/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3FoamAddToSelection.H b/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3FoamAddToSelection.H
index d6b1f1ed5233ed8bad59aabbcbb08232b33a684e..b945d6c6a063a476e4f346a444dfbf34b6fb6c8d 100644
--- a/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3FoamAddToSelection.H
+++ b/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3FoamAddToSelection.H
@@ -50,11 +50,17 @@ Foam::label Foam::vtkPV3Foam::addToSelection
     {
         if (suffix.size())
         {
-            select->AddArray((names[nameI] + suffix).c_str());
+            select->AddArray
+            (
+                (names[nameI] + suffix).c_str()
+            );
         }
         else
         {
-            select->AddArray(names[nameI].c_str());
+            select->AddArray
+            (
+                (names[nameI]).c_str()
+            );
         }
     }
 
diff --git a/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3FoamFaceField.H b/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3FoamFaceField.H
index dba8d97d373c280c3d9334e4dbb85ba25dd10bca..68f551ae5a3979f16e7ddca13ce408a3e0950907 100644
--- a/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3FoamFaceField.H
+++ b/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3FoamFaceField.H
@@ -35,6 +35,7 @@ InClass
 #include "vtkFloatArray.h"
 #include "vtkMultiBlockDataSet.h"
 #include "vtkPolyData.h"
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 template<class Type>
@@ -42,7 +43,7 @@ void Foam::vtkPV3Foam::convertFaceField
 (
     const GeometricField<Type, fvPatchField, volMesh>& tf,
     vtkMultiBlockDataSet* output,
-    const partInfo& selector,
+    const arrayRange& range,
     const label datasetNo,
     const fvMesh& mesh,
     const labelList& faceLabels
@@ -53,11 +54,11 @@ void Foam::vtkPV3Foam::convertFaceField
     const labelList& faceOwner = mesh.faceOwner();
     const labelList& faceNeigh = mesh.faceNeighbour();
 
-    vtkFloatArray *cellData = vtkFloatArray::New();
-    cellData->SetNumberOfTuples( faceLabels.size() );
-    cellData->SetNumberOfComponents( nComp );
-    cellData->Allocate( nComp*faceLabels.size() );
-    cellData->SetName( tf.name().c_str() );
+    vtkFloatArray* cellData = vtkFloatArray::New();
+    cellData->SetNumberOfTuples(faceLabels.size());
+    cellData->SetNumberOfComponents(nComp);
+    cellData->Allocate(nComp*faceLabels.size());
+    cellData->SetName(tf.name().c_str());
 
     if (debug)
     {
@@ -99,7 +100,7 @@ void Foam::vtkPV3Foam::convertFaceField
 
     vtkPolyData::SafeDownCast
     (
-        GetDataSetFromBlock(output, selector, datasetNo)
+        GetDataSetFromBlock(output, range, datasetNo)
     )   ->GetCellData()
         ->AddArray(cellData);
 
@@ -112,7 +113,7 @@ void Foam::vtkPV3Foam::convertFaceField
 (
     const GeometricField<Type, fvPatchField, volMesh>& tf,
     vtkMultiBlockDataSet* output,
-    const partInfo& selector,
+    const arrayRange& range,
     const label datasetNo,
     const fvMesh& mesh,
     const faceSet& fSet
@@ -123,11 +124,11 @@ void Foam::vtkPV3Foam::convertFaceField
     const labelList& faceOwner = mesh.faceOwner();
     const labelList& faceNeigh = mesh.faceNeighbour();
 
-    vtkFloatArray *cellData = vtkFloatArray::New();
-    cellData->SetNumberOfTuples( fSet.size() );
-    cellData->SetNumberOfComponents( nComp );
-    cellData->Allocate( nComp*fSet.size() );
-    cellData->SetName( tf.name().c_str() );
+    vtkFloatArray* cellData = vtkFloatArray::New();
+    cellData->SetNumberOfTuples(fSet.size());
+    cellData->SetNumberOfComponents(nComp);
+    cellData->Allocate(nComp*fSet.size());
+    cellData->SetName(tf.name().c_str());
 
     if (debug)
     {
@@ -172,7 +173,7 @@ void Foam::vtkPV3Foam::convertFaceField
 
     vtkPolyData::SafeDownCast
     (
-        GetDataSetFromBlock(output, selector, datasetNo)
+        GetDataSetFromBlock(output, range, datasetNo)
     )   ->GetCellData()
         ->AddArray(cellData);
 
diff --git a/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3FoamFields.C b/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3FoamFields.C
index 38cc52f68047303136cd08d02e15c3ded723bcc7..b712fdebfe40b6dedb3006b053c1645b097d7cd7 100644
--- a/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3FoamFields.C
+++ b/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3FoamFields.C
@@ -51,7 +51,7 @@ void Foam::vtkPV3Foam::pruneObjectList
 )
 {
     // hash all the selected field names
-    if (!selected.size())
+    if (selected.empty())
     {
         objects.clear();
     }
@@ -79,7 +79,7 @@ void Foam::vtkPV3Foam::convertVolFields
         reader_->GetVolFieldSelection()
     );
 
-    if (!selectedFields.size())
+    if (selectedFields.empty())
     {
         return;
     }
@@ -89,7 +89,7 @@ void Foam::vtkPV3Foam::convertVolFields
     IOobjectList objects(mesh, dbPtr_().timeName());
     pruneObjectList(objects, selectedFields);
 
-    if (!objects.size())
+    if (objects.empty())
     {
         return;
     }
@@ -164,7 +164,7 @@ void Foam::vtkPV3Foam::convertPointFields
         reader_->GetPointFieldSelection()
     );
 
-    if (!selectedFields.size())
+    if (selectedFields.empty())
     {
         return;
     }
@@ -174,7 +174,7 @@ void Foam::vtkPV3Foam::convertPointFields
     IOobjectList objects(mesh, dbPtr_().timeName());
     pruneObjectList(objects, selectedFields);
 
-    if (!objects.size())
+    if (objects.empty())
     {
         return;
     }
@@ -229,7 +229,7 @@ void Foam::vtkPV3Foam::convertLagrangianFields
     vtkMultiBlockDataSet* output
 )
 {
-    partInfo& selector = partInfoLagrangian_;
+    arrayRange& range = arrayRangeLagrangian_;
     const fvMesh& mesh = *meshPtr_;
 
     wordHashSet selectedFields = getSelected
@@ -237,7 +237,7 @@ void Foam::vtkPV3Foam::convertLagrangianFields
         reader_->GetLagrangianFieldSelection()
     );
 
-    if (!selectedFields.size())
+    if (selectedFields.empty())
     {
         return;
     }
@@ -248,7 +248,7 @@ void Foam::vtkPV3Foam::convertLagrangianFields
         printMemory();
     }
 
-    for (int partId = selector.start(); partId < selector.end(); ++partId)
+    for (int partId = range.start(); partId < range.end(); ++partId)
     {
         const word  cloudName = getPartName(partId);
         const label datasetNo = partDataset_[partId];
@@ -270,7 +270,7 @@ void Foam::vtkPV3Foam::convertLagrangianFields
         );
         pruneObjectList(objects, selectedFields);
 
-        if (!objects.size())
+        if (objects.empty())
         {
             continue;
         }
diff --git a/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3FoamLagrangianFields.H b/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3FoamLagrangianFields.H
index 58422d69f49eb4a78b1db291d32df7a7596f6783..1b6e2a15681070cd4599aeb587f72209c46b8bfa 100644
--- a/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3FoamLagrangianFields.H
+++ b/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3FoamLagrangianFields.H
@@ -42,7 +42,7 @@ void Foam::vtkPV3Foam::convertLagrangianFields
     const label datasetNo
 )
 {
-    const partInfo& selector = partInfoLagrangian_;
+    const arrayRange& range = arrayRangeLagrangian_;
 
     forAllConstIter(IOobjectList, objects, iter)
     {
@@ -50,7 +50,7 @@ void Foam::vtkPV3Foam::convertLagrangianFields
         if (iter()->headerClassName() == IOField<Type>::typeName)
         {
             IOField<Type> tf(*iter());
-            convertLagrangianField(tf, output, selector, datasetNo);
+            convertLagrangianField(tf, output, range, datasetNo);
         }
     }
 }
@@ -61,7 +61,7 @@ void Foam::vtkPV3Foam::convertLagrangianField
 (
     const IOField<Type>& tf,
     vtkMultiBlockDataSet* output,
-    const partInfo& selector,
+    const arrayRange& range,
     const label datasetNo
 )
 {
@@ -97,7 +97,7 @@ void Foam::vtkPV3Foam::convertLagrangianField
 
     vtkPolyData::SafeDownCast
     (
-        GetDataSetFromBlock(output, selector, datasetNo)
+        GetDataSetFromBlock(output, range, datasetNo)
     )   ->GetPointData()
         ->AddArray(pointData);
 
diff --git a/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3FoamMesh.C b/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3FoamMesh.C
index 6550a960e14aac0b594aa80215e33f4deb536bd1..516b29d3ef4ddea2b23a473a27b7ad999442dbcb 100644
--- a/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3FoamMesh.C
+++ b/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3FoamMesh.C
@@ -49,13 +49,13 @@ void Foam::vtkPV3Foam::convertMeshVolume
     int& blockNo
 )
 {
-    partInfo& selector = partInfoVolume_;
-    selector.block(blockNo);   // set output block
+    arrayRange& range = arrayRangeVolume_;
+    range.block(blockNo);      // set output block
     label datasetNo = 0;       // restart at dataset 0
     const fvMesh& mesh = *meshPtr_;
 
     // resize for decomposed polyhedra
-    regionPolyDecomp_.setSize(selector.size());
+    regionPolyDecomp_.setSize(range.size());
 
     if (debug)
     {
@@ -65,7 +65,7 @@ void Foam::vtkPV3Foam::convertMeshVolume
 
     // Convert the internalMesh
     // this looks like more than one part, but it isn't
-    for (int partId = selector.start(); partId < selector.end(); ++partId)
+    for (int partId = range.start(); partId < range.end(); ++partId)
     {
         const word partName = "internalMesh";
 
@@ -82,7 +82,7 @@ void Foam::vtkPV3Foam::convertMeshVolume
 
         if (vtkmesh)
         {
-            AddToBlock(output, vtkmesh, selector, datasetNo, partName);
+            AddToBlock(output, vtkmesh, range, datasetNo, partName);
             vtkmesh->Delete();
 
             partDataset_[partId] = datasetNo++;
@@ -109,8 +109,8 @@ void Foam::vtkPV3Foam::convertMeshLagrangian
     int& blockNo
 )
 {
-    partInfo& selector = partInfoLagrangian_;
-    selector.block(blockNo);   // set output block
+    arrayRange& range = arrayRangeLagrangian_;
+    range.block(blockNo);      // set output block
     label datasetNo = 0;       // restart at dataset 0
     const fvMesh& mesh = *meshPtr_;
 
@@ -120,7 +120,7 @@ void Foam::vtkPV3Foam::convertMeshLagrangian
         printMemory();
     }
 
-    for (int partId = selector.start(); partId < selector.end(); ++partId)
+    for (int partId = range.start(); partId < range.end(); ++partId)
     {
         const word cloudName = getPartName(partId);
 
@@ -133,7 +133,7 @@ void Foam::vtkPV3Foam::convertMeshLagrangian
 
         if (vtkmesh)
         {
-            AddToBlock(output, vtkmesh, selector, datasetNo, cloudName);
+            AddToBlock(output, vtkmesh, range, datasetNo, cloudName);
             vtkmesh->Delete();
 
             partDataset_[partId] = datasetNo++;
@@ -160,8 +160,8 @@ void Foam::vtkPV3Foam::convertMeshPatches
     int& blockNo
 )
 {
-    partInfo& selector = partInfoPatches_;
-    selector.block(blockNo);   // set output block
+    arrayRange& range = arrayRangePatches_;
+    range.block(blockNo);      // set output block
     label datasetNo = 0;       // restart at dataset 0
     const fvMesh& mesh = *meshPtr_;
     const polyBoundaryMesh& patches = mesh.boundaryMesh();
@@ -172,7 +172,7 @@ void Foam::vtkPV3Foam::convertMeshPatches
         printMemory();
     }
 
-    for (int partId = selector.start(); partId < selector.end(); ++partId)
+    for (int partId = range.start(); partId < range.end(); ++partId)
     {
         const word patchName = getPartName(partId);
         const label  patchId = patches.findPatchID(patchName);
@@ -192,7 +192,7 @@ void Foam::vtkPV3Foam::convertMeshPatches
 
         if (vtkmesh)
         {
-            AddToBlock(output, vtkmesh, selector, datasetNo, patchName);
+            AddToBlock(output, vtkmesh, range, datasetNo, patchName);
             vtkmesh->Delete();
 
             partDataset_[partId] = datasetNo++;
@@ -219,15 +219,15 @@ void Foam::vtkPV3Foam::convertMeshCellZones
     int& blockNo
 )
 {
-    partInfo& selector = partInfoCellZones_;
-    selector.block(blockNo);   // set output block
+    arrayRange& range = arrayRangeCellZones_;
+    range.block(blockNo);      // set output block
     label datasetNo = 0;       // restart at dataset 0
     const fvMesh& mesh = *meshPtr_;
 
     // resize for decomposed polyhedra
-    zonePolyDecomp_.setSize(selector.size());
+    zonePolyDecomp_.setSize(range.size());
 
-    if (!selector.size())
+    if (range.empty())
     {
         return;
     }
@@ -239,7 +239,7 @@ void Foam::vtkPV3Foam::convertMeshCellZones
     }
 
     const cellZoneMesh& zMesh = mesh.cellZones();
-    for (int partId = selector.start(); partId < selector.end(); ++partId)
+    for (int partId = range.start(); partId < range.end(); ++partId)
     {
         const word zoneName = getPartName(partId);
         const label  zoneId = zMesh.findZoneID(zoneName);
@@ -281,7 +281,7 @@ void Foam::vtkPV3Foam::convertMeshCellZones
             // copy pointMap as well, otherwise pointFields fail
             zonePolyDecomp_[datasetNo].pointMap() = subsetter.pointMap();
 
-            AddToBlock(output, vtkmesh, selector, datasetNo, zoneName);
+            AddToBlock(output, vtkmesh, range, datasetNo, zoneName);
             vtkmesh->Delete();
 
             partDataset_[partId] = datasetNo++;
@@ -308,13 +308,13 @@ void Foam::vtkPV3Foam::convertMeshCellSets
     int& blockNo
 )
 {
-    partInfo& selector = partInfoCellSets_;
-    selector.block(blockNo);   // set output block
+    arrayRange& range = arrayRangeCellSets_;
+    range.block(blockNo);      // set output block
     label datasetNo = 0;       // restart at dataset 0
     const fvMesh& mesh = *meshPtr_;
 
     // resize for decomposed polyhedra
-    csetPolyDecomp_.setSize(selector.size());
+    csetPolyDecomp_.setSize(range.size());
 
     if (debug)
     {
@@ -322,7 +322,7 @@ void Foam::vtkPV3Foam::convertMeshCellSets
         printMemory();
     }
 
-    for (int partId = selector.start(); partId < selector.end(); ++partId)
+    for (int partId = range.start(); partId < range.end(); ++partId)
     {
         const word partName = getPartName(partId);
 
@@ -363,7 +363,7 @@ void Foam::vtkPV3Foam::convertMeshCellSets
             // copy pointMap as well, otherwise pointFields fail
             csetPolyDecomp_[datasetNo].pointMap() = subsetter.pointMap();
 
-            AddToBlock(output, vtkmesh, selector, datasetNo, partName);
+            AddToBlock(output, vtkmesh, range, datasetNo, partName);
             vtkmesh->Delete();
 
             partDataset_[partId] = datasetNo++;
@@ -390,12 +390,12 @@ void Foam::vtkPV3Foam::convertMeshFaceZones
     int& blockNo
 )
 {
-    partInfo& selector = partInfoFaceZones_;
-    selector.block(blockNo);   // set output block
+    arrayRange& range = arrayRangeFaceZones_;
+    range.block(blockNo);      // set output block
     label datasetNo = 0;       // restart at dataset 0
     const fvMesh& mesh = *meshPtr_;
 
-    if (!selector.size())
+    if (range.empty())
     {
         return;
     }
@@ -407,7 +407,7 @@ void Foam::vtkPV3Foam::convertMeshFaceZones
     }
 
     const faceZoneMesh& zMesh = mesh.faceZones();
-    for (int partId = selector.start(); partId < selector.end(); ++partId)
+    for (int partId = range.start(); partId < range.end(); ++partId)
     {
         const word zoneName = getPartName(partId);
         const label  zoneId = zMesh.findZoneID(zoneName);
@@ -426,7 +426,7 @@ void Foam::vtkPV3Foam::convertMeshFaceZones
         vtkPolyData* vtkmesh = faceZoneVTKMesh(mesh, zMesh[zoneId]);
         if (vtkmesh)
         {
-            AddToBlock(output, vtkmesh, selector, datasetNo, zoneName);
+            AddToBlock(output, vtkmesh, range, datasetNo, zoneName);
             vtkmesh->Delete();
 
             partDataset_[partId] = datasetNo++;
@@ -453,8 +453,8 @@ void Foam::vtkPV3Foam::convertMeshFaceSets
     int& blockNo
 )
 {
-    partInfo& selector = partInfoFaceSets_;
-    selector.block(blockNo);   // set output block
+    arrayRange& range = arrayRangeFaceSets_;
+    range.block(blockNo);      // set output block
     label datasetNo = 0;       // restart at dataset 0
     const fvMesh& mesh = *meshPtr_;
 
@@ -464,7 +464,7 @@ void Foam::vtkPV3Foam::convertMeshFaceSets
         printMemory();
     }
 
-    for (int partId = selector.start(); partId < selector.end(); ++partId)
+    for (int partId = range.start(); partId < range.end(); ++partId)
     {
         const word partName = getPartName(partId);
 
@@ -483,7 +483,7 @@ void Foam::vtkPV3Foam::convertMeshFaceSets
         vtkPolyData* vtkmesh = faceSetVTKMesh(mesh, fSet);
         if (vtkmesh)
         {
-            AddToBlock(output, vtkmesh, selector, datasetNo, partName);
+            AddToBlock(output, vtkmesh, range, datasetNo, partName);
             vtkmesh->Delete();
 
             partDataset_[partId] = datasetNo++;
@@ -510,8 +510,8 @@ void Foam::vtkPV3Foam::convertMeshPointZones
     int& blockNo
 )
 {
-    partInfo& selector = partInfoPointZones_;
-    selector.block(blockNo);   // set output block
+    arrayRange& range = arrayRangePointZones_;
+    range.block(blockNo);      // set output block
     label datasetNo = 0;       // restart at dataset 0
     const fvMesh& mesh = *meshPtr_;
 
@@ -521,10 +521,10 @@ void Foam::vtkPV3Foam::convertMeshPointZones
         printMemory();
     }
 
-    if (selector.size())
+    if (range.size())
     {
         const pointZoneMesh& zMesh = mesh.pointZones();
-        for (int partId = selector.start(); partId < selector.end(); ++partId)
+        for (int partId = range.start(); partId < range.end(); ++partId)
         {
             word zoneName = getPartName(partId);
             label zoneId = zMesh.findZoneID(zoneName);
@@ -537,7 +537,7 @@ void Foam::vtkPV3Foam::convertMeshPointZones
             vtkPolyData* vtkmesh = pointZoneVTKMesh(mesh, zMesh[zoneId]);
             if (vtkmesh)
             {
-                AddToBlock(output, vtkmesh, selector, datasetNo, zoneName);
+                AddToBlock(output, vtkmesh, range, datasetNo, zoneName);
                 vtkmesh->Delete();
 
                 partDataset_[partId] = datasetNo++;
@@ -566,8 +566,8 @@ void Foam::vtkPV3Foam::convertMeshPointSets
     int& blockNo
 )
 {
-    partInfo& selector = partInfoPointSets_;
-    selector.block(blockNo);   // set output block
+    arrayRange& range = arrayRangePointSets_;
+    range.block(blockNo);      // set output block
     label datasetNo = 0;       // restart at dataset 0
     const fvMesh& mesh = *meshPtr_;
 
@@ -577,7 +577,7 @@ void Foam::vtkPV3Foam::convertMeshPointSets
         printMemory();
     }
 
-    for (int partId = selector.start(); partId < selector.end(); ++partId)
+    for (int partId = range.start(); partId < range.end(); ++partId)
     {
         word partName = getPartName(partId);
 
@@ -596,7 +596,7 @@ void Foam::vtkPV3Foam::convertMeshPointSets
         vtkPolyData* vtkmesh = pointSetVTKMesh(mesh, pSet);
         if (vtkmesh)
         {
-            AddToBlock(output, vtkmesh, selector, datasetNo, partName);
+            AddToBlock(output, vtkmesh, range, datasetNo, partName);
             vtkmesh->Delete();
 
             partDataset_[partId] = datasetNo++;
@@ -616,4 +616,5 @@ void Foam::vtkPV3Foam::convertMeshPointSets
     }
 }
 
+
 // ************************************************************************* //
diff --git a/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3FoamMeshLagrangian.C b/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3FoamMeshLagrangian.C
index e653b05adb5ada83590b9d1646f1434c5f2b0b8b..0d46db1d49a9e4de75ae46dfb5e2a851680f9b29 100644
--- a/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3FoamMeshLagrangian.C
+++ b/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3FoamMeshLagrangian.C
@@ -80,8 +80,8 @@ vtkPolyData* Foam::vtkPV3Foam::lagrangianVTKMesh
         vtkPoints* vtkpoints = vtkPoints::New();
         vtkCellArray* vtkcells = vtkCellArray::New();
 
-        vtkpoints->Allocate( parcels.size() );
-        vtkcells->Allocate( parcels.size() );
+        vtkpoints->Allocate(parcels.size());
+        vtkcells->Allocate(parcels.size());
 
         vtkIdType particleId = 0;
         forAllConstIter(Cloud<passiveParticle>, parcels, iter)
diff --git a/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3FoamMeshPatch.C b/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3FoamMeshPatch.C
index d7c0f2f013b6ff47eb3e4f5f6d1a03b7e10fce72..ace25f527fafd2627a45379ee0d7b957abec9f7c 100644
--- a/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3FoamMeshPatch.C
+++ b/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3FoamMeshPatch.C
@@ -22,8 +22,6 @@ License
     along with OpenFOAM; if not, write to the Free Software Foundation,
     Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
 
-Description
-
 \*---------------------------------------------------------------------------*/
 
 #include "vtkPV3Foam.H"
@@ -40,10 +38,7 @@ Description
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
-vtkPolyData* Foam::vtkPV3Foam::patchVTKMesh
-(
-    const polyPatch& p
-)
+vtkPolyData* Foam::vtkPV3Foam::patchVTKMesh(const polyPatch& p)
 {
     vtkPolyData* vtkmesh = vtkPolyData::New();
 
@@ -56,8 +51,8 @@ vtkPolyData* Foam::vtkPV3Foam::patchVTKMesh
     // Convert Foam mesh vertices to VTK
     const Foam::pointField& points = p.localPoints();
 
-    vtkPoints *vtkpoints = vtkPoints::New();
-    vtkpoints->Allocate( points.size() );
+    vtkPoints* vtkpoints = vtkPoints::New();
+    vtkpoints->Allocate(points.size());
     forAll(points, i)
     {
         vtkInsertNextOpenFOAMPoint(vtkpoints, points[i]);
@@ -71,7 +66,7 @@ vtkPolyData* Foam::vtkPV3Foam::patchVTKMesh
     const faceList& faces = p.localFaces();
 
     vtkCellArray* vtkcells = vtkCellArray::New();
-    vtkcells->Allocate( faces.size() );
+    vtkcells->Allocate(faces.size());
     forAll(faces, faceI)
     {
         const face& f = faces[faceI];
diff --git a/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3FoamMeshSet.C b/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3FoamMeshSet.C
index f363beae45c2588834788a4ff321b5de064f88e3..431df1f9c5fefad23c4f7a781e59eb23aae2fe32 100644
--- a/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3FoamMeshSet.C
+++ b/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3FoamMeshSet.C
@@ -22,8 +22,6 @@ License
     along with OpenFOAM; if not, write to the Free Software Foundation,
     Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
 
-Description
-
 \*---------------------------------------------------------------------------*/
 
 #include "vtkPV3Foam.H"
@@ -71,8 +69,8 @@ vtkPolyData* Foam::vtkPV3Foam::faceSetVTKMesh
     // Convert Foam mesh vertices to VTK
     const pointField& points = p.localPoints();
 
-    vtkPoints *vtkpoints = vtkPoints::New();
-    vtkpoints->Allocate( points.size() );
+    vtkPoints* vtkpoints = vtkPoints::New();
+    vtkpoints->Allocate(points.size());
     forAll(points, i)
     {
         vtkInsertNextOpenFOAMPoint(vtkpoints, points[i]);
@@ -84,7 +82,7 @@ vtkPolyData* Foam::vtkPV3Foam::faceSetVTKMesh
     const faceList& faces = p.localFaces();
 
     vtkCellArray* vtkcells = vtkCellArray::New();
-    vtkcells->Allocate( faces.size() );
+    vtkcells->Allocate(faces.size());
 
     forAll(faces, faceI)
     {
@@ -127,8 +125,8 @@ vtkPolyData* Foam::vtkPV3Foam::pointSetVTKMesh
 
     const pointField& meshPoints = mesh.points();
 
-    vtkPoints *vtkpoints = vtkPoints::New();
-    vtkpoints->Allocate( pSet.size() );
+    vtkPoints* vtkpoints = vtkPoints::New();
+    vtkpoints->Allocate(pSet.size());
 
     forAllConstIter(pointSet, pSet, iter)
     {
diff --git a/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3FoamMeshVolume.C b/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3FoamMeshVolume.C
index e1fd59ccd0d1c50262ac43d7c2d12b22b4b94020..b39dfd453fed58af52ff4c64e5bcaa9f37719a46 100644
--- a/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3FoamMeshVolume.C
+++ b/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3FoamMeshVolume.C
@@ -22,8 +22,6 @@ License
     along with OpenFOAM; if not, write to the Free Software Foundation,
     Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
 
-Description
-
 \*---------------------------------------------------------------------------*/
 
 #include "vtkPV3Foam.H"
@@ -136,8 +134,8 @@ vtkUnstructuredGrid* Foam::vtkPV3Foam::volumeVTKMesh
     }
 
     // Convert Foam mesh vertices to VTK
-    vtkPoints *vtkpoints = vtkPoints::New();
-    vtkpoints->Allocate( mesh.nPoints() + nAddPoints );
+    vtkPoints* vtkpoints = vtkPoints::New();
+    vtkpoints->Allocate(mesh.nPoints() + nAddPoints);
 
     const Foam::pointField& points = mesh.points();
 
@@ -152,7 +150,7 @@ vtkUnstructuredGrid* Foam::vtkPV3Foam::volumeVTKMesh
         Info<< "... converting cells" << endl;
     }
 
-    vtkmesh->Allocate( mesh.nCells() + nAddCells );
+    vtkmesh->Allocate(mesh.nCells() + nAddCells);
 
     // Set counters for additional points and additional cells
     label addPointI = 0, addCellI = 0;
diff --git a/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3FoamMeshZone.C b/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3FoamMeshZone.C
index 0a21310a633b868c8b489943c749cc3b90c48545..9b8bcb956d972328a7d1f7048cafdd94a580fa08 100644
--- a/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3FoamMeshZone.C
+++ b/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3FoamMeshZone.C
@@ -22,8 +22,6 @@ License
     along with OpenFOAM; if not, write to the Free Software Foundation,
     Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
 
-Description
-
 \*---------------------------------------------------------------------------*/
 
 #include "vtkPV3Foam.H"
@@ -69,7 +67,7 @@ vtkPolyData* Foam::vtkPV3Foam::faceZoneVTKMesh
     const pointField& points = p.localPoints();
 
     vtkPoints* vtkpoints = vtkPoints::New();
-    vtkpoints->Allocate( points.size() );
+    vtkpoints->Allocate(points.size());
     forAll(points, i)
     {
         vtkInsertNextOpenFOAMPoint(vtkpoints, points[i]);
@@ -83,7 +81,7 @@ vtkPolyData* Foam::vtkPV3Foam::faceZoneVTKMesh
     const faceList& faces = p.localFaces();
 
     vtkCellArray* vtkcells = vtkCellArray::New();
-    vtkcells->Allocate( faces.size() );
+    vtkcells->Allocate(faces.size());
 
     forAll(faces, faceI)
     {
@@ -126,8 +124,8 @@ vtkPolyData* Foam::vtkPV3Foam::pointZoneVTKMesh
 
     const pointField& meshPoints = mesh.points();
 
-    vtkPoints *vtkpoints = vtkPoints::New();
-    vtkpoints->Allocate( pointLabels.size() );
+    vtkPoints* vtkpoints = vtkPoints::New();
+    vtkpoints->Allocate(pointLabels.size());
 
     forAll(pointLabels, pointI)
     {
diff --git a/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3FoamPatchField.H b/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3FoamPatchField.H
index 7b7de4d022ffd4a02beb60fc0d2666785d8054c6..7e473a7c74950b842831cc054784262970a2390c 100644
--- a/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3FoamPatchField.H
+++ b/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3FoamPatchField.H
@@ -45,17 +45,17 @@ void Foam::vtkPV3Foam::convertPatchField
     const word& name,
     const Field<Type>& ptf,
     vtkMultiBlockDataSet* output,
-    const partInfo& selector,
+    const arrayRange& range,
     const label datasetNo
 )
 {
     const label nComp = pTraits<Type>::nComponents;
 
     vtkFloatArray* cellData = vtkFloatArray::New();
-    cellData->SetNumberOfTuples( ptf.size() );
-    cellData->SetNumberOfComponents( nComp );
-    cellData->Allocate( nComp*ptf.size() );
-    cellData->SetName( name.c_str() );
+    cellData->SetNumberOfTuples(ptf.size());
+    cellData->SetNumberOfComponents(nComp);
+    cellData->Allocate(nComp*ptf.size());
+    cellData->SetName(name.c_str());
 
     float vec[nComp];
     forAll(ptf, i)
@@ -70,7 +70,7 @@ void Foam::vtkPV3Foam::convertPatchField
 
     vtkPolyData::SafeDownCast
     (
-        GetDataSetFromBlock(output, selector, datasetNo)
+        GetDataSetFromBlock(output, range, datasetNo)
     )   ->GetCellData()
         ->AddArray(cellData);
 
@@ -85,17 +85,17 @@ void Foam::vtkPV3Foam::convertPatchPointField
     const word& name,
     const Field<Type>& pptf,
     vtkMultiBlockDataSet* output,
-    const partInfo& selector,
+    const arrayRange& range,
     const label datasetNo
 )
 {
     const label nComp = pTraits<Type>::nComponents;
 
-    vtkFloatArray *pointData = vtkFloatArray::New();
-    pointData->SetNumberOfTuples( pptf.size() );
-    pointData->SetNumberOfComponents( nComp );
-    pointData->Allocate( nComp*pptf.size() );
-    pointData->SetName( name.c_str() );
+    vtkFloatArray* pointData = vtkFloatArray::New();
+    pointData->SetNumberOfTuples(pptf.size());
+    pointData->SetNumberOfComponents(nComp);
+    pointData->Allocate(nComp*pptf.size());
+    pointData->SetName(name.c_str());
 
     float vec[nComp];
     forAll(pptf, i)
@@ -111,7 +111,7 @@ void Foam::vtkPV3Foam::convertPatchPointField
 
     vtkPolyData::SafeDownCast
     (
-        GetDataSetFromBlock(output, selector, datasetNo)
+        GetDataSetFromBlock(output, range, datasetNo)
     )   ->GetPointData()
         ->AddArray(pointData);
 
diff --git a/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3FoamPointFields.H b/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3FoamPointFields.H
index 3a609b2bde50f28d1946ae23fb598175d5720046..697044bc6b9b96f881fc610327ed0c18bee4130c 100644
--- a/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3FoamPointFields.H
+++ b/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3FoamPointFields.H
@@ -77,7 +77,7 @@ void Foam::vtkPV3Foam::convertPointFields
         (
             ptf,
             output,
-            partInfoVolume_,
+            arrayRangeVolume_,
             regionPolyDecomp_
         );
 
@@ -86,7 +86,7 @@ void Foam::vtkPV3Foam::convertPointFields
         (
             ptf,
             output,
-            partInfoCellZones_,
+            arrayRangeCellZones_,
             zonePolyDecomp_
         );
 
@@ -95,7 +95,7 @@ void Foam::vtkPV3Foam::convertPointFields
         (
             ptf,
             output,
-            partInfoCellSets_,
+            arrayRangeCellSets_,
             csetPolyDecomp_
         );
 
@@ -105,14 +105,14 @@ void Foam::vtkPV3Foam::convertPointFields
         //
         for
         (
-            int partId = partInfoPatches_.start();
-            partId < partInfoPatches_.end();
+            int partId = arrayRangePatches_.start();
+            partId < arrayRangePatches_.end();
             ++partId
         )
         {
-            const word  patchName = getPartName(partId);
+            const word patchName = getPartName(partId);
             const label datasetNo = partDataset_[partId];
-            const label   patchId = patches.findPatchID(patchName);
+            const label patchId = patches.findPatchID(patchName);
 
             if (!partStatus_[partId] || datasetNo < 0 || patchId < 0)
             {
@@ -124,7 +124,7 @@ void Foam::vtkPV3Foam::convertPointFields
                 fieldName,
                 ptf.boundaryField()[patchId].patchInternalField()(),
                 output,
-                partInfoPatches_,
+                arrayRangePatches_,
                 datasetNo
             );
         }
@@ -137,11 +137,11 @@ void Foam::vtkPV3Foam::convertPointFieldBlock
 (
     const GeometricField<Type, pointPatchField, pointMesh>& ptf,
     vtkMultiBlockDataSet* output,
-    const partInfo& selector,
+    const arrayRange& range,
     const List<polyDecomp>& decompLst
 )
 {
-   for (int partId = selector.start(); partId < selector.end(); ++partId)
+   for (int partId = range.start(); partId < range.end(); ++partId)
    {
        const label datasetNo = partDataset_[partId];
 
@@ -152,7 +152,7 @@ void Foam::vtkPV3Foam::convertPointFieldBlock
                ptf,
                GeometricField<Type, fvPatchField, volMesh>::null(),
                output,
-               selector,
+               range,
                datasetNo,
                decompLst[datasetNo]
            );
@@ -167,7 +167,7 @@ void Foam::vtkPV3Foam::convertPointField
     const GeometricField<Type, pointPatchField, pointMesh>& ptf,
     const GeometricField<Type, fvPatchField, volMesh>& tf,
     vtkMultiBlockDataSet* output,
-    const partInfo& selector,
+    const arrayRange& range,
     const label datasetNo,
     const polyDecomp& decomp
 )
@@ -187,7 +187,7 @@ void Foam::vtkPV3Foam::convertPointField
         nPoints = ptf.size();
     }
 
-    vtkFloatArray *pointData = vtkFloatArray::New();
+    vtkFloatArray* pointData = vtkFloatArray::New();
     pointData->SetNumberOfTuples(nPoints + addPointCellLabels.size());
     pointData->SetNumberOfComponents(nComp);
     pointData->Allocate(nComp*(nPoints + addPointCellLabels.size()));
@@ -260,7 +260,7 @@ void Foam::vtkPV3Foam::convertPointField
 
     vtkUnstructuredGrid::SafeDownCast
     (
-        GetDataSetFromBlock(output, selector, datasetNo)
+        GetDataSetFromBlock(output, range, datasetNo)
     )   ->GetPointData()
         ->AddArray(pointData);
 
diff --git a/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3FoamUpdateInfo.C b/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3FoamUpdateInfo.C
index 59e445e341c60784bd3eea82a8ec830270a39763..2bed6fabd4040dea85128c9d5ab928518b483fe4 100644
--- a/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3FoamUpdateInfo.C
+++ b/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3FoamUpdateInfo.C
@@ -118,33 +118,39 @@ Foam::wordList Foam::vtkPV3Foam::readZoneNames(const word& zoneType)
 }
 
 
-void Foam::vtkPV3Foam::updateInfoInternalMesh()
+void Foam::vtkPV3Foam::updateInfoInternalMesh
+(
+    vtkDataArraySelection* arraySelection
+)
 {
     if (debug)
     {
         Info<< "<beg> Foam::vtkPV3Foam::updateInfoInternalMesh" << endl;
     }
 
-    vtkDataArraySelection* partSelection = reader_->GetPartSelection();
-
     // Determine mesh parts (internalMesh, patches...)
     //- Add internal mesh as first entry
-    partInfoVolume_ = partSelection->GetNumberOfArrays();
-    partSelection->AddArray("internalMesh");
-    partInfoVolume_ += 1;
+    arrayRangeVolume_.reset( arraySelection->GetNumberOfArrays() );
+    arraySelection->AddArray
+    (
+        "internalMesh"
+    );
+    arrayRangeVolume_ += 1;
 
     if (debug)
     {
         // just for debug info
-        getSelectedArrayEntries(partSelection);
+        getSelectedArrayEntries(arraySelection);
 
         Info<< "<end> Foam::vtkPV3Foam::updateInfoInternalMesh" << endl;
     }
-
 }
 
 
-void Foam::vtkPV3Foam::updateInfoLagrangian()
+void Foam::vtkPV3Foam::updateInfoLagrangian
+(
+    vtkDataArraySelection* arraySelection
+)
 {
     if (debug)
     {
@@ -167,34 +173,35 @@ void Foam::vtkPV3Foam::updateInfoLagrangian()
         readDir(dbPtr_->timePath()/lagrangianPrefix, fileName::DIRECTORY)
     );
 
-    vtkDataArraySelection* partSelection = reader_->GetPartSelection();
-    partInfoLagrangian_ = partSelection->GetNumberOfArrays();
+    arrayRangeLagrangian_.reset( arraySelection->GetNumberOfArrays() );
 
     int nClouds = 0;
     forAll(cloudDirs, cloudI)
     {
         // Add cloud to GUI list
-        partSelection->AddArray
+        arraySelection->AddArray
         (
             (cloudDirs[cloudI] + " - lagrangian").c_str()
         );
 
         ++nClouds;
     }
-
-    partInfoLagrangian_ += nClouds;
+    arrayRangeLagrangian_ += nClouds;
 
     if (debug)
     {
         // just for debug info
-        getSelectedArrayEntries(partSelection);
+        getSelectedArrayEntries(arraySelection);
 
         Info<< "<end> Foam::vtkPV3Foam::updateInfoLagrangian" << endl;
     }
 }
 
 
-void Foam::vtkPV3Foam::updateInfoPatches()
+void Foam::vtkPV3Foam::updateInfoPatches
+(
+    vtkDataArraySelection* arraySelection
+)
 {
     if (debug)
     {
@@ -202,8 +209,7 @@ void Foam::vtkPV3Foam::updateInfoPatches()
             << " [meshPtr=" << (meshPtr_ ? "set" : "NULL") << "]" << endl;
     }
 
-    vtkDataArraySelection* partSelection = reader_->GetPartSelection();
-    partInfoPatches_ = partSelection->GetNumberOfArrays();
+    arrayRangePatches_.reset( arraySelection->GetNumberOfArrays() );
 
     int nPatches = 0;
     if (meshPtr_)
@@ -216,7 +222,7 @@ void Foam::vtkPV3Foam::updateInfoPatches()
             if (pp.size())
             {
                 // Add patch to GUI list
-                partSelection->AddArray
+                arraySelection->AddArray
                 (
                     (pp.name() + " - patch").c_str()
                 );
@@ -261,7 +267,7 @@ void Foam::vtkPV3Foam::updateInfoPatches()
                 // Valid patch if nFace > 0 - add patch to GUI list
                 if (nFaces)
                 {
-                    partSelection->AddArray
+                    arraySelection->AddArray
                     (
                         (patchEntries[entryI].keyword() + " - patch").c_str()
                     );
@@ -271,19 +277,22 @@ void Foam::vtkPV3Foam::updateInfoPatches()
             }
         }
     }
-    partInfoPatches_ += nPatches;
+    arrayRangePatches_ += nPatches;
 
     if (debug)
     {
         // just for debug info
-        getSelectedArrayEntries(partSelection);
+        getSelectedArrayEntries(arraySelection);
 
         Info<< "<end> Foam::vtkPV3Foam::updateInfoPatches" << endl;
     }
 }
 
 
-void Foam::vtkPV3Foam::updateInfoZones()
+void Foam::vtkPV3Foam::updateInfoZones
+(
+    vtkDataArraySelection* arraySelection
+)
 {
     if (!reader_->GetIncludeZones())
     {
@@ -296,7 +305,6 @@ void Foam::vtkPV3Foam::updateInfoZones()
             << " [meshPtr=" << (meshPtr_ ? "set" : "NULL") << "]" << endl;
     }
 
-    vtkDataArraySelection* partSelection = reader_->GetPartSelection();
     wordList namesLst;
 
     //
@@ -311,12 +319,15 @@ void Foam::vtkPV3Foam::updateInfoZones()
         namesLst = readZoneNames("cellZones");
     }
 
-    partInfoCellZones_ = partSelection->GetNumberOfArrays();
+    arrayRangeCellZones_.reset( arraySelection->GetNumberOfArrays() );
     forAll(namesLst, elemI)
     {
-        partSelection->AddArray((namesLst[elemI] + " - cellZone").c_str());
+        arraySelection->AddArray
+        (
+            (namesLst[elemI] + " - cellZone").c_str()
+        );
     }
-    partInfoCellZones_ += namesLst.size();
+    arrayRangeCellZones_ += namesLst.size();
 
 
     //
@@ -331,15 +342,15 @@ void Foam::vtkPV3Foam::updateInfoZones()
         namesLst = readZoneNames("faceZones");
     }
 
-    partInfoFaceZones_ = partSelection->GetNumberOfArrays();
+    arrayRangeFaceZones_.reset( arraySelection->GetNumberOfArrays() );
     forAll(namesLst, elemI)
     {
-        partSelection->AddArray
+        arraySelection->AddArray
         (
             (namesLst[elemI] + " - faceZone").c_str()
         );
     }
-    partInfoFaceZones_ += namesLst.size();
+    arrayRangeFaceZones_ += namesLst.size();
 
 
     //
@@ -354,28 +365,30 @@ void Foam::vtkPV3Foam::updateInfoZones()
         namesLst = readZoneNames("pointZones");
     }
 
-    partInfoPointZones_ = partSelection->GetNumberOfArrays();
+    arrayRangePointZones_.reset( arraySelection->GetNumberOfArrays() );
     forAll(namesLst, elemI)
     {
-        partSelection->AddArray
+        arraySelection->AddArray
         (
             (namesLst[elemI] + " - pointZone").c_str()
         );
     }
-    partInfoPointZones_ += namesLst.size();
-
+    arrayRangePointZones_ += namesLst.size();
 
     if (debug)
     {
         // just for debug info
-        getSelectedArrayEntries(partSelection);
+        getSelectedArrayEntries(arraySelection);
 
         Info<< "<end> Foam::vtkPV3Foam::updateInfoZones" << endl;
     }
 }
 
 
-void Foam::vtkPV3Foam::updateInfoSets()
+void Foam::vtkPV3Foam::updateInfoSets
+(
+    vtkDataArraySelection* arraySelection
+)
 {
     if (!reader_->GetIncludeSets())
     {
@@ -387,8 +400,6 @@ void Foam::vtkPV3Foam::updateInfoSets()
         Info<< "<beg> Foam::vtkPV3Foam::updateInfoSets" << endl;
     }
 
-    vtkDataArraySelection* partSelection = reader_->GetPartSelection();
-
     // Add names of sets
     IOobjectList objects
     (
@@ -398,26 +409,26 @@ void Foam::vtkPV3Foam::updateInfoSets()
     );
 
 
-    partInfoCellSets_ = partSelection->GetNumberOfArrays();
-    partInfoCellSets_ += addToSelection<cellSet>
+    arrayRangeCellSets_.reset( arraySelection->GetNumberOfArrays() );
+    arrayRangeCellSets_ += addToSelection<cellSet>
     (
-        partSelection,
+        arraySelection,
         objects,
         " - cellSet"
     );
 
-    partInfoFaceSets_ = partSelection->GetNumberOfArrays();
-    partInfoFaceSets_ += addToSelection<faceSet>
+    arrayRangeFaceSets_.reset( arraySelection->GetNumberOfArrays() );
+    arrayRangeFaceSets_ += addToSelection<faceSet>
     (
-        partSelection,
+        arraySelection,
         objects,
         " - faceSet"
     );
 
-    partInfoPointSets_ = partSelection->GetNumberOfArrays();
-    partInfoPointSets_ += addToSelection<pointSet>
+    arrayRangePointSets_.reset( arraySelection->GetNumberOfArrays() );
+    arrayRangePointSets_ += addToSelection<pointSet>
     (
-        partSelection,
+        arraySelection,
         objects,
         " - pointSet"
     );
@@ -425,7 +436,7 @@ void Foam::vtkPV3Foam::updateInfoSets()
     if (debug)
     {
         // just for debug info
-        getSelectedArrayEntries(partSelection);
+        getSelectedArrayEntries(arraySelection);
 
         Info<< "<end> Foam::vtkPV3Foam::updateInfoSets" << endl;
     }
@@ -440,26 +451,24 @@ void Foam::vtkPV3Foam::updateInfoLagrangianFields()
             << endl;
     }
 
-    vtkDataArraySelection *fieldSelection =
+    vtkDataArraySelection* fieldSelection =
         reader_->GetLagrangianFieldSelection();
 
     // preserve the enabled selections
     stringList enabledEntries = getSelectedArrayEntries(fieldSelection);
     fieldSelection->RemoveAllArrays();
 
-    //
     // TODO - currently only get fields from ONE cloud
     // have to decide if the second set of fields get mixed in
     // or dealt with separately
 
-    const partInfo& selector = partInfoLagrangian_;
-    int partId = selector.start();
-
-    if (!selector.size() || partId < 0)
+    const arrayRange& range = arrayRangeLagrangian_;
+    if (range.empty())
     {
         return;
     }
 
+    int partId = range.start();
     word cloudName = getPartName(partId);
 
     // use the db directly since this might be called without a mesh,
diff --git a/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3FoamUpdateInfoFields.H b/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3FoamUpdateInfoFields.H
index 7e28460a465c74ffb690359aff588df63accc756..4d35525efe56f52e83c8c6e716c0a9b5abd14ec1 100644
--- a/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3FoamUpdateInfoFields.H
+++ b/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3FoamUpdateInfoFields.H
@@ -35,7 +35,7 @@ InClass
 template<template<class> class patchType, class meshType>
 void Foam::vtkPV3Foam::updateInfoFields
 (
-    vtkDataArraySelection *select
+    vtkDataArraySelection* select
 )
 {
     if (debug)
@@ -112,4 +112,5 @@ void Foam::vtkPV3Foam::updateInfoFields
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 #endif
+
 // ************************************************************************* //
diff --git a/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3FoamUtils.C b/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3FoamUtils.C
index a9d12c303a22b3ea023b3a1c72b23eafc448f09b..74a57fb5597a987c79e5323d2ed821ac291cc15d 100644
--- a/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3FoamUtils.C
+++ b/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3FoamUtils.C
@@ -69,18 +69,19 @@ namespace Foam
 } // End namespace Foam
 
 
+
 // * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
 
 void Foam::vtkPV3Foam::AddToBlock
 (
     vtkMultiBlockDataSet* output,
     vtkDataSet* dataset,
-    const partInfo& selector,
+    const arrayRange& range,
     const label datasetNo,
     const std::string& datasetName
 )
 {
-    const int blockNo = selector.block();
+    const int blockNo = range.block();
 
     vtkDataObject* blockDO = output->GetBlock(blockNo);
     vtkMultiBlockDataSet* block = vtkMultiBlockDataSet::SafeDownCast(blockDO);
@@ -116,7 +117,7 @@ void Foam::vtkPV3Foam::AddToBlock
         output->GetMetaData(blockNo)->Set
         (
             vtkCompositeDataSet::NAME(),
-            selector.name()
+            range.name()
         );
     }
 
@@ -134,11 +135,11 @@ void Foam::vtkPV3Foam::AddToBlock
 vtkDataSet* Foam::vtkPV3Foam::GetDataSetFromBlock
 (
     vtkMultiBlockDataSet* output,
-    const partInfo& selector,
+    const arrayRange& range,
     const label datasetNo
 )
 {
-    const int blockNo = selector.block();
+    const int blockNo = range.block();
 
     vtkDataObject* blockDO = output->GetBlock(blockNo);
     vtkMultiBlockDataSet* block = vtkMultiBlockDataSet::SafeDownCast(blockDO);
@@ -156,10 +157,10 @@ vtkDataSet* Foam::vtkPV3Foam::GetDataSetFromBlock
 Foam::label Foam::vtkPV3Foam::GetNumberOfDataSets
 (
     vtkMultiBlockDataSet* output,
-    const partInfo& selector
+    const arrayRange& range
 )
 {
-    const int blockNo = selector.block();
+    const int blockNo = range.block();
 
     vtkDataObject* blockDO = output->GetBlock(blockNo);
     vtkMultiBlockDataSet* block = vtkMultiBlockDataSet::SafeDownCast(blockDO);
@@ -172,7 +173,7 @@ Foam::label Foam::vtkPV3Foam::GetNumberOfDataSets
 }
 
 
-Foam::word Foam::vtkPV3Foam::getPartName(int partId)
+Foam::word Foam::vtkPV3Foam::getPartName(const int partId)
 {
     return getFirstWord(reader_->GetPartArrayName(partId));
 }
@@ -201,13 +202,13 @@ Foam::wordHashSet Foam::vtkPV3Foam::getSelected
 Foam::wordHashSet Foam::vtkPV3Foam::getSelected
 (
     vtkDataArraySelection* select,
-    const partInfo& selector
+    const arrayRange& range
 )
 {
     int nElem = select->GetNumberOfArrays();
     wordHashSet selections(2*nElem);
 
-    for (int elemI = selector.start(); elemI < selector.end(); ++elemI)
+    for (int elemI = range.start(); elemI < range.end(); ++elemI)
     {
         if (select->GetArraySetting(elemI))
         {
@@ -261,13 +262,13 @@ Foam::stringList Foam::vtkPV3Foam::getSelectedArrayEntries
 Foam::stringList Foam::vtkPV3Foam::getSelectedArrayEntries
 (
     vtkDataArraySelection* select,
-    const partInfo& selector
+    const arrayRange& range
 )
 {
-    stringList selections(selector.size());
+    stringList selections(range.size());
     label nElem = 0;
 
-    for (int elemI = selector.start(); elemI < selector.end(); ++elemI)
+    for (int elemI = range.start(); elemI < range.end(); ++elemI)
     {
         if (select->GetArraySetting(elemI))
         {
@@ -280,7 +281,7 @@ Foam::stringList Foam::vtkPV3Foam::getSelectedArrayEntries
     if (debug)
     {
         Info<< "available(";
-        for (int elemI = selector.start(); elemI < selector.end(); ++elemI)
+        for (int elemI = range.start(); elemI < range.end(); ++elemI)
         {
             Info<< " \"" << select->GetArrayName(elemI) << "\"";
         }
@@ -362,7 +363,7 @@ void Foam::vtkPV3Foam::printMemory()
             }
         }
 
-        Info << "memUsed: " << (memTotal - memFree) << " kB\n";
+        Info<< "memUsed: " << (memTotal - memFree) << " kB\n";
     }
 }
 
diff --git a/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3FoamVolFields.H b/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3FoamVolFields.H
index d5387be61f3e703d191d96c8640deccb7a4131b9..e28e3940a8c08e600ba664bdfa64d99d5a0bdd76 100644
--- a/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3FoamVolFields.H
+++ b/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3FoamVolFields.H
@@ -81,7 +81,7 @@ void Foam::vtkPV3Foam::convertVolFields
             tf,
             ptfPtr,
             output,
-            partInfoVolume_,
+            arrayRangeVolume_,
             regionPolyDecomp_
         );
 
@@ -91,7 +91,7 @@ void Foam::vtkPV3Foam::convertVolFields
             tf,
             ptfPtr,
             output,
-            partInfoCellZones_,
+            arrayRangeCellZones_,
             zonePolyDecomp_
         );
 
@@ -101,7 +101,7 @@ void Foam::vtkPV3Foam::convertVolFields
             tf,
             ptfPtr,
             output,
-            partInfoCellSets_,
+            arrayRangeCellSets_,
             csetPolyDecomp_
         );
 
@@ -117,8 +117,8 @@ void Foam::vtkPV3Foam::convertVolFields
 
         for
         (
-            int partId = partInfoPatches_.start();
-            partId < partInfoPatches_.end();
+            int partId = arrayRangePatches_.start();
+            partId < arrayRangePatches_.end();
             ++partId
         )
         {
@@ -155,7 +155,7 @@ void Foam::vtkPV3Foam::convertVolFields
                     tf.name(),
                     tpptf(),
                     output,
-                    partInfoPatches_,
+                    arrayRangePatches_,
                     datasetNo
                 );
 
@@ -164,7 +164,7 @@ void Foam::vtkPV3Foam::convertVolFields
                     pointFldName,
                     ppInterpList[patchId].faceToPointInterpolate(tpptf)(),
                     output,
-                    partInfoPatches_,
+                    arrayRangePatches_,
                     datasetNo
                 );
             }
@@ -175,7 +175,7 @@ void Foam::vtkPV3Foam::convertVolFields
                     tf.name(),
                     ptf,
                     output,
-                    partInfoPatches_,
+                    arrayRangePatches_,
                     datasetNo
                 );
 
@@ -184,7 +184,7 @@ void Foam::vtkPV3Foam::convertVolFields
                     pointFldName,
                     ppInterpList[patchId].faceToPointInterpolate(ptf)(),
                     output,
-                    partInfoPatches_,
+                    arrayRangePatches_,
                     datasetNo
                 );
             }
@@ -195,8 +195,8 @@ void Foam::vtkPV3Foam::convertVolFields
         //
         for
         (
-            int partId = partInfoFaceZones_.start();
-            partId < partInfoFaceZones_.end();
+            int partId = arrayRangeFaceZones_.start();
+            partId < arrayRangeFaceZones_.end();
             ++partId
         )
         {
@@ -220,7 +220,7 @@ void Foam::vtkPV3Foam::convertVolFields
             (
                 tf,
                 output,
-                partInfoFaceZones_,
+                arrayRangeFaceZones_,
                 datasetNo,
                 mesh,
                 zMesh[zoneId]
@@ -234,8 +234,8 @@ void Foam::vtkPV3Foam::convertVolFields
         //
         for
         (
-            int partId = partInfoFaceSets_.start();
-            partId < partInfoFaceSets_.end();
+            int partId = arrayRangeFaceSets_.start();
+            partId < arrayRangeFaceSets_.end();
             ++partId
         )
         {
@@ -253,7 +253,7 @@ void Foam::vtkPV3Foam::convertVolFields
             (
                 tf,
                 output,
-                partInfoFaceSets_,
+                arrayRangeFaceSets_,
                 datasetNo,
                 mesh,
                 fSet
@@ -271,11 +271,11 @@ void Foam::vtkPV3Foam::convertVolFieldBlock
     const GeometricField<Type, fvPatchField, volMesh>& tf,
     autoPtr<GeometricField<Type, pointPatchField, pointMesh> >& ptfPtr,
     vtkMultiBlockDataSet* output,
-    const partInfo& selector,
+    const arrayRange& range,
     const List<polyDecomp>& decompLst
 )
 {
-    for (int partId = selector.start(); partId < selector.end(); ++partId)
+    for (int partId = range.start(); partId < range.end(); ++partId)
     {
         const label datasetNo = partDataset_[partId];
 
@@ -285,7 +285,7 @@ void Foam::vtkPV3Foam::convertVolFieldBlock
             (
                 tf,
                 output,
-                selector,
+                range,
                 datasetNo,
                 decompLst[datasetNo]
             );
@@ -309,7 +309,7 @@ void Foam::vtkPV3Foam::convertVolFieldBlock
                 ptfPtr(),
                 tf,
                 output,
-                selector,
+                range,
                 datasetNo,
                 decompLst[datasetNo]
             );
@@ -323,7 +323,7 @@ void Foam::vtkPV3Foam::convertVolField
 (
     const GeometricField<Type, fvPatchField, volMesh>& tf,
     vtkMultiBlockDataSet* output,
-    const partInfo& selector,
+    const arrayRange& range,
     const label datasetNo,
     const polyDecomp& decompInfo
 )
@@ -359,7 +359,7 @@ void Foam::vtkPV3Foam::convertVolField
 
     vtkUnstructuredGrid::SafeDownCast
     (
-        GetDataSetFromBlock(output, selector, datasetNo)
+        GetDataSetFromBlock(output, range, datasetNo)
     )   ->GetCellData()
         ->AddArray(celldata);
 
diff --git a/applications/utilities/postProcessing/graphics/PV3Readers/PV3blockMeshReader/PV3blockMeshReader/PV3blockMeshReader_SM.xml b/applications/utilities/postProcessing/graphics/PV3Readers/PV3blockMeshReader/PV3blockMeshReader/PV3blockMeshReader_SM.xml
index 2ac4774ff0de47f3e5dff9ec5a4cb01c8fb14434..b5bb304a652ff1eabd93d15c25a6e6e48ab270f1 100644
--- a/applications/utilities/postProcessing/graphics/PV3Readers/PV3blockMeshReader/PV3blockMeshReader/PV3blockMeshReader_SM.xml
+++ b/applications/utilities/postProcessing/graphics/PV3Readers/PV3blockMeshReader/PV3blockMeshReader/PV3blockMeshReader_SM.xml
@@ -43,34 +43,40 @@
       </Documentation>
     </IntVectorProperty>
 
-    <!-- Selections -->
 
-    <!-- Available Parts (blocks) array -->
+    <!--
+       | Selections
+       -->
+
+    <!-- Available Blocks array -->
     <StringVectorProperty
-      name="PartArrayInfo"
+      name="BlockArrayStatus"
       information_only="1">
-      <ArraySelectionInformationHelper attribute_name="Part"/>
+      <ArraySelectionInformationHelper attribute_name="Block"/>
     </StringVectorProperty>
     <StringVectorProperty
-      name="PartStatus"
+      name="BlockStatus"
       label="Blocks"
-      command="SetPartArrayStatus"
+      command="SetBlockArrayStatus"
       number_of_elements="0"
       repeat_command="1"
       number_of_elements_per_command="2"
       element_types="2 0"
-      information_property="PartArrayInfo"
+      information_property="BlockArrayStatus"
       animateable="0">
       <ArraySelectionDomain name="array_list">
         <RequiredProperties>
-          <Property name="PartArrayInfo" function="ArrayList"/>
+          <Property name="BlockArrayStatus" function="ArrayList"/>
         </RequiredProperties>
       </ArraySelectionDomain>
+      <Documentation>
+        This property contains a list of the blocks
+      </Documentation>
     </StringVectorProperty>
 
-    <!-- Available Parts (blocks) array -->
+    <!-- Available CurvedEdges array -->
     <StringVectorProperty
-      name="CurvedEdgesArrayInfo"
+      name="CurvedEdgesArrayStatus"
       information_only="1">
       <ArraySelectionInformationHelper attribute_name="CurvedEdges"/>
     </StringVectorProperty>
@@ -82,13 +88,16 @@
       repeat_command="1"
       number_of_elements_per_command="2"
       element_types="2 0"
-      information_property="CurvedEdgesArrayInfo"
+      information_property="CurvedEdgesArrayStatus"
       animateable="0">
       <ArraySelectionDomain name="array_list">
         <RequiredProperties>
-          <Property name="CurvedEdgesArrayInfo" function="ArrayList"/>
+          <Property name="CurvedEdgesArrayStatus" function="ArrayList"/>
         </RequiredProperties>
       </ArraySelectionDomain>
+      <Documentation>
+        This property contains a list of the curved edges
+      </Documentation>
     </StringVectorProperty>
 
   <Hints>
diff --git a/applications/utilities/postProcessing/graphics/PV3Readers/PV3blockMeshReader/PV3blockMeshReader/pqPV3blockMeshReaderPanel.cxx b/applications/utilities/postProcessing/graphics/PV3Readers/PV3blockMeshReader/PV3blockMeshReader/pqPV3blockMeshReaderPanel.cxx
index 8114a1470907a46c4976aad1812e7ccc997a4613..6a56583134674e8a02e33401494e43a0f28469b1 100644
--- a/applications/utilities/postProcessing/graphics/PV3Readers/PV3blockMeshReader/PV3blockMeshReader/pqPV3blockMeshReaderPanel.cxx
+++ b/applications/utilities/postProcessing/graphics/PV3Readers/PV3blockMeshReader/PV3blockMeshReader/pqPV3blockMeshReaderPanel.cxx
@@ -32,9 +32,10 @@ License
 #include <QLabel>
 #include <QLayout>
 #include <QString>
+#include <QPushButton>
 #include <QtDebug>
 
-// Paraview<->QT UI
+// Paraview <-> QT UI
 #include "pqAnimationScene.h"
 #include "pqApplicationCore.h"
 #include "pqPipelineRepresentation.h"
@@ -56,34 +57,35 @@ pqPV3blockMeshReaderPanel::pqPV3blockMeshReaderPanel
     QWidget *p
 )
 :
-    pqAutoGeneratedObjectPanel(proxy, p),
-    sourceProxy_(vtkSMSourceProxy::SafeDownCast(this->proxy()))
+    pqAutoGeneratedObjectPanel(proxy, p)
 {
     // create first sublayout (at top of the panel)
-    QGridLayout *sect1 = new QGridLayout();
-    this->PanelLayout->addLayout(sect1, 0, 0, 1, -1);
-
+    QGridLayout *form = new QGridLayout();
+    this->PanelLayout->addLayout(form, 0, 0, 1, -1);
 
+    vtkSMProperty* prop = 0;
     // checkbox for showing point numbers
-    ShowPointNumbers_ = new QCheckBox("Show Point Numbers");
-    ShowPointNumbers_->setChecked(true);
-
-    connect
-    (
-        ShowPointNumbers_,
-        SIGNAL(stateChanged(int)),
-        this,
-        SLOT(ShowPointNumbersToggled())
-    );
-
-    sect1->addWidget(ShowPointNumbers_);
-
-
-    // immediate update on the Server Manager side
-    vtkSMIntVectorProperty::SafeDownCast
-    (
-        sourceProxy_->GetProperty("UiShowPointNumbers")
-    )->SetImmediateUpdate(true);
+    if ((prop = this->proxy()->GetProperty("UiShowPointNumbers")) != 0)
+    {
+        prop->SetImmediateUpdate(true);
+
+        ShowPointNumbers_ = new QCheckBox("Show Point Numbers");
+        ShowPointNumbers_->setToolTip("Show point numbers in render window.");
+        ShowPointNumbers_->setChecked
+        (
+            vtkSMIntVectorProperty::SafeDownCast(prop)->GetElement(0)
+        );
+
+        form->addWidget(ShowPointNumbers_);
+
+        connect
+        (
+            ShowPointNumbers_,
+            SIGNAL(stateChanged(int)),
+            this,
+            SLOT(ShowPointNumbersToggled())
+        );
+    }
 
 }
 
@@ -93,7 +95,7 @@ void pqPV3blockMeshReaderPanel::ShowPointNumbersToggled()
 {
     vtkSMIntVectorProperty::SafeDownCast
     (
-        sourceProxy_->GetProperty("UiShowPointNumbers")
+        this->proxy()->GetProperty("UiShowPointNumbers")
     )->SetElement(0, ShowPointNumbers_->isChecked());
 
     // update the active view
diff --git a/applications/utilities/postProcessing/graphics/PV3Readers/PV3blockMeshReader/PV3blockMeshReader/pqPV3blockMeshReaderPanel.h b/applications/utilities/postProcessing/graphics/PV3Readers/PV3blockMeshReader/PV3blockMeshReader/pqPV3blockMeshReaderPanel.h
index 8096338315ec3532e5abc15c9b44916ae53c8998..0b1929af6d88beaae86a7d1cec93ccc6bc7e41c0 100644
--- a/applications/utilities/postProcessing/graphics/PV3Readers/PV3blockMeshReader/PV3blockMeshReader/pqPV3blockMeshReaderPanel.h
+++ b/applications/utilities/postProcessing/graphics/PV3Readers/PV3blockMeshReader/PV3blockMeshReader/pqPV3blockMeshReaderPanel.h
@@ -62,9 +62,6 @@ class pqPV3blockMeshReaderPanel
     Q_OBJECT;
     typedef pqAutoGeneratedObjectPanel Superclass;
 
-    //- Server Manager Source Proxy
-    vtkSMSourceProxy* sourceProxy_;
-
     //- Show Point Numbers checkbox
     QCheckBox* ShowPointNumbers_;
 
diff --git a/applications/utilities/postProcessing/graphics/PV3Readers/PV3blockMeshReader/PV3blockMeshReader/vtkPV3blockMeshReader.cxx b/applications/utilities/postProcessing/graphics/PV3Readers/PV3blockMeshReader/PV3blockMeshReader/vtkPV3blockMeshReader.cxx
index bf17a60ca314c90c312c14cd57de55ba5ff261e9..52239e388666e2cf1f15fe67eb512ec5113c0799 100644
--- a/applications/utilities/postProcessing/graphics/PV3Readers/PV3blockMeshReader/PV3blockMeshReader/vtkPV3blockMeshReader.cxx
+++ b/applications/utilities/postProcessing/graphics/PV3Readers/PV3blockMeshReader/PV3blockMeshReader/vtkPV3blockMeshReader.cxx
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2008-2009 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 2009-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -64,7 +64,7 @@ vtkPV3blockMeshReader::vtkPV3blockMeshReader()
     ShowPointNumbers = 1;
     UpdateGUI = 0;
 
-    PartSelection = vtkDataArraySelection::New();
+    BlockSelection = vtkDataArraySelection::New();
     CurvedEdgesSelection = vtkDataArraySelection::New();
 
     // Setup the selection callback to modify this object when an array
@@ -77,7 +77,7 @@ vtkPV3blockMeshReader::vtkPV3blockMeshReader()
     SelectionObserver->SetClientData(this);
 
 
-    PartSelection->AddObserver
+    BlockSelection->AddObserver
     (
         vtkCommand::ModifiedEvent,
         this->SelectionObserver
@@ -109,11 +109,11 @@ vtkPV3blockMeshReader::~vtkPV3blockMeshReader()
         delete [] FileName;
     }
 
-    PartSelection->RemoveObserver(this->SelectionObserver);
+    BlockSelection->RemoveObserver(this->SelectionObserver);
     CurvedEdgesSelection->RemoveObserver(this->SelectionObserver);
 
     SelectionObserver->Delete();
-    PartSelection->Delete();
+    BlockSelection->Delete();
 }
 
 
@@ -292,50 +292,50 @@ void vtkPV3blockMeshReader::PrintSelf(ostream& os, vtkIndent indent)
 
 
 // ----------------------------------------------------------------------
-// Parts selection list control
+// Block selection list control
 
-vtkDataArraySelection* vtkPV3blockMeshReader::GetPartSelection()
+vtkDataArraySelection* vtkPV3blockMeshReader::GetBlockSelection()
 {
-    vtkDebugMacro(<<"GetPartSelection");
-    return PartSelection;
+    vtkDebugMacro(<<"GetBlockSelection");
+    return BlockSelection;
 }
 
 
-int vtkPV3blockMeshReader::GetNumberOfPartArrays()
+int vtkPV3blockMeshReader::GetNumberOfBlockArrays()
 {
-    vtkDebugMacro(<<"GetNumberOfPartArrays");
-    return PartSelection->GetNumberOfArrays();
+    vtkDebugMacro(<<"GetNumberOfBlockArrays");
+    return BlockSelection->GetNumberOfArrays();
 }
 
 
-const char* vtkPV3blockMeshReader::GetPartArrayName(int index)
+const char* vtkPV3blockMeshReader::GetBlockArrayName(int index)
 {
-    vtkDebugMacro(<<"GetPartArrayName");
-    return PartSelection->GetArrayName(index);
+    vtkDebugMacro(<<"GetBlockArrayName");
+    return BlockSelection->GetArrayName(index);
 }
 
 
-int vtkPV3blockMeshReader::GetPartArrayStatus(const char* name)
+int vtkPV3blockMeshReader::GetBlockArrayStatus(const char* name)
 {
-    vtkDebugMacro(<<"GetPartArrayStatus");
-    return PartSelection->ArrayIsEnabled(name);
+    vtkDebugMacro(<<"GetBlockArrayStatus");
+    return BlockSelection->ArrayIsEnabled(name);
 }
 
 
-void vtkPV3blockMeshReader::SetPartArrayStatus
+void vtkPV3blockMeshReader::SetBlockArrayStatus
 (
     const char* name,
     int status
 )
 {
-    vtkDebugMacro(<<"SetPartArrayStatus");
+    vtkDebugMacro(<<"SetBlockArrayStatus");
     if (status)
     {
-        PartSelection->EnableArray(name);
+        BlockSelection->EnableArray(name);
     }
     else
     {
-        PartSelection->DisableArray(name);
+        BlockSelection->DisableArray(name);
     }
 }
 
@@ -399,14 +399,7 @@ void vtkPV3blockMeshReader::SelectionModifiedCallback
     void*
 )
 {
-    static_cast<vtkPV3blockMeshReader*>(clientdata)->SelectionModified();
-}
-
-
-void vtkPV3blockMeshReader::SelectionModified()
-{
-    vtkDebugMacro(<<"SelectionModified");
-    Modified();
+    static_cast<vtkPV3blockMeshReader*>(clientdata)->Modified();
 }
 
 
diff --git a/applications/utilities/postProcessing/graphics/PV3Readers/PV3blockMeshReader/PV3blockMeshReader/vtkPV3blockMeshReader.h b/applications/utilities/postProcessing/graphics/PV3Readers/PV3blockMeshReader/PV3blockMeshReader/vtkPV3blockMeshReader.h
index ae704d4a3be6f9a011b796c032a88837ab8295a1..d1679507d356ac8f4541b18afdbb0052858964d4 100644
--- a/applications/utilities/postProcessing/graphics/PV3Readers/PV3blockMeshReader/PV3blockMeshReader/vtkPV3blockMeshReader.h
+++ b/applications/utilities/postProcessing/graphics/PV3Readers/PV3blockMeshReader/PV3blockMeshReader/vtkPV3blockMeshReader.h
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2008-2009 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 2009-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -84,15 +84,15 @@ public:
 
 
     // Description:
-    // Parts (blocks) selection list control
-    vtkDataArraySelection* GetPartSelection();
-    int  GetNumberOfPartArrays();
-    int  GetPartArrayStatus(const char*);
-    void SetPartArrayStatus(const char*, int status);
-    const char* GetPartArrayName(int index);
+    // Blocks selection list control
+    vtkDataArraySelection* GetBlockSelection();
+    int  GetNumberOfBlockArrays();
+    int  GetBlockArrayStatus(const char*);
+    void SetBlockArrayStatus(const char*, int status);
+    const char* GetBlockArrayName(int index);
 
     // Description:
-    // Parts (blocks) selection list control
+    // CurvedEdges selection list control
     vtkDataArraySelection* GetCurvedEdgesSelection();
     int  GetNumberOfCurvedEdgesArrays();
     int  GetCurvedEdgesArrayStatus(const char*);
@@ -110,8 +110,6 @@ public:
         void* calldata
     );
 
-    void SelectionModified();
-
 
 protected:
 
@@ -164,7 +162,7 @@ private:
     //- Dummy variable/switch to invoke a reader update
     int UpdateGUI;
 
-    vtkDataArraySelection* PartSelection;
+    vtkDataArraySelection* BlockSelection;
 
     vtkDataArraySelection* CurvedEdgesSelection;
 
diff --git a/applications/utilities/postProcessing/graphics/PV3Readers/PV3blockMeshReader/vtkPV3blockMesh/vtkPV3blockMesh.C b/applications/utilities/postProcessing/graphics/PV3Readers/PV3blockMeshReader/vtkPV3blockMesh/vtkPV3blockMesh.C
index e9d36ec91eee61a8a67473b68656d0bd393cad32..01e75e95a7dff70237343e8c90941449a753c688 100644
--- a/applications/utilities/postProcessing/graphics/PV3Readers/PV3blockMeshReader/vtkPV3blockMesh/vtkPV3blockMesh.C
+++ b/applications/utilities/postProcessing/graphics/PV3Readers/PV3blockMeshReader/vtkPV3blockMesh/vtkPV3blockMesh.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2008-2009 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 2009-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -49,13 +49,16 @@ defineTypeNameAndDebug(Foam::vtkPV3blockMesh, 0);
 void Foam::vtkPV3blockMesh::resetCounters()
 {
     // Reset mesh part ids and sizes
-    partInfoBlocks_.reset();
-    partInfoEdges_.reset();
-    partInfoCorners_.reset();
+    arrayRangeBlocks_.reset();
+    arrayRangeEdges_.reset();
+    arrayRangeCorners_.reset();
 }
 
 
-void Foam::vtkPV3blockMesh::updateInfoBlocks()
+void Foam::vtkPV3blockMesh::updateInfoBlocks
+(
+    vtkDataArraySelection* arraySelection
+)
 {
     if (debug)
     {
@@ -63,8 +66,7 @@ void Foam::vtkPV3blockMesh::updateInfoBlocks()
             << " [meshPtr=" << (meshPtr_ ? "set" : "NULL") << "]" << endl;
     }
 
-    vtkDataArraySelection* selection = reader_->GetPartSelection();
-    partInfoBlocks_ = selection->GetNumberOfArrays();
+    arrayRangeBlocks_.reset( arraySelection->GetNumberOfArrays() );
 
     const blockMesh& blkMesh = *meshPtr_;
     const int nBlocks = blkMesh.size();
@@ -81,22 +83,25 @@ void Foam::vtkPV3blockMesh::updateInfoBlocks()
         }
 
         // Add blockId and zoneName to GUI list
-        selection->AddArray(partName.c_str());
+        arraySelection->AddArray(partName.c_str());
     }
 
-    partInfoBlocks_ += nBlocks;
+    arrayRangeBlocks_ += nBlocks;
 
     if (debug)
     {
         // just for debug info
-        getSelectedArrayEntries(selection);
+        getSelectedArrayEntries(arraySelection);
 
         Info<< "<end> Foam::vtkPV3blockMesh::updateInfoBlocks" << endl;
     }
 }
 
 
-void Foam::vtkPV3blockMesh::updateInfoEdges()
+void Foam::vtkPV3blockMesh::updateInfoEdges
+(
+    vtkDataArraySelection* arraySelection
+)
 {
     if (debug)
     {
@@ -104,8 +109,7 @@ void Foam::vtkPV3blockMesh::updateInfoEdges()
             << " [meshPtr=" << (meshPtr_ ? "set" : "NULL") << "]" << endl;
     }
 
-    vtkDataArraySelection* selection = reader_->GetCurvedEdgesSelection();
-    partInfoEdges_ = selection->GetNumberOfArrays();
+    arrayRangeEdges_.reset( arraySelection->GetNumberOfArrays() );
 
     const blockMesh& blkMesh = *meshPtr_;
     const curvedEdgeList& edges = blkMesh.edges();
@@ -119,15 +123,15 @@ void Foam::vtkPV3blockMesh::updateInfoEdges()
             << edges[edgeI].type();
 
         // Add "beg:end - type" to GUI list
-        selection->AddArray(ostr.str().c_str());
+        arraySelection->AddArray(ostr.str().c_str());
     }
 
-    partInfoEdges_ += nEdges;
+    arrayRangeEdges_ += nEdges;
 
     if (debug)
     {
         // just for debug info
-        getSelectedArrayEntries(selection);
+        getSelectedArrayEntries(arraySelection);
 
         Info<< "<end> Foam::vtkPV3blockMesh::updateInfoEdges" << endl;
     }
@@ -145,9 +149,9 @@ Foam::vtkPV3blockMesh::vtkPV3blockMesh
     reader_(reader),
     dbPtr_(NULL),
     meshPtr_(NULL),
-    partInfoBlocks_("block"),
-    partInfoEdges_("edges"),
-    partInfoCorners_("corners")
+    arrayRangeBlocks_("block"),
+    arrayRangeEdges_("edges"),
+    arrayRangeCorners_("corners")
 {
     if (debug)
     {
@@ -243,7 +247,7 @@ void Foam::vtkPV3blockMesh::updateInfo()
 
     resetCounters();
 
-    vtkDataArraySelection* partSelection = reader_->GetPartSelection();
+    vtkDataArraySelection* blockSelection = reader_->GetBlockSelection();
     vtkDataArraySelection* edgeSelection = reader_->GetCurvedEdgesSelection();
 
     // enable 'internalMesh' on the first call
@@ -251,33 +255,33 @@ void Foam::vtkPV3blockMesh::updateInfo()
     stringList enabledParts;
     stringList enabledEdges;
     bool firstTime = false;
-    if (!partSelection->GetNumberOfArrays() && !meshPtr_)
+    if (!blockSelection->GetNumberOfArrays() && !meshPtr_)
     {
         firstTime = true;
     }
     else
     {
-        enabledParts = getSelectedArrayEntries(partSelection);
+        enabledParts = getSelectedArrayEntries(blockSelection);
         enabledEdges = getSelectedArrayEntries(edgeSelection);
     }
 
     // Clear current mesh parts list
-    partSelection->RemoveAllArrays();
+    blockSelection->RemoveAllArrays();
     edgeSelection->RemoveAllArrays();
 
     // need a blockMesh
     updateFoamMesh();
 
     // Update mesh parts list
-    updateInfoBlocks();
+    updateInfoBlocks( blockSelection );
 
     // Update curved edges list
-    updateInfoEdges();
+    updateInfoEdges( edgeSelection );
 
     // restore the enabled selections
     if (!firstTime)
     {
-        setSelectedArrayEntries(partSelection, enabledParts);
+        setSelectedArrayEntries(blockSelection, enabledParts);
         setSelectedArrayEntries(edgeSelection, enabledEdges);
     }
 
@@ -337,7 +341,7 @@ void Foam::vtkPV3blockMesh::Update
     reader_->UpdateProgress(0.1);
 
     // Set up mesh parts selection(s)
-    updateBoolListStatus(partStatus_, reader_->GetPartSelection());
+    updateBoolListStatus(blockStatus_, reader_->GetBlockSelection());
 
     // Set up curved edges selection(s)
     updateBoolListStatus(edgeStatus_, reader_->GetCurvedEdgesSelection());
diff --git a/applications/utilities/postProcessing/graphics/PV3Readers/PV3blockMeshReader/vtkPV3blockMesh/vtkPV3blockMesh.H b/applications/utilities/postProcessing/graphics/PV3Readers/PV3blockMeshReader/vtkPV3blockMesh/vtkPV3blockMesh.H
index a159b3cba58978185c46eebdfb8d5579996ce2df..656567ebda77899bf6162d345f3aa3ba65890046 100644
--- a/applications/utilities/postProcessing/graphics/PV3Readers/PV3blockMeshReader/vtkPV3blockMesh/vtkPV3blockMesh.H
+++ b/applications/utilities/postProcessing/graphics/PV3Readers/PV3blockMeshReader/vtkPV3blockMesh/vtkPV3blockMesh.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2008-2009 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 2009-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -88,7 +88,7 @@ class vtkPV3blockMesh
     // Private classes
 
         //- Bookkeeping for GUI checklists and the multi-block organization
-        class partInfo
+        class arrayRange
         {
             const char *name_;
             int block_;
@@ -97,11 +97,11 @@ class vtkPV3blockMesh
 
         public:
 
-            partInfo(const char *name, const int blockNo=0)
+            arrayRange(const char *name, const int blockNo=0)
             :
                 name_(name),
                 block_(blockNo),
-                start_(-1),
+                start_(0),
                 size_(0)
             {}
 
@@ -119,21 +119,25 @@ class vtkPV3blockMesh
                 return prev;
             }
 
+            //- Return block name
             const char* name() const
             {
                 return name_;
             }
 
+            //- Return array start index
             int start() const
             {
                 return start_;
             }
 
+            //- Return array end index
             int end() const
             {
                 return start_ + size_;
             }
 
+            //- Return sublist size
             int size() const
             {
                 return size_;
@@ -144,16 +148,10 @@ class vtkPV3blockMesh
                 return !size_;
             }
 
-            void reset()
+            //- Reset the size to zero and optionally assign a new start
+            void reset(const int startAt = 0)
             {
-                start_ = -1;
-                size_ = 0;
-            }
-
-            //- Assign new start and reset the size
-            void operator=(const int i)
-            {
-                start_ = i;
+                start_ = startAt;
                 size_ = 0;
             }
 
@@ -177,22 +175,20 @@ class vtkPV3blockMesh
         blockMesh* meshPtr_;
 
         //- Selected geometrical parts
-        boolList partStatus_;
+        boolList blockStatus_;
 
         //- Selected curved edges
         boolList edgeStatus_;
 
         //- First instance and size of bleckMesh blocks
-        //  used to index into partStatus_
-        partInfo partInfoBlocks_;
+        //  used to index into blockStatus_
+        arrayRange arrayRangeBlocks_;
 
-        //- First instance and size of CurvedEdges
-        //  only partially used
-        partInfo partInfoEdges_;
+        //- First instance and size of CurvedEdges (only partially used)
+        arrayRange arrayRangeEdges_;
 
-        //- First instance and size of block corners
-        //  only partially used
-        partInfo partInfoCorners_;
+        //- First instance and size of block corners (only partially used)
+        arrayRange arrayRangeCorners_;
 
         //- List of point numbers for rendering to window
         List<vtkTextActor*> pointNumberTextActorsPtrs_;
@@ -205,7 +201,7 @@ class vtkPV3blockMesh
         (
             vtkMultiBlockDataSet* output,
             vtkDataSet* dataset,
-            const partInfo&,
+            const arrayRange&,
             const label datasetNo,
             const std::string& datasetName
         );
@@ -215,7 +211,7 @@ class vtkPV3blockMesh
         static vtkDataSet* GetDataSetFromBlock
         (
             vtkMultiBlockDataSet* output,
-            const partInfo&,
+            const arrayRange&,
             const label datasetNo
         );
 
@@ -224,7 +220,7 @@ class vtkPV3blockMesh
         static label GetNumberOfDataSets
         (
             vtkMultiBlockDataSet* output,
-            const partInfo&
+            const arrayRange&
         );
 
         //- Update boolList from GUI selection
@@ -240,10 +236,10 @@ class vtkPV3blockMesh
         // Update information helper functions
 
             //- Internal block info
-            void updateInfoBlocks();
+            void updateInfoBlocks(vtkDataArraySelection*);
 
             //- block curved edges info
-            void updateInfoEdges();
+            void updateInfoEdges(vtkDataArraySelection*);
 
         // Update helper functions
 
@@ -271,7 +267,7 @@ class vtkPV3blockMesh
             static wordHashSet getSelected
             (
                 vtkDataArraySelection*,
-                const partInfo&
+                const arrayRange&
             );
 
             //- Retrieve the current selections
@@ -281,7 +277,7 @@ class vtkPV3blockMesh
             static stringList getSelectedArrayEntries
             (
                 vtkDataArraySelection*,
-                const partInfo&
+                const arrayRange&
             );
 
             //- Set selection(s)
diff --git a/applications/utilities/postProcessing/graphics/PV3Readers/PV3blockMeshReader/vtkPV3blockMesh/vtkPV3blockMeshConvert.C b/applications/utilities/postProcessing/graphics/PV3Readers/PV3blockMeshReader/vtkPV3blockMesh/vtkPV3blockMeshConvert.C
index 4f76f5ebf2225f4c4915a3aa352052dc796b1d31..b6858ea3bff74b4c8e7014aaddf7c4f1fea305a5 100644
--- a/applications/utilities/postProcessing/graphics/PV3Readers/PV3blockMeshReader/vtkPV3blockMesh/vtkPV3blockMeshConvert.C
+++ b/applications/utilities/postProcessing/graphics/PV3Readers/PV3blockMeshReader/vtkPV3blockMesh/vtkPV3blockMeshConvert.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2008-2009 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 2009-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -52,9 +52,9 @@ void Foam::vtkPV3blockMesh::convertMeshBlocks
     int& blockNo
 )
 {
-    vtkDataArraySelection* selection = reader_->GetPartSelection();
-    partInfo& selector = partInfoBlocks_;
-    selector.block(blockNo);   // set output block
+    vtkDataArraySelection* selection = reader_->GetBlockSelection();
+    arrayRange& range = arrayRangeBlocks_;
+    range.block(blockNo);   // set output block
     label datasetNo = 0;       // restart at dataset 0
 
     const blockMesh& blkMesh = *meshPtr_;
@@ -70,25 +70,18 @@ void Foam::vtkPV3blockMesh::convertMeshBlocks
 
     for
     (
-        int partId = selector.start();
-        partId < selector.end();
+        int partId = range.start();
+        partId < range.end();
         ++partId, ++blockI
     )
     {
-        if (!partStatus_[partId])
+        if (!blockStatus_[partId])
         {
             continue;
         }
 
         const blockDescriptor& blockDef = blkMesh[blockI].blockDef();
-        word partName("block");
-
-//         // append the (optional) zone name
-//         if (!blockDef.zoneName().empty())
-//         {
-//             partName += " - " + blockDef.zoneName();
-//         }
-//
+
         vtkUnstructuredGrid* vtkmesh = vtkUnstructuredGrid::New();
 
         // Convert Foam mesh vertices to VTK
@@ -123,7 +116,7 @@ void Foam::vtkPV3blockMesh::convertMeshBlocks
 
         AddToBlock
         (
-            output, vtkmesh, selector, datasetNo,
+            output, vtkmesh, range, datasetNo,
             selection->GetArrayName(partId)
         );
 
@@ -152,9 +145,9 @@ void Foam::vtkPV3blockMesh::convertMeshEdges
 )
 {
     vtkDataArraySelection* selection = reader_->GetCurvedEdgesSelection();
-    partInfo& selector = partInfoEdges_;
+    arrayRange& range = arrayRangeEdges_;
 
-    selector.block(blockNo);   // set output block
+    range.block(blockNo);      // set output block
     label datasetNo = 0;       // restart at dataset 0
 
     const blockMesh& blkMesh = *meshPtr_;
@@ -165,8 +158,8 @@ void Foam::vtkPV3blockMesh::convertMeshEdges
 
     for
     (
-        int partId = selector.start();
-        partId < selector.end();
+        int partId = range.start();
+        partId < range.end();
         ++partId, ++edgeI
     )
     {
@@ -187,9 +180,7 @@ void Foam::vtkPV3blockMesh::convertMeshEdges
 
             edgeList blkEdges = blockDef.blockShape().edges();
 
-
             // find the corresponding edge within the block
-
             label foundEdgeI = -1;
             forAll(blkEdges, blkEdgeI)
             {
@@ -236,7 +227,7 @@ void Foam::vtkPV3blockMesh::convertMeshEdges
 
                 AddToBlock
                 (
-                    output, vtkmesh, selector, datasetNo,
+                    output, vtkmesh, range, datasetNo,
                     selection->GetArrayName(partId)
                 );
 
@@ -269,8 +260,8 @@ void Foam::vtkPV3blockMesh::convertMeshCorners
     int& blockNo
 )
 {
-    partInfo& selector = partInfoCorners_;
-    selector.block(blockNo);   // set output block
+    arrayRange& range = arrayRangeCorners_;
+    range.block(blockNo);      // set output block
     label datasetNo = 0;       // restart at dataset 0
 
     const pointField& blockPoints = meshPtr_->blockPointField();
@@ -310,7 +301,11 @@ void Foam::vtkPV3blockMesh::convertMeshCorners
         vtkmesh->SetVerts(vtkcells);
         vtkcells->Delete();
 
-        AddToBlock(output, vtkmesh, selector, datasetNo, partInfoCorners_.name());
+        AddToBlock
+        (
+            output, vtkmesh, range, datasetNo,
+            arrayRangeCorners_.name()
+        );
         vtkmesh->Delete();
 
         datasetNo++;
diff --git a/applications/utilities/postProcessing/graphics/PV3Readers/PV3blockMeshReader/vtkPV3blockMesh/vtkPV3blockMeshUtils.C b/applications/utilities/postProcessing/graphics/PV3Readers/PV3blockMeshReader/vtkPV3blockMesh/vtkPV3blockMeshUtils.C
index bde724d9a7fee2c9d90c18d6768b9b5648ec1501..c02de1d0c8015fabf9f4cb2f9d55b1fdea431053 100644
--- a/applications/utilities/postProcessing/graphics/PV3Readers/PV3blockMeshReader/vtkPV3blockMesh/vtkPV3blockMeshUtils.C
+++ b/applications/utilities/postProcessing/graphics/PV3Readers/PV3blockMeshReader/vtkPV3blockMesh/vtkPV3blockMeshUtils.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2008-2009 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 2009-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -71,12 +71,12 @@ void Foam::vtkPV3blockMesh::AddToBlock
 (
     vtkMultiBlockDataSet* output,
     vtkDataSet* dataset,
-    const partInfo& selector,
+    const arrayRange& range,
     const label datasetNo,
     const std::string& datasetName
 )
 {
-    const int blockNo = selector.block();
+    const int blockNo = range.block();
 
     vtkDataObject* blockDO = output->GetBlock(blockNo);
     vtkMultiBlockDataSet* block = vtkMultiBlockDataSet::SafeDownCast(blockDO);
@@ -112,7 +112,7 @@ void Foam::vtkPV3blockMesh::AddToBlock
         output->GetMetaData(blockNo)->Set
         (
             vtkCompositeDataSet::NAME(),
-            selector.name()
+            range.name()
         );
     }
 
@@ -130,11 +130,11 @@ void Foam::vtkPV3blockMesh::AddToBlock
 vtkDataSet* Foam::vtkPV3blockMesh::GetDataSetFromBlock
 (
     vtkMultiBlockDataSet* output,
-    const partInfo& selector,
+    const arrayRange& range,
     const label datasetNo
 )
 {
-    const int blockNo = selector.block();
+    const int blockNo = range.block();
 
     vtkDataObject* blockDO = output->GetBlock(blockNo);
     vtkMultiBlockDataSet* block = vtkMultiBlockDataSet::SafeDownCast(blockDO);
@@ -152,10 +152,10 @@ vtkDataSet* Foam::vtkPV3blockMesh::GetDataSetFromBlock
 Foam::label Foam::vtkPV3blockMesh::GetNumberOfDataSets
 (
     vtkMultiBlockDataSet* output,
-    const partInfo& selector
+    const arrayRange& range
 )
 {
-    const int blockNo = selector.block();
+    const int blockNo = range.block();
 
     vtkDataObject* blockDO = output->GetBlock(blockNo);
     vtkMultiBlockDataSet* block = vtkMultiBlockDataSet::SafeDownCast(blockDO);
@@ -191,13 +191,13 @@ Foam::wordHashSet Foam::vtkPV3blockMesh::getSelected
 Foam::wordHashSet Foam::vtkPV3blockMesh::getSelected
 (
     vtkDataArraySelection* select,
-    const partInfo& selector
+    const arrayRange& range
 )
 {
     int nElem = select->GetNumberOfArrays();
     wordHashSet selections(2*nElem);
 
-    for (int elemI = selector.start(); elemI < selector.end(); ++elemI)
+    for (int elemI = range.start(); elemI < range.end(); ++elemI)
     {
         if (select->GetArraySetting(elemI))
         {
@@ -251,13 +251,13 @@ Foam::stringList Foam::vtkPV3blockMesh::getSelectedArrayEntries
 Foam::stringList Foam::vtkPV3blockMesh::getSelectedArrayEntries
 (
     vtkDataArraySelection* select,
-    const partInfo& selector
+    const arrayRange& range
 )
 {
-    stringList selections(selector.size());
+    stringList selections(range.size());
     label nElem = 0;
 
-    for (int elemI = selector.start(); elemI < selector.end(); ++elemI)
+    for (int elemI = range.start(); elemI < range.end(); ++elemI)
     {
         if (select->GetArraySetting(elemI))
         {
@@ -270,7 +270,7 @@ Foam::stringList Foam::vtkPV3blockMesh::getSelectedArrayEntries
     if (debug)
     {
         Info<< "available(";
-        for (int elemI = selector.start(); elemI < selector.end(); ++elemI)
+        for (int elemI = range.start(); elemI < range.end(); ++elemI)
         {
             Info<< " \"" << select->GetArrayName(elemI) << "\"";
         }
diff --git a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_bkup.H b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_bkup.H
index ce9277dceab5987c27ded660d0be8f36d1d16007..6a47c6ecf29900449c93411bc0f236a43398b257 100644
--- a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_bkup.H
+++ b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_bkup.H
@@ -7,7 +7,7 @@ int USERD_bkup
     int backup_type)
 {
 #ifdef ENSIGHTDEBUG
-    Info << "Entering: USERD_bkup" << endl 
+    Info<< "Entering: USERD_bkup" << endl
         << flush;
 #endif
     return Z_ERR;
diff --git a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_exit_routine.H b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_exit_routine.H
index d00b5de8bbb114d098710e66a0004a3b4894e595..b6fdf9c2c46d7b859f55aa7926a6e5a608aed0bb 100644
--- a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_exit_routine.H
+++ b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_exit_routine.H
@@ -5,7 +5,7 @@ void USERD_exit_routine
 )
 {
 #ifdef ENSIGHTDEBUG
-    Info << "Entering: USERD_exit_routine" << endl 
+    Info<< "Entering: USERD_exit_routine" << endl
         << flush;
 #endif
 
diff --git a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_border_availability.H b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_border_availability.H
index 39399cf9eaab248df90a19e18c8332ada08126c8..5ea3202b8ce5d8b72b850148527a927c6b89eb5d 100644
--- a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_border_availability.H
+++ b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_border_availability.H
@@ -8,8 +8,8 @@ int USERD_get_border_availability
 )
 {
 #ifdef ENSIGHTDEBUG
-    Info << "Entering: USERD_get_border_availability for part_number " 
-        << part_number << endl 
+    Info<< "Entering: USERD_get_border_availability for part_number "
+        << part_number << endl
         << flush;
 #endif
 
diff --git a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_border_elements_by_type.H b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_border_elements_by_type.H
index e4f75704b0a032529934a1e7c19aaa3c52f93529..29536014be42f741099ed1a634a8716cdb7c68f1 100644
--- a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_border_elements_by_type.H
+++ b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_border_elements_by_type.H
@@ -11,7 +11,7 @@ int USERD_get_border_elements_by_type
 )
 {
 #ifdef ENSIGHTDEBUG
-    Info << "Entering: USERD_get_border_elements_by_type" << endl 
+    Info<< "Entering: USERD_get_border_elements_by_type" << endl
         << flush;
 #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 9b0970f3d9044ecf028146e1a363cbfff92c4fbe..2df1e6a7617c6538a944abd17bd7ba764551ad0e 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
@@ -2,7 +2,7 @@
 int USERD_get_changing_geometry_status(void)
 {
 #ifdef ENSIGHTDEBUG
-    Info << "Entering: USERD_get_changing_geometry_status" << endl << flush;
+    Info<< "Entering: USERD_get_changing_geometry_status" << endl << flush;
 #endif
 
     // Choose the most general option
diff --git a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_constant_val.H b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_constant_val.H
index 1b87e2c8a907ff54d9a5721510ede54e3ca02caa..d14dc7a17a5bad0871280153e66098d3feafda9e 100644
--- a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_constant_val.H
+++ b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_constant_val.H
@@ -9,7 +9,7 @@ float USERD_get_constant_val
 )
 {
 #ifdef ENSIGHTDEBUG
-    Info << "Entering: USERD_get_constant_val" << endl << flush;
+    Info<< "Entering: USERD_get_constant_val" << endl << flush;
 #endif
     return 0.0;
 }
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 3de57267f0e376a2476e60109a07e820c270d1fe..1076d2de38d8268db29aec707221e5da54daaf70 100644
--- a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_descrip_lines.H
+++ b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_descrip_lines.H
@@ -9,7 +9,7 @@ int USERD_get_descrip_lines
 )
 {
 #ifdef ENSIGHTDEBUG
-    Info << "Entering: USERD_get_descrip_lines" << endl 
+    Info<< "Entering: USERD_get_descrip_lines" << endl
         << flush;
 #endif
 
@@ -24,7 +24,7 @@ int USERD_get_descrip_lines
     }
 
 #ifdef ENSIGHTDEBUG
-    Info << "Leaving: USERD_get_descrip_lines" << endl 
+    Info<< "Leaving: USERD_get_descrip_lines" << endl
         << flush;
 #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 3aae59c84e54a0702ced1790612d4c8178d9c47e..d65e7bad70f2d1261c65daa878cd5a7f9769d2ea 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
@@ -4,7 +4,7 @@
 int USERD_get_element_label_status(void)
 {
 #ifdef ENSIGHTDEBUG
-    Info << "Entering: USERD_get_element_label_status" << endl << flush;
+    Info<< "Entering: USERD_get_element_label_status" << endl << flush;
 #endif
     return TRUE;
 }
diff --git a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_geom_timeset_number.H b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_geom_timeset_number.H
index 59dd293f51607f4843cf9ef7da5e047f26d518b6..9b0df36a20d98efcf6ed9ec24d812ef9f5a44f7d 100644
--- a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_geom_timeset_number.H
+++ b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_geom_timeset_number.H
@@ -4,7 +4,7 @@ int USERD_get_geom_timeset_number
 )
 {
 #ifdef ENSIGHTDEBUG
-    Info << "Entering: USERD_get_geom_timeset_number" << endl 
+    Info<< "Entering: USERD_get_geom_timeset_number" << endl
         << flush;
 #endif
 
diff --git a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_gold_part_build_info.H b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_gold_part_build_info.H
index ca8da4727c38987c580690e034236a4d09e60054..3d278c03675119d899014a6dd415d084999a5360 100644
--- a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_gold_part_build_info.H
+++ b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_gold_part_build_info.H
@@ -13,7 +13,7 @@ int USERD_get_gold_part_build_info
 )
 {
 #ifdef ENSIGHTDEBUG
-    Info << "Entering: USERD_get_gold_part_build_info" << endl << flush;
+    Info<< "Entering: USERD_get_gold_part_build_info" << endl << flush;
 #endif
 
     //#   include "checkForNewMesh.H"
@@ -32,7 +32,7 @@ int USERD_get_gold_part_build_info
 
     strncpy(part_descriptions[0], meshName, Z_BUFL);
 
-    for(label i=0; i<nPatches; i++)
+    for (label i=0; i<nPatches; i++)
     {
         word patchName(meshPtr->boundary()[i].name());
         strncpy(part_descriptions[i+1], patchName.c_str(), Z_BUFL);
@@ -93,18 +93,18 @@ int USERD_get_gold_part_build_info
     number_of_elements[0][Z_NFACED] = nFaced;
 
     /*
-    Info << "nTet04 = " << nTet04 << endl;
-    Info << "nPyr05 = " << nPyr05 << endl;
-    Info << "nHex08 = " << nHex08 << endl;
-    Info << "nPen06 = " << nPen06 << endl;
-    Info << "nFaced = " << nFaced << endl;
+    Info<< "nTet04 = " << nTet04 << endl;
+    Info<< "nPyr05 = " << nPyr05 << endl;
+    Info<< "nHex08 = " << nHex08 << endl;
+    Info<< "nPen06 = " << nPen06 << endl;
+    Info<< "nFaced = " << nFaced << endl;
         */
 
     number_of_nodes[0] = meshPtr->nPoints();
 
     const polyBoundaryMesh& bMesh = meshPtr->boundaryMesh();
 
-    for(label i=0; i<nPatches; i++)
+    for (label i=0; i<nPatches; i++)
     {
         label nTri03 = 0;
         label nQuad04 = 0;
@@ -148,7 +148,7 @@ int USERD_get_gold_part_build_info
     }
 
 #ifdef ENSIGHTDEBUG
-    Info << "Leaving: USERD_get_gold_part_build_info" << endl << flush;
+    Info<< "Leaving: USERD_get_gold_part_build_info" << endl << flush;
 #endif
 
     return Z_OK;
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 7a17f74f0fdb52ec23033731e818d26c45bb7215..91c205b0b5b60cc852c45c8e163b64c77c1c7512 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
@@ -15,7 +15,7 @@ int USERD_get_gold_variable_info
 )
 {
 #ifdef ENSIGHTDEBUG
-    Info << "Entering: USERD_get_gold_variable_info" << endl 
+    Info<< "Entering: USERD_get_gold_variable_info" << endl
         << flush;
 #endif
 
@@ -112,7 +112,7 @@ int USERD_get_gold_variable_info
     }
 
 #ifdef ENSIGHTDEBUG
-    Info << "Leaving: USERD_get_gold_variable_info" << endl 
+    Info<< "Leaving: USERD_get_gold_variable_info" << endl
         << flush;
 #endif
 
diff --git a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_matf_set_info.H b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_matf_set_info.H
index 87b3af93f4c73a5dd7373599cedefc7cb9baf2e9..8f1b417ee473d348ca5cf9d76d231422a667cc66 100644
--- a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_matf_set_info.H
+++ b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_matf_set_info.H
@@ -6,7 +6,7 @@ int USERD_get_matf_set_info
 )
 {
 #ifdef ENSIGHTDEBUG
-    Info << "Entering: USERD_get_matf_set_info" << endl 
+    Info<< "Entering: USERD_get_matf_set_info" << endl
         << flush;
 #endif
 
diff --git a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_matf_var_info.H b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_matf_var_info.H
index 980415b76edd2d9fb193d6d397fc052ad9c6fd7e..9f4bf9c8cd0296cb75339c571b2ff83e02afc877 100644
--- a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_matf_var_info.H
+++ b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_matf_var_info.H
@@ -7,7 +7,7 @@ int USERD_get_matf_var_info
 )
 {
 #ifdef ENSIGHTDEBUG
-    Info << "Entering: USERD_get_matf_var_info" << endl 
+    Info<< "Entering: USERD_get_matf_var_info" << endl
         << flush;
 #endif
 
diff --git a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_maxsize_info.H b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_maxsize_info.H
index 7c4ef69a4fd06f91e26a2ce00cefdae159743af5..c47d153f9626b5c921675633b7e080c93503e95d 100644
--- a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_maxsize_info.H
+++ b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_maxsize_info.H
@@ -5,10 +5,10 @@ int USERD_get_maxsize_info
     int *max_ijk_dimensions[3]
 )
 {
-    return Z_ERR; 
+    return Z_ERR;
 
 #ifdef ENSIGHTDEBUG
-    Info << "Entering: USERD_get_maxsize_info" << endl;
+    Info<< "Entering: USERD_get_maxsize_info" << endl;
 #endif
 
     label maxNPoints = 0;
@@ -34,10 +34,10 @@ int USERD_get_maxsize_info
         Info<< "Checking time = " << runTimePtr->timeName() << endl;
 
         const cellShapeList& cells = meshPtr->cellShapes();
-        
+
         const label nPoints = meshPtr->nPoints();
         const label nCells  = cells.size();
-        
+
         maxNPoints = max(maxNPoints, nPoints);
 
         for (label n=0; n<nCells;n++)
diff --git a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_model_extents.H b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_model_extents.H
index c65fa09691bcb46b25afd43f8638b6157031d43d..b78438ae7d70e36a5b18e2dd3c9b56dcc7c93379 100644
--- a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_model_extents.H
+++ b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_model_extents.H
@@ -7,7 +7,7 @@ int USERD_get_model_extents
 )
 {
 #ifdef ENSIGHTDEBUG
-    Info << "Entering: USERD_get_model_extents" << endl 
+    Info<< "Entering: USERD_get_model_extents" << endl
         << flush;
 #endif
 
diff --git a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_name_of_reader.H b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_name_of_reader.H
index eceaf3cb9c903d9bf20b5eaaef0f6548c3921376..c055407b534cabf180ba87d09a85db9228d63ca8 100644
--- a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_name_of_reader.H
+++ b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_name_of_reader.H
@@ -8,7 +8,7 @@ int USERD_get_name_of_reader
 )
 {
 #ifdef ENSIGHTDEBUG
-    Info << "Entering: USERD_get_name_of_reader" << endl << flush;
+    Info<< "Entering: USERD_get_name_of_reader" << endl << flush;
 #endif
 
     strncpy(reader_name, readerName, Z_MAX_USERD_NAME);
diff --git a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_nfaced_conn.H b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_nfaced_conn.H
index 20e4b4b62bf0048e13d5af6a2185c39d0e046185..436d68d2591796cf55892afdc489faf3f8f97cd4 100644
--- a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_nfaced_conn.H
+++ b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_nfaced_conn.H
@@ -6,9 +6,9 @@ int USERD_get_nfaced_conn
 )
 {
 #ifdef ENSIGHTDEBUG
-    Info << "Entering: USERD_get_nfaced_conn" 
+    Info<< "Entering: USERD_get_nfaced_conn"
         << ", part_number = " << part_number
-        << endl 
+        << endl
         << flush;
 #endif
 
@@ -36,11 +36,11 @@ int USERD_get_nfaced_conn
                 {}
                 else
                 {
-                    for(label i=0; i<nFacesInCell; i++)
+                    for (label i=0; i<nFacesInCell; i++)
                     {
                         label facei = cells[n][i];
                         label nPoints = faces[facei].size();
-                        for(label j=0; j<nPoints; j++)
+                        for (label j=0; j<nPoints; j++)
                         {
                             nfaced_conn_array[nPoint++] = faces[facei][j] + 1;
                         }
@@ -49,22 +49,22 @@ int USERD_get_nfaced_conn
             }
             else
             {
-                for(label i=0; i<nFacesInCell; i++)
+                for (label i=0; i<nFacesInCell; i++)
                 {
                     label facei = cells[n][i];
                     label nPoints = faces[facei].size();
-                    for(label j=0; j<nPoints; j++)
+                    for (label j=0; j<nPoints; j++)
                     {
                         nfaced_conn_array[nPoint++] = faces[facei][j] + 1;
                     }
                 }
             }
         }
-        
+
     }
     else if (part_number < nPatches+2)
     {
-        
+
     }
     else
     {
@@ -72,7 +72,7 @@ int USERD_get_nfaced_conn
     }
 
 #ifdef ENSIGHTDEBUG
-    Info << "Exiting: USERD_get_nfaced_conn" << endl 
+    Info<< "Exiting: USERD_get_nfaced_conn" << endl
         << flush;
 #endif
     return Z_OK;
diff --git a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_nfaced_nodes_per_face.H b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_nfaced_nodes_per_face.H
index 9fd57aa82ab9e52deb519ba86070d20745f2b5cb..335f928516a0f92fc2aa0b0f7f2df0fc5aaa151f 100644
--- a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_nfaced_nodes_per_face.H
+++ b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_nfaced_nodes_per_face.H
@@ -6,9 +6,9 @@ int USERD_get_nfaced_nodes_per_face
 )
 {
 #ifdef ENSIGHTDEBUG
-    Info << "Entering: USERD_get_nfaced_nodes_per_face" 
+    Info<< "Entering: USERD_get_nfaced_nodes_per_face"
         << ", part_number = " << part_number
-        << endl 
+        << endl
         << flush;
 #endif
 
@@ -38,7 +38,7 @@ int USERD_get_nfaced_nodes_per_face
                 {}
                 else
                 {
-                    for(label i=0; i<nFacesInCell; i++)
+                    for (label i=0; i<nFacesInCell; i++)
                     {
                         label facei = cells[n][i];
                         label nFacePoints = faces[facei].size();
@@ -48,7 +48,7 @@ int USERD_get_nfaced_nodes_per_face
             }
             else
             {
-                for(label i=0; i<nFacesInCell; i++)
+                for (label i=0; i<nFacesInCell; i++)
                 {
                     label facei = cells[n][i];
                     label nFacePoints = faces[facei].size();
@@ -56,7 +56,7 @@ int USERD_get_nfaced_nodes_per_face
                 }
             }
         }
-        
+
     }
     else if (part_number < nPatches+2)
     {
@@ -67,7 +67,7 @@ int USERD_get_nfaced_nodes_per_face
         return Z_ERR;
     }
 #ifdef ENSIGHTDEBUG
-    Info << "Exiting: USERD_get_nfaced_nodes_per_face" << endl 
+    Info<< "Exiting: USERD_get_nfaced_nodes_per_face" << endl
         << flush;
 #endif
     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 f45f20e63abd809c7a3c6bd11cdaf8800dad67dc..65791f70f7256e5983fe4bdf6d36f71b54a04cc2 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
@@ -4,7 +4,7 @@
 int USERD_get_node_label_status(void)
 {
 #ifdef ENSIGHTDEBUG
-    Info << "Entering: USERD_node_label_status" << endl << flush;
+    Info<< "Entering: USERD_node_label_status" << endl << flush;
 #endif
 
     return TRUE;
diff --git a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_nsided_conn.H b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_nsided_conn.H
index 370fb341adb77210fe88ddb2e9ac768e844fe866..c99361c3fb077e25fee9eab4e8077e717be36e3d 100644
--- a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_nsided_conn.H
+++ b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_nsided_conn.H
@@ -2,18 +2,18 @@
 int USERD_get_nsided_conn
 (
     int part_number,
-    int *nsided_conn_array 
+    int *nsided_conn_array
 )
 {
 #ifdef ENSIGHTDEBUG
-    Info << "Entering: USERD_get_nsided_conn" 
+    Info<< "Entering: USERD_get_nsided_conn"
         << ", part_number = " << part_number
-        << endl 
+        << endl
         << flush;
 #endif
     if (part_number == 1)
     {
-        Info << "************* EEEEEEEEERRRRRRRRRRRRRRRRRR *************** " << endl << flush;
+        Info<< "************* EEEEEEEEERRRRRRRRRRRRRRRRRR *************** " << endl << flush;
 
     }
     else if (part_number < nPatches+2)
@@ -30,7 +30,7 @@ int USERD_get_nsided_conn
             label nPoints = bMesh[patchi][facei].size();
             if ((nPoints != 3) && (nPoints != 4))
             {
-                for(label i=0; i<nPoints; i++)
+                for (label i=0; i<nPoints; i++)
                 {
                     nsided_conn_array[np++] = bMesh[patchi][facei][i] + 1;
                 }
@@ -42,7 +42,7 @@ int USERD_get_nsided_conn
         return Z_ERR;
     }
 #ifdef ENSIGHTDEBUG
-    Info << "Exiting: USERD_get_nsided_conn" << endl 
+    Info<< "Exiting: USERD_get_nsided_conn" << endl
         << flush;
 #endif
     return Z_OK;
diff --git a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_num_of_time_steps.H b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_num_of_time_steps.H
index f780b95c40ff5cb0053b97ae92adc834346d49d1..37a1a5c06e00f54e94f085332cdc59def3702e3c 100644
--- a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_num_of_time_steps.H
+++ b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_num_of_time_steps.H
@@ -7,7 +7,7 @@ int USERD_get_num_of_time_steps
 )
 {
 #ifdef ENSIGHTDEBUG
-    Info << "Entering: USERD_get_num_of_time_steps" << endl 
+    Info<< "Entering: USERD_get_num_of_time_steps" << endl
         << flush;
 #endif
 
diff --git a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_number_of_files_in_dataset.H b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_number_of_files_in_dataset.H
index ac426a7ee0bf8894fd882fedaab0fce544c4af51..e2246d27daa838dacb82e533372200132f7e6936 100644
--- a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_number_of_files_in_dataset.H
+++ b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_number_of_files_in_dataset.H
@@ -1,10 +1,10 @@
 //======================================================================
-// 
+//
 //======================================================================
 int USERD_get_number_of_files_in_dataset(void)
 {
 #ifdef ENSIGHTDEBUG
-    Info << "Entering: USERD_get_number_of_files_in_dataset" << endl << flush;
+    Info<< "Entering: USERD_get_number_of_files_in_dataset" << endl << flush;
 #endif
 
     // use 1 insted of 0 which gives an un-necessary warning.
diff --git a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_number_of_material_sets.H b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_number_of_material_sets.H
index 39feab9bce5853bae6b16041a7acfc278db35575..f8a0477645515bcae9742a5c772a4556df075bce 100644
--- a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_number_of_material_sets.H
+++ b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_number_of_material_sets.H
@@ -1,14 +1,14 @@
 
 int USERD_get_number_of_material_sets
-( 
-    void 
+(
+    void
 )
 {
 #ifdef ENSIGHTDEBUG
-    Info << "Entering: USERD_get_number_of_material_sets" << endl 
+    Info<< "Entering: USERD_get_number_of_material_sets" << endl
         << flush;
 #endif
 
     // No materials
-    return 0; 
+    return 0;
 }
diff --git a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_number_of_materials.H b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_number_of_materials.H
index 8e97d2f1c6edef64921ead7235f3948582f0b93e..98162b2e11f45d727fd6d6cd4d2d0a0bb67d019c 100644
--- a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_number_of_materials.H
+++ b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_number_of_materials.H
@@ -5,7 +5,7 @@ int USERD_get_number_of_materials
 )
 {
 #ifdef ENSIGHTDEBUG
-    Info << "Entering: USERD_get_number_of_materials" << endl 
+    Info<< "Entering: USERD_get_number_of_materials" << endl
         << flush;
 #endif
 
diff --git a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_number_of_model_parts.H b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_number_of_model_parts.H
index e7a68d2c3a9da73d49daab321221af81efd33e98..cef0a64b1cd10403128440ccdecf6d8d0a51a275 100644
--- a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_number_of_model_parts.H
+++ b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_number_of_model_parts.H
@@ -2,7 +2,7 @@
 int USERD_get_number_of_model_parts(void)
 {
 #ifdef ENSIGHTDEBUG
-    Info << "Entering: USERD_get_number_of_model_parts" << endl << flush;
+    Info<< "Entering: USERD_get_number_of_model_parts" << endl << flush;
 #endif
 
     return Numparts_available;
diff --git a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_number_of_variables.H b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_number_of_variables.H
index b858a8017844ece67f0cbff5f735fd973a25e389..acb342135714809739f7724dc0f1dab0a55bae88 100644
--- a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_number_of_variables.H
+++ b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_number_of_variables.H
@@ -2,7 +2,7 @@
 int USERD_get_number_of_variables(void)
 {
 #ifdef ENSIGHTDEBUG
-    Info << "Entering: USERD_get_number_of_variables" << endl << flush;
+    Info<< "Entering: USERD_get_number_of_variables" << endl << flush;
 #endif
 
     return Num_variables;
diff --git a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_number_timesets.H b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_number_timesets.H
index 1844d71e6420a8287ebe1b7a8822d2e023aaf934..e4fc922fbd5d6a088a31a10fa58a4a896097d6f1 100644
--- a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_number_timesets.H
+++ b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_number_timesets.H
@@ -4,7 +4,7 @@ int USERD_get_number_of_timesets
 )
 {
 #ifdef ENSIGHTDEBUG
-    Info << "Entering: USERD_get_number_of_timesets" << endl 
+    Info<< "Entering: USERD_get_number_of_timesets" << endl
         << flush;
 #endif
 
diff --git a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_part_coords.H b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_part_coords.H
index 54ab4da3af1d6b3bb67971a44448ac93fb49520e..68ebbf768e5fab26c2a1b0efcf1ff4ddb043bab2 100644
--- a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_part_coords.H
+++ b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_part_coords.H
@@ -8,7 +8,7 @@ int USERD_get_part_coords
 {
 
 #ifdef ENSIGHTDEBUG
-    Info << "Entering: USERD_get_part_coords" << endl << 
+    Info<< "Entering: USERD_get_part_coords" << endl <<
         "part_number = " << part_number << endl << flush;
 #endif
 
@@ -19,7 +19,7 @@ int USERD_get_part_coords
 
         const vectorField& points = meshPtr->points();
         label nPoints = points.size();
-        
+
         for (label indx=0; indx<nPoints; indx++)
         {
             coord_array[0][indx+1] = (float)points[indx].x();
@@ -36,7 +36,7 @@ int USERD_get_part_coords
         const polyBoundaryMesh& bMesh = meshPtr->boundaryMesh();
         const vectorField& points = bMesh[patchi].points();
         label nPoints = points.size();
-        
+
         for (label indx=0; indx<nPoints; indx++)
         {
             coord_array[0][indx+1] = (float)points[indx].x();
@@ -70,7 +70,7 @@ int USERD_get_part_coords
     }
 
 #ifdef ENSIGHTDEBUG
-    Info << "Leaving: USERD_get_part_coords" << endl << flush;
+    Info<< "Leaving: USERD_get_part_coords" << endl << flush;
 #endif
 
     return Z_OK;
diff --git a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_part_element_ids_by_type.H b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_part_element_ids_by_type.H
index 67c3478880a2a571e42ce6aeff068c8d5c105369..4b82c06f33a1d54c328d0defa88296f52902aae8 100644
--- a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_part_element_ids_by_type.H
+++ b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_part_element_ids_by_type.H
@@ -7,8 +7,8 @@ int USERD_get_part_element_ids_by_type
 {
 
 #ifdef ENSIGHTDEBUG
-    Info << "Entering: USERD_get_part_element_ids_by_type" << endl 
-        << "part_number = " << part_number << endl 
+    Info<< "Entering: USERD_get_part_element_ids_by_type" << endl
+        << "part_number = " << part_number << endl
         << "element_type = " << element_type << endl << flush;
 #endif
 
@@ -31,7 +31,7 @@ int USERD_get_part_element_ids_by_type
             {
                 label nFaces = cells[n].size();
                 labelList points = cellShapes[n];
-                
+
                 if ((nFaces == 6) && (points.size() == 8))
                 {
                     elemid_array[nHex08++] = n + 1;
@@ -44,7 +44,7 @@ int USERD_get_part_element_ids_by_type
             {
                 label nFaces = cells[n].size();
                 labelList points = cellShapes[n];
-                
+
                 if ((nFaces == 5) && (points.size() == 6))
                 {
                     elemid_array[nPen06++] = n + 1;
@@ -57,7 +57,7 @@ int USERD_get_part_element_ids_by_type
             {
                 label nFaces = cells[n].size();
                 labelList points = cellShapes[n];
-                
+
                 if ((nFaces == 5) && (points.size() == 5))
                 {
                     elemid_array[nPyr05++] = n + 1;
@@ -70,7 +70,7 @@ int USERD_get_part_element_ids_by_type
             {
                 label nFaces = cells[n].size();
                 labelList points = cellShapes[n];
-                
+
                 if ((nFaces == 4) && (points.size() == 4))
                 {
                     elemid_array[nTet04++] = n + 1;
@@ -101,7 +101,7 @@ int USERD_get_part_element_ids_by_type
     }
     else if (part_number < nPatches+2)
     {
-     
+
         const polyBoundaryMesh& bMesh = meshPtr->boundaryMesh();
         label patchi = part_number - 2;
 
@@ -127,7 +127,7 @@ int USERD_get_part_element_ids_by_type
                 {
                     elemid_array[nQuad04++] = facei + 1;
                 }
-            }            
+            }
         }
         else if (element_type == Z_NSIDED)
         {
@@ -155,7 +155,7 @@ int USERD_get_part_element_ids_by_type
     }
 
 #ifdef ENSIGHTDEBUG
-    Info << "Leaving: USERD_get_part_element_ids_by_type" << endl << flush;
+    Info<< "Leaving: USERD_get_part_element_ids_by_type" << endl << flush;
 #endif
 
     return Z_OK;
diff --git a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_part_elements_by_type.H b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_part_elements_by_type.H
index d8713a8224c171b1585dd78c8a0f14916b13c02d..d90f3643fc7aa8d4de4e143f265f49fafe855e1a 100644
--- a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_part_elements_by_type.H
+++ b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_part_elements_by_type.H
@@ -11,47 +11,47 @@ int USERD_get_part_elements_by_type
         << "element_type = " << element_type;
     if (element_type == Z_HEX08)
     {
-        Info << " Z_HEX08";
+        Info<< " Z_HEX08";
     }
     else if (element_type == Z_PEN06)
     {
-        Info << " Z_PEN06";
+        Info<< " Z_PEN06";
     }
     else if (element_type == Z_PYR05)
     {
-        Info << " Z_PYR05";
+        Info<< " Z_PYR05";
     }
     else if (element_type == Z_TET04)
     {
-        Info << " Z_TET04";
+        Info<< " Z_TET04";
     }
     else if (element_type == Z_TRI03)
     {
-        Info << " Z_TRI03";
+        Info<< " Z_TRI03";
     }
     else if (element_type == Z_QUA04)
     {
-        Info << " Z_QUA04";
+        Info<< " Z_QUA04";
     }
     else if (element_type == Z_NFACED)
     {
-        Info << " Z_NFACED";
+        Info<< " Z_NFACED";
     }
     else if (element_type == Z_NSIDED)
     {
-        Info << " Z_NSIDED";
+        Info<< " Z_NSIDED";
     }
     else
     {
-        Info << " unknown";
+        Info<< " unknown";
     }
-    Info << endl << flush;
+    Info<< endl << flush;
 #   endif
 
     if (part_number == 1)
     {
         const cellShapeList& cellShapes = meshPtr->cellShapes();
-        
+
         //================================
         // hexahedron
         //================================
@@ -64,7 +64,7 @@ int USERD_get_part_elements_by_type
             {
                 const cellShape& cellShape = cellShapes[celli];
                 const cellModel& cellModel = cellShape.model();
-                
+
                 if (cellModel == hex)
                 {
                     forAll(cellShape, ip)
@@ -87,7 +87,7 @@ int USERD_get_part_elements_by_type
             {
                 const cellShape& cellShape = cellShapes[celli];
                 const cellModel& cellModel = cellShape.model();
-                
+
                 if (cellModel == prism)
                 {
                     forAll(cellShape, ip)
@@ -110,7 +110,7 @@ int USERD_get_part_elements_by_type
             {
                 const cellShape& cellShape = cellShapes[celli];
                 const cellModel& cellModel = cellShape.model();
-                
+
                 if (cellModel == pyr)
                 {
                     forAll(cellShape, ip)
@@ -133,7 +133,7 @@ int USERD_get_part_elements_by_type
             {
                 const cellShape& cellShape = cellShapes[celli];
                 const cellModel& cellModel = cellShape.model();
-                
+
                 if (cellModel == tet)
                 {
                     forAll(cellShape, ip)
@@ -193,7 +193,7 @@ int USERD_get_part_elements_by_type
                 label nPoints = bMesh[patchi][n].size();
                 if (nPoints == 3)
                 {
-                    for(label i=0; i<nPoints; i++)
+                    for (label i=0; i<nPoints; i++)
                     {
                         label ip = bMesh[patchi][n][i];
                         conn_array[nTri03][i] = ip + 1;
@@ -209,7 +209,7 @@ int USERD_get_part_elements_by_type
                 label nPoints = bMesh[patchi][n].size();
                 if (nPoints == 4)
                 {
-                    for(label i=0; i<nPoints; i++)
+                    for (label i=0; i<nPoints; i++)
                     {
                         label ip = bMesh[patchi][n][i];
                         conn_array[nQuad04][i] = ip + 1;
diff --git a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_part_node_ids.H b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_part_node_ids.H
index 3ee4feff131851d762936f679785e5fabf8c6d26..c05af41ccd674ead3f2058c7c9938451a26a60a4 100644
--- a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_part_node_ids.H
+++ b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_part_node_ids.H
@@ -5,8 +5,8 @@ int USERD_get_part_node_ids
 )
 {
 #ifdef ENSIGHTDEBUG
-    Info << "Entering: USERD_get_part_node_ids" << endl 
-        << "part_number = " << part_number << endl 
+    Info<< "Entering: USERD_get_part_node_ids" << endl
+        << "part_number = " << part_number << endl
         << flush;
 #endif
 
@@ -25,7 +25,7 @@ int USERD_get_part_node_ids
         const vectorField& points = bMesh[patchi].points();
 
         label nPoints = points.size();
-        
+
         for (label indx=0; indx<nPoints; indx++)
         {
             nodeid_array[indx] = indx + 1;
@@ -52,7 +52,7 @@ int USERD_get_part_node_ids
     }
 
 #ifdef ENSIGHTDEBUG
-    Info << "Leaving: USERD_get_part_node_ids" << endl 
+    Info<< "Leaving: USERD_get_part_node_ids" << endl
         << flush;
 #endif
 
diff --git a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_reader_release.H b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_reader_release.H
index 3a75b16675db1a99afbd93ffaf0fb057cad54a73..5ebd4425cb76f5894fde7989ffeb1e6af4b3bcc9 100644
--- a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_reader_release.H
+++ b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_reader_release.H
@@ -5,13 +5,13 @@ int USERD_get_reader_release
 {
 
 #ifdef ENSIGHTDEBUG
-    Info << "Entering: USERD_get_reader_release" << endl;
+    Info<< "Entering: USERD_get_reader_release" << endl;
 #endif
 
     strncpy(release_number, Foam::FOAMbuild, Z_MAX_USERD_NAME);
 
 #ifdef ENSIGHTDEBUG
-    Info << "Leaving: USERD_get_reader_release" << endl;
+    Info<< "Leaving: USERD_get_reader_release" << endl;
 #endif
 
     return Z_OK;
diff --git a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_reader_version.H b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_reader_version.H
index 7c8206664bd524ff83b905391d24fb19f8dae418..a8fd102fe3b6fc380123b6fc20c00618c0622673 100644
--- a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_reader_version.H
+++ b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_reader_version.H
@@ -5,13 +5,13 @@ int USERD_get_reader_version
 {
 
 #ifdef ENSIGHTDEBUG
-    Info << "Entering: USERD_get_reader_version" << endl;
+    Info<< "Entering: USERD_get_reader_version" << endl;
 #endif
 
     strncpy(version_number, readerVersion, Z_MAX_USERD_NAME);
 
 #ifdef ENSIGHTDEBUG
-    Info << "Leaving: USERD_get_reader_version" << endl;
+    Info<< "Leaving: USERD_get_reader_version" << endl;
 #endif
 
     return Z_OK;
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 dcc64822897df9246929b025bf1e64e61167673d..223b0c2164af3f96c5764d33e0378bacae6c7948 100644
--- a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_sol_times.H
+++ b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_sol_times.H
@@ -29,7 +29,7 @@ int USERD_get_sol_times
         {
             solution_times[n] += addCAD;
 
-            Info << "Time[" << n << "] = " << timeDirs[n+1].value()
+            Info<< "Time[" << n << "] = " << timeDirs[n+1].value()
                 << " was corrected to " << solution_times[n]  << endl;
         }
 
diff --git a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_var_by_component.H b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_var_by_component.H
index bf811b73220d954f72cae8b1afb9986c661024a0..89c0140b4a8087ee1a6efd51c465466c0026ce88 100644
--- a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_var_by_component.H
+++ b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_var_by_component.H
@@ -10,7 +10,7 @@ int USERD_get_var_by_component
 )
 {
 #ifdef ENSIGHTDEBUG
-    Info << "Entering: USERD_get_var_by_component" << endl 
+    Info<< "Entering: USERD_get_var_by_component" << endl
         << "which_variable = " << which_variable << endl
         << "which_part = " << which_part << endl
         << "var_type = " << var_type << endl
@@ -32,7 +32,7 @@ int USERD_get_var_by_component
     {
         if (which_part == 1)
         {
-#           include "getFieldScalar.H"            
+#           include "getFieldScalar.H"
         }
         else if (which_part < nPatches+2)
         {
@@ -51,7 +51,7 @@ int USERD_get_var_by_component
     {
         if (which_part == 1)
         {
-#           include "getFieldVector.H"            
+#           include "getFieldVector.H"
         }
         else if (which_part < nPatches+2)
         {
@@ -70,10 +70,10 @@ int USERD_get_var_by_component
     else if (var_type == Z_TENSOR9)
     {
         // all tensor are treated as asymmetric tensors here
-        
+
         if (which_part == 1)
         {
-#           include "getFieldTensor.H"            
+#           include "getFieldTensor.H"
         }
         else if (which_part < nPatches+2)
         {
@@ -89,13 +89,13 @@ int USERD_get_var_by_component
         }
 
     }
-    else 
+    else
     {
         return Z_UNDEF;
     }
 
 #ifdef ENSIGHTDEBUG
-    Info << "Leaving: USERD_get_var_by_component" << endl 
+    Info<< "Leaving: USERD_get_var_by_component" << endl
         << flush;
 #endif
 
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 d9ea31f4507e8ec3e08a73f91ae072706454a1d2..d569726f6a30197d01ee47d6a63a9e2e6ab6a897 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
@@ -11,7 +11,7 @@ int USERD_get_var_value_at_specific
 )
 {
 #ifdef ENSIGHTDEBUG
-    Info << "Entering: USERD_get_var_value_at_specific" << endl 
+    Info<< "Entering: USERD_get_var_value_at_specific" << endl
         << flush;
 #endif
     // Not sure if it is 0 or 1 based
@@ -63,7 +63,7 @@ int USERD_get_var_value_at_specific
 
 
 #ifdef ENSIGHTDEBUG
-    Info << "Leaving: USERD_get_var_value_at_specific" << endl 
+    Info<< "Leaving: USERD_get_var_value_at_specific" << endl
         << flush;
 #endif
     return Z_OK;
diff --git a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_load_matf_data.H b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_load_matf_data.H
index 2c03738bd5f922dbc8c707427bbfa8fdc20c555a..c89cc5f253cfcce257f3740029d5eaf176c21780 100644
--- a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_load_matf_data.H
+++ b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_load_matf_data.H
@@ -6,11 +6,11 @@ int USERD_load_matf_data
     int wtyp,
     int mat_type,
     int *ids_list,
-    float *val_list 
+    float *val_list
 )
 {
 #ifdef ENSIGHTDEBUG
-    Info << "Entering: USERD_load_matf_data" << endl 
+    Info<< "Entering: USERD_load_matf_data" << endl
         << flush;
 #endif
 
diff --git a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_set_filenames.H b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_set_filenames.H
index 712ce53b869072019ca37fa40c749d35197b1b2f..ccaad12cb3af8febdbfd6c759b5ae5b6efe8e4d8 100644
--- a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_set_filenames.H
+++ b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_set_filenames.H
@@ -10,7 +10,7 @@ int USERD_set_filenames
 )
 {
 #ifdef ENSIGHTDEBUG
-    Info << "Entering: USERD_set_filenames" << endl << flush;
+    Info<< "Entering: USERD_set_filenames" << endl << flush;
 #endif
 
     char tmp[100];
@@ -87,7 +87,7 @@ int USERD_set_filenames
 
     // set the number of fields and store their names
     // a valid field must exist for all time-steps
-    runTime.setTime(timeDirs[timeDirs.size()-1], timeDirs.size()-1);
+    runTime.setTime(timeDirs.last(), timeDirs.size()-1);
     IOobjectList objects(*meshPtr, runTime.timeName());
 
     fieldNames = objects.names();
@@ -173,7 +173,7 @@ int USERD_set_filenames
 
     if (sprayHeader.headerOk())
     {
-        Info << "[Found lagrangian]" << endl;
+        Info<< "[Found lagrangian]" << endl;
 
         delete sprayPtr;
 
@@ -201,7 +201,7 @@ int USERD_set_filenames
     Numparts_available = Num_unstructured_parts + Num_structured_parts + nPatches;
 
 #ifdef ENSIGHTDEBUG
-    Info << "Leaving: USERD_set_filenames" << endl << flush;
+    Info<< "Leaving: USERD_set_filenames" << endl << flush;
 #endif
 
     return Z_OK;
diff --git a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_set_server_number.H b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_set_server_number.H
index 3918280b95fd3a61bd0634b22d404fe439a2336d..f0ff4b24fceb4c348f479f20316d597b318e8660 100644
--- a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_set_server_number.H
+++ b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_set_server_number.H
@@ -5,7 +5,7 @@ void USERD_set_server_number
 )
 {
 #ifdef ENSIGHTDEBUG
-    Info << "Entering: USERD_set_server_number" << endl 
+    Info<< "Entering: USERD_set_server_number" << endl
         << flush;
 #endif
 
diff --git a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_set_time_set_and_step.H b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_set_time_set_and_step.H
index 5e4c5815323af4948db69d381d5e37483bbb0185..5459f67ba6b71e6e02ad04571aa2ba148050e92f 100644
--- a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_set_time_set_and_step.H
+++ b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_set_time_set_and_step.H
@@ -6,7 +6,7 @@ void USERD_set_time_set_and_step
 )
 {
 #ifdef ENSIGHTDEBUG
-    Info << "Entering: USERD_set_time_set_and_step" << endl << flush;
+    Info<< "Entering: USERD_set_time_set_and_step" << endl << flush;
 #endif
     // update the global pointers and variables
     // to the current time-step
diff --git a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_size_matf_data.H b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_size_matf_data.H
index 85cdcfab5c231bd2d2811884eedf34f7bef18ccb..c48fa13bfb85f1ddfdb3c9c453b17876abe7415a 100644
--- a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_size_matf_data.H
+++ b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_size_matf_data.H
@@ -5,11 +5,11 @@ int USERD_size_matf_data
     int part_id,
     int wtyp,
     int mat_type,
-    int *matf_size 
+    int *matf_size
 )
 {
 #ifdef ENSIGHTDEBUG
-    Info << "Entering: USERD_size_matf_data" << endl 
+    Info<< "Entering: USERD_size_matf_data" << endl
         << flush;
 #endif
 
diff --git a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_stop_part_building.H b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_stop_part_building.H
index 13ac17682e4d25a503945b1db0f431aeacdd0070..c6262b8ee1375a8aafd31981ac67ba5b758cedfd 100644
--- a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_stop_part_building.H
+++ b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_stop_part_building.H
@@ -2,7 +2,7 @@
 void USERD_stop_part_building(void)
 {
 #ifdef ENSIGHTDEBUG
-    Info << "Entering: USERD_stop_part_building" << endl << flush;
+    Info<< "Entering: USERD_stop_part_building" << endl << flush;
 #endif
 
 }
diff --git a/applications/utilities/postProcessing/graphics/ensightFoamReader/getLagrangianScalar.H b/applications/utilities/postProcessing/graphics/ensightFoamReader/getLagrangianScalar.H
index 39ccf6c07f288b2003285d8baedf5adde265e15f..3c1d5f84cb8a8211d7621986b439fb37167c013a 100644
--- a/applications/utilities/postProcessing/graphics/ensightFoamReader/getLagrangianScalar.H
+++ b/applications/utilities/postProcessing/graphics/ensightFoamReader/getLagrangianScalar.H
@@ -29,7 +29,7 @@ if (nVar >= 0)
 }
 else
 {
-    // Info << "getLagrangianScalar: nVar = " << nVar << endl;
+    // Info<< "getLagrangianScalar: nVar = " << nVar << endl;
     return Z_UNDEF;
 }
 
diff --git a/applications/utilities/postProcessing/graphics/fieldview9Reader/Allwmake b/applications/utilities/postProcessing/graphics/fieldview9Reader/Allwmake
index a2dc313fb1957b75938552cc1dd23cc62bef0c8b..e4825541df7abca62ba2b230030f6046cef7a2e2 100755
--- a/applications/utilities/postProcessing/graphics/fieldview9Reader/Allwmake
+++ b/applications/utilities/postProcessing/graphics/fieldview9Reader/Allwmake
@@ -6,3 +6,5 @@
 # then
 #    wmake fieldview9Reader
 # fi
+
+# ----------------------------------------------------------------- end-of-file
diff --git a/applications/utilities/postProcessing/graphics/fieldview9Reader/fieldview9Reader.C b/applications/utilities/postProcessing/graphics/fieldview9Reader/fieldview9Reader.C
index 17f1dfcb2eec7d1172caa099e4f5b9d519b44322..a658631a9f1b9793c27c803c0c89f3afa324b657 100644
--- a/applications/utilities/postProcessing/graphics/fieldview9Reader/fieldview9Reader.C
+++ b/applications/utilities/postProcessing/graphics/fieldview9Reader/fieldview9Reader.C
@@ -314,7 +314,7 @@ static void storeScalarField
         Info<< "Storing " << nTotPoints << " of dummy values of " << fieldName
             << endl;
 
-        for(label i = 0; i < nPoints; i++)
+        for (label i = 0; i < nPoints; i++)
         {
             vars[pointI++] = 0.0;
         }
@@ -388,7 +388,7 @@ static void storeVectorField
 
         for (direction d = 0; d < vector::nComponents; d++)
         {
-            for(label i = 0; i < nPoints; i++)
+            for (label i = 0; i < nPoints; i++)
             {
                 vars[pointI++] = 0.0;
             }
diff --git a/applications/utilities/postProcessing/lagrangian/particleTracks/particleTracks.C b/applications/utilities/postProcessing/lagrangian/particleTracks/particleTracks.C
index 3ad01ef870cbed3bad0679237c047cff41b22df7..1f58708d283aaab20e2ebf128e6e2f918a6b23f0 100644
--- a/applications/utilities/postProcessing/lagrangian/particleTracks/particleTracks.C
+++ b/applications/utilities/postProcessing/lagrangian/particleTracks/particleTracks.C
@@ -103,7 +103,7 @@ int main(int argc, char *argv[])
     {
         startIds[i+1] += startIds[i] + numIds[i];
     }
-    label nParticle = startIds[startIds.size()-1] + numIds[startIds.size()-1];
+    label nParticle = startIds.last() + numIds[startIds.size()-1];
 
 
 
diff --git a/applications/utilities/postProcessing/miscellaneous/engineCompRatio/engineCompRatio.C b/applications/utilities/postProcessing/miscellaneous/engineCompRatio/engineCompRatio.C
index 65356b382b26678e2db9db3a7d3ce511ce61972f..08ec6431467fb951052a0ad78a7ae3a161a7a4ab 100644
--- a/applications/utilities/postProcessing/miscellaneous/engineCompRatio/engineCompRatio.C
+++ b/applications/utilities/postProcessing/miscellaneous/engineCompRatio/engineCompRatio.C
@@ -83,7 +83,7 @@ int main(int argc, char *argv[])
     Info<< "\nVmax = " << Vmax;
     Info<< ", Vmin = " << Vmin << endl;
     Info<< "Vmax/Vmin = " << Vmax/Vmin << endl;
-    Info<< "\nEnd" << endl;
+    Info<< "\nEnd\n" << endl;
 
     return 0;
 }
diff --git a/applications/utilities/postProcessing/miscellaneous/pdfPlot/pdfPlot.C b/applications/utilities/postProcessing/miscellaneous/pdfPlot/pdfPlot.C
index 09e85cb6492084eef0cfeb2729cd10ccfae4d976..3347e4dcdb5a074dda8bffeef66dc29da376b864 100644
--- a/applications/utilities/postProcessing/miscellaneous/pdfPlot/pdfPlot.C
+++ b/applications/utilities/postProcessing/miscellaneous/pdfPlot/pdfPlot.C
@@ -77,7 +77,7 @@ int main(int argc, char *argv[])
 
     makeGraph(x, samples, p->type(), pdfPath, runTime.graphFormat());
 
-    Info << "End\n" << endl;
+    Info<< "End\n" << endl;
 
     return 0;
 }
diff --git a/applications/utilities/postProcessing/miscellaneous/postChannel/postChannel.C b/applications/utilities/postProcessing/miscellaneous/postChannel/postChannel.C
index 559e769cf1c293e3de4ca34a1ce4751ad72de5c9..53e198c8d980d94249e3b937827ed954faae03ae 100644
--- a/applications/utilities/postProcessing/miscellaneous/postChannel/postChannel.C
+++ b/applications/utilities/postProcessing/miscellaneous/postChannel/postChannel.C
@@ -90,7 +90,7 @@ int main(int argc, char *argv[])
 #       include "collapse.H"
     }
 
-    Info<< "\nEnd" << endl;
+    Info<< "\nEnd\n" << endl;
 
     return 0;
 }
diff --git a/applications/utilities/postProcessing/miscellaneous/writeCellCentres/writeCellCentres.C b/applications/utilities/postProcessing/miscellaneous/writeCellCentres/writeCellCentres.C
index bc26ec509fbe6cc9a8dca2792aeef1373c2dccce..cc4a69944ea39226540506981ddcbcd36f45d478 100644
--- a/applications/utilities/postProcessing/miscellaneous/writeCellCentres/writeCellCentres.C
+++ b/applications/utilities/postProcessing/miscellaneous/writeCellCentres/writeCellCentres.C
@@ -101,7 +101,7 @@ int main(int argc, char *argv[])
         }
     }
 
-    Info<< "\nEnd" << endl;
+    Info<< "\nEnd\n" << endl;
 
     return 0;
 }
diff --git a/applications/utilities/postProcessing/scalarField/pPrime2/pPrime2.C b/applications/utilities/postProcessing/scalarField/pPrime2/pPrime2.C
index 54a7b53c461a55f77fc3a8d698bb89dce87aeac4..0e12decde29a7fe48ac4d10f747fbe1b629364b6 100644
--- a/applications/utilities/postProcessing/scalarField/pPrime2/pPrime2.C
+++ b/applications/utilities/postProcessing/scalarField/pPrime2/pPrime2.C
@@ -47,7 +47,7 @@ int main(int argc, char *argv[])
 
 #   include "createMesh.H"
 
-    runTime.setTime(timeDirs[timeDirs.size()-1], timeDirs.size()-1);
+    runTime.setTime(timeDirs.last(), timeDirs.size()-1);
 
     volScalarField pMean
     (
diff --git a/applications/utilities/postProcessing/velocityField/Lambda2/Lambda2.C b/applications/utilities/postProcessing/velocityField/Lambda2/Lambda2.C
index d60f18fdafa6aab0b2e2fef64e6db352b6d768ef..84ef11619435f26b4dfee189dae251909a5a81c4 100644
--- a/applications/utilities/postProcessing/velocityField/Lambda2/Lambda2.C
+++ b/applications/utilities/postProcessing/velocityField/Lambda2/Lambda2.C
@@ -72,7 +72,7 @@ void Foam::calc(const argList& args, const Time& runTime, const fvMesh& mesh)
             -eigenValues(SSplusWW)().component(vector::Y)
         );
 
-        Info << "    Writing -Lambda2" << endl;
+        Info<< "    Writing -Lambda2" << endl;
         Lambda2.write();
     }
     else
diff --git a/applications/utilities/postProcessing/velocityField/Pe/Pe.C b/applications/utilities/postProcessing/velocityField/Pe/Pe.C
index 27a4576b6f5e522aff5dab6c0afa2822c6c7e44f..68402834e809760f5a8ff7454f0371144cea515b 100644
--- a/applications/utilities/postProcessing/velocityField/Pe/Pe.C
+++ b/applications/utilities/postProcessing/velocityField/Pe/Pe.C
@@ -351,7 +351,7 @@ void Foam::calc(const argList& args, const Time& runTime, const fvMesh& mesh)
         }
         */
 
-        Info << "Pe max : " << max(PePtr()).value() << endl;
+        Info<< "Pe max : " << max(PePtr()).value() << endl;
 
         if (writeResults)
         {
diff --git a/applications/utilities/postProcessing/velocityField/streamFunction/streamFunction.C b/applications/utilities/postProcessing/velocityField/streamFunction/streamFunction.C
index 44ab386d9fa5b5c1682eab319aa28c72b30b0b6e..2b4e3ce58d9809cdedd1b92ac4c268c73ed277b3 100644
--- a/applications/utilities/postProcessing/velocityField/streamFunction/streamFunction.C
+++ b/applications/utilities/postProcessing/velocityField/streamFunction/streamFunction.C
@@ -446,7 +446,7 @@ int main(int argc, char *argv[])
                      }
                 } while (!finished);
 
-                Info << endl;
+                Info<< endl;
             } while (!finished);
 
             streamFunction.boundaryField() = 0.0;
diff --git a/applications/utilities/postProcessing/wall/yPlusRAS/yPlusRAS.C b/applications/utilities/postProcessing/wall/yPlusRAS/yPlusRAS.C
index a11404646ca18bfe4f6ef7511753ee1899b6c0ef..a71e0fb1d2527f8f690f603a1ea4e4ca942d12ff 100644
--- a/applications/utilities/postProcessing/wall/yPlusRAS/yPlusRAS.C
+++ b/applications/utilities/postProcessing/wall/yPlusRAS/yPlusRAS.C
@@ -126,7 +126,7 @@ void calcCompressibleYPlus
         return;
     }
 
-    Info << "Reading field rho\n" << endl;
+    Info<< "Reading field rho\n" << endl;
     volScalarField rho(rhoHeader, mesh);
 
     #include "compressibleCreatePhi.H"
@@ -236,7 +236,7 @@ int main(int argc, char *argv[])
 
         if (UHeader.headerOk())
         {
-            Info << "Reading field U\n" << endl;
+            Info<< "Reading field U\n" << endl;
             volVectorField U(UHeader, mesh);
 
             if (compressible)
diff --git a/applications/utilities/preProcessing/applyBoundaryLayer/Make/options b/applications/utilities/preProcessing/applyBoundaryLayer/Make/options
index 06d42b6c3c9c5642799cda141c957280418d00b0..31f1dd4d95e821dd1c1dcee8d5ef2ce9cc568563 100644
--- a/applications/utilities/preProcessing/applyBoundaryLayer/Make/options
+++ b/applications/utilities/preProcessing/applyBoundaryLayer/Make/options
@@ -1,8 +1,14 @@
 EXE_INC = \
     -I$(LIB_SRC)/finiteVolume/lnInclude \
+    -I$(LIB_SRC)/turbulenceModels \
+    -I$(LIB_SRC)/turbulenceModels/incompressible/RAS/RASModel \
+    -I$(LIB_SRC)/transportModels \
+    -I$(LIB_SRC)/transportModels/incompressible/singlePhaseTransportModel \
     -I$(LIB_SRC)/meshTools/lnInclude
 
 EXE_LIBS = \
     -lfiniteVolume \
+    -lincompressibleRASModels \
+    -lincompressibleTransportModels \
     -lgenericPatchFields \
     -lmeshTools
diff --git a/applications/utilities/preProcessing/applyBoundaryLayer/applyBoundaryLayer.C b/applications/utilities/preProcessing/applyBoundaryLayer/applyBoundaryLayer.C
index 5714cccbffcbc71a1d995bf49afe448b8d419fda..52d79cec81526771683e8ca8debdc7c1350a09db 100644
--- a/applications/utilities/preProcessing/applyBoundaryLayer/applyBoundaryLayer.C
+++ b/applications/utilities/preProcessing/applyBoundaryLayer/applyBoundaryLayer.C
@@ -37,6 +37,8 @@ Description
 \*---------------------------------------------------------------------------*/
 
 #include "fvCFD.H"
+#include "singlePhaseTransportModel.H"
+#include "RASModel.H"
 #include "wallDist.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@@ -52,54 +54,14 @@ int main(int argc, char *argv[])
     argList::validOptions.insert("Cbl", "scalar");
     argList::validOptions.insert("writenut", "");
 
-#   include "setRootCase.H"
-#   include "createTime.H"
-#   include "createMesh.H"
+    #include "setRootCase.H"
+    #include "createTime.H"
+    #include "createMesh.H"
+    #include "createFields.H"
 
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-    Info<< "Reading field U\n" << endl;
-    volVectorField U
-    (
-        IOobject
-        (
-            "U",
-            runTime.timeName(),
-            mesh,
-            IOobject::MUST_READ,
-            IOobject::NO_WRITE
-        ),
-        mesh
-    );
-
-#   include "createPhi.H"
-
-    Info<< "Calculating wall distance field" << endl;
-    volScalarField y = wallDist(mesh).y();
-
-    // Set the mean boundary-layer thickness
-    dimensionedScalar ybl("ybl", dimLength, 0);
-
-    if (args.optionFound("ybl"))
-    {
-        // If the boundary-layer thickness is provided use it
-        ybl.value() = args.optionRead<scalar>("ybl");
-    }
-    else if (args.optionFound("Cbl"))
-    {
-        // Calculate boundary layer thickness as Cbl * mean distance to wall
-        ybl.value() = gAverage(y) * args.optionRead<scalar>("Cbl");
-    }
-    else
-    {
-        FatalErrorIn(args.executable())
-            << "Neither option 'ybl' or 'Cbl' have been provided to calculate"
-               " the boundary-layer thickness"
-            << exit(FatalError);
-    }
+    // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-    Info<< "\nCreating boundary-layer for U of thickness "
-        << ybl.value() << " m" << nl << endl;
+    Info<< "Time = " << runTime.timeName() << nl << endl;
 
     // Modify velocity by applying a 1/7th power law boundary-layer
     // u/U0 = (y/ybl)^(1/7)
@@ -114,58 +76,88 @@ int main(int argc, char *argv[])
         }
     }
 
-    Info<< "Writing U" << endl;
+    Info<< "Writing U\n" << endl;
     U.write();
 
     // Update/re-write phi
     phi = fvc::interpolate(U) & mesh.Sf();
     phi.write();
 
-    // Read and modify turbulence fields if present
+    // Calculate nut
+    tmp<volScalarField> tnut = turbulence->nut();
+    volScalarField& nut = tnut();
+    volScalarField S = mag(dev(symm(fvc::grad(U))));
+    nut = sqr(kappa*min(y, ybl))*::sqrt(2)*S;
 
-    IOobject epsilonHeader
-    (
-        "epsilon",
-        runTime.timeName(),
-        mesh,
-        IOobject::MUST_READ
-    );
+    if (args.optionFound("writenut"))
+    {
+        Info<< "Writing nut" << endl;
+        nut.write();
+    }
+
+    // Create G field - used by RAS wall functions
+    volScalarField G("RASModel::G", nut*2*sqr(S));
+
+
+    //--- Read and modify turbulence fields
+
+    // Turbulence k
+    tmp<volScalarField> tk = turbulence->k();
+    volScalarField& k = tk();
+    scalar ck0 = pow025(Cmu)*kappa;
+    k = sqr(nut/(ck0*min(y, ybl)));
+    k.correctBoundaryConditions();
+
+    Info<< "Writing k\n" << endl;
+    k.write();
 
-    IOobject kHeader
+
+    // Turbulence epsilon
+    tmp<volScalarField> tepsilon = turbulence->epsilon();
+    volScalarField& epsilon = tepsilon();
+    scalar ce0 = ::pow(Cmu, 0.75)/kappa;
+    epsilon = ce0*k*sqrt(k)/min(y, ybl);
+    epsilon.correctBoundaryConditions();
+
+    Info<< "Writing epsilon\n" << endl;
+    epsilon.write();
+
+
+    // Turbulence omega
+    IOobject omegaHeader
     (
-        "k",
+        "omega",
         runTime.timeName(),
         mesh,
-        IOobject::MUST_READ
+        IOobject::MUST_READ,
+        IOobject::NO_WRITE,
+        false
     );
 
+    if (omegaHeader.headerOk())
+    {
+        volScalarField omega(omegaHeader, mesh);
+        omega = epsilon/(Cmu*k);
+        omega.correctBoundaryConditions();
+
+        Info<< "Writing omega\n" << endl;
+        omega.write();
+    }
+
+
+    // Turbulence nuTilda
     IOobject nuTildaHeader
     (
         "nuTilda",
         runTime.timeName(),
         mesh,
-        IOobject::MUST_READ
+        IOobject::MUST_READ,
+        IOobject::NO_WRITE,
+        false
     );
 
-    // First calculate nut
-    volScalarField nut
-    (
-        "nut",
-        sqr(kappa*min(y, ybl))*::sqrt(2)*mag(dev(symm(fvc::grad(U))))
-    );
-
-    if (args.optionFound("writenut"))
-    {
-        Info<< "Writing nut" << endl;
-        nut.write();
-    }
-
-
-    // Read and modify turbulence fields if present
-
     if (nuTildaHeader.headerOk())
     {
-        Info<< "Reading field nuTilda\n" << endl;
         volScalarField nuTilda(nuTildaHeader, mesh);
         nuTilda = nut;
         nuTilda.correctBoundaryConditions();
@@ -174,28 +166,6 @@ int main(int argc, char *argv[])
         nuTilda.write();
     }
 
-    if (kHeader.headerOk() && epsilonHeader.headerOk())
-    {
-        Info<< "Reading field k\n" << endl;
-        volScalarField k(kHeader, mesh);
-
-        Info<< "Reading field epsilon\n" << endl;
-        volScalarField epsilon(epsilonHeader, mesh);
-
-        scalar ck0 = ::pow(Cmu, 0.25)*kappa;
-        k = sqr(nut/(ck0*min(y, ybl)));
-        k.correctBoundaryConditions();
-
-        scalar ce0 = ::pow(Cmu, 0.75)/kappa;
-        epsilon = ce0*k*sqrt(k)/min(y, ybl);
-        epsilon.correctBoundaryConditions();
-
-        Info<< "Writing k\n" << endl;
-        k.write();
-
-        Info<< "Writing epsilon\n" << endl;
-        epsilon.write();
-    }
 
     Info<< nl << "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
         << "  ClockTime = " << runTime.elapsedClockTime() << " s"
diff --git a/applications/utilities/preProcessing/applyBoundaryLayer/createFields.H b/applications/utilities/preProcessing/applyBoundaryLayer/createFields.H
new file mode 100644
index 0000000000000000000000000000000000000000..e168ed978d56c716266c9e259875c9b5f91f57cc
--- /dev/null
+++ b/applications/utilities/preProcessing/applyBoundaryLayer/createFields.H
@@ -0,0 +1,78 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2009-2009 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 2 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, write to the Free Software Foundation,
+    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+\*---------------------------------------------------------------------------*/
+
+    Info<< "Reading field U\n" << endl;
+    volVectorField U
+    (
+        IOobject
+        (
+            "U",
+            runTime.timeName(),
+            mesh,
+            IOobject::MUST_READ,
+            IOobject::NO_WRITE
+        ),
+        mesh
+    );
+
+    #include "createPhi.H"
+
+    singlePhaseTransportModel laminarTransport(U, phi);
+
+    autoPtr<incompressible::RASModel> turbulence
+    (
+        incompressible::RASModel::New(U, phi, laminarTransport)
+    );
+
+    Info<< "Calculating wall distance field" << endl;
+    volScalarField y = wallDist(mesh).y();
+
+    // Set the mean boundary-layer thickness
+    dimensionedScalar ybl("ybl", dimLength, 0);
+
+    if (args.optionFound("ybl"))
+    {
+        // If the boundary-layer thickness is provided use it
+        ybl.value() = args.optionRead<scalar>("ybl");
+    }
+    else if (args.optionFound("Cbl"))
+    {
+        // Calculate boundary layer thickness as Cbl * mean distance to wall
+        ybl.value() = gAverage(y)*args.optionRead<scalar>("Cbl");
+    }
+    else
+    {
+        FatalErrorIn(args.executable())
+            << "Neither option 'ybl' or 'Cbl' have been provided to calculate "
+            << "the boundary-layer thickness"
+            << exit(FatalError);
+    }
+
+    Info<< "\nCreating boundary-layer for U of thickness "
+        << ybl.value() << " m" << nl << endl;
+
+
+// ************************************************************************* //
diff --git a/applications/utilities/preProcessing/engineSwirl/engineSwirl.C b/applications/utilities/preProcessing/engineSwirl/engineSwirl.C
index 089689b47b0ffe6ea3bf9cedc1445d97bb1d1d83..de6e9a2640d782f67613641796beb306928eacf5 100644
--- a/applications/utilities/preProcessing/engineSwirl/engineSwirl.C
+++ b/applications/utilities/preProcessing/engineSwirl/engineSwirl.C
@@ -69,11 +69,11 @@ int main(int argc, char *argv[])
         }
     }
 
-    Info << "Umax = " << Umax << endl;
+    Info<< "Umax = " << Umax << endl;
 
     U.write();
 
-    Info << "\n end\n";
+    Info<< "\n end\n";
 
     return 0;
 }
diff --git a/applications/utilities/preProcessing/mapFields/createTimes.H b/applications/utilities/preProcessing/mapFields/createTimes.H
index 8367e595579842d813bbd2d15945ffc63d5c16d0..91e6a349aec8a23b44f898603aedec5e93e1a07c 100644
--- a/applications/utilities/preProcessing/mapFields/createTimes.H
+++ b/applications/utilities/preProcessing/mapFields/createTimes.H
@@ -1,4 +1,4 @@
-    Info << "\nCreate databases as time" << endl;
+    Info<< "\nCreate databases as time" << endl;
 
     Time runTimeSource
     (
diff --git a/applications/utilities/preProcessing/mdInitialise/mdInitialise.C b/applications/utilities/preProcessing/mdInitialise/mdInitialise.C
index 475aedb66b68e303317d40ebb8dbe09ce178af81..c713a9816df97c2f1bb78b36391af855ec4be816 100644
--- a/applications/utilities/preProcessing/mdInitialise/mdInitialise.C
+++ b/applications/utilities/preProcessing/mdInitialise/mdInitialise.C
@@ -89,7 +89,7 @@ int main(int argc, char *argv[])
     Info<< nl << "ClockTime = " << runTime.elapsedClockTime() << " s"
         << nl << endl;
 
-    Info << nl << "End\n" << endl;
+    Info<< "\nEnd\n" << endl;
 
     return 0;
 }
diff --git a/applications/utilities/preProcessing/setFields/setFields.C b/applications/utilities/preProcessing/setFields/setFields.C
index d164709504a234271b150538fb947536be91e3a9..b33541dc62b90f18ce6f2efa16a94e392a17ee7a 100644
--- a/applications/utilities/preProcessing/setFields/setFields.C
+++ b/applications/utilities/preProcessing/setFields/setFields.C
@@ -235,7 +235,7 @@ int main(int argc, char *argv[])
         );
     }
 
-    Info<< "\nEnd" << endl;
+    Info<< "\nEnd\n" << endl;
 
     return 0;
 }
diff --git a/applications/utilities/preProcessing/wallFunctionTable/Allwmake b/applications/utilities/preProcessing/wallFunctionTable/Allwmake
index 57795a542fae3d0cdd2659b8b95b2e4d266db12f..55a6cbd37fa9dcbaf7e2eb1f32402e0d74f79d11 100755
--- a/applications/utilities/preProcessing/wallFunctionTable/Allwmake
+++ b/applications/utilities/preProcessing/wallFunctionTable/Allwmake
@@ -1,5 +1,8 @@
 #!/bin/sh
+cd ${0%/*} || exit 1    # run from this directory
+set -x
 
 wmake libso tabulatedWallFunction
 wmake
 
+# ----------------------------------------------------------------- end-of-file
diff --git a/applications/utilities/preProcessing/wallFunctionTable/tabulatedWallFunction/general/general.C b/applications/utilities/preProcessing/wallFunctionTable/tabulatedWallFunction/general/general.C
index 76792dc2f83cdffdbe6382f81ab31076230d14c6..d889ca784d95198171d2f1347ee819a5a35c82b1 100644
--- a/applications/utilities/preProcessing/wallFunctionTable/tabulatedWallFunction/general/general.C
+++ b/applications/utilities/preProcessing/wallFunctionTable/tabulatedWallFunction/general/general.C
@@ -93,13 +93,13 @@ Foam::scalar Foam::tabulatedWallFunctions::general::interpolate
     {
         case itLinear:
         {
-            if (xi < x[0])
+            if (xi <= x[0])
             {
                 return fx[0];
             }
-            else if (xi > x[x.size()-1])
+            else if (xi >= x.last())
             {
-                return fx[x.size()-1];
+                return fx.last();
             }
             else
             {
diff --git a/applications/utilities/preProcessing/wallFunctionTable/wallFunctionTableApp.C b/applications/utilities/preProcessing/wallFunctionTable/wallFunctionTableApp.C
index a729a771c9251f7c601f6c1e4f9e22ac48c137fc..17f38bbb16a03f0a4838fc7a406f400f5029764a 100644
--- a/applications/utilities/preProcessing/wallFunctionTable/wallFunctionTableApp.C
+++ b/applications/utilities/preProcessing/wallFunctionTable/wallFunctionTableApp.C
@@ -59,7 +59,7 @@ int main(int argc, char *argv[])
 
     twf->write();
 
-    Info << "End\n" << endl;
+    Info<< "End\n" << endl;
 
     return 0;
 }
diff --git a/applications/utilities/surface/surfaceAdd/surfaceAdd.C b/applications/utilities/surface/surfaceAdd/surfaceAdd.C
index 587461d403af11e21187addf58a5950b3a4289f3..e8f1d3b70385caed61d316be7c590f676807a45d 100644
--- a/applications/utilities/surface/surfaceAdd/surfaceAdd.C
+++ b/applications/utilities/surface/surfaceAdd/surfaceAdd.C
@@ -263,12 +263,12 @@ int main(int argc, char *argv[])
 
     Info<< endl;
 
-    Info << "Writing : " << outFileName << endl;
+    Info<< "Writing : " << outFileName << endl;
 
     // No need to 'group' while writing since all in correct order anyway.
     combinedSurf.write(outFileName);
 
-    Info << "End\n" << endl;
+    Info<< "End\n" << endl;
 
     return 0;
 }
diff --git a/applications/utilities/surface/surfaceAutoPatch/surfaceAutoPatch.C b/applications/utilities/surface/surfaceAutoPatch/surfaceAutoPatch.C
index 16acfa7415ac6a458f9e091188063c2ae03766ee..0a7d8a2cc59af865eaa1cd6fcf4782f253ab8993 100644
--- a/applications/utilities/surface/surfaceAutoPatch/surfaceAutoPatch.C
+++ b/applications/utilities/surface/surfaceAutoPatch/surfaceAutoPatch.C
@@ -64,13 +64,13 @@ int main(int argc, char *argv[])
     // Read
     // ~~~~
 
-    Info << "Reading : " << inFileName << endl;
+    Info<< "Reading : " << inFileName << endl;
     triSurface surf(inFileName);
 
     Info<< "Read surface:" << endl;
     surf.writeStats(Info);
     Info<< endl;
-    
+
 
 
     // Construct features from surface&featureangle
@@ -117,7 +117,7 @@ int main(int argc, char *argv[])
     }
 
 
-    Info << "Writing : " << outFileName << endl;
+    Info<< "Writing : " << outFileName << endl;
     surf.write(outFileName, true);
 
     Info<< "End\n" << endl;
diff --git a/applications/utilities/surface/surfaceCheck/surfaceCheck.C b/applications/utilities/surface/surfaceCheck/surfaceCheck.C
index d283ec66afc37ba554e37ddcb6d84df7dc5ce105..1a8253b25d7b1532e886923cff3f9e7ff5759c6a 100644
--- a/applications/utilities/surface/surfaceCheck/surfaceCheck.C
+++ b/applications/utilities/surface/surfaceCheck/surfaceCheck.C
@@ -550,7 +550,7 @@ int main(int argc, char *argv[])
 
         fileName surfFileNameBase(surfFileName.name());
 
-        for(label zone = 0; zone < numZones; zone++)
+        for (label zone = 0; zone < numZones; zone++)
         {
             boolList includeMap(surf.size(), false);
 
diff --git a/applications/utilities/surface/surfaceClean/collapseBase.C b/applications/utilities/surface/surfaceClean/collapseBase.C
index 58168e5722a9a3cc79d59b0866209dfc368d099d..f5370d0c6091c65df15b1957d8292d00382e0b1b 100644
--- a/applications/utilities/surface/surfaceClean/collapseBase.C
+++ b/applications/utilities/surface/surfaceClean/collapseBase.C
@@ -128,7 +128,7 @@ static void splitTri
             labelledTri
             (
                 f[fp2],
-                splitPoints[splitPoints.size()-1],
+                splitPoints.last(),
                 f[fp1],
                 f.region()
             )
@@ -144,7 +144,7 @@ static void splitTri
             (
                 f[fp1],
                 f[fp2],
-                splitPoints[splitPoints.size()-1],
+                splitPoints.last(),
                 f.region()
             )
         );
diff --git a/applications/utilities/surface/surfaceCoarsen/surfaceCoarsen.C b/applications/utilities/surface/surfaceCoarsen/surfaceCoarsen.C
index 3ec618189e9f673e88b71f2117042b8b9356df89..ea4f795edad7203a2e5095ae7c63221aff3132ec 100644
--- a/applications/utilities/surface/surfaceCoarsen/surfaceCoarsen.C
+++ b/applications/utilities/surface/surfaceCoarsen/surfaceCoarsen.C
@@ -54,7 +54,7 @@ int mapVertex(::List<int>& collapse_map, int a, int mx)
         return 0;
     }
     while (a >= mx)
-    {  
+    {
 	a = collapse_map[a];
     }
     return a;
@@ -122,28 +122,28 @@ int main(int argc, char *argv[])
         td.v[1]=f[1];
         td.v[2]=f[2];
         tri.Add(td);
-    }        
+    }
 
     ::List<int> collapse_map;   // to which neighbor each vertex collapses
     ::List<int> permutation;
 
     ::ProgressiveMesh(vert,tri,collapse_map,permutation);
 
-    // rearrange the vertex list 
+    // rearrange the vertex list
     ::List< ::Vector> temp_list;
-    for(int i=0;i<vert.num;i++)
+    for (int i=0;i<vert.num;i++)
     {
         temp_list.Add(vert[i]);
     }
-    for(int i=0;i<vert.num;i++)
+    for (int i=0;i<vert.num;i++)
     {
         vert[permutation[i]]=temp_list[i];
     }
 
     // update the changes in the entries in the triangle list
-    for(int i=0;i<tri.num;i++)
+    for (int i=0;i<tri.num;i++)
     {
-        for(int j=0;j<3;j++)
+        for (int j=0;j<3;j++)
         {
             tri[i].v[j] = permutation[tri[i].v[j]];
         }
@@ -167,7 +167,7 @@ int main(int argc, char *argv[])
         int p2 = mapVertex(collapse_map, tri[i].v[2], render_num);
 
         // note:  serious optimization opportunity here,
-        //  by sorting the triangles the following "continue" 
+        //  by sorting the triangles the following "continue"
         //  could have been made into a "break" statement.
         if (p0 == p1 || p1 == p2 || p2 == p0)
         {
@@ -181,7 +181,7 @@ int main(int argc, char *argv[])
     // Convert vert into pointField.
     pointField newPoints(vert.num);
 
-    for(int i=0; i<vert.num; i++)
+    for (int i=0; i<vert.num; i++)
     {
         const ::Vector & v = vert[i];
 
@@ -205,7 +205,7 @@ int main(int argc, char *argv[])
 
     surf2.write(outFileName);
 
-    Info << "End\n" << endl;
+    Info<< "End\n" << endl;
 
     return 0;
 }
diff --git a/applications/utilities/surface/surfaceFind/surfaceFind.C b/applications/utilities/surface/surfaceFind/surfaceFind.C
index 13d769fd1a7795b25c10fab05b888abc923b1e73..b710a52493e5ccc3793c2405f37ae7d2f651234a 100644
--- a/applications/utilities/surface/surfaceFind/surfaceFind.C
+++ b/applications/utilities/surface/surfaceFind/surfaceFind.C
@@ -123,7 +123,7 @@ int main(int argc, char *argv[])
         << endl;
 
 
-    Info << "End\n" << endl;
+    Info<< "End\n" << endl;
 
     return 0;
 }
diff --git a/applications/utilities/surface/surfaceMeshTriangulate/surfaceMeshTriangulate.C b/applications/utilities/surface/surfaceMeshTriangulate/surfaceMeshTriangulate.C
index fb7d42746329b821f4cacfb29ea778d79950d4b2..132fca6c342362ecf8dd624bb6e554e18c883151 100644
--- a/applications/utilities/surface/surfaceMeshTriangulate/surfaceMeshTriangulate.C
+++ b/applications/utilities/surface/surfaceMeshTriangulate/surfaceMeshTriangulate.C
@@ -320,7 +320,7 @@ int main(int argc, char *argv[])
         }
     }
 
-    Info << "End\n" << endl;
+    Info<< "End\n" << endl;
 
     return 0;
 }
diff --git a/applications/utilities/surface/surfaceOrient/surfaceOrient.C b/applications/utilities/surface/surfaceOrient/surfaceOrient.C
index 1b728711cdce6ff1c052009698d5a5c3e19cad83..c6fd31c0294ef3c365c45c14ebabcdc3b14b9218 100644
--- a/applications/utilities/surface/surfaceOrient/surfaceOrient.C
+++ b/applications/utilities/surface/surfaceOrient/surfaceOrient.C
@@ -95,7 +95,7 @@ int main(int argc, char *argv[])
 
     surf.write(outFileName);
 
-    Info << "End\n" << endl;
+    Info<< "End\n" << endl;
 
     return 0;
 }
diff --git a/applications/utilities/surface/surfacePointMerge/surfacePointMerge.C b/applications/utilities/surface/surfacePointMerge/surfacePointMerge.C
index 1ba618ec01ef97aa04beddbd4fc365ce594c281d..f206f6e931eed12b13ec8d832df2ace5e6caef4b 100644
--- a/applications/utilities/surface/surfacePointMerge/surfacePointMerge.C
+++ b/applications/utilities/surface/surfacePointMerge/surfacePointMerge.C
@@ -65,7 +65,7 @@ int main(int argc, char *argv[])
 
     triSurface cleanSurf(surf1);
 
-    while(true)
+    while (true)
     {
         label nOldVert = cleanSurf.nPoints();
 
@@ -83,7 +83,7 @@ int main(int argc, char *argv[])
 
     cleanSurf.write(outFileName);
 
-    Info << "End\n" << endl;
+    Info<< "End\n" << endl;
 
     return 0;
 }
diff --git a/applications/utilities/surface/surfaceRedistributePar/surfaceRedistributePar.C b/applications/utilities/surface/surfaceRedistributePar/surfaceRedistributePar.C
index cdb041ce350d19b6f79e893bd114d014f32e4e09..8b37f70fe44fe0a0c5f2d3f892485002cd5f00ba 100644
--- a/applications/utilities/surface/surfaceRedistributePar/surfaceRedistributePar.C
+++ b/applications/utilities/surface/surfaceRedistributePar/surfaceRedistributePar.C
@@ -62,7 +62,7 @@ void writeProcStats
     // Determine surface bounding boxes, faces, points
     List<treeBoundBox> surfBb(Pstream::nProcs());
     {
-        surfBb[Pstream::myProcNo()] = boundBox(s.points(), false);
+        surfBb[Pstream::myProcNo()] = treeBoundBox(s.points());
         Pstream::gatherList(surfBb);
         Pstream::scatterList(surfBb);
     }
diff --git a/applications/utilities/surface/surfaceRefineRedGreen/surfaceRefineRedGreen.C b/applications/utilities/surface/surfaceRefineRedGreen/surfaceRefineRedGreen.C
index 49efe5293a27b894eaf4de74fce6ee8ff8bc3b87..7b94ca60e2b89dedca57beddc72936ba1103492c 100644
--- a/applications/utilities/surface/surfaceRefineRedGreen/surfaceRefineRedGreen.C
+++ b/applications/utilities/surface/surfaceRefineRedGreen/surfaceRefineRedGreen.C
@@ -79,7 +79,7 @@ int main(int argc, char *argv[])
 
     surf2.write(outFileName);
 
-    Info << "End\n" << endl;
+    Info<< "End\n" << endl;
 
     return 0;
 }
diff --git a/applications/utilities/surface/surfaceSmooth/surfaceSmooth.C b/applications/utilities/surface/surfaceSmooth/surfaceSmooth.C
index cb843d3a4651874d089d55d736a7ce3255e95136..bce23c9846897dd0f98b7314e7277a27b9ed6b2a 100644
--- a/applications/utilities/surface/surfaceSmooth/surfaceSmooth.C
+++ b/applications/utilities/surface/surfaceSmooth/surfaceSmooth.C
@@ -78,7 +78,7 @@ int main(int argc, char *argv[])
     const labelListList& pointEdges = surf1.pointEdges();
 
 
-    for(label iter = 0; iter < iters; iter++)
+    for (label iter = 0; iter < iters; iter++)
     {
         forAll(pointEdges, vertI)
         {
@@ -111,7 +111,7 @@ int main(int argc, char *argv[])
 
     surf2.write(outFileName);
 
-    Info << "End\n" << endl;
+    Info<< "End\n" << endl;
 
     return 0;
 }
diff --git a/applications/utilities/surface/surfaceSplitByPatch/surfaceSplitByPatch.C b/applications/utilities/surface/surfaceSplitByPatch/surfaceSplitByPatch.C
index 71ab4c8b01da1ee05f882d7d87eca95dbfbea09d..a597fc5c2c199030c810a24a3ae7dccc79c3c64c 100644
--- a/applications/utilities/surface/surfaceSplitByPatch/surfaceSplitByPatch.C
+++ b/applications/utilities/surface/surfaceSplitByPatch/surfaceSplitByPatch.C
@@ -106,7 +106,7 @@ int main(int argc, char *argv[])
     }
 
 
-    Info << "End\n" << endl;
+    Info<< "End\n" << endl;
 
     return 0;
 }
diff --git a/applications/utilities/surface/surfaceSplitNonManifolds/surfaceSplitNonManifolds.C b/applications/utilities/surface/surfaceSplitNonManifolds/surfaceSplitNonManifolds.C
index c14771030f4480d7d1152a36ec734b1ececbcc88..09d13cb2a89c2a7014437b2584c34bccffa792f8 100644
--- a/applications/utilities/surface/surfaceSplitNonManifolds/surfaceSplitNonManifolds.C
+++ b/applications/utilities/surface/surfaceSplitNonManifolds/surfaceSplitNonManifolds.C
@@ -973,7 +973,7 @@ int main(int argc, char *argv[])
 
     surf.write(outSurfName);
 
-    Info << "End\n" << endl;
+    Info<< "End\n" << endl;
 
     return 0;
 }
diff --git a/applications/utilities/surface/surfaceSubset/surfaceSubset.C b/applications/utilities/surface/surfaceSubset/surfaceSubset.C
index 1c1a725cad267ae5cca8e2389dba06bac8987aac..e32677fe7710f379b03b224bce2014f8936cabdf 100644
--- a/applications/utilities/surface/surfaceSubset/surfaceSubset.C
+++ b/applications/utilities/surface/surfaceSubset/surfaceSubset.C
@@ -117,7 +117,7 @@ int main(int argc, char *argv[])
 
     if (markedPoints.size())
     {
-        Info << "Found " << markedPoints.size() << " marked point(s)." << endl;
+        Info<< "Found " << markedPoints.size() << " marked point(s)." << endl;
 
         // pick up cells sharing the point
 
@@ -155,7 +155,7 @@ int main(int argc, char *argv[])
 
     if (markedEdges.size())
     {
-        Info << "Found " << markedEdges.size() << " marked edge(s)." << endl;
+        Info<< "Found " << markedEdges.size() << " marked edge(s)." << endl;
 
         // pick up cells sharing the edge
 
@@ -194,7 +194,7 @@ int main(int argc, char *argv[])
         const point& min = markedZone[0];
         const point& max = markedZone[1];
 
-        Info << "Using zone min:" << min << " max:" << max << endl;
+        Info<< "Using zone min:" << min << " max:" << max << endl;
 
         forAll(surf1, faceI)
         {
@@ -295,7 +295,7 @@ int main(int argc, char *argv[])
 
     if (markedFaces.size())
     {
-        Info << "Found " << markedFaces.size() << " marked face(s)." << endl;
+        Info<< "Found " << markedFaces.size() << " marked face(s)." << endl;
 
         // Check and mark faces to pick up
         forAll (markedFaces, faceI)
@@ -373,11 +373,11 @@ int main(int argc, char *argv[])
 
     Info<< "Subset:" << endl;
     surf2.writeStats(Info);
-    Info << endl;
+    Info<< endl;
 
     fileName outFileName(args.additionalArgs()[2]);
 
-    Info << "Writing surface to " << outFileName << endl;
+    Info<< "Writing surface to " << outFileName << endl;
 
     surf2.write(outFileName);
 
diff --git a/applications/utilities/surface/surfaceToPatch/surfaceToPatch.C b/applications/utilities/surface/surfaceToPatch/surfaceToPatch.C
index 87ce69ddf77b49e8b52ede588d7918f4f83fd07d..f602fa47b013bb95bc333353053b28262a01310e 100644
--- a/applications/utilities/surface/surfaceToPatch/surfaceToPatch.C
+++ b/applications/utilities/surface/surfaceToPatch/surfaceToPatch.C
@@ -311,7 +311,7 @@ int main(int argc, char *argv[])
         runTime++;
 
         // Write resulting mesh
-        Info << "Writing modified mesh to time " << runTime.value() << endl;
+        Info<< "Writing modified mesh to time " << runTime.value() << endl;
         mesh.write();
     }
 
diff --git a/applications/utilities/surface/surfaceTransformPoints/surfaceTransformPoints.C b/applications/utilities/surface/surfaceTransformPoints/surfaceTransformPoints.C
index 1b9fcf0d0a30c0f0f3a00af661464b22484a2931..be4449c6ae432bc706386378f1b9992d14b737bf 100644
--- a/applications/utilities/surface/surfaceTransformPoints/surfaceTransformPoints.C
+++ b/applications/utilities/surface/surfaceTransformPoints/surfaceTransformPoints.C
@@ -166,7 +166,7 @@ int main(int argc, char *argv[])
 
     surf2.write(outFileName);
 
-    Info << "End\n" << endl;
+    Info<< "End\n" << endl;
 
     return 0;
 }
diff --git a/applications/utilities/thermophysical/chemkinToFoam/chemkinToFoam.C b/applications/utilities/thermophysical/chemkinToFoam/chemkinToFoam.C
index 18befde0afa83e6d0b1681ada37c273b47432380..f1cb5ee1b3f174f625713041ed5bfe8a6d43a2ed 100644
--- a/applications/utilities/thermophysical/chemkinToFoam/chemkinToFoam.C
+++ b/applications/utilities/thermophysical/chemkinToFoam/chemkinToFoam.C
@@ -60,7 +60,7 @@ int main(int argc, char *argv[])
     OFstream thermoFile(FOAMThermodynamicsFileName);
     thermoFile<< cr.speciesThermo() << endl;
 
-    Info << "End\n" << endl;
+    Info<< "End\n" << endl;
 
     return 0;
 }
diff --git a/applications/utilities/thermophysical/mixtureAdiabaticFlameT/mixtureAdiabaticFlameT.C b/applications/utilities/thermophysical/mixtureAdiabaticFlameT/mixtureAdiabaticFlameT.C
index 277a4e787fbbf40809c8b1ca53d01724f4db2baa..5e4c41dbe9ff9a0d4c2a8d4ab9791d867992e340 100644
--- a/applications/utilities/thermophysical/mixtureAdiabaticFlameT/mixtureAdiabaticFlameT.C
+++ b/applications/utilities/thermophysical/mixtureAdiabaticFlameT/mixtureAdiabaticFlameT.C
@@ -116,7 +116,7 @@ int main(int argc, char *argv[])
             + 2*pMix[i].volFrac()*thermo(CpData.lookup(pMix[i].name()));
     }
 
-    Info << "Adiabatic flame temperature of mixture " << rMix.name() << " = "
+    Info<< "Adiabatic flame temperature of mixture " << rMix.name() << " = "
          << products.TH(reactants.H(T0), 1000.0) << " K" << endl;
 
     return 0;
diff --git a/bin/foamCopySettings b/bin/foamCopySettings
index eaa6a0cc8c3beb0aedb9ab52b57bed19509f2b95..1a41a3a59f2556b7d764b663e36ffd8fca02f61a 100755
--- a/bin/foamCopySettings
+++ b/bin/foamCopySettings
@@ -1,9 +1,9 @@
 #!/bin/sh
-#------------------------------------------------------------------------------
+#-------------------------------------------------------------------------------
 # =========                 |
 # \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
 #  \\    /   O peration     |
-#   \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
+#   \\  /    A nd           | Copyright (C) 2008-2009 OpenCFD Ltd.
 #    \\/     M anipulation  |
 #-------------------------------------------------------------------------------
 # License
@@ -36,7 +36,7 @@
 # Note
 #     The foamCopySettings.rc (found with the ~OpenFOAM expansion) can be used
 #     to add any custom rsync options.
-#------------------------------------------------------------------------------
+#-------------------------------------------------------------------------------
 Script=${0##*/}
 if [ "$1" = "-h" -o "$1" = "-help" -o "$#" -ne 2 ]
 then
@@ -48,8 +48,8 @@ Usage: $Script srcDir dstDir
     - requires rsync
 
 Note
-    The $Script.rc (found with the ~OpenFOAM expansion) can be used
-    to add any custom rsync options.
+    The $Script.rc (found via the ~OpenFOAM expansion - see foamEtcFile)
+    can be used to add any custom rsync options.
 
 USAGE
     exit 1
@@ -78,7 +78,6 @@ done
 # avoid processor directories here too to make for cleaner output
 fileList=$(find -H $srcDir -mindepth 1 -maxdepth 1 -not -name "processor*")
 
-
 # avoid polyMesh and processor* directories
 rsync="rsync --exclude polyMesh --exclude processor*"
 
@@ -108,15 +107,20 @@ do
     # skip numerical (results) directories (except 0)
     # and things that look like log files or queuing system output
     case "$name" in
-    [1-9] | [0-9]?* | log | *.log | foam.[eo][1-9]* )
+    ( [1-9] | [0-9]?* | log | *.log | foam.[eo][1-9]* )
+        echo "$i  [skipped]"
+        continue
+        ;;
+    # skip things that look sampled directories and converted data
+    ( probes | sets | surfaces | En[Ss]ight )
         echo "$i  [skipped]"
         continue
         ;;
-    *)
+    (*)
         echo "$i -> $dstDir/$name"
         $rsync -a $i $dstDir
         ;;
     esac
 done
 
-# --------------------------------------------------------------- end-of-file
+# ------------------------------------------------------------------ end-of-file
diff --git a/bin/mpirunDebug b/bin/mpirunDebug
index 57df760873478f36ba49b44ac000ec76d7be37d0..2376d22601c0e1c6f7f58cc1f95a70e9bef9476a 100755
--- a/bin/mpirunDebug
+++ b/bin/mpirunDebug
@@ -206,6 +206,21 @@ done
 cmd=""
 if [ .$WM_MPLIB = .OPENMPI ]; then
     cmd="mpirun -app $PWD/mpirun.schema </dev/null"
+elif [ .$WM_MPLIB = .MPICH ]; then
+    cmd="mpiexec"
+    for ((proc=0; proc<$nProcs; proc++))
+    do
+        read procCmd
+
+        procXtermCmdFile="$PWD/processor${proc}Xterm.sh"
+        echo "#!/bin/sh" > $procXtermCmdFile
+        echo "$procCmd" >> $procXtermCmdFile
+        chmod +x $procXtermCmdFile
+        if [ $proc -ne 0 ]; then
+            cmd="${cmd} :"
+        fi
+        cmd="${cmd} -n 1 ${procXtermCmdFile}"
+    done < $PWD/mpirun.schema
 fi
 
 echo "Constructed $PWD/mpirun.schema file."
diff --git a/bin/paraFoam b/bin/paraFoam
index 31d286fcc9fb2835091386548abdbe1587840fe3..5dcba75094e39a362250a08165fa4c6d48a102f6 100755
--- a/bin/paraFoam
+++ b/bin/paraFoam
@@ -130,18 +130,7 @@ OpenFOAM)
 esac
 
 case "$ParaView_VERSION" in
-2*)
-    trap "rm -f paraFoam.pvs $caseFile 2>/dev/null; exit 0" EXIT TERM INT
-    touch "$caseFile"
-
-    # since we are now in the cwd, %CASE% is '$PWD/$caseFile'
-    sed -e s@%CASE%@$PWD/$caseFile@g \
-        $WM_PROJECT_DIR/bin/tools/paraFoam.pvs > paraFoam.pvs
-
-    paraview paraFoam.pvs
-    ;;
-
-*)
+3*)
     # only create/remove caseFile if it didn't already exist
     [ -e $caseFile ] || {
         trap "rm -f $caseFile 2>/dev/null; exit 0" EXIT TERM INT
diff --git a/bin/templates/source/_TemplateApp.C b/bin/templates/source/_TemplateApp.C
index 7ce97539e6ab351103502e5ca0594cd045e52d2d..42f2df0db8ea3c8a43b3b9afd151aad9af9218ed 100644
--- a/bin/templates/source/_TemplateApp.C
+++ b/bin/templates/source/_TemplateApp.C
@@ -41,8 +41,7 @@ int main(int argc, char *argv[])
 
     // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-    Info << "End\n" << endl;
-
+    Info<< "\nEnd\n" << endl;
     return 0;
 }
 
diff --git a/bin/tools/org-batch b/bin/tools/org-batch
new file mode 100755
index 0000000000000000000000000000000000000000..809552b54f7370333f92c2a779dfed254bbc731d
--- /dev/null
+++ b/bin/tools/org-batch
@@ -0,0 +1,108 @@
+#!/bin/sh
+#------------------------------------------------------------------------------
+# =========                 |
+# \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+#  \\    /   O peration     |
+#   \\  /    A nd           | Copyright (C) 2009-2009 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 2 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, write to the Free Software Foundation,
+#     Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+#
+# Script
+#     org-batch
+#
+# Description
+#     Batch process emacs org-mode files to create html/LaTeX etc.
+#
+#------------------------------------------------------------------------------
+Script=${0##*/}
+
+usage() {
+    while [ "$#" -ge 1 ]; do echo "$1"; shift; done
+    cat<<USAGE
+
+usage: ${0##*/} [OPTIONS] file1 [.. fileN]
+options:
+  -html   create html (default)
+  -latex  create LaTeX
+
+* Batch process emacs org-mode files to create html/LaTeX etc.
+
+USAGE
+    exit 1
+}
+
+
+# default is html export:
+mode=html
+
+case $Script in
+*latex)
+    mode=latex
+    ;;
+*html)
+    mode=html
+    ;;
+esac
+
+
+# parse options
+while [ "$#" -gt 0 ]
+do
+    case "$1" in
+    -h | -help)
+        usage
+        ;;
+    -html)
+        mode=html
+        shift
+        ;;
+    -latex)
+        mode=latex
+        shift
+        ;;
+    -*)
+        usage "unknown option: '$*'"
+        ;;
+    *)
+        break
+        ;;
+    esac
+done
+
+# default is the current directory
+[ "$#" -gt 0 ] || usage "No files specified"
+
+type emacs >/dev/null 2>&1 || usage "No emacs found in PATH"
+
+
+for org
+do
+    echo "Processing: $org"
+    echo "----------"
+    if [ -f "$org" ]
+    then
+        emacs --batch -l org --visit=$org \
+              --funcall org-export-as-$mode-batch
+    else
+        echo "File not found"
+    fi
+    echo "----------"
+done
+
+#------------------------------------------------------------------------------
diff --git a/bin/tools/org-html b/bin/tools/org-html
new file mode 120000
index 0000000000000000000000000000000000000000..3c8e28ed2ecded91a876dde16aa83b2df835ae16
--- /dev/null
+++ b/bin/tools/org-html
@@ -0,0 +1 @@
+org-batch
\ No newline at end of file
diff --git a/bin/tools/org-latex b/bin/tools/org-latex
new file mode 120000
index 0000000000000000000000000000000000000000..3c8e28ed2ecded91a876dde16aa83b2df835ae16
--- /dev/null
+++ b/bin/tools/org-latex
@@ -0,0 +1 @@
+org-batch
\ No newline at end of file
diff --git a/bin/tools/paraFoam.pvs b/bin/tools/paraFoam.pvs
deleted file mode 100644
index 8cbca6dc411ede8c5239ecb8880b0b699a93165e..0000000000000000000000000000000000000000
--- a/bin/tools/paraFoam.pvs
+++ /dev/null
@@ -1,12 +0,0 @@
-# ParaView State Version 2.2
-
-set kw(vtkTemp2) [$Application GetMainWindow]
-set kw(vtkTemp29) [$kw(vtkTemp2) GetMainView]
-set kw(vtkTemp980) [$kw(vtkTemp2) GetAnimationManager]
-[$kw(vtkTemp2) GetRotateCameraButton] SetState 1
-$kw(vtkTemp2) ChangeInteractorStyle 1
-set kw(vtkTemp840) [$kw(vtkTemp2) InitializeReadCustom "FoamReader" "%CASE%"]
-$kw(vtkTemp2) ReadFileInformation $kw(vtkTemp840) "%CASE%"
-$kw(vtkTemp2) FinalizeRead $kw(vtkTemp840) "%CASE%"
-set kw(vtkTemp868) [$kw(vtkTemp840) GetPVWidget {Filename}]
-$kw(vtkTemp868) SetValue "%CASE%"
diff --git a/doc/Doxygen/Doxyfile b/doc/Doxygen/Doxyfile
index 908fa543b949ae68c460d8d72c29cf91f7c190b2..68ff8430b205ad285cfc0e03936441425d305b3c 100644
--- a/doc/Doxygen/Doxyfile
+++ b/doc/Doxygen/Doxyfile
@@ -689,13 +689,13 @@ HTML_FILE_EXTENSION    = .html
 # each generated HTML page. If it is left blank doxygen will generate a
 # standard header.
 
-HTML_HEADER            = FoamHeader.html
+HTML_HEADER            = $(WM_PROJECT_DIR)/doc/Doxygen/FoamHeader.html
 
 # The HTML_FOOTER tag can be used to specify a personal HTML footer for
 # each generated HTML page. If it is left blank doxygen will generate a
 # standard footer.
 
-HTML_FOOTER            = FoamFooter.html
+HTML_FOOTER            = $(WM_PROJECT_DIR)/doc/Doxygen/FoamFooter.html
 
 # The HTML_STYLESHEET tag can be used to specify a user-defined cascading
 # style sheet that is used by each HTML page. It can be used to
diff --git a/doc/GUIDELINES b/doc/GUIDELINES
index 8038f997de186017c4b2fe1519fc8aa471a0bd0c..5603ca3f657c13001b1e584452c3592d0be93360 100644
--- a/doc/GUIDELINES
+++ b/doc/GUIDELINES
@@ -109,7 +109,7 @@ eg,
     |
     |    Within the implementation, a loop over all patches is done:
     |    @code
-    |        forAll (patches, patchI)
+    |        forAll(patches, patchI)
     |        {
     |            ...  // some operation
     |        }
@@ -222,4 +222,4 @@ The doc/Doxygen/tools directory contains miscellaneous scripts for finding
 and possibly repairing documentation issues.
 
 
-Updated: 2008-03-17
+Updated: 2009-11-27
diff --git a/doc/codingStyleGuide.org b/doc/codingStyleGuide.org
index d9c5c3c9c660453fda988dfa79ddc2214bb53293..27725cf1cd0addeeba79b5e658b9d52d6f5c6551 100644
--- a/doc/codingStyleGuide.org
+++ b/doc/codingStyleGuide.org
@@ -10,239 +10,252 @@
 
 *** General
     + 80 character lines max
+    + The normal indentation is 4 spaces per logical level.
+    + Use spaces for indentation, not tab characters.
+    + Avoid trailing whitespace.
     + The body of control statements (eg, if, else, while, etc).
-      always delineated with brace brackets
+      always delineated with brace brackets. A possible exception can be
+      made with 'break' or 'continue' as part of a control structure.
 
     + stream output
-      << is always four characters after the start of the stream, so that the <<
-      symbols align, i.e.
-
-      Info<<
-      os  <<
+      =<<= is always four characters after the start of the stream,
+      so that the =<<= symbols align, i.e.
 
+    :Info<< ...
+    :os  << ...
 
       so
 
-      WarningIn("className::functionName()")
-          << "Warning message"
+    :WarningIn("className::functionName()")
+    :    << "Warning message"
 
       NOT
 
-      WarningIn("className::functionName()")
-      << "Warning message"
-
-    + no unnecessary class section headers, i.e. remove
+    :WarningIn("className::functionName()")
+    :<< "Warning message"
 
-      // * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
 
-      // Check
-
-      // Edit
+    + no unnecessary class section headers, i.e. remove
 
-      // Write
+    :// * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
+    :
+    :// Check
+    :
+    :// Edit
+    :
+    :// Write
 
       if they contain nothing, even if planned for 'future use'
 
     + class titles are centred
 
-     /*---------------------------------------------------------------------------*\
-                             Class exampleClass Declaration
-     \*---------------------------------------------------------------------------*/
+    :/*---------------------------------------------------------------------------*\
+    :                        Class exampleClass Declaration
+    :\*---------------------------------------------------------------------------*/
 
-    NOT
+      NOT
 
-     /*---------------------------------------------------------------------------*\
-                    Class exampleClass Declaration
-     \*---------------------------------------------------------------------------*/
+    :/*---------------------------------------------------------------------------*\
+    :               Class exampleClass Declaration
+    :\*---------------------------------------------------------------------------*/
 
-*** .H Files
+*** The =.H= Files
     + header file spacing
-      Leave two empty lines between sections (as per functions in the .C file etc)
+      Leave two empty lines between sections (as per functions in the =.C= file etc)
 
     + use "//- Comment" comments in header file
       + add descriptions to class data and functions
     + destructor
       If adding a comment to the destructor - use //- and code as a normal function:
 
-      //- Destructor
-      ~className();
+    ://- Destructor
+    :~className();
+
     + inline functions
       Use inline functions where appropriate in a separate classNameI.H file.
-      Do not clutter up the header file with function bodies
+      Avoid cluttering the header file with function bodies.
 
-*** .C Files
-    + Do not open/close namespaces in a .C file
+*** The =.C= Files
+    + Do not open/close namespaces in a =.C= file
       Fully scope the function name, i.e.
 
-      Foam::returnType Foam::className::functionName()
+    :Foam::returnType Foam::className::functionName()
 
       NOT
 
-      namespace Foam
-      {
-          ...
-
-          returnType className::functionName()
-
-          ...
-      }
+    :namespace Foam
+    :{
+    :    ...
+    :
+    :    returnType className::functionName()
+    :
+    :    ...
+    :}
 
       EXCEPTION
 
-      When there are multiple levels of namespace, they may be used in the .C
+      When there are multiple levels of namespace, they may be used in the =.C=
       file, i.e.
 
-      namespace Foam
-      {
-      namespace compressible
-      {
-      namespace RASModels
-      {
-
-          ...
-
-      } // End namespace RASModels
-      } // End namespace compressible
-      } // End namespace Foam
+    :namespace Foam
+    :{
+    :namespace compressible
+    :{
+    :namespace RASModels
+    :{
+    :
+    :    ...
+    :
+    :} // End namespace RASModels
+    :} // End namespace compressible
+    :} // End namespace Foam
 
     + Use two empty lines between functions
 
-*** Coding Practise
+*** Coding Practice
     + passing data as arguments or return
-      Pass label and scalar as copy, anything bigger by reference
+      Pass bool, label and scalar as copy, anything larger by reference.
+
     + const
       Use everywhere it is applicable.
+
     + variable initialisation using "="
 
-      const className& variableName = otherClass.data();
+    : const className& variableName = otherClass.data();
 
       NOT
 
-      const className& variableName(otherClass.data());
+    : const className& variableName(otherClass.data());
 
     + virtual functions
       If a class is virtual - make all derived classes virtual.
 
 *** Conditional Statements
-    if (condition)
-    {
-        code;
-    }
+    :if (condition)
+    :{
+    :    code;
+    :}
 
     OR
 
-    if
-    (
-       long condition
-    )
-    {
-        code;
-    }
+    :if
+    :(
+    :   long condition
+    :)
+    :{
+    :    code;
+    :}
 
     NOT (no space between "if" and "(")
 
-    if(condition)
-    {
-        code;
-    }
+    :if(condition)
+    :{
+    :    code;
+    :}
 
-*** `for' Loops
-    for (i = 0; i < maxI; i++)
-    {
-        code;
-    }
+*** =for= and =while= Loops
+    :for (i = 0; i < maxI; i++)
+    :{
+    :    code;
+    :}
 
     OR
 
-    for
-    (
-        i = 0;
-        i < maxI;
-        i++
-    )
-    {
-        code;
-    }
+    :for
+    :(
+    :    i = 0;
+    :    i < maxI;
+    :    i++
+    :)
+    :{
+    :    code;
+    :}
 
     NOT (no space between "for" and "(")
 
-    for(i = 0; i < maxI; i++)
-    {
-        code;
-    }
+    :for(i = 0; i < maxI; i++)
+    :{
+    :    code;
+    :}
 
-*** `forAll' loops
-    like for loops, but
+    Note that when indexing through iterators, it is often slightly more
+    efficient to use the pre-increment form. Eg, =++iter= instead of =iter++=
 
-    forAll(
+*** =forAll= , =forAllIter=, etc. loops
+    like =for= loops, but
+
+    :forAll(
 
     NOT
 
-    forAll (
+    :forAll (
 
 *** Splitting Over Multiple Lines
-   + splitting return type and function name
+
+**** Splitting return type and function name
      + split initially after the function return type and left align
 
-     + do not put "const" onto it's own line - use a split to keep it with the
-       function name and arguments.
+     + do not put "const" onto its own line - use a split to keep it with
+       the function name and arguments.
 
      so:
 
-     const Foam::longReturnTypeName&
-     Foam::longClassName::longFunctionName const
+     :const Foam::longReturnTypeName&
+     :Foam::longClassName::longFunctionName const
 
      NOT
 
-     const Foam::longReturnTypeName&
-         Foam::longClassName::longFunctionName const
+     :const Foam::longReturnTypeName&
+     :    Foam::longClassName::longFunctionName const
 
      NOR
 
-     const Foam::longReturnTypeName& Foam::longClassName::longFunctionName
-     const
+     :const Foam::longReturnTypeName& Foam::longClassName::longFunctionName
+     :const
 
      NOR
 
-     const Foam::longReturnTypeName& Foam::longClassName::
-     longFunctionName const
+     :const Foam::longReturnTypeName& Foam::longClassName::
+     :longFunctionName const
 
 
-     + if need to split again, split at the function name (leaving behind the
-         preceding scoping "::"'s), and again, left align, i.e.
+     + if it needs to be split again, split at the function name (leaving
+       behind the preceding scoping "::"s), and again, left align, i.e.
 
-       const Foam::longReturnTypeName&
-       Foam::veryveryveryverylongClassName::
-       veryveryveryverylongFunctionName const
+     For example,
 
-   + splitting long lines at an "="
+     :const Foam::longReturnTypeName&
+     :Foam::veryveryveryverylongClassName::
+     :veryveryveryverylongFunctionName const
+
+**** Splitting long lines at an "="
 
      Indent after split
 
-     variableName =
-         longClassName.longFunctionName(longArgument);
+     :variableName =
+     :    longClassName.longFunctionName(longArgument);
 
      OR (where necessary)
 
-     variableName =
-         longClassName.longFunctionName
-         (
-             longArgument1,
-             longArgument2
-         );
+     :variableName =
+     :    longClassName.longFunctionName
+     :    (
+     :        longArgument1,
+     :        longArgument2
+     :    );
 
      NOT
 
-     variableName =
-     longClassName.longFunctionName(longArgument);
+     :variableName =
+     :longClassName.longFunctionName(longArgument);
 
      NOR
 
-     variableName = longClassName.longFunctionName
-     (
-         longArgument1,
-         longArgument2
-     );
+     :variableName = longClassName.longFunctionName
+     :(
+     :    longArgument1,
+     :    longArgument2
+     :);
 
 *** Maths and Logic
     + operator spacing
@@ -258,18 +271,201 @@
       with the operator on the lower line.  Align operator so that first
       variable, function or bracket on the next line is 4 spaces indented i.e.
 
-      variableName =
-          a*(a + b)
-        - exp(c/d)
-         *(k + t)
+    :variableName =
+    :    a * (a + b)
+    :  - exp(c/d)
+    :  * (k + t);
+
+      This is sometime more legible when surrounded by extra parentheses:
+
+    :variableName =
+    :(
+    :    a * (a + b)
+    :  - exp(c/d)
+    :  * (k + t)
+    :);
 
     + splitting logical tests over several lines
 
-      indent operator so that the next variable to test is aligned with the
-      four space indentation, i.e.
+      outdent the operator so that the next variable to test is aligned with
+      the four space indentation, i.e.
+
+    :if
+    :(
+    :    a == true
+    : && b == c
+    :)
+
+** Documentation
+
+*** General
+
+    + For readability in the comment blocks, certain tags are used that are
+      translated by pre-filtering the file before sending it to Doxygen.
+
+    + The tags start in column 1, the contents follow on the next lines and
+      indented by 4 spaces. The filter removes the leading 4 spaces from the
+      following lines until the next tag that starts in column 1.
+
+    + The 'Class' and 'Description' tags are the most important ones.
+
+    + The first paragraph following the 'Description' will be used for the
+      brief description, the remaining paragraphs become the detailed
+      description.
+
+      For example,
+
+    :Class
+    :    Foam::myClass
+    :
+    :Description
+    :    A class for specifying the documentation style.
+    :
+    :    The class is implemented as a set of recommendations that may
+    :    sometimes be useful.
+
+    + The class name must be qualified by its namespace, otherwise Doxygen
+      will think you are documenting some other class.
+
+    + If you don't have anything to say about the class (at the moment), use
+      the namespace-qualified class name for the description. This aids with
+      finding these under-documented classes later.
+
+
+    :Class
+    :    Foam::myUnderDocumentedClass
+    :
+    :Description
+    :    Foam::myUnderDocumentedClass
+
+
+    + Use 'Class' and 'Namespace' tags in the header files.
+      The Description block then applies to documenting the class.
+
+    + Use 'InClass' and 'InNamespace' in the source files.
+      The Description block then applies to documenting the file itself.
+
+
+    :InClass
+    :    Foam::myClass
+    :
+    :Description
+    :    Implements the read and writing of files.
+
+*** Doxygen Special Commands
+
+    Doxygen has a large number of special commands with a '\' prefix or a
+    (alternatively) an '@' prefix.
+
+    The '@' prefix form is recommended for most Doxygen specials, since it
+    has the advantage of standing out. It also happens to be what projects
+    like gcc and VTK are using.
+
+    The '\' prefix form, however, looks a bit better for the '\n' newline
+    command and when escaping single characters - eg, '\@', '\<', '\>', etc.
+
+    Since the filtering removes the leading 4 spaces within the blocks, the
+    Doxygen commmands can be inserted within the block without problems.
+
+
+    :InClass
+    :    Foam::myClass
+    :
+    :Description
+    :    Implements the read and writing of files.
+    :
+    :    An example input file:
+    :    @verbatim
+    :        patchName
+    :        {
+    :            type        myPatchType;
+    :            refValue    100;
+    :            value       uniform 1;
+    :        }
+    :    @endverbatim
+    :
+    :    Within the implementation, a loop over all patches is done:
+    :    @code
+    :        forAll(patches, patchI)
+    :        {
+    :            ...  // some operation
+    :        }
+    :    @endcode
+
+*** HTML Special Commands
+
+    Since Doxygen also handles HTML tags to a certain extent, the angle
+    brackets need quoting in the documentation blocks. Non-HTML tags cause
+    Doxygen to complain, but seem to work anyhow.
+
+    eg,
+    + The template with type <HR> is a bad example.
+
+    + The template with type \<HR\> is a better example.
+
+    + The template with type <Type> causes Doxygen to complain about an
+      unknown html type, but it seems to work okay anyhow.
+
+
+*** Documenting Namespaces
+
+    + If namespaces are explictly declared with the Namespace() macro,
+      they should be documented there.
+
+    + If the namespaces is used to hold sub-models, the namespace can be
+      documented in the same file as the class with the model selector.
+      eg,
+    :documented namespace 'Foam::functionEntries' within the
+    :class 'Foam::functionEntry'
+
+    + If nothing else helps, find some sensible header.
+      eg,
+    :namespace 'Foam' is documented in the foamVersion.H file
+
+
+*** Documenting Typedefs and classes defined via macros
+
+    ... not yet properly resolved
+
+
+*** Documenting Applications
+
+    Any number of classes might be defined by a particular application, but
+    these classes will not, however, be available to other parts of
+    OpenFOAM. At the moment, the sole purpuse for running Doxygen on the
+    applications is to extract program usage information for the '-doc'
+    option.
+
+    The documentation for a particular application is normally contained
+    within the first comment block in a =.C= source file. The solution is this
+    to invoke a special filter for the "applications/{solver,utilities}"
+    directories that only allows the initial comment block for the =.C= files
+    through.
+
+    The layout of the application documentation has not yet been finalized,
+    but foamToVTK shows an initial attempt.
+
+*** Orthography (an opinion)
+
+    Given the origins of OpenFOAM, the British spellings (eg, neighbour and
+    not neighbor) are generally favoured. For code sections that interact
+    with external libraries, it can be useful to adopt American spellings,
+    especially for names that constitute a significant part of the external
+    library - eg, 'color' within graphics sub-systems.
+
+    Both '-ize' and the '-ise' variant are found in the code comments. If
+    used as a variable or class method name, it is probably better to use
+    '-ize', which is considered the main form by the Oxford University
+    Press.
+
+    Eg,
+    :myClass.initialize()
+
+
+    The word "its" (possesive) vs. "it's" (colloquial for "it is" or "it has")
+    seems to confuse non-native (and some native) English speakers.
+    It is better to donate the extra keystrokes and write "it is" or "it has".
+    Any remaining "it's" are likely an incorrect spelling of "its".
+
+
 
-      if
-      (
-          a == true
-       && b == c
-      )
diff --git a/etc/apps/paraview/bashrc b/etc/apps/paraview/bashrc
deleted file mode 100644
index a6e2c08051a3db1fcb293cdfec30f56116d51909..0000000000000000000000000000000000000000
--- a/etc/apps/paraview/bashrc
+++ /dev/null
@@ -1,67 +0,0 @@
-#----------------------------------*-sh-*--------------------------------------
-# =========                 |
-# \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
-#  \\    /   O peration     |
-#   \\  /    A nd           | Copyright (C) 1991-2009 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 2 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, write to the Free Software Foundation,
-#     Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-#
-# Script
-#     paraview/bashrc
-#
-# Description
-#     Setup file for paraview-2.x
-#     Sourced from OpenFOAM-*/etc/bashrc
-#
-#------------------------------------------------------------------------------
-
-# determine the cmake to be used
-unset CMAKE_HOME
-for cmake in cmake-2.6.4 cmake-2.6.2 cmake-2.4.6
-do
-    cmake=$WM_THIRD_PARTY_DIR/$cmake/platforms/$WM_ARCH
-    if [ -r $cmake ]
-    then
-        export CMAKE_HOME=$cmake
-        export PATH=$CMAKE_HOME/bin:$PATH
-        break
-    fi
-done
-
-paraviewMajor=paraview-2.4
-export ParaView_VERSION=2.4.4
-
-export ParaView_INST_DIR=$WM_THIRD_PARTY_DIR/ParaView$ParaView_VERSION
-export ParaView_DIR=$ParaView_INST_DIR/lib/$paraviewMajor
-
-if [ -r $ParaView_INST_DIR ]
-then
-    export PV_INTERFACE_PATH=$FOAM_UTILITIES/postProcessing/graphics/PVFoamReader/PVFoamReader/Make
-
-    export PATH=$ParaView_INST_DIR/bin:$PATH
-    export LD_LIBRARY_PATH=${ParaView_INST_DIR}/lib:${ParaView_INST_DIR}/lib/vtk:${LD_LIBRARY_PATH}
-fi
-
-if [ -r $ParaView_DIR ]
-then
-    export VTK_DIR=$ParaView_DIR/VTK
-fi
-
-unset cmake paraviewMajor
-# -----------------------------------------------------------------------------
diff --git a/etc/apps/paraview/cshrc b/etc/apps/paraview/cshrc
deleted file mode 100644
index a1552a511686013ff9eef29b79d8153a07e9448d..0000000000000000000000000000000000000000
--- a/etc/apps/paraview/cshrc
+++ /dev/null
@@ -1,63 +0,0 @@
-#----------------------------------*-sh-*--------------------------------------
-# =========                 |
-# \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
-#  \\    /   O peration     |
-#   \\  /    A nd           | Copyright (C) 1991-2009 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 2 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, write to the Free Software Foundation,
-#     Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-#
-# Script
-#     paraview/cshrc
-#
-# Description
-#     Setup file for paraview-2.x
-#     Sourced from OpenFOAM-*/etc/cshrc
-#
-#------------------------------------------------------------------------------
-
-# determine the cmake to be used
-unsetenv CMAKE_HOME
-foreach cmake ( cmake-2.6.4 cmake-2.6.2 cmake-2.4.6 )
-    set cmake=$WM_THIRD_PARTY_DIR/$cmake/platforms/$WM_ARCH
-    if ( -r $cmake ) then
-        setenv CMAKE_HOME $cmake
-        set path=($CMAKE_HOME/bin $path)
-        break
-    endif
-end
-
-set paraviewMajor=paraview-2.4
-setenv ParaView_VERSION 2.4.4
-
-setenv ParaView_INST_DIR $WM_THIRD_PARTY_DIR/ParaView$ParaView_VERSION
-setenv ParaView_DIR $ParaView_INST_DIR/lib/$paraviewMajor
-
-if ( -r $ParaView_INST_DIR ) then
-    setenv PV_INTERFACE_PATH $FOAM_UTILITIES/postProcessing/graphics/PVFoamReader/PVFoamReader/Make
-
-    set path=($ParaView_INST_DIR/bin $path)
-    setenv LD_LIBRARY_PATH ${ParaView_INST_DIR}/lib:${ParaView_INST_DIR}/lib/vtk:${LD_LIBRARY_PATH}
-endif
-
-if ( -r $ParaView_DIR ) then
-    setenv VTK_DIR $ParaView_DIR/VTK
-endif
-
-unset cmake paraviewMajor
-# -----------------------------------------------------------------------------
diff --git a/etc/apps/paraview3/bashrc b/etc/apps/paraview3/bashrc
index 354687e30a50c46efe739382ff8f0745d8c3bc56..7209dc0da8367746ca5eb9a2008258a60bbfef8e 100644
--- a/etc/apps/paraview3/bashrc
+++ b/etc/apps/paraview3/bashrc
@@ -46,21 +46,22 @@ do
     fi
 done
 
-paraviewMajor=paraview-3.6
-export ParaView_VERSION=3.6.1
+# set MAJOR and VERSION variables if not already set
+[ -z "$ParaView_MAJOR" ] && export ParaView_MAJOR=paraview-3.6
+[ -z "$ParaView_VERSION" ] && export ParaView_VERSION=3.6.1
 
 export ParaView_INST_DIR=$WM_THIRD_PARTY_DIR/paraview-$ParaView_VERSION
 export ParaView_DIR=$ParaView_INST_DIR/platforms/$WM_ARCH$WM_COMPILER
 
 # add in python libraries if required
-paraviewPython=$ParaView_DIR/Utilities/VTKPythonWrapping
-if [ -r $paraviewPython ]
+ParaView_PYTHON_DIR=$ParaView_DIR/Utilities/VTKPythonWrapping
+if [ -r $ParaView_PYTHON_DIR ]
 then
     if [ "$PYTHONPATH" ]
     then
-        export PYTHONPATH=$PYTHONPATH:$paraviewPython:$ParaView_DIR/lib/$paraviewMajor
+        export PYTHONPATH=$PYTHONPATH:$ParaView_PYTHON_DIR:$ParaView_DIR/lib/$ParaView_MAJOR
     else
-        export PYTHONPATH=$paraviewPython:$ParaView_DIR/lib/$paraviewMajor
+        export PYTHONPATH=$ParaView_PYTHON_DIR:$ParaView_DIR/lib/$ParaView_MAJOR
     fi
 fi
 
@@ -70,5 +71,5 @@ then
     export PV_PLUGIN_PATH=$FOAM_LIBBIN
 fi
 
-unset cmake paraviewMajor paraviewPython
+unset cmake ParaView_PYTHON_DIR
 # -----------------------------------------------------------------------------
diff --git a/etc/bashrc b/etc/bashrc
index df864b40e12321ed5ac303a9eda1442a1525bde9..308d33bf84c1a37b0d064077b20c9b88b773c91a 100644
--- a/etc/bashrc
+++ b/etc/bashrc
@@ -82,8 +82,8 @@ export WM_THIRD_PARTY_DIR=$WM_PROJECT_INST_DIR/ThirdParty-$WM_PROJECT_VERSION
 : ${WM_OSTYPE:=POSIX}; export WM_OSTYPE
 
 
-# Compiler: set to Gcc, Gcc43 or Icc (for Intel's icc)
-# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+# Compiler: set to Gcc, Gcc43, Gcc44, or Icc (for Intel's icc)
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 : ${WM_COMPILER:=Gcc}; export WM_COMPILER
 
 export WM_COMPILER_ARCH=
diff --git a/etc/cshrc b/etc/cshrc
index f5fe32d26e1b3fce73b4f6436607517b780519c7..9ef6fb2d068da7d25cee0f81ef369b6521958d1f 100644
--- a/etc/cshrc
+++ b/etc/cshrc
@@ -76,8 +76,8 @@ setenv WM_THIRD_PARTY_DIR $WM_PROJECT_INST_DIR/ThirdParty-$WM_PROJECT_VERSION
 if ( ! $?WM_OSTYPE ) setenv WM_OSTYPE POSIX
 
 
-# Compiler: set to Gcc, Gcc43 or Icc (for Intel's icc)
-# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+# Compiler: set to Gcc, Gcc43, Gcc44 or Icc (for Intel's icc)
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 if ( ! $?WM_COMPILER ) setenv WM_COMPILER Gcc
 
 setenv WM_COMPILER_ARCH
diff --git a/etc/settings.csh b/etc/settings.csh
index 1b33c5c42dd0b3f7561bb4198cd3c14620f95f29..a2a9c37b07071417948aa46353b381604f23f3d0 100644
--- a/etc/settings.csh
+++ b/etc/settings.csh
@@ -87,12 +87,12 @@ switch ("$compilerInstall")
 case OpenFOAM:
     switch ("$WM_COMPILER")
     case Gcc:
-        setenv WM_COMPILER_DIR $WM_THIRD_PARTY_DIR/gcc-4.3.3/platforms/$WM_ARCH$WM_COMPILER_ARCH
+        setenv WM_COMPILER_DIR $WM_THIRD_PARTY_DIR/gcc-4.4.2/platforms/$WM_ARCH$WM_COMPILER_ARCH
         _foamAddLib $WM_THIRD_PARTY_DIR/mpfr-2.4.1/platforms/$WM_ARCH$WM_COMPILER_ARCH/lib
         _foamAddLib $WM_THIRD_PARTY_DIR/gmp-4.2.4/platforms/$WM_ARCH$WM_COMPILER_ARCH/lib
     breaksw
     case Gcc44:
-        setenv WM_COMPILER_DIR $WM_THIRD_PARTY_DIR/gcc-4.4.1/platforms/$WM_ARCH$WM_COMPILER_ARCH
+        setenv WM_COMPILER_DIR $WM_THIRD_PARTY_DIR/gcc-4.4.2/platforms/$WM_ARCH$WM_COMPILER_ARCH
         _foamAddLib $WM_THIRD_PARTY_DIR/mpfr-2.4.1/platforms/$WM_ARCH$WM_COMPILER_ARCH/lib
         _foamAddLib $WM_THIRD_PARTY_DIR/gmp-4.2.4/platforms/$WM_ARCH$WM_COMPILER_ARCH/lib
     breaksw
@@ -132,7 +132,7 @@ unset MPI_ARCH_PATH
 
 switch ("$WM_MPLIB")
 case OPENMPI:
-    set mpi_version=openmpi-1.3.3
+    set mpi_version=openmpi-1.3.4
     setenv MPI_HOME $WM_THIRD_PARTY_DIR/$mpi_version
     setenv MPI_ARCH_PATH $MPI_HOME/platforms/$WM_OPTIONS
 
diff --git a/etc/settings.sh b/etc/settings.sh
index f1abf1242394cc69ef4049114a91d12b57c961df..5dc56ac0188b38538d9c0dd494a10347d8b89c01 100644
--- a/etc/settings.sh
+++ b/etc/settings.sh
@@ -111,12 +111,12 @@ case "${compilerInstall:-OpenFOAM}" in
 OpenFOAM)
     case "$WM_COMPILER" in
     Gcc)
-        export WM_COMPILER_DIR=$WM_THIRD_PARTY_DIR/gcc-4.3.3/platforms/$WM_ARCH$WM_COMPILER_ARCH
+        export WM_COMPILER_DIR=$WM_THIRD_PARTY_DIR/gcc-4.4.2/platforms/$WM_ARCH$WM_COMPILER_ARCH
         _foamAddLib $WM_THIRD_PARTY_DIR/mpfr-2.4.1/platforms/$WM_ARCH$WM_COMPILER_ARCH/lib
         _foamAddLib $WM_THIRD_PARTY_DIR/gmp-4.2.4/platforms/$WM_ARCH$WM_COMPILER_ARCH/lib
         ;;
     Gcc44)
-        export WM_COMPILER_DIR=$WM_THIRD_PARTY_DIR/gcc-4.4.1/platforms/$WM_ARCH$WM_COMPILER_ARCH
+        export WM_COMPILER_DIR=$WM_THIRD_PARTY_DIR/gcc-4.4.2/platforms/$WM_ARCH$WM_COMPILER_ARCH
         _foamAddLib $WM_THIRD_PARTY_DIR/mpfr-2.4.1/platforms/$WM_ARCH$WM_COMPILER_ARCH/lib
         _foamAddLib $WM_THIRD_PARTY_DIR/gmp-4.2.4/platforms/$WM_ARCH$WM_COMPILER_ARCH/lib
         ;;
@@ -163,7 +163,7 @@ unset MPI_ARCH_PATH
 
 case "$WM_MPLIB" in
 OPENMPI)
-    mpi_version=openmpi-1.3.3
+    mpi_version=openmpi-1.3.4
     export MPI_HOME=$WM_THIRD_PARTY_DIR/$mpi_version
     export MPI_ARCH_PATH=$MPI_HOME/platforms/$WM_OPTIONS
 
diff --git a/src/Allwmake b/src/Allwmake
index e4724a1e8f14bf4f331697de3da1895926345725..6592f244d711e9300cf0be993b87c706d712161d 100755
--- a/src/Allwmake
+++ b/src/Allwmake
@@ -27,7 +27,7 @@ wmake libso edgeMesh
 wmake libso surfMesh
 
 # Decomposition methods needed by meshTools
-decompositionMethods/Allwmake
+wmake libso parallel/decompositionMethods
 
 wmake libso meshTools
 wmake libso finiteVolume
@@ -46,6 +46,7 @@ thermophysicalModels/Allwmake
 transportModels/Allwmake
 turbulenceModels/Allwmake
 lagrangian/Allwmake
+parallel/Allwmake
 postProcessing/Allwmake
 conversion/Allwmake
 mesh/Allwmake
diff --git a/src/OSspecific/POSIX/printStack.C b/src/OSspecific/POSIX/printStack.C
index a6c2743298b8d320cba12c569960776c28f5a028..134107637577b697577bd620fa817e33b0ff8df0 100644
--- a/src/OSspecific/POSIX/printStack.C
+++ b/src/OSspecific/POSIX/printStack.C
@@ -181,7 +181,7 @@ void error::printStack(Ostream& os)
     {
         IFstream is("/proc/" + name(pid()) + "/maps");
 
-        while(is.good())
+        while (is.good())
         {
             string line;
             is.getLine(line);
diff --git a/src/OpenFOAM/algorithms/MeshWave/FaceCellWave.C b/src/OpenFOAM/algorithms/MeshWave/FaceCellWave.C
index 5159644fbff9386867cd546fa728428a4efaa9e4..d7367856cc3bd7053286e10d3e5e5cd7fe44ef0a 100644
--- a/src/OpenFOAM/algorithms/MeshWave/FaceCellWave.C
+++ b/src/OpenFOAM/algorithms/MeshWave/FaceCellWave.C
@@ -57,11 +57,11 @@ Foam::Ostream& Foam::FaceCellWave<Type>::writeFaces
     {
         os << nFaces;
 
-        for(label i = 0; i < nFaces; i++)
+        for (label i = 0; i < nFaces; i++)
         {
             os << ' ' << faceLabels[i];
         }
-        for(label i = 0; i < nFaces; i++)
+        for (label i = 0; i < nFaces; i++)
         {
             os << ' ' << faceInfo[i];
         }
@@ -70,11 +70,11 @@ Foam::Ostream& Foam::FaceCellWave<Type>::writeFaces
     {
         os << nFaces;
 
-        for(label i = 0; i < nFaces; i++)
+        for (label i = 0; i < nFaces; i++)
         {
             os << faceLabels[i];
         }
-        for(label i = 0; i < nFaces; i++)
+        for (label i = 0; i < nFaces; i++)
         {
             os << faceInfo[i];
         }
@@ -95,11 +95,11 @@ Foam::Istream& Foam::FaceCellWave<Type>::readFaces
 {
     is >> nFaces;
 
-    for(label i = 0; i < nFaces; i++)
+    for (label i = 0; i < nFaces; i++)
     {
         is >> faceLabels[i];
     }
-    for(label i = 0; i < nFaces; i++)
+    for (label i = 0; i < nFaces; i++)
     {
         is >> faceInfo[i];
     }
@@ -254,7 +254,7 @@ void Foam::FaceCellWave<Type>::checkCyclic(const polyPatch& patch) const
 {
     label cycOffset = patch.size()/2;
 
-    for(label patchFaceI = 0; patchFaceI < cycOffset; patchFaceI++)
+    for (label patchFaceI = 0; patchFaceI < cycOffset; patchFaceI++)
     {
         label i1 = patch.start() + patchFaceI;
         label i2 = i1 + cycOffset;
@@ -339,7 +339,7 @@ void Foam::FaceCellWave<Type>::mergeFaceInfo
     const bool
 )
 {
-    for(label changedFaceI = 0; changedFaceI < nFaces; changedFaceI++)
+    for (label changedFaceI = 0; changedFaceI < nFaces; changedFaceI++)
     {
         const Type& neighbourWallInfo = changedFacesInfo[changedFaceI];
         label patchFaceI = changedFaces[changedFaceI];
@@ -377,7 +377,7 @@ Foam::label Foam::FaceCellWave<Type>::getChangedPatchFaces
 {
     label nChangedPatchFaces = 0;
 
-    for(label i = 0; i < nFaces; i++)
+    for (label i = 0; i < nFaces; i++)
     {
         label patchFaceI = i + startFaceI;
 
@@ -406,7 +406,7 @@ void Foam::FaceCellWave<Type>::leaveDomain
 {
     const vectorField& fc = mesh_.faceCentres();
     
-    for(label i = 0; i < nFaces; i++)
+    for (label i = 0; i < nFaces; i++)
     {
         label patchFaceI = faceLabels[i];
 
@@ -428,7 +428,7 @@ void Foam::FaceCellWave<Type>::enterDomain
 {
     const vectorField& fc = mesh_.faceCentres();
     
-    for(label i = 0; i < nFaces; i++)
+    for (label i = 0; i < nFaces; i++)
     {
         label patchFaceI = faceLabels[i];
 
@@ -451,14 +451,14 @@ void Foam::FaceCellWave<Type>::transform
     {
         const tensor& T = rotTensor[0];
 
-        for(label faceI = 0; faceI < nFaces; faceI++)
+        for (label faceI = 0; faceI < nFaces; faceI++)
         {
             faceInfo[faceI].transform(mesh_, T);
         }
     }
     else
     {
-        for(label faceI = 0; faceI < nFaces; faceI++)
+        for (label faceI = 0; faceI < nFaces; faceI++)
         {
             faceInfo[faceI].transform(mesh_, rotTensor[faceI]);
         }
@@ -510,7 +510,7 @@ void Foam::FaceCellWave<Type>::offset
     labelList& faces
 )
 {
-    for(label faceI = 0; faceI < nFaces; faceI++)
+    for (label faceI = 0; faceI < nFaces; faceI++)
     {
         faces[faceI] += cycOffset;
     }
@@ -1064,7 +1064,7 @@ Foam::label Foam::FaceCellWave<Type>::iterate(const label maxIter)
         handleProcPatches();
     }
 
-    while(iter_ < maxIter)
+    while (iter_ < maxIter)
     {
         if (debug)
         {
diff --git a/src/OpenFOAM/containers/Dictionaries/DictionaryBase/DictionaryBase.H b/src/OpenFOAM/containers/Dictionaries/DictionaryBase/DictionaryBase.H
index b80240310622e57cf2752076ecfbe31f1e95413f..42bfbacb27b6857ed58c300de535fcce4cffd261 100644
--- a/src/OpenFOAM/containers/Dictionaries/DictionaryBase/DictionaryBase.H
+++ b/src/OpenFOAM/containers/Dictionaries/DictionaryBase/DictionaryBase.H
@@ -144,7 +144,7 @@ public:
             void clear();
 
             //- Transfer the contents of the argument into this DictionaryBase
-            //  and annull the argument.
+            //  and annul the argument.
             void transfer(DictionaryBase<IDLListType, T>&);
 
     // Member operators
diff --git a/src/OpenFOAM/containers/HashTables/HashSet/HashSet.C b/src/OpenFOAM/containers/HashTables/HashSet/HashSet.C
index d63921f95bac5638f029190f1a5a7077bdbdf2f6..041f0ccf77ac68cad3a807e215931084cb83485a 100644
--- a/src/OpenFOAM/containers/HashTables/HashSet/HashSet.C
+++ b/src/OpenFOAM/containers/HashTables/HashSet/HashSet.C
@@ -32,14 +32,30 @@ License
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
 template<class Key, class Hash>
-template<class AnyType>
-Foam::HashSet<Key, Hash>::HashSet(const HashTable<AnyType, Key, Hash>& h)
+Foam::HashSet<Key, Hash>::HashSet(const UList<Key>& lst)
+:
+    HashTable<nil, Key, Hash>(2*lst.size())
+{
+    forAll(lst, elemI)
+    {
+        insert(lst[elemI]);
+    }
+}
+
+
+template<class Key, class Hash>
+template<class AnyType, class AnyHash>
+Foam::HashSet<Key, Hash>::HashSet
+(
+    const HashTable<AnyType, Key, AnyHash>& h
+)
 :
     HashTable<nil, Key, Hash>(h.size())
 {
     for
     (
-        typename HashTable<AnyType, Key, Hash>::const_iterator cit = h.cbegin();
+        typename HashTable<AnyType, Key, AnyHash>::const_iterator
+        cit = h.cbegin();
         cit != h.cend();
         ++cit
     )
@@ -49,6 +65,24 @@ Foam::HashSet<Key, Hash>::HashSet(const HashTable<AnyType, Key, Hash>& h)
 }
 
 
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+template<class Key, class Hash>
+Foam::label Foam::HashSet<Key, Hash>::insert(const UList<Key>& lst)
+{
+    label count = 0;
+    forAll(lst, elemI)
+    {
+        if (insert(lst[elemI]))
+        {
+            ++count;
+        }
+    }
+
+    return count;
+}
+
+
 // * * * * * * * * * * * * * * * Member Operators  * * * * * * * * * * * * * //
 
 template<class Key, class Hash>
@@ -105,7 +139,7 @@ template<class Key, class Hash>
 void Foam::HashSet<Key, Hash>::operator&=(const HashSet<Key, Hash>& rhs)
 {
     // Remove elements not also found in rhs
-    for (iterator iter = this->cbegin(); iter != this->cend(); ++iter)
+    for (iterator iter = this->begin(); iter != this->end(); ++iter)
     {
         if (!rhs.found(iter.key()))
         {
@@ -145,8 +179,6 @@ void Foam::HashSet<Key, Hash>::operator-=(const HashSet<Key, Hash>& rhs)
 }
 
 
-// * * * * * * * * * * * * * * * Friend Operators  * * * * * * * * * * * * * //
-
 /* * * * * * * * * * * * * * * * Global operators  * * * * * * * * * * * * * */
 
 template<class Key, class Hash>
diff --git a/src/OpenFOAM/containers/HashTables/HashSet/HashSet.H b/src/OpenFOAM/containers/HashTables/HashSet/HashSet.H
index 6353818d7efea8e8b93e8e499f821feecc9b3c13..15d408bf87641378ab169b43a76b1cca916fd043 100644
--- a/src/OpenFOAM/containers/HashTables/HashSet/HashSet.H
+++ b/src/OpenFOAM/containers/HashTables/HashSet/HashSet.H
@@ -84,15 +84,7 @@ public:
         {}
 
         //- Construct from UList of Key
-        HashSet(const UList<Key>& lst)
-        :
-            HashTable<nil, Key, Hash>(2*lst.size())
-        {
-            forAll(lst, i)
-            {
-                insert(lst[i]);
-            }
-        }
+        HashSet(const UList<Key>&);
 
         //- Construct as copy
         HashSet(const HashSet<Key, Hash>& hs)
@@ -114,8 +106,9 @@ public:
 
         //- Construct from the keys of another HashTable,
         //  the type of values held is arbitrary.
-        template<class AnyType>
-        HashSet(const HashTable<AnyType, Key, Hash>&);
+        template<class AnyType, class AnyHash>
+        HashSet(const HashTable<AnyType, Key, AnyHash>&);
+
 
     // Member Functions
 
@@ -127,12 +120,23 @@ public:
             return HashTable<nil, Key, Hash>::insert(key, nil());
         }
 
+        //- Insert keys from a UList of Key
+        //  Return the number of new elements inserted
+        label insert(const UList<Key>&);
+
         //- Same as insert (cannot overwrite nil content)
         bool set(const Key& key)
         {
-            return HashTable<nil, Key, Hash>::insert(key, nil());
+            return insert(key);
         }
 
+        //- Same as insert (cannot overwrite nil content)
+        label set(const UList<Key>& lst)
+        {
+            return insert(lst);
+        }
+
+
     // Member Operators
 
         //- Return true if the entry exists, same as found()
@@ -163,7 +167,6 @@ public:
 
         //- Remove entries listed in the given HashSet from this HashSet
         void operator-=(const HashSet<Key, Hash>&);
-
 };
 
 
diff --git a/src/OpenFOAM/containers/HashTables/HashTable/HashTable.H b/src/OpenFOAM/containers/HashTables/HashTable/HashTable.H
index a945859880a15c6da17ad2e5e7dba099ac3536ba..492d6a9e0f4ce6d206e6486955f027fea4684e43 100644
--- a/src/OpenFOAM/containers/HashTables/HashTable/HashTable.H
+++ b/src/OpenFOAM/containers/HashTables/HashTable/HashTable.H
@@ -287,7 +287,7 @@ public:
             void shrink();
 
             //- Transfer the contents of the argument table into this table
-            //  and annull the argument table.
+            //  and annul the argument table.
             void transfer(HashTable<T, Key, Hash>&);
 
             //- Transfer contents to the Xfer container
@@ -463,7 +463,7 @@ public:
                 inline iterator operator++(int);
         };
 
-        //- iterator set to the begining of the HashTable
+        //- iterator set to the beginning of the HashTable
         inline iterator begin();
 
 
diff --git a/src/OpenFOAM/containers/HashTables/HashTable/HashTableI.H b/src/OpenFOAM/containers/HashTables/HashTable/HashTableI.H
index 610f3ccf2fd059c8a9700ee2da0985147824e2f1..9c870fdf45547f7d5a366da9db3505cd6f4920f4 100644
--- a/src/OpenFOAM/containers/HashTables/HashTable/HashTableI.H
+++ b/src/OpenFOAM/containers/HashTables/HashTable/HashTableI.H
@@ -180,7 +180,7 @@ inline Foam::HashTable<T, Key, Hash>::iteratorBase::iteratorBase
     entryPtr_(0),
     hashIndex_(0)
 {
-    if (hashTable_->nElmts_ && hashTable_->table_)
+    if (hashTable_->nElmts_)
     {
         // find first non-NULL table entry
         while
diff --git a/src/OpenFOAM/containers/HashTables/StaticHashTable/StaticHashTable.H b/src/OpenFOAM/containers/HashTables/StaticHashTable/StaticHashTable.H
index 09edf50c4644135cfa6d20330bf8d989894022a9..9806a138e00bdb60762d740651b32af853a8ee41 100644
--- a/src/OpenFOAM/containers/HashTables/StaticHashTable/StaticHashTable.H
+++ b/src/OpenFOAM/containers/HashTables/StaticHashTable/StaticHashTable.H
@@ -247,7 +247,7 @@ public:
             void clearStorage();
 
             //- Transfer the contents of the argument table into this table
-            //  and annull the argument table.
+            //  and annul the argument table.
             void transfer(StaticHashTable<T, Key, Hash>&);
 
             //- Transfer contents to the Xfer container
diff --git a/src/OpenFOAM/containers/LinkedLists/accessTypes/ILList/ILList.H b/src/OpenFOAM/containers/LinkedLists/accessTypes/ILList/ILList.H
index 20635fa53f944bedcaa4f240d05657a09782f2df..759d0c5dbe116705f4224e13a9fa8bb3d28d5de5 100644
--- a/src/OpenFOAM/containers/LinkedLists/accessTypes/ILList/ILList.H
+++ b/src/OpenFOAM/containers/LinkedLists/accessTypes/ILList/ILList.H
@@ -140,7 +140,7 @@ public:
             void clear();
 
             //- Transfer the contents of the argument into this List
-            //  and annull the argument list.
+            //  and annul the argument list.
             void transfer(ILList<LListBase, T>&);
 
 
diff --git a/src/OpenFOAM/containers/LinkedLists/accessTypes/LList/LList.H b/src/OpenFOAM/containers/LinkedLists/accessTypes/LList/LList.H
index 0905f5543cbd7f272845f62d5d7d8afa0633b9ae..a5e99a63e4d49cc3752acfccebfedc659668f272 100644
--- a/src/OpenFOAM/containers/LinkedLists/accessTypes/LList/LList.H
+++ b/src/OpenFOAM/containers/LinkedLists/accessTypes/LList/LList.H
@@ -202,7 +202,7 @@ public:
             void clear();
 
             //- Transfer the contents of the argument into this List
-            //  and annull the argument list.
+            //  and annul the argument list.
             void transfer(LList<LListBase, T>&);
 
     // Member operators
diff --git a/src/OpenFOAM/containers/LinkedLists/accessTypes/LPtrList/LPtrList.H b/src/OpenFOAM/containers/LinkedLists/accessTypes/LPtrList/LPtrList.H
index 333d916a65a4bbb84a0b75532cfcfaca28a0d463..c2e0250acd87cc74b59e96ae2a2b8e3932f01997 100644
--- a/src/OpenFOAM/containers/LinkedLists/accessTypes/LPtrList/LPtrList.H
+++ b/src/OpenFOAM/containers/LinkedLists/accessTypes/LPtrList/LPtrList.H
@@ -156,7 +156,7 @@ public:
             void clear();
 
             //- Transfer the contents of the argument into this List
-            //  and annull the argument list.
+            //  and annul the argument list.
             void transfer(LPtrList<LListBase, T>&);
 
 
diff --git a/src/OpenFOAM/containers/LinkedLists/linkTypes/DLListBase/DLListBase.H b/src/OpenFOAM/containers/LinkedLists/linkTypes/DLListBase/DLListBase.H
index 848b797b2eabaa5c2175eb978b6f7fb20460e409..beb3c625da675c128857cc5f5c68aff6ec51a421 100644
--- a/src/OpenFOAM/containers/LinkedLists/linkTypes/DLListBase/DLListBase.H
+++ b/src/OpenFOAM/containers/LinkedLists/linkTypes/DLListBase/DLListBase.H
@@ -172,7 +172,7 @@ public:
             inline void clear();
 
             //- Transfer the contents of the argument into this List
-            //  and annull the argument list.
+            //  and annul the argument list.
             inline void transfer(DLListBase&);
 
     // STL iterator
diff --git a/src/OpenFOAM/containers/LinkedLists/linkTypes/SLListBase/SLListBase.H b/src/OpenFOAM/containers/LinkedLists/linkTypes/SLListBase/SLListBase.H
index b5c957a537020bd534dcd5a7670b413606516201..b2958c9e558bc81a20770d4c521ecd0548f76ddf 100644
--- a/src/OpenFOAM/containers/LinkedLists/linkTypes/SLListBase/SLListBase.H
+++ b/src/OpenFOAM/containers/LinkedLists/linkTypes/SLListBase/SLListBase.H
@@ -157,7 +157,7 @@ public:
             inline void clear();
 
             //- Transfer the contents of the argument into this List
-            //  and annull the argument list.
+            //  and annul the argument list.
             inline void transfer(SLListBase&);
 
     // STL iterator
diff --git a/src/OpenFOAM/containers/Lists/BiIndirectList/BiIndirectList.H b/src/OpenFOAM/containers/Lists/BiIndirectList/BiIndirectList.H
index 5afd48d0f36c3b4ef11a09cf5bb8398df33d1338..1f761d9caf903a3d5bb50eba16130b01652baac3 100644
--- a/src/OpenFOAM/containers/Lists/BiIndirectList/BiIndirectList.H
+++ b/src/OpenFOAM/containers/Lists/BiIndirectList/BiIndirectList.H
@@ -44,7 +44,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-                           Class BiIndirectList Declaration
+                       Class BiIndirectList Declaration
 \*---------------------------------------------------------------------------*/
 
 template<class T>
@@ -82,11 +82,16 @@ public:
 
         // Access
 
+            //- Return the number of elements in the list
             inline label size() const;
-            inline bool  empty() const;
+
+            //- Return true if the list is empty (ie, size() is zero).
+            inline bool empty() const;
 
             inline const UList<T>& posList() const;
             inline const UList<T>& negList() const;
+
+            //- Return the list addressing
             inline const List<label>& addressing() const;
 
             //- Calculate index given whether index is into posList or negList
diff --git a/src/OpenFOAM/containers/Lists/CompactListList/CompactListList.H b/src/OpenFOAM/containers/Lists/CompactListList/CompactListList.H
index f1875dde70da930c069503e1d9a2e1b1e7ebf956..e8ee819add1a4cc2cf706d6f425f44a0d74cf4f8 100644
--- a/src/OpenFOAM/containers/Lists/CompactListList/CompactListList.H
+++ b/src/OpenFOAM/containers/Lists/CompactListList/CompactListList.H
@@ -61,8 +61,16 @@ namespace Foam
 
 template<class T, class Container> class CompactListList;
 
-template<class T, class Container> Istream& operator>>(Istream&, CompactListList<T, Container>&);
-template<class T, class Container> Ostream& operator<<(Ostream&, const CompactListList<T, Container>&);
+template<class T, class Container> Istream& operator>>
+(
+    Istream&,
+    CompactListList<T, Container>&
+);
+template<class T, class Container> Ostream& operator<<
+(
+    Ostream&,
+    const CompactListList<T, Container>&
+);
 
 
 /*---------------------------------------------------------------------------*\
@@ -183,7 +191,7 @@ public:
             labelList sizes() const;
 
             //- Transfer the contents of the argument CompactListList
-            //  into this CompactListList and annull the argument list.
+            //  into this CompactListList and annul the argument list.
             void transfer(CompactListList<T, Container>&);
 
             //- Transfer the contents to the Xfer container
diff --git a/src/OpenFOAM/containers/Lists/FixedList/FixedList.H b/src/OpenFOAM/containers/Lists/FixedList/FixedList.H
index 0e59184f668d5efa825f609be1875b73e4763df3..1d7285d86839e030810a46abfdb82bb75492d7af 100644
--- a/src/OpenFOAM/containers/Lists/FixedList/FixedList.H
+++ b/src/OpenFOAM/containers/Lists/FixedList/FixedList.H
@@ -154,6 +154,18 @@ public:
             //  This can be used (with caution) when interfacing with C code.
             inline T* data();
 
+            //- Return the first element of the list.
+            inline T& first();
+
+            //- Return first element of the list.
+            inline const T& first() const;
+
+            //- Return the last element of the list.
+            inline T& last();
+
+            //- Return the last element of the list.
+            inline const T& last() const;
+
 
         // Check
 
diff --git a/src/OpenFOAM/containers/Lists/FixedList/FixedListI.H b/src/OpenFOAM/containers/Lists/FixedList/FixedListI.H
index 1c3fe7131e6f179ad801a0151da2dd93d746c83e..ae762edb479254f43eb725a4b5589f1f6dcd987b 100644
--- a/src/OpenFOAM/containers/Lists/FixedList/FixedListI.H
+++ b/src/OpenFOAM/containers/Lists/FixedList/FixedListI.H
@@ -208,6 +208,34 @@ Foam::FixedList<T, Size>::data()
 }
 
 
+template<class T, unsigned Size>
+inline T& Foam::FixedList<T, Size>::first()
+{
+    return v_[0];
+}
+
+
+template<class T, unsigned Size>
+inline const T& Foam::FixedList<T, Size>::first() const
+{
+    return v_[0];
+}
+
+
+template<class T, unsigned Size>
+inline T& Foam::FixedList<T, Size>::last()
+{
+    return v_[Size-1];
+}
+
+
+template<class T, unsigned Size>
+inline const T& Foam::FixedList<T, Size>::last() const
+{
+    return v_[Size-1];
+}
+
+
 // * * * * * * * * * * * * * * * Member Operators  * * * * * * * * * * * * * //
 
 // element access
diff --git a/src/OpenFOAM/containers/Lists/IndirectList/IndirectList.H b/src/OpenFOAM/containers/Lists/IndirectList/IndirectList.H
index cfdc03d7dc1fbc3d32a55020c423b8a5ce832ae2..a0d97af48ee42e49a22f9f7b5a1f360be07eed0a 100644
--- a/src/OpenFOAM/containers/Lists/IndirectList/IndirectList.H
+++ b/src/OpenFOAM/containers/Lists/IndirectList/IndirectList.H
@@ -44,7 +44,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-                           Class IndirectList Declaration
+                        Class IndirectList Declaration
 \*---------------------------------------------------------------------------*/
 
 template<class T>
@@ -70,10 +70,28 @@ public:
 
         // Access
 
+            //- Return the number of elements in the list
             inline label size() const;
-            inline bool  empty() const;
 
+            //- Return true if the list is empty (ie, size() is zero).
+            inline bool empty() const;
+
+            //- Return the first element of the list.
+            inline T& first();
+
+            //- Return first element of the list.
+            inline const T& first() const;
+
+            //- Return the last element of the list.
+            inline T& last();
+
+            //- Return the last element of the list.
+            inline const T& last() const;
+
+            //- Return the complete list
             inline const UList<T>& completeList() const;
+
+            //- Return the list addressing
             inline const List<label>& addressing() const;
 
         // Edit
diff --git a/src/OpenFOAM/containers/Lists/IndirectList/IndirectListI.H b/src/OpenFOAM/containers/Lists/IndirectList/IndirectListI.H
index a1e2bf9a54e7018588b183d6f55614104e69bc95..47eedb733d1115cf0aba6d91830df8440090770a 100644
--- a/src/OpenFOAM/containers/Lists/IndirectList/IndirectListI.H
+++ b/src/OpenFOAM/containers/Lists/IndirectList/IndirectListI.H
@@ -66,6 +66,34 @@ inline bool Foam::IndirectList<T>::empty() const
 }
 
 
+template<class T>
+inline T& Foam::IndirectList<T>::first()
+{
+    return completeList_[addressing_.first()];
+}
+
+
+template<class T>
+inline const T& Foam::IndirectList<T>::first() const
+{
+    return completeList_[addressing_.first()];
+}
+
+
+template<class T>
+inline T& Foam::IndirectList<T>::last()
+{
+    return completeList_[addressing_.last()];
+}
+
+
+template<class T>
+inline const T& Foam::IndirectList<T>::last() const
+{
+    return completeList_[addressing_.last()];
+}
+
+
 template<class T>
 inline const Foam::UList<T>& Foam::IndirectList<T>::completeList() const
 {
diff --git a/src/OpenFOAM/containers/Lists/List/List.C b/src/OpenFOAM/containers/Lists/List/List.C
index fb6d9a0678929e05f12888dc97361f578aadc32e..4158043b083ddcd28d799d03979dbe6f842bdbc0 100644
--- a/src/OpenFOAM/containers/Lists/List/List.C
+++ b/src/OpenFOAM/containers/Lists/List/List.C
@@ -404,7 +404,7 @@ void Foam::List<T>::clear()
 
 
 // Transfer the contents of the argument List into this List
-// and anull the argument list
+// and annul the argument list
 template<class T>
 void Foam::List<T>::transfer(List<T>& a)
 {
@@ -418,7 +418,7 @@ void Foam::List<T>::transfer(List<T>& a)
 
 
 // Transfer the contents of the argument DynamicList into this List
-// and anull the argument list
+// and annul the argument list
 template<class T>
 template<unsigned SizeInc, unsigned SizeMult, unsigned SizeDiv>
 void Foam::List<T>::transfer(DynamicList<T, SizeInc, SizeMult, SizeDiv>& a)
@@ -431,7 +431,7 @@ void Foam::List<T>::transfer(DynamicList<T, SizeInc, SizeMult, SizeDiv>& a)
 
 
 // Transfer the contents of the argument SortableList into this List
-// and anull the argument list
+// and annul the argument list
 template<class T>
 void Foam::List<T>::transfer(SortableList<T>& a)
 {
diff --git a/src/OpenFOAM/containers/Lists/List/List.H b/src/OpenFOAM/containers/Lists/List/List.H
index 7e623f6560f8008fdedbaa0d132651d8c0c2d0f4..5fec41ef4d7a9a0ecdacda2916cd9bef02f1c171 100644
--- a/src/OpenFOAM/containers/Lists/List/List.H
+++ b/src/OpenFOAM/containers/Lists/List/List.H
@@ -188,16 +188,16 @@ public:
             inline void append(const UIndirectList<T>&);
 
             //- Transfer the contents of the argument List into this list
-            //  and annull the argument list.
+            //  and annul the argument list.
             void transfer(List<T>&);
 
             //- Transfer the contents of the argument List into this list
-            //  and annull the argument list.
+            //  and annul the argument list.
             template<unsigned SizeInc, unsigned SizeMult, unsigned SizeDiv>
             void transfer(DynamicList<T, SizeInc, SizeMult, SizeDiv>&);
 
             //- Transfer the contents of the argument List into this list
-            //  and annull the argument list.
+            //  and annul the argument list.
             void transfer(SortableList<T>&);
 
             //- Transfer contents to the Xfer container
diff --git a/src/OpenFOAM/containers/Lists/ListOps/ListOps.H b/src/OpenFOAM/containers/Lists/ListOps/ListOps.H
index 1504fb4d78363167fd2f4e934270702728afc71d..98c7660155f2f618474327a5ba553d514e23c205 100644
--- a/src/OpenFOAM/containers/Lists/ListOps/ListOps.H
+++ b/src/OpenFOAM/containers/Lists/ListOps/ListOps.H
@@ -172,7 +172,7 @@ template<class ListType>
 ListType createWithValues
 (
     const label sz,
-    const typename ListType::const_reference initValue,
+    typename ListType::const_reference initValue,
     const UList<label>& indices,
     typename ListType::const_reference setValue
 );
diff --git a/src/OpenFOAM/containers/Lists/PackedList/PackedList.H b/src/OpenFOAM/containers/Lists/PackedList/PackedList.H
index 82ac19fc0e532305100010cb82cb3fab17bc3899..78c7306b6e477d7f8a5482963b17f37c68649a7c 100644
--- a/src/OpenFOAM/containers/Lists/PackedList/PackedList.H
+++ b/src/OpenFOAM/containers/Lists/PackedList/PackedList.H
@@ -253,7 +253,7 @@ public:
         inline void shrink();
 
         //- Transfer the contents of the argument list into this list
-        //  and annull the argument list.
+        //  and annul the argument list.
         inline void transfer(PackedList<nBits>&);
 
         //- Transfer contents to the Xfer container
diff --git a/src/OpenFOAM/containers/Lists/PtrList/PtrList.H b/src/OpenFOAM/containers/Lists/PtrList/PtrList.H
index 3f3e6d8fe6c284e32d1683ca6ab0010854c73b40..fdefbf597c6d7c5b5cf3d4fb0e251927b83b1076 100644
--- a/src/OpenFOAM/containers/Lists/PtrList/PtrList.H
+++ b/src/OpenFOAM/containers/Lists/PtrList/PtrList.H
@@ -29,8 +29,8 @@ Description
     A templated 1D list of pointers to objects of type \<T\>, where the
     size of the array is known and used for subscript bounds checking, etc.
 
-    The element operator [] returns a reference to the object
-    rather than to the pointer.
+    The element operator [] returns a reference to the object rather than a
+    pointer.
 
 SourceFiles
     PtrList.C
@@ -119,7 +119,7 @@ public:
         //- Null Constructor.
         PtrList();
 
-        //- Construct with length specified.
+        //- Construct with size specified.
         explicit PtrList(const label);
 
         //- Copy constructor.
@@ -130,7 +130,7 @@ public:
         PtrList(const PtrList<T>&, const CloneArg&);
 
         //- Construct by transferring the parameter contents
-        PtrList(const Xfer<PtrList<T> >&);
+        PtrList(const Xfer< PtrList<T> >&);
 
         //- Construct as copy or re-use as specified.
         PtrList(PtrList<T>&, bool reUse);
@@ -161,6 +161,17 @@ public:
             //- Return true if the PtrList is empty (ie, size() is zero).
             inline bool empty() const;
 
+            //- Return reference to the first element of the list.
+            inline T& first();
+
+            //- Return reference to first element of the list.
+            inline const T& first() const;
+
+            //- Return reference to the last element of the list.
+            inline T& last();
+
+            //- Return reference to the last element of the list.
+            inline const T& last() const;
 
         // Edit
 
@@ -181,11 +192,11 @@ public:
             void clear();
 
             //- Transfer the contents of the argument PtrList into this PtrList
-            //  and annull the argument list.
+            //  and annul the argument list.
             void transfer(PtrList<T>&);
 
             //- Transfer contents to the Xfer container
-            inline Xfer<PtrList<T> > xfer();
+            inline Xfer< PtrList<T> > xfer();
 
             //- Is element set
             inline bool set(const label) const;
diff --git a/src/OpenFOAM/containers/Lists/PtrList/PtrListI.H b/src/OpenFOAM/containers/Lists/PtrList/PtrListI.H
index d450cdd09fe7107d975d338031f066878be7fca1..72cb24f78dd1226410738f7b182bd17df69039b3 100644
--- a/src/OpenFOAM/containers/Lists/PtrList/PtrListI.H
+++ b/src/OpenFOAM/containers/Lists/PtrList/PtrListI.H
@@ -45,6 +45,34 @@ inline bool Foam::PtrList<T>::empty() const
 }
 
 
+template<class T>
+inline T& Foam::PtrList<T>::first()
+{
+    return this->operator[](0);
+}
+
+
+template<class T>
+inline const T& Foam::PtrList<T>::first() const
+{
+    return this->operator[](0);
+}
+
+
+template<class T>
+inline T& Foam::PtrList<T>::last()
+{
+    return this->operator[](this->size()-1);
+}
+
+
+template<class T>
+inline const T& Foam::PtrList<T>::last() const
+{
+    return this->operator[](this->size()-1);
+}
+
+
 template<class T>
 inline void Foam::PtrList<T>::resize(const label newSize)
 {
@@ -63,9 +91,7 @@ template<class T>
 inline Foam::autoPtr<T> Foam::PtrList<T>::set(const label i, T* ptr)
 {
     autoPtr<T> old(ptrs_[i]);
-
     ptrs_[i] = ptr;
-
     return old;
 }
 
@@ -102,7 +128,7 @@ inline Foam::Xfer<Foam::PtrList<T> > Foam::PtrList<T>::xfer()
 // * * * * * * * * * * * * * * * Member Operators  * * * * * * * * * * * * * //
 
 template<class T>
-const T& Foam::PtrList<T>::operator[](const label i) const
+inline const T& Foam::PtrList<T>::operator[](const label i) const
 {
     if (!ptrs_[i])
     {
@@ -116,7 +142,7 @@ const T& Foam::PtrList<T>::operator[](const label i) const
 
 
 template<class T>
-T& Foam::PtrList<T>::operator[](const label i)
+inline T& Foam::PtrList<T>::operator[](const label i)
 {
     if (!ptrs_[i])
     {
@@ -130,7 +156,7 @@ T& Foam::PtrList<T>::operator[](const label i)
 
 
 template<class T>
-const T* Foam::PtrList<T>::operator()(const label i) const
+inline const T* Foam::PtrList<T>::operator()(const label i) const
 {
     return ptrs_[i];
 }
@@ -297,5 +323,4 @@ Foam::PtrList<T>::end()
 }
 
 
-
 // ************************************************************************* //
diff --git a/src/OpenFOAM/containers/Lists/UIndirectList/UIndirectList.H b/src/OpenFOAM/containers/Lists/UIndirectList/UIndirectList.H
index 0219e02af72861fb2c92b001b498f6ff1fb68b18..61ec6bf2d144f87a3a3aab68108a75463e07ff47 100644
--- a/src/OpenFOAM/containers/Lists/UIndirectList/UIndirectList.H
+++ b/src/OpenFOAM/containers/Lists/UIndirectList/UIndirectList.H
@@ -27,6 +27,7 @@ Class
 
 Description
     A List with indirect addressing.
+
     Like IndirectList but does not store addressing.
 
 SourceFiles
@@ -73,8 +74,24 @@ public:
 
         // Access
 
+            //- Return the number of elements in the list
             inline label size() const;
-            inline bool  empty() const;
+
+            //- Return true if the list is empty (ie, size() is zero).
+            inline bool empty() const;
+
+            //- Return the first element of the list.
+            inline T& first();
+
+            //- Return first element of the list.
+            inline const T& first() const;
+
+            //- Return the last element of the list.
+            inline T& last();
+
+            //- Return the last element of the list.
+            inline const T& last() const;
+
 
             inline const UList<T>& completeList() const;
             inline const List<label>& addressing() const;
diff --git a/src/OpenFOAM/containers/Lists/UIndirectList/UIndirectListI.H b/src/OpenFOAM/containers/Lists/UIndirectList/UIndirectListI.H
index ff8b3ebbd6d0ff9146cc259baf09bb0004218bb9..e8e7565ed1318a61a8a27a7d0a66b47065387eaf 100644
--- a/src/OpenFOAM/containers/Lists/UIndirectList/UIndirectListI.H
+++ b/src/OpenFOAM/containers/Lists/UIndirectList/UIndirectListI.H
@@ -54,6 +54,34 @@ inline bool Foam::UIndirectList<T>::empty() const
 }
 
 
+template<class T>
+inline T& Foam::UIndirectList<T>::first()
+{
+    return completeList_[addressing_.first()];
+}
+
+
+template<class T>
+inline const T& Foam::UIndirectList<T>::first() const
+{
+    return completeList_[addressing_.first()];
+}
+
+
+template<class T>
+inline T& Foam::UIndirectList<T>::last()
+{
+    return completeList_[addressing_.last()];
+}
+
+
+template<class T>
+inline const T& Foam::UIndirectList<T>::last() const
+{
+    return completeList_[addressing_.last()];
+}
+
+
 template<class T>
 inline const Foam::UList<T>& Foam::UIndirectList<T>::completeList() const
 {
diff --git a/src/OpenFOAM/containers/Lists/UList/UList.H b/src/OpenFOAM/containers/Lists/UList/UList.H
index 087f685ff6cf182cee3be9fe3a4c24370d3f25fa..b9332d04c2e86d37dcefe93b34542a9945569934 100644
--- a/src/OpenFOAM/containers/Lists/UList/UList.H
+++ b/src/OpenFOAM/containers/Lists/UList/UList.H
@@ -132,7 +132,7 @@ public:
             inline label fcIndex(const label i) const;
 
             //- Return the reverse circular index, i.e. the previous index
-            //  which returns to the last at the begining of the list
+            //  which returns to the last at the beginning of the list
             inline label rcIndex(const label i) const;
 
             //- Return the binary size in number of characters of the UList
@@ -151,6 +151,18 @@ public:
             //  This can be used (with caution) when interfacing with C code.
             inline T* data();
 
+            //- Return the first element of the list.
+            inline T& first();
+
+            //- Return first element of the list.
+            inline const T& first() const;
+
+            //- Return the last element of the list.
+            inline T& last();
+
+            //- Return the last element of the list.
+            inline const T& last() const;
+
 
         // Check
 
diff --git a/src/OpenFOAM/containers/Lists/UList/UListI.H b/src/OpenFOAM/containers/Lists/UList/UListI.H
index 5c1df4be15c318df142cb195940dd5643b7db0d7..fb68f29ee86ed0575e541b2aaa4b0197d0110d1e 100644
--- a/src/OpenFOAM/containers/Lists/UList/UListI.H
+++ b/src/OpenFOAM/containers/Lists/UList/UListI.H
@@ -114,6 +114,34 @@ inline void Foam::UList<T>::checkIndex(const label i) const
 }
 
 
+template<class T>
+inline T& Foam::UList<T>::first()
+{
+    return this->operator[](0);
+}
+
+
+template<class T>
+inline const T& Foam::UList<T>::first() const
+{
+    return this->operator[](0);
+}
+
+
+template<class T>
+inline T& Foam::UList<T>::last()
+{
+    return this->operator[](this->size()-1);
+}
+
+
+template<class T>
+inline const T& Foam::UList<T>::last() const
+{
+    return this->operator[](this->size()-1);
+}
+
+
 template<class T>
 inline const T* Foam::UList<T>::cdata() const
 {
diff --git a/src/OpenFOAM/containers/Lists/UPtrList/UPtrList.C b/src/OpenFOAM/containers/Lists/UPtrList/UPtrList.C
index bed0214749efe46fecb7de60e3e063c612fbf7d7..93b7a514c6653282ccafd5d9169b9452ac36374e 100644
--- a/src/OpenFOAM/containers/Lists/UPtrList/UPtrList.C
+++ b/src/OpenFOAM/containers/Lists/UPtrList/UPtrList.C
@@ -93,8 +93,6 @@ void Foam::UPtrList<T>::clear()
 }
 
 
-// Transfer the contents of the argument List into this List
-// and anull the argument list
 template<class T>
 void Foam::UPtrList<T>::transfer(UPtrList<T>& a)
 {
diff --git a/src/OpenFOAM/containers/Lists/UPtrList/UPtrList.H b/src/OpenFOAM/containers/Lists/UPtrList/UPtrList.H
index a334e812543688364dbbde8b6754e4fff2542286..eaf70c3b05b1fcfbce88de1af119ef12811f3ec7 100644
--- a/src/OpenFOAM/containers/Lists/UPtrList/UPtrList.H
+++ b/src/OpenFOAM/containers/Lists/UPtrList/UPtrList.H
@@ -26,8 +26,8 @@ Class
     Foam::UPtrList
 
 Description
-    A 1D array of pointers to objects of type \<T\>, where the size of the
-    array is known and used for subscript bounds checking, etc.
+    A templated 1D list of pointers to objects of type \<T\>, where the
+    size of the array is known and used for subscript bounds checking, etc.
 
     The element operator [] returns a reference to the object rather than a
     pointer.  Storage is not allocated during construction or use but is
@@ -107,11 +107,11 @@ public:
         //- Null Constructor.
         UPtrList();
 
-        //- Construct with length specified.
+        //- Construct with size specified.
         explicit UPtrList(const label);
 
         //- Construct by transferring the parameter contents
-        UPtrList(const Xfer<UPtrList<T> >&);
+        UPtrList(const Xfer< UPtrList<T> >&);
 
         //- Construct as copy or re-use as specified.
         UPtrList(UPtrList<T>&, bool reUse);
@@ -127,6 +127,18 @@ public:
             //- Return true if the UPtrList is empty (ie, size() is zero).
             inline bool empty() const;
 
+            //- Return reference to the first element of the list.
+            inline T& first();
+
+            //- Return reference to first element of the list.
+            inline const T& first() const;
+
+            //- Return reference to the last element of the list.
+            inline T& last();
+
+            //- Return reference to the last element of the list.
+            inline const T& last() const;
+
 
         // Edit
 
@@ -144,11 +156,11 @@ public:
             void clear();
 
             //- Transfer the contents of the argument UPtrList into this
-            //  UPtrList and annull the argument list.
+            //  UPtrList and annul the argument list.
             void transfer(UPtrList<T>&);
 
             //- Transfer contents to the Xfer container
-            inline Xfer<UPtrList<T> > xfer();
+            inline Xfer< UPtrList<T> > xfer();
 
             //- Is element set
             inline bool set(const label) const;
diff --git a/src/OpenFOAM/containers/Lists/UPtrList/UPtrListI.H b/src/OpenFOAM/containers/Lists/UPtrList/UPtrListI.H
index 859f54fce5f7d45b2cb278be640db627183d7ceb..1d73bc920da2c71acc53b7653ed696aeffaa0cad 100644
--- a/src/OpenFOAM/containers/Lists/UPtrList/UPtrListI.H
+++ b/src/OpenFOAM/containers/Lists/UPtrList/UPtrListI.H
@@ -42,6 +42,34 @@ inline bool Foam::UPtrList<T>::empty() const
 }
 
 
+template<class T>
+inline T& Foam::UPtrList<T>::first()
+{
+    return this->operator[](0);
+}
+
+
+template<class T>
+inline const T& Foam::UPtrList<T>::first() const
+{
+    return this->operator[](0);
+}
+
+
+template<class T>
+inline T& Foam::UPtrList<T>::last()
+{
+    return this->operator[](this->size()-1);
+}
+
+
+template<class T>
+inline const T& Foam::UPtrList<T>::last() const
+{
+    return this->operator[](this->size()-1);
+}
+
+
 template<class T>
 inline void Foam::UPtrList<T>::resize(const label newSize)
 {
@@ -55,6 +83,7 @@ inline bool Foam::UPtrList<T>::set(const label i) const
     return ptrs_[i] != NULL;
 }
 
+
 template<class T>
 inline T* Foam::UPtrList<T>::set(const label i, T* ptr)
 {
@@ -63,6 +92,7 @@ inline T* Foam::UPtrList<T>::set(const label i, T* ptr)
     return old;
 }
 
+
 template<class T>
 inline Foam::Xfer<Foam::UPtrList<T> > Foam::UPtrList<T>::xfer()
 {
@@ -73,7 +103,7 @@ inline Foam::Xfer<Foam::UPtrList<T> > Foam::UPtrList<T>::xfer()
 // * * * * * * * * * * * * * * * Member Operators  * * * * * * * * * * * * * //
 
 template<class T>
-const T& Foam::UPtrList<T>::operator[](const label i) const
+inline const T& Foam::UPtrList<T>::operator[](const label i) const
 {
     if (!ptrs_[i])
     {
@@ -87,7 +117,7 @@ const T& Foam::UPtrList<T>::operator[](const label i) const
 
 
 template<class T>
-T& Foam::UPtrList<T>::operator[](const label i)
+inline T& Foam::UPtrList<T>::operator[](const label i)
 {
     if (!ptrs_[i])
     {
@@ -101,7 +131,7 @@ T& Foam::UPtrList<T>::operator[](const label i)
 
 
 template<class T>
-const T* Foam::UPtrList<T>::operator()(const label i) const
+inline const T* Foam::UPtrList<T>::operator()(const label i) const
 {
     return ptrs_[i];
 }
diff --git a/src/OpenFOAM/db/IOobjectList/IOobjectList.C b/src/OpenFOAM/db/IOobjectList/IOobjectList.C
index a55f68a42518df908f7cfd1ec746027b92188e39..41eb798407d1ea0b841e85d17386ade24baded3e 100644
--- a/src/OpenFOAM/db/IOobjectList/IOobjectList.C
+++ b/src/OpenFOAM/db/IOobjectList/IOobjectList.C
@@ -58,7 +58,7 @@ Foam::IOobjectList::IOobjectList
         }
     }
 
-    // Create list file names in directory
+    // Create a list of file names in this directory
     fileNameList ObjectNames =
         readDir(db.path(newInstance, db.dbDir()/local), fileName::FILE);
 
@@ -130,8 +130,8 @@ Foam::IOobject* Foam::IOobjectList::lookup(const word& name) const
     {
         if (IOobject::debug)
         {
-            Info<< "IOobjectList::lookup : found " << name
-                << endl;
+            Info<< "IOobjectList::lookup : found "
+                << name << endl;
         }
 
         return const_cast<IOobject*>(*iter);
@@ -140,8 +140,8 @@ Foam::IOobject* Foam::IOobjectList::lookup(const word& name) const
     {
         if (IOobject::debug)
         {
-            Info<< "IOobjectList::lookup : could not find " << name
-                << endl;
+            Info<< "IOobjectList::lookup : could not find "
+                << name << endl;
         }
 
         return NULL;
@@ -151,7 +151,7 @@ Foam::IOobject* Foam::IOobjectList::lookup(const word& name) const
 
 Foam::IOobjectList Foam::IOobjectList::lookupClass(const word& ClassName) const
 {
-    IOobjectList IOobjectsOfClass(size());
+    IOobjectList objectsOfClass(size());
 
     for
     (
@@ -165,34 +165,26 @@ Foam::IOobjectList Foam::IOobjectList::lookupClass(const word& ClassName) const
             if (IOobject::debug)
             {
                 Info<< "IOobjectList::lookupClass : found "
-                    << iter()->name()
-                    << endl;
+                    << iter.key() << endl;
             }
 
-            IOobjectsOfClass.insert(iter()->name(), new IOobject(*iter()));
+            objectsOfClass.insert(iter.key(), new IOobject(*iter()));
         }
     }
 
-    return IOobjectsOfClass;
+    return objectsOfClass;
 }
 
 
 Foam::wordList Foam::IOobjectList::names() const
 {
-    wordList objectNames(size());
+    return HashPtrTable<IOobject>::toc();
+}
 
-    label count = 0;
-    for
-    (
-        HashPtrTable<IOobject>::const_iterator iter = begin();
-        iter != end();
-        ++iter
-    )
-    {
-        objectNames[count++] = iter()->name();
-    }
 
-    return objectNames;
+Foam::wordList Foam::IOobjectList::sortedNames() const
+{
+    return HashPtrTable<IOobject>::sortedToc();
 }
 
 
@@ -210,7 +202,7 @@ Foam::wordList Foam::IOobjectList::names(const word& ClassName) const
     {
         if (iter()->headerClassName() == ClassName)
         {
-            objectNames[count++] = iter()->name();
+            objectNames[count++] = iter.key();
         }
     }
 
@@ -220,4 +212,13 @@ Foam::wordList Foam::IOobjectList::names(const word& ClassName) const
 }
 
 
+Foam::wordList Foam::IOobjectList::sortedNames(const word& ClassName) const
+{
+    wordList sortedLst = names(ClassName);
+    sort(sortedLst);
+
+    return sortedLst;
+}
+
+
 // ************************************************************************* //
diff --git a/src/OpenFOAM/db/IOobjectList/IOobjectList.H b/src/OpenFOAM/db/IOobjectList/IOobjectList.H
index 71c63f9d38d339667e12772734b58d2daa34c60a..fc6034115f71f43ddf2bda132bd721bd319b1871 100644
--- a/src/OpenFOAM/db/IOobjectList/IOobjectList.H
+++ b/src/OpenFOAM/db/IOobjectList/IOobjectList.H
@@ -84,23 +84,29 @@ public:
 
     // Member functions
 
-        //- Add an IOobject to list
+        //- Add an IOobject to the list
         bool add(IOobject&);
 
-        //- Remove an IOobject from list
+        //- Remove an IOobject from the list
         bool remove(IOobject&);
 
         //- Lookup a given name and return IOobject ptr if found else NULL
         IOobject* lookup(const word& name) const;
 
-        //- Return the list for all IOobjects of given class
+        //- Return the list for all IOobjects of a given class
         IOobjectList lookupClass(const word& className) const;
 
         //- Return the list of names of the IOobjects
         wordList names() const;
 
+        //- Return the sorted list of names of the IOobjects
+        wordList sortedNames() const;
+
         //- Return the list of names of the IOobjects of given class
         wordList names(const word& className) const;
+
+        //- Return the sorted list of names of the IOobjects of given class
+        wordList sortedNames(const word& className) const;
 };
 
 
diff --git a/src/OpenFOAM/db/IOstreams/Pstreams/PstreamBuffers.C b/src/OpenFOAM/db/IOstreams/Pstreams/PstreamBuffers.C
index 87f940db406263fc8e747134db6197456772cd0a..41cb1c4f110bc75c61dfdcd904812cc77d13eac3 100644
--- a/src/OpenFOAM/db/IOstreams/Pstreams/PstreamBuffers.C
+++ b/src/OpenFOAM/db/IOstreams/Pstreams/PstreamBuffers.C
@@ -82,9 +82,6 @@ void Foam::PstreamBuffers::finishedSends(labelListList& sizes, const bool block)
 
     if (commsType_ == UPstream::nonBlocking)
     {
-        labelListList sizes;
-        labelListList send,recv;
-
         Pstream::exchange<DynamicList<char>, char>
         (
             sendBuf_,
@@ -96,20 +93,30 @@ void Foam::PstreamBuffers::finishedSends(labelListList& sizes, const bool block)
     }
     else
     {
-        sizes.setSize(UPstream::nProcs());
-        labelList& nsTransPs = sizes[UPstream::myProcNo()];
-        nsTransPs.setSize(UPstream::nProcs());
-
-        forAll(sendBuf_, procI)
-        {
-            nsTransPs[procI] = sendBuf_[procI].size();
-        }
-
-        // Send sizes across.
-        int oldTag = UPstream::msgType();
-        UPstream::msgType() = tag_;
-        combineReduce(sizes, UPstream::listEq());
-        UPstream::msgType() = oldTag;
+        FatalErrorIn
+        (
+            "PstreamBuffers::finishedSends(labelListList&, const bool)"
+        )   << "Obtaining sizes not supported in "
+            << UPstream::commsTypeNames[commsType_] << endl
+            << " since transfers already in progress. Use non-blocking instead."
+            << exit(FatalError);
+
+        // Note: possible only if using different tag from write started
+        // by ~UOPstream. Needs some work.
+        //sizes.setSize(UPstream::nProcs());
+        //labelList& nsTransPs = sizes[UPstream::myProcNo()];
+        //nsTransPs.setSize(UPstream::nProcs());
+        //
+        //forAll(sendBuf_, procI)
+        //{
+        //    nsTransPs[procI] = sendBuf_[procI].size();
+        //}
+        //
+        //// Send sizes across.
+        //int oldTag = UPstream::msgType();
+        //UPstream::msgType() = tag_;
+        //combineReduce(sizes, UPstream::listEq());
+        //UPstream::msgType() = oldTag;
     }
 }
 
diff --git a/src/OpenFOAM/db/IOstreams/Pstreams/PstreamBuffers.H b/src/OpenFOAM/db/IOstreams/Pstreams/PstreamBuffers.H
index d3dbbf23db7f60f61f64996439e57591f62ec3c1..75f26f1d6a9468d6caba8174921895dbf84fe1b2 100644
--- a/src/OpenFOAM/db/IOstreams/Pstreams/PstreamBuffers.H
+++ b/src/OpenFOAM/db/IOstreams/Pstreams/PstreamBuffers.H
@@ -138,7 +138,8 @@ public:
         void finishedSends(const bool block = true);
 
         //- Mark all sends as having been done. Same as above but also returns
-        //  sizes (bytes) transferred.
+        //  sizes (bytes) transferred. Note:currently only valid for
+        //  non-blocking.
         void finishedSends(labelListList& sizes, const bool block = true);
 
 };
diff --git a/src/OpenFOAM/db/IOstreams/Pstreams/exchange.C b/src/OpenFOAM/db/IOstreams/Pstreams/exchange.C
index 64ced34ecf4c54f4e181a31a5f747f84641872d7..b950ed22f0643da83759b04587e779580902aea6 100644
--- a/src/OpenFOAM/db/IOstreams/Pstreams/exchange.C
+++ b/src/OpenFOAM/db/IOstreams/Pstreams/exchange.C
@@ -50,43 +50,42 @@ void Pstream::exchange
     const bool block
 )
 {
-    if (UPstream::parRun())
+    if (!contiguous<T>())
     {
-        if (!contiguous<T>())
-        {
-            FatalErrorIn
-            (
-                "Pstream::exchange(..)"
-            )   << "Continuous data only." << Foam::abort(FatalError);
-        }
-
-        if (sendBufs.size() != UPstream::nProcs())
-        {
-            FatalErrorIn
-            (
-                "Pstream::exchange(..)"
-            )   << "Size of list:" << sendBufs.size()
-                << " does not equal the number of processors:"
-                << UPstream::nProcs()
-                << Foam::abort(FatalError);
-        }
+        FatalErrorIn
+        (
+            "Pstream::exchange(..)"
+        )   << "Continuous data only." << Foam::abort(FatalError);
+    }
 
-        sizes.setSize(UPstream::nProcs());
-        labelList& nsTransPs = sizes[UPstream::myProcNo()];
-        nsTransPs.setSize(UPstream::nProcs());
+    if (sendBufs.size() != UPstream::nProcs())
+    {
+        FatalErrorIn
+        (
+            "Pstream::exchange(..)"
+        )   << "Size of list:" << sendBufs.size()
+            << " does not equal the number of processors:"
+            << UPstream::nProcs()
+            << Foam::abort(FatalError);
+    }
 
-        forAll(sendBufs, procI)
-        {
-            nsTransPs[procI] = sendBufs[procI].size();
-        }
+    sizes.setSize(UPstream::nProcs());
+    labelList& nsTransPs = sizes[UPstream::myProcNo()];
+    nsTransPs.setSize(UPstream::nProcs());
 
-        // Send sizes across.
-        int oldTag = UPstream::msgType();
-        UPstream::msgType() = tag;
-        combineReduce(sizes, UPstream::listEq());
-        UPstream::msgType() = oldTag;
+    forAll(sendBufs, procI)
+    {
+        nsTransPs[procI] = sendBufs[procI].size();
+    }
 
+    // Send sizes across.
+    int oldTag = UPstream::msgType();
+    UPstream::msgType() = tag;
+    combineReduce(sizes, UPstream::listEq());
+    UPstream::msgType() = oldTag;
 
+    if (Pstream::parRun())
+    {
         // Set up receives
         // ~~~~~~~~~~~~~~~
 
diff --git a/src/OpenFOAM/db/Time/Time.C b/src/OpenFOAM/db/Time/Time.C
index 7405cfb5b650ccff8bf3c501025360d2976c608d..bda1666bec2995454974785a912fb3b7f63fbc7b 100644
--- a/src/OpenFOAM/db/Time/Time.C
+++ b/src/OpenFOAM/db/Time/Time.C
@@ -129,7 +129,7 @@ void Foam::Time::setControls()
         {
             if (timeDirs.size())
             {
-                startTime_ = timeDirs[timeDirs.size()-1].value();
+                startTime_ = timeDirs.last().value();
             }
         }
         else
@@ -419,9 +419,9 @@ Foam::instant Foam::Time::findClosestTime(const scalar t) const
     {
         return timeDirs[1];
     }
-    else if (t > timeDirs[timeDirs.size()-1].value())
+    else if (t > timeDirs.last().value())
     {
-        return timeDirs[timeDirs.size()-1];
+        return timeDirs.last();
     }
 
     label nearestIndex = -1;
@@ -532,6 +532,22 @@ bool Foam::Time::end() const
 }
 
 
+void Foam::Time::stopAt(const stopAtControls sa) const
+{
+    stopAt_ = sa;
+
+    // adjust endTime
+    if (sa == saEndTime)
+    {
+        controlDict_.lookup("endTime") >> endTime_;
+    }
+    else
+    {
+        endTime_ = GREAT;
+    }
+}
+
+
 void Foam::Time::setTime(const Time& t)
 {
     value() = t.value();
@@ -662,83 +678,89 @@ Foam::Time& Foam::Time::operator++()
     deltaTSave_ = deltaT_;
     setTime(value() + deltaT_, timeIndex_ + 1);
 
-    // If the time is very close to zero reset to zero
-    if (mag(value()) < 10*SMALL*deltaT_)
-    {
-        setTime(0.0, timeIndex_);
-    }
-
-    switch (writeControl_)
+    if (!subCycling_)
     {
-        case wcTimeStep:
-            outputTime_ = !(timeIndex_ % label(writeInterval_));
-        break;
+        // If the time is very close to zero reset to zero
+        if (mag(value()) < 10*SMALL*deltaT_)
+        {
+            setTime(0.0, timeIndex_);
+        }
 
-        case wcRunTime:
-        case wcAdjustableRunTime:
+        switch (writeControl_)
         {
-            label outputIndex =
-                label(((value() - startTime_) + 0.5*deltaT_)/writeInterval_);
+            case wcTimeStep:
+                outputTime_ = !(timeIndex_ % label(writeInterval_));
+            break;
 
-            if (outputIndex > outputTimeIndex_)
-            {
-                outputTime_ = true;
-                outputTimeIndex_ = outputIndex;
-            }
-            else
+            case wcRunTime:
+            case wcAdjustableRunTime:
             {
-                outputTime_ = false;
+                label outputIndex = label
+                (
+                    ((value() - startTime_) + 0.5*deltaT_)
+                  / writeInterval_
+                );
+
+                if (outputIndex > outputTimeIndex_)
+                {
+                    outputTime_ = true;
+                    outputTimeIndex_ = outputIndex;
+                }
+                else
+                {
+                    outputTime_ = false;
+                }
             }
-        }
-        break;
+            break;
 
-        case wcCpuTime:
-        {
-            label outputIndex = label(elapsedCpuTime()/writeInterval_);
-            if (outputIndex > outputTimeIndex_)
+            case wcCpuTime:
             {
-                outputTime_ = true;
-                outputTimeIndex_ = outputIndex;
+                label outputIndex = label(elapsedCpuTime()/writeInterval_);
+                if (outputIndex > outputTimeIndex_)
+                {
+                    outputTime_ = true;
+                    outputTimeIndex_ = outputIndex;
+                }
+                else
+                {
+                    outputTime_ = false;
+                }
             }
-            else
+            break;
+
+            case wcClockTime:
             {
-                outputTime_ = false;
+                label outputIndex = label(elapsedClockTime()/writeInterval_);
+                if (outputIndex > outputTimeIndex_)
+                {
+                    outputTime_ = true;
+                    outputTimeIndex_ = outputIndex;
+                }
+                else
+                {
+                    outputTime_ = false;
+                }
             }
+            break;
         }
-        break;
 
-        case wcClockTime:
+        // see if endTime needs adjustment to stop at the next run()/end() check
+        if (!end())
         {
-            label outputIndex = label(elapsedClockTime()/writeInterval_);
-            if (outputIndex > outputTimeIndex_)
+            if (stopAt_ == saNoWriteNow)
+            {
+                endTime_ = value();
+            }
+            else if (stopAt_ == saWriteNow)
             {
+                endTime_ = value();
                 outputTime_ = true;
-                outputTimeIndex_ = outputIndex;
             }
-            else
+            else if (stopAt_ == saNextWrite && outputTime_ == true)
             {
-                outputTime_ = false;
+                endTime_ = value();
             }
         }
-        break;
-    }
-
-    // see if endTime needs adjustment to stop at the next run()/end() check
-    if (!end())
-    {
-        if (stopAt_ == saNoWriteNow)
-        {
-            endTime_ = value();
-        }
-        else if (stopAt_ == saWriteNow)
-        {
-            endTime_ = value();
-            outputTime_ = true;
-        }
-        else if (stopAt_ == saNextWrite && outputTime_ == true)
-        {
-            endTime_ = value();
-        }
     }
 
     return *this;
diff --git a/src/OpenFOAM/db/Time/Time.H b/src/OpenFOAM/db/Time/Time.H
index 261d9eb0a2387497147a7c4ea364465a8dd79b4e..d90cab32ec908bc776bc847895fb6e78323082ce 100644
--- a/src/OpenFOAM/db/Time/Time.H
+++ b/src/OpenFOAM/db/Time/Time.H
@@ -90,17 +90,17 @@ public:
         //- Stop-run control options
         enum stopAtControls
         {
-            saEndTime,
-            saNoWriteNow,
-            saWriteNow,
-            saNextWrite
+            saEndTime,    /*!< stop when Time reaches the prescribed endTime */
+            saNoWriteNow, /*!< set endTime to stop immediately w/o writing */
+            saWriteNow,   /*!< set endTime to stop immediately w/ writing */
+            saNextWrite   /*!< stop the next time data are written */
         };
 
-        //- Suported time directory name formats
+        //- Supported time directory name formats
         enum fmtflags
         {
-            general = 0,
-            fixed = ios_base::fixed,
+            general    = 0,
+            fixed      = ios_base::fixed,
             scientific = ios_base::scientific
         };
 
@@ -111,10 +111,10 @@ protected:
 
         label  startTimeIndex_;
         scalar startTime_;
-        scalar endTime_;
+        mutable scalar endTime_;
 
         static const NamedEnum<stopAtControls, 4> stopAtControlNames_;
-        stopAtControls stopAt_;
+        mutable stopAtControls stopAt_;
 
         static const NamedEnum<writeControls, 5> writeControlNames_;
         writeControls writeControl_;
@@ -390,6 +390,10 @@ public:
 
         // Edit
 
+            //- Adjust the current stopAtControl. Note that this value
+            //  only persists until the next time the dictionary is read.
+            virtual void stopAt(const stopAtControls) const;
+
             //- Reset the time and time-index to those of the given time
             virtual void setTime(const Time&);
 
diff --git a/src/OpenFOAM/db/dictionary/dictionary.C b/src/OpenFOAM/db/dictionary/dictionary.C
index fb6f28af5b89516118eaf0597e46b176122ef1b2..9d022d5111e86400df9d64fa2ef371d0824c87fe 100644
--- a/src/OpenFOAM/db/dictionary/dictionary.C
+++ b/src/OpenFOAM/db/dictionary/dictionary.C
@@ -109,14 +109,21 @@ Foam::dictionary::dictionary()
 {}
 
 
+Foam::dictionary::dictionary(const fileName& name)
+:
+    dictionaryName(name),
+    parent_(dictionary::null)
+{}
+
+
 Foam::dictionary::dictionary
 (
     const dictionary& parentDict,
     const dictionary& dict
 )
 :
+    dictionaryName(parentDict.name() + "::" + dict.name()),
     IDLList<entry>(dict, *this),
-    name_(dict.name()),
     parent_(parentDict)
 {
     forAllIter(IDLList<entry>, *this, iter)
@@ -140,8 +147,8 @@ Foam::dictionary::dictionary
     const dictionary& dict
 )
 :
+    dictionaryName(dict.name()),
     IDLList<entry>(dict, *this),
-    name_(dict.name()),
     parent_(dictionary::null)
 {
     forAllIter(IDLList<entry>, *this, iter)
@@ -183,6 +190,7 @@ Foam::dictionary::dictionary
     parent_(parentDict)
 {
     transfer(dict());
+    name() = parentDict.name() + "::" + name();
 }
 
 
@@ -472,6 +480,24 @@ Foam::dictionary& Foam::dictionary::subDict(const word& keyword)
 }
 
 
+Foam::dictionary Foam::dictionary::subOrEmptyDict
+(
+    const word& keyword
+) const
+{
+    const entry* entryPtr = lookupEntryPtr(keyword, false, true);
+
+    if (entryPtr == NULL)
+    {
+        return dictionary(*this, dictionary(keyword));
+    }
+    else
+    {
+        return entryPtr->dict();
+    }
+}
+
+
 Foam::wordList Foam::dictionary::toc() const
 {
     wordList keys(size());
@@ -530,7 +556,7 @@ bool Foam::dictionary::add(entry* entryPtr, bool mergeEntry)
 
             if (hashedEntries_.insert(entryPtr->keyword(), entryPtr))
             {
-                entryPtr->name() = name_ + "::" + entryPtr->keyword();
+                entryPtr->name() = name() + "::" + entryPtr->keyword();
 
                 if (entryPtr->keyword().isPattern())
                 {
@@ -558,7 +584,7 @@ bool Foam::dictionary::add(entry* entryPtr, bool mergeEntry)
 
     if (hashedEntries_.insert(entryPtr->keyword(), entryPtr))
     {
-        entryPtr->name() = name_ + "::" + entryPtr->keyword();
+        entryPtr->name() = name() + "::" + entryPtr->keyword();
         IDLList<entry>::append(entryPtr);
 
         if (entryPtr->keyword().isPattern())
@@ -763,7 +789,7 @@ bool Foam::dictionary::changeKeyword
 
     // change name and HashTable, but leave DL-List untouched
     iter()->keyword() = newKeyword;
-    iter()->name() = name_ + "::" + newKeyword;
+    iter()->name() = name() + "::" + newKeyword;
     hashedEntries_.erase(oldKeyword);
     hashedEntries_.insert(newKeyword, iter());
 
@@ -838,7 +864,7 @@ void Foam::dictionary::transfer(dictionary& dict)
 {
     // changing parents probably doesn't make much sense,
     // but what about the names?
-    name_ = dict.name_;
+    name() = dict.name();
 
     IDLList<entry>::transfer(dict);
     hashedEntries_.transfer(dict.hashedEntries_);
@@ -871,7 +897,7 @@ void Foam::dictionary::operator=(const dictionary& rhs)
             << abort(FatalError);
     }
 
-    name_ = rhs.name();
+    name() = rhs.name();
     clear();
 
     // Create clones of the entries in the given dictionary
diff --git a/src/OpenFOAM/db/dictionary/dictionary.H b/src/OpenFOAM/db/dictionary/dictionary.H
index 31ac3142378cb5d10013fa0b7e1ac20191dfacf7..8645dfadc0a8fb8b653178812741fb162b3a0f66 100644
--- a/src/OpenFOAM/db/dictionary/dictionary.H
+++ b/src/OpenFOAM/db/dictionary/dictionary.H
@@ -41,7 +41,7 @@ Description
 
 ToDo
     A merge() member function with a non-const dictionary parameter.
-    This would avoid unnecessary cloning in the add(entry*,bool) method
+    This would avoid unnecessary cloning in the add(entry*, bool) method.
 
 SourceFiles
     dictionary.C
@@ -74,6 +74,47 @@ class SHA1Digest;
 Istream& operator>>(Istream&, dictionary&);
 Ostream& operator<<(Ostream&, const dictionary&);
 
+/*---------------------------------------------------------------------------*\
+                        Class dictionaryName Declaration
+\*---------------------------------------------------------------------------*/
+
+class dictionaryName
+{
+    // Private data
+
+        fileName name_;
+
+
+public:
+
+    // Constructors
+
+        //- Construct dictionaryName null
+        dictionaryName()
+        {}
+
+        //- Construct dictionaryName as copy of the given fileName
+        dictionaryName(const fileName& name)
+        :
+            name_(name)
+        {}
+
+
+    // Member functions
+
+        //- Return the dictionary name
+        const fileName& name() const
+        {
+            return name_;
+        }
+
+        //- Return the dictionary name
+        fileName& name()
+        {
+            return name_;
+        }
+};
+
 
 /*---------------------------------------------------------------------------*\
                            Class dictionary Declaration
@@ -81,13 +122,11 @@ Ostream& operator<<(Ostream&, const dictionary&);
 
 class dictionary
 :
+    public dictionaryName,
     public IDLList<entry>
 {
     // Private data
 
-        //- Dictionary name
-        fileName name_;
-
         //- HashTable of the entries held on the DL-list for quick lookup
         HashTable<entry*> hashedEntries_;
 
@@ -100,6 +139,7 @@ class dictionary
         //- Patterns as precompiled regular expressions
         DLList<autoPtr<regExp> > patternRegexps_;
 
+
    // Private Member Functions
 
         //- Search patterns table for exact match or regular expression match
@@ -121,16 +161,6 @@ class dictionary
         );
 
 
-public:
-
-        //- Read dictionary from Istream
-        bool read(Istream&);
-
-        //- Substitute the given keyword prepended by '$' with the
-        //  corresponding sub-dictionary entries
-        bool substituteKeyword(const word& keyword);
-
-
 public:
 
     //- Declare friendship with the entry class for IO
@@ -150,10 +180,14 @@ public:
         //- Construct top-level dictionary null
         dictionary();
 
-        //- Construct from the parent dictionary and Istream, reading entries
-        //  until lastEntry or EOF
+        //- Construct top-level empty dictionary with given name
+        dictionary(const fileName& name);
+
+        //- Construct given the entry name, parent dictionary and Istream,
+        //  reading entries until lastEntry or EOF
         dictionary
         (
+            const fileName& name,
             const dictionary& parentDict,
             Istream&
         );
@@ -192,18 +226,6 @@ public:
 
     // Member functions
 
-        //- Return the dictionary name
-        const fileName& name() const
-        {
-            return name_;
-        }
-
-        //- Return the dictionary name
-        fileName& name()
-        {
-            return name_;
-        }
-
         //- Return the parent dictionary
         const dictionary& parent() const
         {
@@ -320,14 +342,23 @@ public:
             //- Find and return a sub-dictionary for manipulation
             dictionary& subDict(const word&);
 
+            //- Find and return a sub-dictionary as a copy, or
+            //  return an empty dictionary if the sub-dictionary does not exist
+            dictionary subOrEmptyDict(const word&) const;
+
             //- Return the table of contents
             wordList toc() const;
 
             //- Return the list of available keys or patterns
             List<keyType> keys(bool patterns=false) const;
 
+
         // Editing
 
+            //- Substitute the given keyword prepended by '$' with the
+            //  corresponding sub-dictionary entries
+            bool substituteKeyword(const word& keyword);
+
             //- Add a new entry
             //  With the merge option, dictionaries are interwoven and
             //  primitive entries are overwritten
@@ -400,13 +431,19 @@ public:
             //- Clear the dictionary
             void clear();
 
-            //- Transfer the contents of the argument and annull the argument.
+            //- Transfer the contents of the argument and annul the argument.
             void transfer(dictionary&);
 
             //- Transfer contents to the Xfer container
             Xfer<dictionary> xfer();
 
 
+        // Read
+
+            //- Read dictionary from Istream
+            bool read(Istream&);
+
+
         // Write
 
             void write(Ostream&, bool subDict=true) const;
diff --git a/src/OpenFOAM/db/dictionary/dictionaryEntry/dictionaryEntryIO.C b/src/OpenFOAM/db/dictionary/dictionaryEntry/dictionaryEntryIO.C
index 4ed38340530820d2d88a4852c4c1e15e96abbc80..489395e43a72dea2f3270e9475169853b8876aea 100644
--- a/src/OpenFOAM/db/dictionary/dictionaryEntry/dictionaryEntryIO.C
+++ b/src/OpenFOAM/db/dictionary/dictionaryEntry/dictionaryEntryIO.C
@@ -39,7 +39,7 @@ Foam::dictionaryEntry::dictionaryEntry
     Istream& is
 )
 :
-    entry(is),
+    entry(keyType(is)),
     dictionary(parentDict, is)
 {
     is.fatalCheck
@@ -58,10 +58,8 @@ Foam::dictionaryEntry::dictionaryEntry
 )
 :
     entry(key),
-    dictionary(parentDict, is)
+    dictionary(key, parentDict, is)
 {
-    name() += "::" + key;
-
     is.fatalCheck
     (
         "dictionaryEntry::dictionaryEntry"
diff --git a/src/OpenFOAM/db/dictionary/dictionaryIO.C b/src/OpenFOAM/db/dictionary/dictionaryIO.C
index 96196e3a11ab9a9b8e2913405f54f85f28262302..446aba828db4d353e2606a6eca374834f16abb62 100644
--- a/src/OpenFOAM/db/dictionary/dictionaryIO.C
+++ b/src/OpenFOAM/db/dictionary/dictionaryIO.C
@@ -95,11 +95,12 @@ bool Foam::dictionary::substituteKeyword(const word& keyword)
 
 Foam::dictionary::dictionary
 (
+    const fileName& name,
     const dictionary& parentDict,
     Istream& is
 )
 :
-    name_(is.name()),
+    dictionaryName(parentDict.name() + "::" + name),
     parent_(parentDict)
 {
     read(is);
@@ -108,7 +109,7 @@ Foam::dictionary::dictionary
 
 Foam::dictionary::dictionary(Istream& is)
 :
-    name_(is.name()),
+    dictionaryName(is.name()),
     parent_(dictionary::null)
 {
     // Reset input mode as this is a "top-level" dictionary
@@ -132,6 +133,7 @@ Foam::Istream& Foam::operator>>(Istream& is, dictionary& dict)
     functionEntries::inputModeEntry::clear();
 
     dict.clear();
+    dict.name() = is.name();
     dict.read(is);
 
     return is;
diff --git a/src/OpenFOAM/db/dictionary/entry/entry.C b/src/OpenFOAM/db/dictionary/entry/entry.C
index a3049a31519090b546ce3705324e7b164aa680f0..d153bb04e351e41b348a0d441694a266062b8d16 100644
--- a/src/OpenFOAM/db/dictionary/entry/entry.C
+++ b/src/OpenFOAM/db/dictionary/entry/entry.C
@@ -38,7 +38,6 @@ Foam::entry::entry(const keyType& keyword)
 
 Foam::entry::entry(const entry& e)
 :
-    IDLList<entry>::link(),
     keyword_(e.keyword_)
 {}
 
diff --git a/src/OpenFOAM/db/dictionary/entry/entry.H b/src/OpenFOAM/db/dictionary/entry/entry.H
index ddaefe74402a3a04b6ac00e7270a11a1d6c54cb3..972576e51cc5c00743cb7062923012c69ddcff5b 100644
--- a/src/OpenFOAM/db/dictionary/entry/entry.H
+++ b/src/OpenFOAM/db/dictionary/entry/entry.H
@@ -77,7 +77,7 @@ class entry
     // Private Member Functions
 
         //- Get the next valid keyword otherwise return false
-        static bool getKeyword(keyType& keyword, Istream& is);
+        static bool getKeyword(keyType&, Istream&);
 
 
 public:
@@ -85,7 +85,7 @@ public:
     // Constructors
 
         //- Construct from keyword
-        entry(const keyType& keyword);
+        entry(const keyType&);
 
         //- Construct as copy
         entry(const entry&);
@@ -102,16 +102,15 @@ public:
         virtual autoPtr<entry> clone() const;
 
         //- Construct from Istream and insert into dictionary
-        static bool New(dictionary& parentDict, Istream& is);
+        static bool New(dictionary& parentDict, Istream&);
 
         //- Construct on freestore from Istream and return
         static autoPtr<entry> New(Istream& is);
 
 
-    // Destructor
-
-        virtual ~entry()
-        {}
+    //- Destructor
+    virtual ~entry()
+    {}
 
 
     // Member functions
diff --git a/src/OpenFOAM/db/dictionary/functionEntries/removeEntry/removeEntry.C b/src/OpenFOAM/db/dictionary/functionEntries/removeEntry/removeEntry.C
index 34154cce481dd93c72b7ba02e55a513df07c18ae..78facd8e231a33e9d77432a807d66f6899dd5bc7 100644
--- a/src/OpenFOAM/db/dictionary/functionEntries/removeEntry/removeEntry.C
+++ b/src/OpenFOAM/db/dictionary/functionEntries/removeEntry/removeEntry.C
@@ -65,8 +65,8 @@ bool Foam::functionEntries::removeEntry::execute
     Istream& is
 )
 {
-    wordList dictKeys = parentDict.toc();
-    wordReList patterns(is);
+    wordList   dictKeys = parentDict.toc();
+    wordReList patterns = readList<wordRe>(is);
 
     labelList indices = findStrings(patterns, dictKeys);
 
diff --git a/src/OpenFOAM/db/functionObjects/IOOutputFilter/IOOutputFilter.C b/src/OpenFOAM/db/functionObjects/IOOutputFilter/IOOutputFilter.C
index 5346e95c2eecd239e3211173b07cc4da26375f1e..771a43b7dc1cf1b78fc453aafbf9224501541e42 100644
--- a/src/OpenFOAM/db/functionObjects/IOOutputFilter/IOOutputFilter.C
+++ b/src/OpenFOAM/db/functionObjects/IOOutputFilter/IOOutputFilter.C
@@ -29,6 +29,19 @@ License
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
+template<class OutputFilter>
+Foam::IOOutputFilter<OutputFilter>::IOOutputFilter
+(
+    const word& outputFilterName,
+    const IOobject& ioDict,
+    const bool readFromFiles
+)
+:
+    IOdictionary(ioDict),
+    OutputFilter(outputFilterName, ioDict.db(), *this, readFromFiles)
+{}
+
+
 template<class OutputFilter>
 Foam::IOOutputFilter<OutputFilter>::IOOutputFilter
 (
diff --git a/src/OpenFOAM/db/functionObjects/IOOutputFilter/IOOutputFilter.H b/src/OpenFOAM/db/functionObjects/IOOutputFilter/IOOutputFilter.H
index 51ccc952ae9222a31dfc9edfae3842088a45a387..5781d75f17fb5557c62b2b2a4d25df7652454b83 100644
--- a/src/OpenFOAM/db/functionObjects/IOOutputFilter/IOOutputFilter.H
+++ b/src/OpenFOAM/db/functionObjects/IOOutputFilter/IOOutputFilter.H
@@ -29,6 +29,11 @@ Description
     IOdictionary wrapper around OutputFilter to allow them to read from
     their associated dictionaries.
 
+Note
+    The IOobject or the objectRegistry will normally have to be
+    derived from a fvMesh for a subsequent cast (within OutputFilter)
+    to work correctly.
+
 SourceFiles
     IOOutputFilter.C
 
@@ -69,6 +74,15 @@ public:
 
     // Constructors
 
+        //- Construct from an IOobject for IOdictionary
+        //  Allow the possibility to load fields from files
+        IOOutputFilter
+        (
+            const word& outputFilterName,
+            const IOobject& ioDict,
+            const bool loadFromFile = false
+        );
+
         //- Construct for given objectRegistry and dictionary
         //  Allow dictionary to be optional
         //  Allow the possibility to load fields from files
diff --git a/src/OpenFOAM/db/functionObjects/OutputFilterFunctionObject/OutputFilterFunctionObject.C b/src/OpenFOAM/db/functionObjects/OutputFilterFunctionObject/OutputFilterFunctionObject.C
index 4e3bf3fad6849ce9daa4d5c6189716b91bd139f8..f7040df07c020f93414c8816635837dcfd385ea7 100644
--- a/src/OpenFOAM/db/functionObjects/OutputFilterFunctionObject/OutputFilterFunctionObject.C
+++ b/src/OpenFOAM/db/functionObjects/OutputFilterFunctionObject/OutputFilterFunctionObject.C
@@ -37,8 +37,43 @@ void Foam::OutputFilterFunctionObject<OutputFilter>::readDict()
     dict_.readIfPresent("region", regionName_);
     dict_.readIfPresent("dictionary", dictName_);
     dict_.readIfPresent("enabled", enabled_);
+    dict_.readIfPresent("storeFilter", storeFilter_);
 }
 
+template<class OutputFilter>
+void Foam::OutputFilterFunctionObject<OutputFilter>::allocateFilter()
+{
+    if (dictName_.size())
+    {
+        ptr_.reset
+        (
+            new IOOutputFilter<OutputFilter>
+            (
+                name(),
+                time_.lookupObject<objectRegistry>(regionName_),
+                dictName_
+            )
+        );
+    }
+    else
+    {
+        ptr_.reset
+        (
+            new OutputFilter
+            (
+                name(),
+                time_.lookupObject<objectRegistry>(regionName_),
+                dict_
+            )
+        );
+    }
+}
+
+template<class OutputFilter>
+void Foam::OutputFilterFunctionObject<OutputFilter>::destroyFilter()
+{
+    ptr_.reset();
+}
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
@@ -56,6 +91,7 @@ Foam::OutputFilterFunctionObject<OutputFilter>::OutputFilterFunctionObject
     regionName_(polyMesh::defaultRegion),
     dictName_(),
     enabled_(true),
+    storeFilter_(true),
     outputControl_(t, dict)
 {
     readDict();
@@ -83,32 +119,9 @@ bool Foam::OutputFilterFunctionObject<OutputFilter>::start()
 {
     readDict();
 
-    if (enabled_)
+    if (enabled_&&storeFilter_)
     {
-        if (dictName_.size())
-        {
-            ptr_.reset
-            (
-                new IOOutputFilter<OutputFilter>
-                (
-                    name(),
-                    time_.lookupObject<objectRegistry>(regionName_),
-                    dictName_
-                )
-            );
-        }
-        else
-        {
-            ptr_.reset
-            (
-                new OutputFilter
-                (
-                    name(),
-                    time_.lookupObject<objectRegistry>(regionName_),
-                    dict_
-                )
-            );
-        }
+        allocateFilter();
     }
 
     return true;
@@ -120,12 +133,22 @@ bool Foam::OutputFilterFunctionObject<OutputFilter>::execute()
 {
     if (enabled_)
     {
+        if (!storeFilter_)
+        {
+            allocateFilter();
+        }
+
         ptr_->execute();
 
-        if (enabled_ && outputControl_.output())
+        if (outputControl_.output())
         {
             ptr_->write();
         }
+
+        if (!storeFilter_)
+        {
+            destroyFilter();
+        }
     }
 
     return true;
@@ -137,12 +160,22 @@ bool Foam::OutputFilterFunctionObject<OutputFilter>::end()
 {
     if (enabled_)
     {
+        if (!storeFilter_)
+        {
+            allocateFilter();
+        }
+
         ptr_->end();
 
-        if (enabled_ && outputControl_.output())
+        if (outputControl_.output())
         {
             ptr_->write();
         }
+
+        if (!storeFilter_)
+        {
+            destroyFilter();
+        }
     }
 
     return true;
diff --git a/src/OpenFOAM/db/functionObjects/OutputFilterFunctionObject/OutputFilterFunctionObject.H b/src/OpenFOAM/db/functionObjects/OutputFilterFunctionObject/OutputFilterFunctionObject.H
index f6c183e803cb0aadf64d2fe346faa8d975e09d10..92f0c43196880ee575c1b89d6e20ba9021a5e9bf 100644
--- a/src/OpenFOAM/db/functionObjects/OutputFilterFunctionObject/OutputFilterFunctionObject.H
+++ b/src/OpenFOAM/db/functionObjects/OutputFilterFunctionObject/OutputFilterFunctionObject.H
@@ -27,7 +27,7 @@ Class
 
 Description
     A functionObject wrapper around OutputFilter to allow them to be
-    created via the functions list within controlDict.
+    created via the functions entry within controlDict.
 
 Note
     Since the timeIndex is used directly from Foam::Time, it is unaffected
@@ -78,6 +78,10 @@ class OutputFilterFunctionObject
         //- Switch for the execution of the functionObject
         bool enabled_;
 
+        //- Switch to store filter in between writes or use on-the-fly
+        //  construction
+        bool storeFilter_;
+
         //- Output controls
         outputFilterOutputControl outputControl_;
 
@@ -89,6 +93,12 @@ class OutputFilterFunctionObject
 
         //- Read relevant dictionary entries
         void readDict();
+ 
+        //- Creates most of the data associated with this object.
+        void allocateFilter();
+
+        //- Destroys most of the data associated with this object.
+        void destroyFilter();
 
         //- Disallow default bitwise copy construct
         OutputFilterFunctionObject(const OutputFilterFunctionObject&);
diff --git a/src/OpenFOAM/db/objectRegistry/objectRegistry.C b/src/OpenFOAM/db/objectRegistry/objectRegistry.C
index 452ad35ac606de8ea78b923eb85e5d89f58b772c..a8a7390015a35c3c49491edd8d290ac8cd3065ac 100644
--- a/src/OpenFOAM/db/objectRegistry/objectRegistry.C
+++ b/src/OpenFOAM/db/objectRegistry/objectRegistry.C
@@ -93,7 +93,7 @@ Foam::objectRegistry::~objectRegistry()
         }
     }
 
-    for (label i=0; i<nMyObjects; i++)
+    for (label i=0; i < nMyObjects; i++)
     {
         checkOut(*myObjects[i]);
     }
@@ -104,15 +104,13 @@ Foam::objectRegistry::~objectRegistry()
 
 Foam::wordList Foam::objectRegistry::names() const
 {
-    wordList objectNames(size());
+    return HashTable<regIOobject*>::toc();
+}
 
-    label count=0;
-    for (const_iterator iter = cbegin(); iter != cend(); ++iter)
-    {
-        objectNames[count++] = iter()->name();
-    }
 
-    return objectNames;
+Foam::wordList Foam::objectRegistry::sortedNames() const
+{
+    return HashTable<regIOobject*>::sortedToc();
 }
 
 
@@ -125,7 +123,7 @@ Foam::wordList Foam::objectRegistry::names(const word& ClassName) const
     {
         if (iter()->type() == ClassName)
         {
-            objectNames[count++] = iter()->name();
+            objectNames[count++] = iter.key();
         }
     }
 
@@ -135,6 +133,15 @@ Foam::wordList Foam::objectRegistry::names(const word& ClassName) const
 }
 
 
+Foam::wordList Foam::objectRegistry::sortedNames(const word& ClassName) const
+{
+    wordList sortedLst = names(ClassName);
+    sort(sortedLst);
+
+    return sortedLst;
+}
+
+
 const Foam::objectRegistry& Foam::objectRegistry::subRegistry
 (
     const word& name
@@ -151,8 +158,8 @@ Foam::label Foam::objectRegistry::getEvent() const
     if (event_ == labelMax)
     {
         WarningIn("objectRegistry::getEvent() const")
-            << "Event counter has overflowed. Resetting counter on all"
-            << " dependent objects." << endl
+            << "Event counter has overflowed. "
+            << "Resetting counter on all dependent objects." << nl
             << "This might cause extra evaluations." << endl;
 
         // Reset event counter
@@ -202,7 +209,7 @@ bool Foam::objectRegistry::checkOut(regIOobject& io) const
         if (objectRegistry::debug)
         {
             Pout<< "objectRegistry::checkOut(regIOobject&) : "
-                << name() << " : checking out " << io.name()
+                << name() << " : checking out " << iter.key()
                 << endl;
         }
 
@@ -211,7 +218,8 @@ bool Foam::objectRegistry::checkOut(regIOobject& io) const
             if (objectRegistry::debug)
             {
                 WarningIn("objectRegistry::checkOut(regIOobject&)")
-                    << name() << " : attempt to checkOut copy of " << io.name()
+                    << name() << " : attempt to checkOut copy of "
+                    << iter.key()
                     << endl;
             }
 
@@ -286,8 +294,7 @@ void Foam::objectRegistry::readModifiedObjects()
         {
             Pout<< "objectRegistry::readModifiedObjects() : "
                 << name() << " : Considering reading object "
-                << iter()->name()
-                << endl;
+                << iter.key() << endl;
         }
 
         iter()->readIfModified();
@@ -317,7 +324,7 @@ bool Foam::objectRegistry::writeObject
         {
             Pout<< "objectRegistry::write() : "
                 << name() << " : Considering writing object "
-                << iter()->name()
+                << iter.key()
                 << " with writeOpt " << iter()->writeOpt()
                 << " to file " << iter()->objectPath()
                 << endl;
diff --git a/src/OpenFOAM/db/objectRegistry/objectRegistry.H b/src/OpenFOAM/db/objectRegistry/objectRegistry.H
index 1f2d30d93e716f6951b30ea8f04cc4f722065b5a..6e7c5c04f6ebbf2eedeb2ea7e46e2d181717a348 100644
--- a/src/OpenFOAM/db/objectRegistry/objectRegistry.H
+++ b/src/OpenFOAM/db/objectRegistry/objectRegistry.H
@@ -132,9 +132,15 @@ public:
             //- Return the list of names of the IOobjects
             wordList names() const;
 
-            //- Return the list of names of the IOobjects of given class name
+            //- Return the sorted list of names of the IOobjects
+            wordList sortedNames() const;
+
+            //- Return the list of names of IOobjects of given class name
             wordList names(const word& className) const;
 
+            //- Return the sorted list of names of IOobjects of given class name
+            wordList sortedNames(const word& className) const;
+
             //- Return the list of names of the IOobjects of given type
             template<class Type>
             wordList names() const;
@@ -142,11 +148,11 @@ public:
             //- Lookup and return a const sub-objectRegistry
             const objectRegistry& subRegistry(const word& name) const;
 
-            //- Lookup and return all the object of the given Type
+            //- Lookup and return all objects of the given Type
             template<class Type>
             HashTable<const Type*> lookupClass() const;
 
-            //- Is the named Type
+            //- Is the named Type found?
             template<class Type>
             bool foundObject(const word& name) const;
 
diff --git a/src/OpenFOAM/db/scalarRange/scalarRange.C b/src/OpenFOAM/db/scalarRange/scalarRange.C
index 393b19bba42846845b7737bdc3e125733789b5d6..239aa44c4101980ccf94312fd0767fa6fe375b26 100644
--- a/src/OpenFOAM/db/scalarRange/scalarRange.C
+++ b/src/OpenFOAM/db/scalarRange/scalarRange.C
@@ -315,7 +315,7 @@ Foam::Istream& Foam::operator>>(Istream& is, scalarRange& range)
         Info<< "rejected ill-formed range:";
         for (label i=0; i<nTok; ++i)
         {
-            Info << " " << toks[i];
+            Info<< " " << toks[i];
         }
         Info<< endl;
     }
diff --git a/src/OpenFOAM/dimensionSet/dimensionSet.C b/src/OpenFOAM/dimensionSet/dimensionSet.C
index e60a3998d449859a078c6a750e98d45181c0d999..8ae8e27a3d9281734d8ec0f4f34e77d264c5e63f 100644
--- a/src/OpenFOAM/dimensionSet/dimensionSet.C
+++ b/src/OpenFOAM/dimensionSet/dimensionSet.C
@@ -26,6 +26,7 @@ License
 
 #include "dimensionSet.H"
 #include "dimensionedScalar.H"
+#include "OStringStream.H"
 
 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
 
@@ -79,30 +80,109 @@ Foam::dimensionSet::dimensionSet
 
 bool Foam::dimensionSet::dimensionless() const
 {
-    bool Dimensionless = true;
-
-    for (int Dimension=0; Dimension<nDimensions; Dimension++)
+    for (int Dimension=0; Dimension<nDimensions; ++Dimension)
     {
-        Dimensionless = Dimensionless &&
+        // ie, mag(exponents_[Dimension]) > smallExponent
+        if
         (
-            exponents_[Dimension] < smallExponent
-         && exponents_[Dimension] > -smallExponent
-        );
+            exponents_[Dimension] > smallExponent
+         || exponents_[Dimension] < -smallExponent
+        )
+        {
+            return false;
+        }
     }
 
-    return Dimensionless;
+    return true;
 }
 
 
 void Foam::dimensionSet::reset(const dimensionSet& ds)
 {
-    for (int Dimension=0; Dimension<nDimensions; Dimension++)
+    for (int Dimension=0; Dimension<nDimensions; ++Dimension)
     {
         exponents_[Dimension] = ds.exponents_[Dimension];
     }
 }
 
 
+Foam::string Foam::dimensionSet::asText() const
+{
+    OStringStream buf;
+
+    bool Dimensionless = true;
+
+    for (int Dimension=0; Dimension < dimensionSet::nDimensions-1; ++Dimension)
+    {
+        const scalar& expt = exponents_[Dimension];
+
+        if (expt < smallExponent && expt > -smallExponent)
+        {
+            continue;
+        }
+
+        if (Dimensionless)
+        {
+            Dimensionless = false;
+        }
+        else
+        {
+            buf << ' ';
+        }
+
+        // note: currently only handle SI
+        switch (Dimension)
+        {
+            case MASS:
+                buf << "kg";
+                break;
+
+            case LENGTH:
+                buf << "m";
+                break;
+
+            case TIME:
+                buf << "s";
+                break;
+
+            case TEMPERATURE:
+                buf << "K";
+                break;
+
+            case MOLES:
+                buf << "mol";
+                break;
+
+            case CURRENT:
+                buf << "A";
+                break;
+
+            case LUMINOUS_INTENSITY:
+                buf << "Cd";
+                break;
+
+            default:
+                buf << "??";  // this shouldn't be - flag as being weird
+                break;
+        }
+
+        if (expt != 1)
+        {
+            buf << '^' << expt;
+        }
+    }
+
+    if (Dimensionless)
+    {
+        return "none";
+    }
+    else
+    {
+        return buf.str();
+    }
+}
+
+
 // * * * * * * * * * * * * * * * Member Operators  * * * * * * * * * * * * * //
 
 Foam::scalar Foam::dimensionSet::operator[](const dimensionType type) const
@@ -119,16 +199,19 @@ Foam::scalar& Foam::dimensionSet::operator[](const dimensionType type)
 
 bool Foam::dimensionSet::operator==(const dimensionSet& ds) const
 {
-    bool equall = true;
-
-    for (int Dimension=0; Dimension<nDimensions; Dimension++)
+    for (int Dimension=0; Dimension < nDimensions; ++Dimension)
     {
-        equall = equall &&
-            (mag(exponents_[Dimension] - ds.exponents_[Dimension])
-          < smallExponent);
+        if
+        (
+            mag(exponents_[Dimension] - ds.exponents_[Dimension])
+          > smallExponent
+        )
+        {
+            return false;
+        }
     }
 
-    return equall;
+    return true;
 }
 
 
@@ -142,7 +225,7 @@ bool Foam::dimensionSet::operator=(const dimensionSet& ds) const
 {
     if (dimensionSet::debug && *this != ds)
     {
-        FatalErrorIn("dimensionSet::operator=(const dimensionSet& ds) const")
+        FatalErrorIn("dimensionSet::operator=(const dimensionSet&) const")
             << "Different dimensions for =" << endl
             << "     dimensions : " << *this << " = " << ds << endl
             << abort(FatalError);
@@ -156,7 +239,7 @@ bool Foam::dimensionSet::operator+=(const dimensionSet& ds) const
 {
     if (dimensionSet::debug && *this != ds)
     {
-        FatalErrorIn("dimensionSet::operator+=(const dimensionSet& ds) const")
+        FatalErrorIn("dimensionSet::operator+=(const dimensionSet&) const")
             << "Different dimensions for +=" << endl
             << "     dimensions : " << *this << " = " << ds << endl
             << abort(FatalError);
@@ -170,7 +253,7 @@ bool Foam::dimensionSet::operator-=(const dimensionSet& ds) const
 {
     if (dimensionSet::debug && *this != ds)
     {
-        FatalErrorIn("dimensionSet::operator-=(const dimensionSet& ds) const")
+        FatalErrorIn("dimensionSet::operator-=(const dimensionSet&) const")
             << "Different dimensions for -=" << endl
             << "     dimensions : " << *this << " = " << ds << endl
             << abort(FatalError);
@@ -202,7 +285,7 @@ Foam::dimensionSet Foam::max(const dimensionSet& ds1, const dimensionSet& ds2)
 {
     if (dimensionSet::debug && ds1 != ds2)
     {
-        FatalErrorIn("max(const dimensionSet& ds1, const dimensionSet& ds2)")
+        FatalErrorIn("max(const dimensionSet&, const dimensionSet&)")
             << "Arguments of max have different dimensions" << endl
             << "     dimensions : " << ds1 << " and " << ds2 << endl
             << abort(FatalError);
@@ -216,7 +299,7 @@ Foam::dimensionSet Foam::min(const dimensionSet& ds1, const dimensionSet& ds2)
 {
     if (dimensionSet::debug && ds1 != ds2)
     {
-        FatalErrorIn("min(const dimensionSet& ds1, const dimensionSet& ds2)")
+        FatalErrorIn("min(const dimensionSet&, const dimensionSet&)")
             << "Arguments of min have different dimensions" << endl
             << "     dimensions : " << ds1 << " and " << ds2 << endl
             << abort(FatalError);
@@ -271,8 +354,8 @@ Foam::dimensionSet Foam::pow
 {
     if (dimensionSet::debug && !dS.dimensions().dimensionless())
     {
-        FatalErrorIn("pow(const dimensionSet& ds, const dimensionedScalar& dS)")
-            << "Exponent of pow are not dimensionless"
+        FatalErrorIn("pow(const dimensionSet&, const dimensionedScalar&)")
+            << "Exponent of pow is not dimensionless"
             << abort(FatalError);
     }
 
@@ -301,9 +384,10 @@ Foam::dimensionSet Foam::pow
     (
         dimensionSet::debug
      && !dS.dimensions().dimensionless()
-     && !ds.dimensionless())
+     && !ds.dimensionless()
+    )
     {
-        FatalErrorIn("pow(const dimensionedScalar& dS, const dimensionSet& ds)")
+        FatalErrorIn("pow(const dimensionedScalar&, const dimensionSet&)")
             << "Argument or exponent of pow not dimensionless" << endl
             << abort(FatalError);
     }
@@ -394,7 +478,7 @@ Foam::dimensionSet Foam::trans(const dimensionSet& ds)
 {
     if (dimensionSet::debug && !ds.dimensionless())
     {
-        FatalErrorIn("trans(const dimensionSet& ds)")
+        FatalErrorIn("trans(const dimensionSet&)")
             << "Argument of trancendental function not dimensionless"
             << abort(FatalError);
     }
@@ -428,7 +512,7 @@ Foam::dimensionSet Foam::operator+
     if (dimensionSet::debug && ds1 != ds2)
     {
         FatalErrorIn
-            ("operator+(const dimensionSet& ds1, const dimensionSet& ds2)")
+            ("operator+(const dimensionSet&, const dimensionSet&)")
             << "LHS and RHS of + have different dimensions" << endl
             << "     dimensions : " << ds1 << " + " << ds2 << endl
             << abort(FatalError);
@@ -449,7 +533,7 @@ Foam::dimensionSet Foam::operator-
     if (dimensionSet::debug && ds1 != ds2)
     {
         FatalErrorIn
-            ("operator-(const dimensionSet& ds1, const dimensionSet& ds2)")
+            ("operator-(const dimensionSet&, const dimensionSet&)")
             << "LHS and RHS of - have different dimensions" << endl
             << "     dimensions : " << ds1 << " - " << ds2 << endl
             << abort(FatalError);
diff --git a/src/OpenFOAM/dimensionSet/dimensionSet.H b/src/OpenFOAM/dimensionSet/dimensionSet.H
index 13b0a899a9c87507d022fd5745f3c1cbad711bdc..67ca74b3c9b77bf7b70ae5ba9306ccb06b49b73c 100644
--- a/src/OpenFOAM/dimensionSet/dimensionSet.H
+++ b/src/OpenFOAM/dimensionSet/dimensionSet.H
@@ -27,6 +27,7 @@ Class
 
 Description
     Dimension set for the base types.
+
     This type may be used to implement rigorous dimension checking
     for algebraic manipulation.
 
@@ -105,7 +106,7 @@ Ostream& operator<<(Ostream&, const dimensionSet&);
 
 
 /*---------------------------------------------------------------------------*\
-                           Class dimensionSet Declaration
+                        Class dimensionSet Declaration
 \*---------------------------------------------------------------------------*/
 
 class dimensionSet
@@ -184,9 +185,14 @@ public:
 
     // Member functions
 
+        //- Return true if it is dimensionless
         bool dimensionless() const;
+
         void reset(const dimensionSet&);
 
+        //- Return a text representation for added readability
+        string asText() const;
+
 
     // Member operators
 
diff --git a/src/OpenFOAM/fields/FieldFields/FieldField/FieldFieldFunctions.C b/src/OpenFOAM/fields/FieldFields/FieldField/FieldFieldFunctions.C
index c0600bd97c4afc124d10ddc6eeaafc3f674c4c51..a5418574f6ae5c8e3e1affa3e9b2f2df7adb1e2a 100644
--- a/src/OpenFOAM/fields/FieldFields/FieldField/FieldFieldFunctions.C
+++ b/src/OpenFOAM/fields/FieldFields/FieldField/FieldFieldFunctions.C
@@ -412,7 +412,7 @@ template<template<class> class Field, class Type>
 Type max(const FieldField<Field, Type>& f)
 {
     label i = 0;
-    while(i < f.size() && !f[i].size()) i++;
+    while (i < f.size() && !f[i].size()) i++;
 
     if (i < f.size())
     {
@@ -440,12 +440,12 @@ template<template<class> class Field, class Type>
 Type min(const FieldField<Field, Type>& f)
 {
     label i = 0;
-    while(i < f.size() && !f[i].size()) i++;
+    while (i < f.size() && !f[i].size()) i++;
 
     if (i < f.size())
     {
         label i = 0;
-        while(!f[i].size()) i++;
+        while (!f[i].size()) i++;
 
         Type Min(min(f[i]));
 
diff --git a/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricField.C b/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricField.C
index 705ee5e2b4e7f27207a9e53f7e2e31b9aebce160..25a90ba64c3be8f10a38e614b9a0acbc8a9221f5 100644
--- a/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricField.C
+++ b/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricField.C
@@ -52,20 +52,11 @@ Foam::tmp
     typename Foam::GeometricField<Type, PatchField, GeoMesh>::
     GeometricBoundaryField
 >
-Foam::GeometricField<Type, PatchField, GeoMesh>::readField(Istream& is)
+Foam::GeometricField<Type, PatchField, GeoMesh>::readField
+(
+    const dictionary& fieldDict
+)
 {
-    if (is.version() < 2.0)
-    {
-        FatalIOErrorIn
-        (
-            "GeometricField<Type, PatchField, GeoMesh>::readField(Istream&)",
-            is
-        )   << "IO versions < 2.0 are not supported."
-            << exit(FatalIOError);
-    }
-
-    dictionary fieldDict(is);
-
     DimensionedField<Type, GeoMesh>::readField(fieldDict, "internalField");
 
     tmp<GeometricBoundaryField> tboundaryField
@@ -96,6 +87,28 @@ Foam::GeometricField<Type, PatchField, GeoMesh>::readField(Istream& is)
 }
 
 
+template<class Type, template<class> class PatchField, class GeoMesh>
+Foam::tmp
+<
+    typename Foam::GeometricField<Type, PatchField, GeoMesh>::
+    GeometricBoundaryField
+>
+Foam::GeometricField<Type, PatchField, GeoMesh>::readField(Istream& is)
+{
+    if (is.version() < 2.0)
+    {
+        FatalIOErrorIn
+        (
+            "GeometricField<Type, PatchField, GeoMesh>::readField(Istream&)",
+            is
+        )   << "IO versions < 2.0 are not supported."
+            << exit(FatalIOError);
+    }
+
+    return readField(dictionary(is));
+}
+
+
 template<class Type, template<class> class PatchField, class GeoMesh>
 bool Foam::GeometricField<Type, PatchField, GeoMesh>::readIfPresent()
 {
@@ -404,6 +417,44 @@ Foam::GeometricField<Type, PatchField, GeoMesh>::GeometricField
 }
 
 
+template<class Type, template<class> class PatchField, class GeoMesh>
+Foam::GeometricField<Type, PatchField, GeoMesh>::GeometricField
+(
+    const IOobject& io,
+    const Mesh& mesh,
+    const dictionary& dict
+)
+:
+    DimensionedField<Type, GeoMesh>(io, mesh, dimless),
+    timeIndex_(this->time().timeIndex()),
+    field0Ptr_(NULL),
+    fieldPrevIterPtr_(NULL),
+    boundaryField_(*this, readField(dict))
+{
+    // Check compatibility between field and mesh
+
+    if (this->size() != GeoMesh::size(this->mesh()))
+    {
+        FatalErrorIn
+        (
+            "GeometricField<Type, PatchField, GeoMesh>::GeometricField"
+            "(const IOobject&, const Mesh&, const dictionary&)"
+        )   << "   number of field elements = " << this->size()
+            << " number of mesh elements = " << GeoMesh::size(this->mesh())
+            << exit(FatalIOError);
+    }
+
+    readOldTimeIfPresent();
+
+    if (debug)
+    {
+        Info<< "Finishing dictionary-construct of "
+               "GeometricField<Type, PatchField, GeoMesh>"
+            << endl << this->info() << endl;
+    }
+}
+
+
 // construct as copy
 template<class Type, template<class> class PatchField, class GeoMesh>
 Foam::GeometricField<Type, PatchField, GeoMesh>::GeometricField
diff --git a/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricField.H b/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricField.H
index 71e2bbf34cf95c4e59d5ba3f4b1fc1bf317f96ec..1abca4cc871b68c6d89ee8786b2e8fab36fd0d94 100644
--- a/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricField.H
+++ b/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricField.H
@@ -240,6 +240,9 @@ private:
 
     // Private member functions
 
+        //- Read the field from the dictionary
+        tmp<GeometricBoundaryField> readField(const dictionary&);
+
         //- Read the field from the given stream
         tmp<GeometricBoundaryField> readField(Istream& is);
 
@@ -327,6 +330,14 @@ public:
             Istream&
         );
 
+        //- Construct from dictionary
+        GeometricField
+        (
+            const IOobject&,
+            const Mesh&,
+            const dictionary&
+        );
+
         //- Construct as copy
         GeometricField
         (
diff --git a/src/OpenFOAM/global/argList/argList.H b/src/OpenFOAM/global/argList/argList.H
index 45c8de16ec338d21ed5b8f1d86f12e5f117b65f1..2682803807cdc7afcf95dac50aae22824ea4d44e 100644
--- a/src/OpenFOAM/global/argList/argList.H
+++ b/src/OpenFOAM/global/argList/argList.H
@@ -234,35 +234,16 @@ public:
 
             //- Read a value from the named option
             template<class T>
-            T optionRead(const word& opt) const
-            {
-                T val;
-                optionLookup(opt)() >> val;
-                return val;
-            }
+            T optionRead(const word& opt) const;
 
             //- Read a value from the named option if present.
             //  Return true if the named option was found.
             template<class T>
-            bool optionReadIfPresent(const word& opt, T& val) const
-            {
-                if (optionFound(opt))
-                {
-                    optionLookup(opt)() >> val;
-                    return true;
-                }
-                else
-                {
-                    return false;
-                }
-            }
+            bool optionReadIfPresent(const word& opt, T& val) const;
 
             //- Read a List of values from the named option
             template<class T>
-            List<T> optionReadList(const word& opt) const
-            {
-                return readList<T>(optionLookup(opt)());
-            }
+            List<T> optionReadList(const word& opt) const;
 
 
         // Edit
@@ -300,6 +281,12 @@ public:
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
+#ifdef NoRepository
+#   include "argListTemplates.C"
+#endif
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
 #endif
 
 // ************************************************************************* //
diff --git a/src/OpenFOAM/global/argList/argListTemplates.C b/src/OpenFOAM/global/argList/argListTemplates.C
new file mode 100644
index 0000000000000000000000000000000000000000..8bc3da3469cebeca753e0b211523727e49503d56
--- /dev/null
+++ b/src/OpenFOAM/global/argList/argListTemplates.C
@@ -0,0 +1,63 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2009-2009 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 2 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, write to the Free Software Foundation,
+    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+\*---------------------------------------------------------------------------*/
+
+#include "argList.H"
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+template<class T>
+T Foam::argList::optionRead(const word& opt) const
+{
+    T val;
+
+    optionLookup(opt)() >> val;
+    return val;
+}
+
+
+template<class T>
+bool Foam::argList::optionReadIfPresent(const word& opt, T& val) const
+{
+    if (optionFound(opt))
+    {
+        val = optionRead<T>(opt);
+        return true;
+    }
+    else
+    {
+        return false;
+    }
+}
+
+
+template<class T>
+Foam::List<T> Foam::argList::optionReadList(const word& opt) const
+{
+    return readList<T>(optionLookup(opt)());
+}
+
+
+// ************************************************************************* //
diff --git a/src/OpenFOAM/interpolations/patchToPatchInterpolation/CalcPatchToPatchWeights.C b/src/OpenFOAM/interpolations/patchToPatchInterpolation/CalcPatchToPatchWeights.C
index 534cb5e1075d67fff0fc0742a4d730d801bc0c87..2f1945ac8edd9a2c81438be7eee5bb409b7930ab 100644
--- a/src/OpenFOAM/interpolations/patchToPatchInterpolation/CalcPatchToPatchWeights.C
+++ b/src/OpenFOAM/interpolations/patchToPatchInterpolation/CalcPatchToPatchWeights.C
@@ -63,7 +63,7 @@ void PatchToPatchInterpolation<FromPatch, ToPatch>::calcPointAddressing() const
 
     if (debug)
     {
-        Info << "projecting points" << endl;
+        Info<< "projecting points" << endl;
     }
 
     List<objectHit> proj =
@@ -139,7 +139,7 @@ void PatchToPatchInterpolation<FromPatch, ToPatch>::calcPointAddressing() const
                   + projectionDirection[pointI]*ph.distance()
                   - ph.missPoint()
                 );
-                
+
             // Calculate the local tolerance
             scalar minEdgeLength = GREAT;
 
@@ -244,7 +244,7 @@ void PatchToPatchInterpolation<FromPatch, ToPatch>::calcFaceAddressing() const
 
     if (debug)
     {
-        Info << "projecting face centres" << endl;
+        Info<< "projecting face centres" << endl;
     }
 
     const pointField& fromPatchPoints = fromPatch_.points();
@@ -274,7 +274,7 @@ void PatchToPatchInterpolation<FromPatch, ToPatch>::calcFaceAddressing() const
         );
 
     faceAddressingPtr_ = new labelList(proj.size(), -1);
-    labelList& faceAddressing = *faceAddressingPtr_;        
+    labelList& faceAddressing = *faceAddressingPtr_;
 
     forAll (faceAddressing, faceI)
     {
diff --git a/src/OpenFOAM/matrices/Matrix/Matrix.C b/src/OpenFOAM/matrices/Matrix/Matrix.C
index 7f91a5f36c81eba94c32410da02d3c1b83d66266..0062d897a431b8a33466541181e5a9db1e732598 100644
--- a/src/OpenFOAM/matrices/Matrix/Matrix.C
+++ b/src/OpenFOAM/matrices/Matrix/Matrix.C
@@ -235,12 +235,12 @@ void Foam::Matrix<Form, Type>::operator=(const Matrix<Form, Type>& a)
 template<class Form, class Type>
 const Type& Foam::max(const Matrix<Form, Type>& a)
 {
-    label nm = a.n_*a.m_;
+    label nm = a.n()*a.m();
 
     if (nm)
     {
         label curMaxI = 0;
-        const Type* v = a.v_[0];
+        const Type* v = a[0];
 
         for (register label i=1; i<nm; i++)
         {
@@ -267,12 +267,12 @@ const Type& Foam::max(const Matrix<Form, Type>& a)
 template<class Form, class Type>
 const Type& Foam::min(const Matrix<Form, Type>& a)
 {
-    label nm = a.n_*a.m_;
+    label nm = a.n()*a.m();
 
     if (nm)
     {
         label curMinI = 0;
-        const Type* v = a.v_[0];
+        const Type* v = a[0];
 
         for (register label i=1; i<nm; i++)
         {
@@ -301,14 +301,14 @@ const Type& Foam::min(const Matrix<Form, Type>& a)
 template<class Form, class Type>
 Form Foam::operator-(const Matrix<Form, Type>& a)
 {
-    Form na(a.n_, a.m_);
+    Form na(a.n(), a.m());
 
-    if (a.n_ && a.m_)
+    if (a.n() && a.m())
     {
-        Type* nav = na.v_[0];
-        const Type* av = a.v_[0];
+        Type* nav = na[0];
+        const Type* av = a[0];
 
-        label nm = a.n_*a.m_;
+        label nm = a.n()*a.m();
         for (register label i=0; i<nm; i++)
         {
             nav[i] = -av[i];
@@ -322,33 +322,33 @@ Form Foam::operator-(const Matrix<Form, Type>& a)
 template<class Form, class Type>
 Form Foam::operator+(const Matrix<Form, Type>& a, const Matrix<Form, Type>& b)
 {
-    if (a.n_ != b.n_)
+    if (a.n() != b.n())
     {
         FatalErrorIn
         (
             "Matrix<Form, Type>::operator+(const Matrix<Form, Type>&, const Matrix<Form, Type>&)"
         )   << "attempted add matrices with different number of rows: "
-            << a.n_ << ", " << b.n_
+            << a.n() << ", " << b.n()
             << abort(FatalError);
     }
 
-    if (a.m_ != b.m_)
+    if (a.m() != b.m())
     {
         FatalErrorIn
         (
             "Matrix<Form, Type>::operator+(const Matrix<Form, Type>&, const Matrix<Form, Type>&)"
         )   << "attempted add matrices with different number of columns: "
-            << a.m_ << ", " << b.m_
+            << a.m() << ", " << b.m()
             << abort(FatalError);
     }
 
-    Form ab(a.n_, a.m_);
+    Form ab(a.n(), a.m());
 
-    Type* abv = ab.v_[0];
-    const Type* av = a.v_[0];
-    const Type* bv = b.v_[0];
+    Type* abv = ab[0];
+    const Type* av = a[0];
+    const Type* bv = b[0];
 
-    label nm = a.n_*a.m_;
+    label nm = a.n()*a.m();
     for (register label i=0; i<nm; i++)
     {
         abv[i] = av[i] + bv[i];
@@ -361,33 +361,33 @@ Form Foam::operator+(const Matrix<Form, Type>& a, const Matrix<Form, Type>& b)
 template<class Form, class Type>
 Form Foam::operator-(const Matrix<Form, Type>& a, const Matrix<Form, Type>& b)
 {
-    if (a.n_ != b.n_)
+    if (a.n() != b.n())
     {
         FatalErrorIn
         (
             "Matrix<Form, Type>::operator-(const Matrix<Form, Type>&, const Matrix<Form, Type>&)"
         )   << "attempted add matrices with different number of rows: "
-            << a.n_ << ", " << b.n_
+            << a.n() << ", " << b.n()
             << abort(FatalError);
     }
 
-    if (a.m_ != b.m_)
+    if (a.m() != b.m())
     {
         FatalErrorIn
         (
             "Matrix<Form, Type>::operator-(const Matrix<Form, Type>&, const Matrix<Form, Type>&)"
         )   << "attempted add matrices with different number of columns: "
-            << a.m_ << ", " << b.m_
+            << a.m() << ", " << b.m()
             << abort(FatalError);
     }
 
-    Form ab(a.n_, a.m_);
+    Form ab(a.n(), a.m());
 
-    Type* abv = ab.v_[0];
-    const Type* av = a.v_[0];
-    const Type* bv = b.v_[0];
+    Type* abv = ab[0];
+    const Type* av = a[0];
+    const Type* bv = b[0];
 
-    label nm = a.n_*a.m_;
+    label nm = a.n()*a.m();
     for (register label i=0; i<nm; i++)
     {
         abv[i] = av[i] - bv[i];
@@ -400,14 +400,14 @@ Form Foam::operator-(const Matrix<Form, Type>& a, const Matrix<Form, Type>& b)
 template<class Form, class Type>
 Form Foam::operator*(const scalar s, const Matrix<Form, Type>& a)
 {
-    Form sa(a.n_, a.m_);
+    Form sa(a.n(), a.m());
 
-    if (a.n_ && a.m_)
+    if (a.n() && a.m())
     {
-        Type* sav = sa.v_[0];
-        const Type* av = a.v_[0];
+        Type* sav = sa[0];
+        const Type* av = a[0];
 
-        label nm = a.n_*a.m_;
+        label nm = a.n()*a.m();
         for (register label i=0; i<nm; i++)
         {
             sav[i] = s*av[i];
diff --git a/src/OpenFOAM/matrices/Matrix/Matrix.H b/src/OpenFOAM/matrices/Matrix/Matrix.H
index fd623fdb206dc0746c78aaebadbd6e10ff9567a9..0847578edd5682463abdbc987f7ef28cbd9b194e 100644
--- a/src/OpenFOAM/matrices/Matrix/Matrix.H
+++ b/src/OpenFOAM/matrices/Matrix/Matrix.H
@@ -151,7 +151,7 @@ public:
             void clear();
 
             //- Transfer the contents of the argument Matrix into this Matrix
-            //  and annull the argument Matrix.
+            //  and annul the argument Matrix.
             void transfer(Matrix<Form, Type>&);
 
 
@@ -161,10 +161,10 @@ public:
 
     // Member operators
 
-        //- Return subscript-checked element of Matrix.
+        //- Return subscript-checked row of Matrix.
         inline Type* operator[](const label);
 
-        //- Return subscript-checked element of constant Matrix.
+        //- Return subscript-checked row of constant Matrix.
         inline const Type* operator[](const label) const;
 
         //- Assignment operator. Takes linear time.
diff --git a/src/OpenFOAM/matrices/scalarMatrices/SVD/SVD.C b/src/OpenFOAM/matrices/scalarMatrices/SVD/SVD.C
index 585c8c2dda427af99d6e0a4bb76e12be9e52d58c..3576c701c5ed88c3d1b4963c8b99723e569abd5b 100644
--- a/src/OpenFOAM/matrices/scalarMatrices/SVD/SVD.C
+++ b/src/OpenFOAM/matrices/scalarMatrices/SVD/SVD.C
@@ -368,7 +368,7 @@ Foam::SVD::SVD(const scalarRectangularMatrix& A, const scalar minCondition)
     {
         if (S_[i] <= minS)
         {
-            //Info << "Removing " << S_[i] << " < " << minS << endl;
+            //Info<< "Removing " << S_[i] << " < " << minS << endl;
             S_[i] = 0;
             nZeros_++;
         }
@@ -382,19 +382,19 @@ Foam::SVD::SVD(const scalarRectangularMatrix& A, const scalar minCondition)
     multiply(SVDA, U_, S_, transpose(V_));
     scalar maxDiff = 0;
     scalar diff = 0;
-    for(label i = 0; i < A.n(); i++)
+    for (label i = 0; i < A.n(); i++)
     {
-        for(label j = 0; j < A.m(); j++)
+        for (label j = 0; j < A.m(); j++)
         {
             diff = mag(A[i][j] - SVDA[i][j]);
             if (diff > maxDiff) maxDiff = diff;
         }
     }
-    Info << "Maximum discrepancy between A and svd(A) = " << maxDiff << endl;
+    Info<< "Maximum discrepancy between A and svd(A) = " << maxDiff << endl;
 
     if (maxDiff > 4)
     {
-        Info << "singular values " << S_ << endl;
+        Info<< "singular values " << S_ << endl;
     }
     */
 }
diff --git a/src/OpenFOAM/matrices/scalarMatrices/SVD/SVDI.H b/src/OpenFOAM/matrices/scalarMatrices/SVD/SVDI.H
index 82d6c5a6c2545b4927bfaf0c017843db49d21d0f..9f406440cda09d51fcfbe4ed7eac30ec97b9cf7a 100644
--- a/src/OpenFOAM/matrices/scalarMatrices/SVD/SVDI.H
+++ b/src/OpenFOAM/matrices/scalarMatrices/SVD/SVDI.H
@@ -63,7 +63,7 @@ inline Foam::label Foam::SVD::nZeros() const
 inline Foam::scalar Foam::SVD::minNonZeroS() const
 {
     scalar minS = S_[0];
-    for(label i = 1; i < S_.size(); i++)
+    for (label i = 1; i < S_.size(); i++)
     {
         scalar s = S_[i];
         if (s > VSMALL && s < minS) minS = s;
diff --git a/src/OpenFOAM/matrices/scalarMatrices/scalarMatrices.C b/src/OpenFOAM/matrices/scalarMatrices/scalarMatrices.C
index 53fdf6ecfe786eabe194d8d53e635cf1dc6d7480..56fe4f6742cf9ec79bacd29b2a516c906e6e651e 100644
--- a/src/OpenFOAM/matrices/scalarMatrices/scalarMatrices.C
+++ b/src/OpenFOAM/matrices/scalarMatrices/scalarMatrices.C
@@ -159,11 +159,11 @@ void Foam::multiply
 
     ans = scalarRectangularMatrix(A.n(), B.m(), scalar(0));
 
-    for(register label i = 0; i < A.n(); i++)
+    for (register label i = 0; i < A.n(); i++)
     {
-        for(register label j = 0; j < B.m(); j++)
+        for (register label j = 0; j < B.m(); j++)
         {
-            for(register label l = 0; l < B.n(); l++)
+            for (register label l = 0; l < B.n(); l++)
             {
                 ans[i][j] += A[i][l]*B[l][j];
             }
@@ -210,14 +210,14 @@ void Foam::multiply
 
     ans = scalarRectangularMatrix(A.n(), C.m(), scalar(0));
 
-    for(register label i = 0; i < A.n(); i++)
+    for (register label i = 0; i < A.n(); i++)
     {
-        for(register label g = 0; g < C.m(); g++)
+        for (register label g = 0; g < C.m(); g++)
         {
-            for(register label l = 0; l < C.n(); l++)
+            for (register label l = 0; l < C.n(); l++)
             {
                 scalar ab = 0;
-                for(register label j = 0; j < A.m(); j++)
+                for (register label j = 0; j < A.m(); j++)
                 {
                     ab += A[i][j]*B[j][l];
                 }
@@ -266,11 +266,11 @@ void Foam::multiply
 
     ans = scalarRectangularMatrix(A.n(), C.m(), scalar(0));
 
-    for(register label i = 0; i < A.n(); i++)
+    for (register label i = 0; i < A.n(); i++)
     {
-        for(register label g = 0; g < C.m(); g++)
+        for (register label g = 0; g < C.m(); g++)
         {
-            for(register label l = 0; l < C.n(); l++)
+            for (register label l = 0; l < C.n(); l++)
             {
                 ans[i][g] += C[l][g] * A[i][l]*B[l];
             }
diff --git a/src/OpenFOAM/meshes/meshShapes/cellMatcher/cellMatcher.C b/src/OpenFOAM/meshes/meshShapes/cellMatcher/cellMatcher.C
index dffd5db8bb6b6b599bb8c50a1f56a5bd52b938f4..93046b330794c8c8ed6b984ee4699029b4c965f3 100644
--- a/src/OpenFOAM/meshes/meshShapes/cellMatcher/cellMatcher.C
+++ b/src/OpenFOAM/meshes/meshShapes/cellMatcher/cellMatcher.C
@@ -284,7 +284,7 @@ void Foam::cellMatcher::write(Foam::Ostream& os) const
     {
         os  << "    ";
 
-        for(label fp = 0; fp < faceSize_[faceI]; fp++)
+        for (label fp = 0; fp < faceSize_[faceI]; fp++)
         {
             os  << ' ' << localFaces_[faceI][fp];
         }
diff --git a/src/OpenFOAM/meshes/meshShapes/cellMatcher/tetWedgeMatcher.C b/src/OpenFOAM/meshes/meshShapes/cellMatcher/tetWedgeMatcher.C
index 00aacad3ad32cca4bea904603d550b3aca771ddd..af815d5873636a49a1b20202c602e361efc22a82 100644
--- a/src/OpenFOAM/meshes/meshShapes/cellMatcher/tetWedgeMatcher.C
+++ b/src/OpenFOAM/meshes/meshShapes/cellMatcher/tetWedgeMatcher.C
@@ -116,7 +116,7 @@ bool Foam::tetWedgeMatcher::matchShape
     const face& face0 = localFaces_[face0I];
 
     // Try all rotations of this face
-    for(label face0vert0 = 0; face0vert0 < faceSize_[face0I]; face0vert0++)
+    for (label face0vert0 = 0; face0vert0 < faceSize_[face0I]; face0vert0++)
     {
         //
         // Try to follow prespecified path on faces of cell,
diff --git a/src/OpenFOAM/meshes/meshShapes/cellMatcher/wedgeMatcher.C b/src/OpenFOAM/meshes/meshShapes/cellMatcher/wedgeMatcher.C
index 79af03bad80b00081f44df4b802f71e74d5cd049..97512ad427ebfe72cec5174558e1e72ec067e0e0 100644
--- a/src/OpenFOAM/meshes/meshShapes/cellMatcher/wedgeMatcher.C
+++ b/src/OpenFOAM/meshes/meshShapes/cellMatcher/wedgeMatcher.C
@@ -108,7 +108,7 @@ bool Foam::wedgeMatcher::matchShape
     const face& face0 = localFaces_[face0I];
 
     // Try all rotations of this face
-    for(label face0vert0 = 0; face0vert0 < faceSize_[face0I]; face0vert0++)
+    for (label face0vert0 = 0; face0vert0 < faceSize_[face0I]; face0vert0++)
     {
         //
         // Try to follow prespecified path on faces of cell,
diff --git a/src/OpenFOAM/meshes/meshShapes/face/face.C b/src/OpenFOAM/meshes/meshShapes/face/face.C
index 55be336fa21d507fb467995251712a1a6e449ead..7935c4a9b60460178f01ef43e9b599f6c682e33f 100644
--- a/src/OpenFOAM/meshes/meshShapes/face/face.C
+++ b/src/OpenFOAM/meshes/meshShapes/face/face.C
@@ -216,7 +216,7 @@ Foam::label Foam::face::split
         label minIndex = index;
         scalar minDiff = constant::mathematical::pi;
 
-        for(label i = 0; i < size() - 3; i++)
+        for (label i = 0; i < size() - 3; i++)
         {
             vector splitEdge
             (
@@ -691,6 +691,44 @@ Foam::scalar Foam::face::sweptVol
 }
 
 
+Foam::tensor Foam::face::inertia
+(
+    const pointField& p,
+    const point& refPt,
+    scalar density
+) const
+{
+    // If the face is a triangle, do a direct calculation
+    if (size() == 3)
+    {
+        return triPointRef
+        (
+            p[operator[](0)],
+            p[operator[](1)],
+            p[operator[](2)]
+        ).inertia(refPt, density);
+    }
+
+    point c = centre(p);
+
+    tensor J = tensor::zero;
+
+    forAll(*this, i)
+    {
+        triPointRef t
+        (
+            p[operator[](i)],
+            p[operator[](fcIndex(i))],
+            c
+        );
+
+        J += t.inertia(refPt, density);
+    }
+
+    return J;
+}
+
+
 Foam::edgeList Foam::face::edges() const
 {
     const labelList& points = *this;
@@ -808,4 +846,3 @@ Foam::label Foam::face::trianglesQuads
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 // ************************************************************************* //
-
diff --git a/src/OpenFOAM/meshes/meshShapes/face/face.H b/src/OpenFOAM/meshes/meshShapes/face/face.H
index 25a4f8fbce5b70f44c74ffd36a7c42c45e14ce99..c317b3eef98c4a266922815c013292d19e73e0d1 100644
--- a/src/OpenFOAM/meshes/meshShapes/face/face.H
+++ b/src/OpenFOAM/meshes/meshShapes/face/face.H
@@ -200,6 +200,15 @@ public:
             const pointField& newPoints
         ) const;
 
+        //- Return the inertia tensor, with optional reference
+        //  point and density specification
+        tensor inertia
+        (
+            const pointField&,
+            const point& refPt = vector::zero,
+            scalar density = 1.0
+        ) const;
+
         //- Return potential intersection with face with a ray starting
         //  at p, direction n (does not need to be normalized)
         //  Does face-center decomposition and returns triangle intersection
diff --git a/src/OpenFOAM/meshes/pointMesh/pointBoundaryMesh/pointBoundaryMesh.C b/src/OpenFOAM/meshes/pointMesh/pointBoundaryMesh/pointBoundaryMesh.C
index 11be3c3b86282655666d4a52e7dac4aacd7c1490..36e6fe6afd0dec94487e2e37baa79080d2a0125b 100644
--- a/src/OpenFOAM/meshes/pointMesh/pointBoundaryMesh/pointBoundaryMesh.C
+++ b/src/OpenFOAM/meshes/pointMesh/pointBoundaryMesh/pointBoundaryMesh.C
@@ -28,6 +28,9 @@ License
 #include "polyBoundaryMesh.H"
 #include "facePointPatch.H"
 #include "globalPointPatch.H"
+#include "PstreamBuffers.H"
+#include "lduSchedule.H"
+#include "globalMeshData.H"
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
@@ -58,14 +61,46 @@ Foam::pointBoundaryMesh::pointBoundaryMesh
 
 void Foam::pointBoundaryMesh::calcGeometry()
 {
-    forAll(*this, patchi)
+    PstreamBuffers pBufs(Pstream::defaultCommsType);
+
+    if
+    (
+        Pstream::defaultCommsType == Pstream::blocking
+     || Pstream::defaultCommsType == Pstream::nonBlocking
+    )
     {
-        operator[](patchi).initGeometry();
-    }
+        forAll(*this, patchi)
+        {
+            operator[](patchi).initGeometry(pBufs);
+        }
 
-    forAll(*this, patchi)
+        pBufs.finishedSends();
+
+        forAll(*this, patchi)
+        {
+            operator[](patchi).calcGeometry(pBufs);
+        }
+    }
+    else if (Pstream::defaultCommsType == Pstream::scheduled)
     {
-        operator[](patchi).calcGeometry();
+        const lduSchedule& patchSchedule = mesh().globalData().patchSchedule();
+
+        // Dummy.
+        pBufs.finishedSends();
+
+        forAll(patchSchedule, patchEvali)
+        {
+            label patchi = patchSchedule[patchEvali].patch;
+
+            if (patchSchedule[patchEvali].init)
+            {
+                operator[](patchi).initGeometry(pBufs);
+            }
+            else
+            {
+                operator[](patchi).calcGeometry(pBufs);
+            }
+        }
     }
 }
 
@@ -97,32 +132,92 @@ Foam::pointBoundaryMesh::globalPatch() const
 
 void Foam::pointBoundaryMesh::movePoints(const pointField& p)
 {
-    pointPatchList& patches = *this;
+    PstreamBuffers pBufs(Pstream::defaultCommsType);
 
-    forAll(patches, patchi)
+    if
+    (
+        Pstream::defaultCommsType == Pstream::blocking
+     || Pstream::defaultCommsType == Pstream::nonBlocking
+    )
     {
-        patches[patchi].initMovePoints(p);
-    }
+        forAll(*this, patchi)
+        {
+            operator[](patchi).initMovePoints(pBufs, p);
+        }
 
-    forAll(patches, patchi)
+        pBufs.finishedSends();
+
+        forAll(*this, patchi)
+        {
+            operator[](patchi).movePoints(pBufs, p);
+        }
+    }
+    else if (Pstream::defaultCommsType == Pstream::scheduled)
     {
-        patches[patchi].movePoints(p);
+        const lduSchedule& patchSchedule = mesh().globalData().patchSchedule();
+
+        // Dummy.
+        pBufs.finishedSends();
+
+        forAll(patchSchedule, patchEvali)
+        {
+            label patchi = patchSchedule[patchEvali].patch;
+
+            if (patchSchedule[patchEvali].init)
+            {
+                operator[](patchi).initMovePoints(pBufs, p);
+            }
+            else
+            {
+                operator[](patchi).movePoints(pBufs, p);
+            }
+        }
     }
 }
 
 
 void Foam::pointBoundaryMesh::updateMesh()
 {
-    pointPatchList& patches = *this;
+    PstreamBuffers pBufs(Pstream::defaultCommsType);
 
-    forAll(patches, patchi)
+    if
+    (
+        Pstream::defaultCommsType == Pstream::blocking
+     || Pstream::defaultCommsType == Pstream::nonBlocking
+    )
     {
-        patches[patchi].initUpdateMesh();
-    }
+        forAll(*this, patchi)
+        {
+            operator[](patchi).initUpdateMesh(pBufs);
+        }
+
+        pBufs.finishedSends();
 
-    forAll(patches, patchi)
+        forAll(*this, patchi)
+        {
+            operator[](patchi).updateMesh(pBufs);
+        }
+    }
+    else if (Pstream::defaultCommsType == Pstream::scheduled)
     {
-        patches[patchi].updateMesh();
+        const lduSchedule& patchSchedule = mesh().globalData().patchSchedule();
+
+        // Dummy.
+        pBufs.finishedSends();
+
+        forAll(patchSchedule, patchEvali)
+        {
+            label patchi = patchSchedule[patchEvali].patch;
+
+            if (patchSchedule[patchEvali].init)
+            {
+                operator[](patchi).initUpdateMesh(pBufs);
+            }
+            else
+            {
+                operator[](patchi).updateMesh(pBufs);
+            }
+        }
     }
 }
 
diff --git a/src/OpenFOAM/meshes/pointMesh/pointPatches/basic/coupled/coupledPointPatch.H b/src/OpenFOAM/meshes/pointMesh/pointPatches/basic/coupled/coupledPointPatch.H
index 77cbb4162f972d3cfb623d13deab117afc685418..79a2f2363c536d645f7d8fe2150e7c2b5d7221ff 100644
--- a/src/OpenFOAM/meshes/pointMesh/pointPatches/basic/coupled/coupledPointPatch.H
+++ b/src/OpenFOAM/meshes/pointMesh/pointPatches/basic/coupled/coupledPointPatch.H
@@ -66,22 +66,22 @@ protected:
     // Protected Member Functions
 
         //- Initialise the calculation of the patch geometry
-        virtual void initGeometry() = 0;
+        virtual void initGeometry(PstreamBuffers&) = 0;
 
         //- Calculate the patch geometry
-        virtual void calcGeometry() = 0;
+        virtual void calcGeometry(PstreamBuffers&) = 0;
 
         //- Initialise the patches for moving points
-        virtual void initMovePoints(const pointField&) = 0;
+        virtual void initMovePoints(PstreamBuffers&, const pointField&) = 0;
 
         //- Correct patches after moving points
-        virtual void movePoints(const pointField&) = 0;
+        virtual void movePoints(PstreamBuffers&, const pointField&) = 0;
 
         //- Initialise the update of the patch topology
-        virtual void initUpdateMesh() = 0;
+        virtual void initUpdateMesh(PstreamBuffers&) = 0;
 
         //- Update of the patch topology
-        virtual void updateMesh() = 0;
+        virtual void updateMesh(PstreamBuffers&) = 0;
 
 
 public:
diff --git a/src/OpenFOAM/meshes/pointMesh/pointPatches/constraint/cyclic/cyclicPointPatch.C b/src/OpenFOAM/meshes/pointMesh/pointPatches/constraint/cyclic/cyclicPointPatch.C
index 81104d726e24b88254ecc9adc4dd9a24d746ef9e..6f65c70764b4ac4768e99e710cf2364df4211d3f 100644
--- a/src/OpenFOAM/meshes/pointMesh/pointPatches/constraint/cyclic/cyclicPointPatch.C
+++ b/src/OpenFOAM/meshes/pointMesh/pointPatches/constraint/cyclic/cyclicPointPatch.C
@@ -50,13 +50,13 @@ addToRunTimeSelectionTable
 
 // * * * * * * * * * * * * * Protected Member Functions  * * * * * * * * * * //
 
-void Foam::cyclicPointPatch::initGeometry()
+void Foam::cyclicPointPatch::initGeometry(PstreamBuffers&)
 {
     transformPairs_.setSize(0);
 }
 
 
-void Foam::cyclicPointPatch::calcGeometry()
+void Foam::cyclicPointPatch::calcGeometry(PstreamBuffers&)
 {
     const edgeList& cp = cyclicPolyPatch_.coupledPoints();
     const labelList& mp = cyclicPolyPatch_.meshPoints();
@@ -128,16 +128,20 @@ void Foam::cyclicPointPatch::calcGeometry()
             }
             else if (pointMap[cp[i][0]] == -1 && pointMap[cp[i][1]] != -1)
             {
-                FatalErrorIn("cyclicPointPatch::calcGeometry() const")
-                    << "Point " << cp[i][0] << "of point-pair " << i
+                FatalErrorIn
+                (
+                    "cyclicPointPatch::calcGeometry(PstreamBuffers&) const"
+                )   << "Point " << cp[i][0] << "of point-pair " << i
                     << " is a global point but the other point "
                     << cp[i][1] << " is not"
                     << exit(FatalError);
             }
             else if (pointMap[cp[i][0]] != -1 && pointMap[cp[i][1]] == -1)
             {
-                FatalErrorIn("cyclicPointPatch::calcGeometry() const")
-                    << "Point " << cp[i][1] << "of point-pair " << i
+                FatalErrorIn
+                (
+                    "cyclicPointPatch::calcGeometry(PstreamBuffers&) const"
+                )   << "Point " << cp[i][1] << "of point-pair " << i
                     << " is a global point but the other point "
                     << cp[i][0] << " is not"
                     << exit(FatalError);
@@ -149,25 +153,25 @@ void Foam::cyclicPointPatch::calcGeometry()
 }
 
 
-void cyclicPointPatch::initMovePoints(const pointField&)
+void cyclicPointPatch::initMovePoints(PstreamBuffers&, const pointField&)
 {}
 
 
-void cyclicPointPatch::movePoints(const pointField&)
+void cyclicPointPatch::movePoints(PstreamBuffers&, const pointField&)
 {}
 
 
-void cyclicPointPatch::initUpdateMesh()
+void cyclicPointPatch::initUpdateMesh(PstreamBuffers& pBufs)
 {
-    facePointPatch::initUpdateMesh();
-    cyclicPointPatch::initGeometry();
+    facePointPatch::initUpdateMesh(pBufs);
+    cyclicPointPatch::initGeometry(pBufs);
 }
 
 
-void cyclicPointPatch::updateMesh()
+void cyclicPointPatch::updateMesh(PstreamBuffers& pBufs)
 {
-    facePointPatch::updateMesh();
-    cyclicPointPatch::calcGeometry();
+    facePointPatch::updateMesh(pBufs);
+    cyclicPointPatch::calcGeometry(pBufs);
 }
 
 
diff --git a/src/OpenFOAM/meshes/pointMesh/pointPatches/constraint/cyclic/cyclicPointPatch.H b/src/OpenFOAM/meshes/pointMesh/pointPatches/constraint/cyclic/cyclicPointPatch.H
index 999c45613d209b2d1ccd6398a1af004a6167691b..1d013f3421c085903b098436a8df0f4d96f5eb0d 100644
--- a/src/OpenFOAM/meshes/pointMesh/pointPatches/constraint/cyclic/cyclicPointPatch.H
+++ b/src/OpenFOAM/meshes/pointMesh/pointPatches/constraint/cyclic/cyclicPointPatch.H
@@ -74,22 +74,22 @@ class cyclicPointPatch
         edgeList transformPairs_;
 
         //- Initialise the calculation of the patch geometry
-        virtual void initGeometry();
+        virtual void initGeometry(PstreamBuffers&);
 
         //- Calculate the patch geometry
-        virtual void calcGeometry();
+        virtual void calcGeometry(PstreamBuffers&);
 
         //- Initialise the patches for moving points
-        virtual void initMovePoints(const pointField&);
+        virtual void initMovePoints(PstreamBuffers&, const pointField&);
 
         //- Correct patches after moving points
-        virtual void movePoints(const pointField&);
+        virtual void movePoints(PstreamBuffers&, const pointField&);
 
         //- Initialise the update of the patch topology
-        virtual void initUpdateMesh();
+        virtual void initUpdateMesh(PstreamBuffers&);
 
         //- Update of the patch topology
-        virtual void updateMesh();
+        virtual void updateMesh(PstreamBuffers&);
 
 
 public:
diff --git a/src/OpenFOAM/meshes/pointMesh/pointPatches/constraint/processor/processorPointPatch.C b/src/OpenFOAM/meshes/pointMesh/pointPatches/constraint/processor/processorPointPatch.C
index eb99350c131d49577d126dd4f82aebd45b3499ba..d3aae3ec877fe54fc7fb68a8548ec09ef894f32e 100644
--- a/src/OpenFOAM/meshes/pointMesh/pointPatches/constraint/processor/processorPointPatch.C
+++ b/src/OpenFOAM/meshes/pointMesh/pointPatches/constraint/processor/processorPointPatch.C
@@ -52,7 +52,7 @@ addToRunTimeSelectionTable
 
 // * * * * * * * * * * * * * Protected Member Functions  * * * * * * * * * * //
 
-void Foam::processorPointPatch::initGeometry()
+void Foam::processorPointPatch::initGeometry(PstreamBuffers& pBufs)
 {
     // Algorithm:
     // Depending on whether the patch is a master or a slave, get the primitive
@@ -84,16 +84,16 @@ void Foam::processorPointPatch::initGeometry()
 
     if (Pstream::parRun())
     {
-        initPatchPatchPoints();
+        initPatchPatchPoints(pBufs);
     }
 }
 
 
-void Foam::processorPointPatch::calcGeometry()
+void Foam::processorPointPatch::calcGeometry(PstreamBuffers& pBufs)
 {
     if (Pstream::parRun())
     {
-        calcPatchPatchPoints();
+        calcPatchPatchPoints(pBufs);
     }
 
     // If it is not runing parallel or there are no global points
@@ -149,11 +149,11 @@ void Foam::processorPointPatch::calcGeometry()
 }
 
 
-void processorPointPatch::initPatchPatchPoints()
+void processorPointPatch::initPatchPatchPoints(PstreamBuffers& pBufs)
 {
     if (debug)
     {
-        Info<< "processorPointPatch::calcPatchPatchPoints() : "
+        Info<< "processorPointPatch::initPatchPatchPoints(PstreamBuffers&) : "
             << "constructing patch-patch points"
             << endl;
     }
@@ -229,7 +229,7 @@ void processorPointPatch::initPatchPatchPoints()
 
     // Send the patchPatchPoints to the neighbouring processor
 
-    OPstream toNeighbProc(Pstream::blocking, neighbProcNo());
+    UOPstream toNeighbProc(neighbProcNo(), pBufs);
 
     toNeighbProc
         << ppmp.size()              // number of points for checking
@@ -238,17 +238,17 @@ void processorPointPatch::initPatchPatchPoints()
 
     if (debug)
     {
-        Info<< "processorPointPatch::calcPatchPatchPoints() : "
+        Info<< "processorPointPatch::initPatchPatchPoints() : "
             << "constructed patch-patch points"
             << endl;
     }
 }
 
 
-void Foam::processorPointPatch::calcPatchPatchPoints()
+void Foam::processorPointPatch::calcPatchPatchPoints(PstreamBuffers& pBufs)
 {
     // Get the patchPatchPoints from the neighbouring processor
-    IPstream fromNeighbProc(Pstream::blocking, neighbProcNo());
+    UIPstream fromNeighbProc(neighbProcNo(), pBufs);
 
     label nbrNPoints(readLabel(fromNeighbProc));
     labelListList patchPatchPoints(fromNeighbProc);
@@ -265,7 +265,7 @@ void Foam::processorPointPatch::calcPatchPatchPoints()
     // separate.
     if (nbrNPoints != ppmp.size())
     {
-        WarningIn("processorPointPatch::calcPatchPatchPoints()")
+        WarningIn("processorPointPatch::calcPatchPatchPoints(PstreamBuffers&)")
             << "Processor patch " << name()
             << " has " << ppmp.size() << " points; coupled patch has "
             << nbrNPoints << " points." << endl
@@ -352,25 +352,25 @@ void Foam::processorPointPatch::calcPatchPatchPoints()
 }
 
 
-void processorPointPatch::initMovePoints(const pointField&)
+void processorPointPatch::initMovePoints(PstreamBuffers&, const pointField&)
 {}
 
 
-void processorPointPatch::movePoints(const pointField&)
+void processorPointPatch::movePoints(PstreamBuffers&, const pointField&)
 {}
 
 
-void processorPointPatch::initUpdateMesh()
+void processorPointPatch::initUpdateMesh(PstreamBuffers& pBufs)
 {
-    facePointPatch::initUpdateMesh();
-    processorPointPatch::initGeometry();
+    facePointPatch::initUpdateMesh(pBufs);
+    processorPointPatch::initGeometry(pBufs);
 }
 
 
-void processorPointPatch::updateMesh()
+void processorPointPatch::updateMesh(PstreamBuffers& pBufs)
 {
-    facePointPatch::updateMesh();
-    processorPointPatch::calcGeometry();
+    facePointPatch::updateMesh(pBufs);
+    processorPointPatch::calcGeometry(pBufs);
 }
 
 
diff --git a/src/OpenFOAM/meshes/pointMesh/pointPatches/constraint/processor/processorPointPatch.H b/src/OpenFOAM/meshes/pointMesh/pointPatches/constraint/processor/processorPointPatch.H
index f17a00ca832c9e1926d4ccc5998fac055743e916..373416ac0a46c8817656025a919033e9cf6c3ea0 100644
--- a/src/OpenFOAM/meshes/pointMesh/pointPatches/constraint/processor/processorPointPatch.H
+++ b/src/OpenFOAM/meshes/pointMesh/pointPatches/constraint/processor/processorPointPatch.H
@@ -68,30 +68,30 @@ class processorPointPatch
     // Private Member Functions
 
         //- Initialise the calculation of the patch geometry
-        virtual void initGeometry();
+        virtual void initGeometry(PstreamBuffers&);
 
         //- Calculate the patch geometry
-        virtual void calcGeometry();
+        virtual void calcGeometry(PstreamBuffers&);
 
         //- Initialise the points on this patch which are should also be 
         //  on a neighbouring patch but are not part of faces of that patch
-        void initPatchPatchPoints();
+        void initPatchPatchPoints(PstreamBuffers&);
 
         //- Calculate the points on this patch which are should also be 
         //  on a neighbouring patch but are not part of faces of that patch
-        void calcPatchPatchPoints();
+        void calcPatchPatchPoints(PstreamBuffers&);
 
         //- Initialise the patches for moving points
-        virtual void initMovePoints(const pointField&);
+        virtual void initMovePoints(PstreamBuffers&, const pointField&);
 
         //- Correct patches after moving points
-        virtual void movePoints(const pointField&);
+        virtual void movePoints(PstreamBuffers&, const pointField&);
 
         //- Initialise the update of the patch topology
-        virtual void initUpdateMesh();
+        virtual void initUpdateMesh(PstreamBuffers&);
 
         //- Update of the patch topology
-        virtual void updateMesh();
+        virtual void updateMesh(PstreamBuffers&);
 
 
         //- Disallow default construct as copy
diff --git a/src/OpenFOAM/meshes/pointMesh/pointPatches/derived/coupled/coupledFacePointPatch.H b/src/OpenFOAM/meshes/pointMesh/pointPatches/derived/coupled/coupledFacePointPatch.H
index dc2437877daf6dcef9e0ade04e4be2ebe6cdee69..a77af7af305f5713ee7f6736b29a7e60f7c8c6f7 100644
--- a/src/OpenFOAM/meshes/pointMesh/pointPatches/derived/coupled/coupledFacePointPatch.H
+++ b/src/OpenFOAM/meshes/pointMesh/pointPatches/derived/coupled/coupledFacePointPatch.H
@@ -86,7 +86,7 @@ protected:
         // Construction of demand-driven data
 
             //- Calculate mesh points
-            virtual void calcGeometry() = 0;
+            virtual void calcGeometry(PstreamBuffers&) = 0;
 
 
 public:
diff --git a/src/OpenFOAM/meshes/pointMesh/pointPatches/derived/global/globalPointPatch.H b/src/OpenFOAM/meshes/pointMesh/pointPatches/derived/global/globalPointPatch.H
index 990ab0de9a45c5356c2a6316c7eaec7c5884bd2b..ba89ca950cb2f3ce3b0eb6cc7e96e0cf3cb59af9 100644
--- a/src/OpenFOAM/meshes/pointMesh/pointPatches/derived/global/globalPointPatch.H
+++ b/src/OpenFOAM/meshes/pointMesh/pointPatches/derived/global/globalPointPatch.H
@@ -67,27 +67,27 @@ class globalPointPatch
     // Protected Member Functions
 
         //- Initialise the calculation of the patch geometry
-        virtual void initGeometry()
+        virtual void initGeometry(PstreamBuffers&)
         {}
 
         //- Calculate the patch geometry
-        virtual void calcGeometry()
+        virtual void calcGeometry(PstreamBuffers&)
         {}
 
         //- Initialise the patches for moving points
-        virtual void initMovePoints(const pointField&)
+        virtual void initMovePoints(PstreamBuffers&, const pointField&)
         {}
 
         //- Correct patches after moving points
-        virtual void movePoints(const pointField&)
+        virtual void movePoints(PstreamBuffers&, const pointField&)
         {}
 
         //- Initialise the update of the patch topology
-        virtual void initUpdateMesh()
+        virtual void initUpdateMesh(PstreamBuffers&)
         {}
 
         //- Update of the patch topology
-        virtual void updateMesh()
+        virtual void updateMesh(PstreamBuffers&)
         {}
 
 
diff --git a/src/OpenFOAM/meshes/pointMesh/pointPatches/facePointPatch/facePointPatch.C b/src/OpenFOAM/meshes/pointMesh/pointPatches/facePointPatch/facePointPatch.C
index 25c91dd398769b9fd5c0c333b0b5fa39c97c7f9e..fb15ac4b96733f71451bfff030f53bfc710425f7 100644
--- a/src/OpenFOAM/meshes/pointMesh/pointPatches/facePointPatch/facePointPatch.C
+++ b/src/OpenFOAM/meshes/pointMesh/pointPatches/facePointPatch/facePointPatch.C
@@ -51,7 +51,7 @@ addToRunTimeSelectionTable
 
 // * * * * * * * * * * * * * Protected Member Functions  * * * * * * * * * * //
 
-void facePointPatch::initGeometry()
+void facePointPatch::initGeometry(PstreamBuffers&)
 {
     meshPoints_.setSize(0);
     localPoints_.setSize(0);
@@ -59,25 +59,25 @@ void facePointPatch::initGeometry()
 }
 
 
-void facePointPatch::calcGeometry()
+void facePointPatch::calcGeometry(PstreamBuffers&)
 {}
 
 
-void facePointPatch::initMovePoints(const pointField&)
+void facePointPatch::initMovePoints(PstreamBuffers&, const pointField&)
 {}
 
 
-void facePointPatch::movePoints(const pointField&)
+void facePointPatch::movePoints(PstreamBuffers&, const pointField&)
 {}
 
 
-void facePointPatch::initUpdateMesh()
+void facePointPatch::initUpdateMesh(PstreamBuffers& pBufs)
 {
-    facePointPatch::initGeometry();
+    facePointPatch::initGeometry(pBufs);
 }
 
 
-void facePointPatch::updateMesh()
+void facePointPatch::updateMesh(PstreamBuffers&)
 {}
 
 
diff --git a/src/OpenFOAM/meshes/pointMesh/pointPatches/facePointPatch/facePointPatch.H b/src/OpenFOAM/meshes/pointMesh/pointPatches/facePointPatch/facePointPatch.H
index 7a75b4017f3136a0bce2bd8173d60e484a24869b..0094d4ce1a0030f71beb7d1ee96a31b0edc5427f 100644
--- a/src/OpenFOAM/meshes/pointMesh/pointPatches/facePointPatch/facePointPatch.H
+++ b/src/OpenFOAM/meshes/pointMesh/pointPatches/facePointPatch/facePointPatch.H
@@ -76,22 +76,22 @@ protected:
     // Protected Member Functions
 
         //- Initialise the calculation of the patch geometry
-        virtual void initGeometry();
+        virtual void initGeometry(PstreamBuffers&);
 
         //- Calculate the patch geometry
-        virtual void calcGeometry();
+        virtual void calcGeometry(PstreamBuffers&);
 
         //- Initialise the patches for moving points
-        virtual void initMovePoints(const pointField&);
+        virtual void initMovePoints(PstreamBuffers&, const pointField&);
 
         //- Correct patches after moving points
-        virtual void movePoints(const pointField&);
+        virtual void movePoints(PstreamBuffers&, const pointField&);
 
         //- Initialise the update of the patch topology
-        virtual void initUpdateMesh();
+        virtual void initUpdateMesh(PstreamBuffers&);
 
         //- Update of the patch topology
-        virtual void updateMesh();
+        virtual void updateMesh(PstreamBuffers&);
 
 
 private:
diff --git a/src/OpenFOAM/meshes/pointMesh/pointPatches/pointPatch/pointPatch.H b/src/OpenFOAM/meshes/pointMesh/pointPatches/pointPatch/pointPatch.H
index bdf67c879bece7bb2aa4519909b0396193b5dc1e..637ac659dd8796f5cc9a842c4a608000f1c3a551 100644
--- a/src/OpenFOAM/meshes/pointMesh/pointPatches/pointPatch/pointPatch.H
+++ b/src/OpenFOAM/meshes/pointMesh/pointPatches/pointPatch/pointPatch.H
@@ -49,6 +49,7 @@ namespace Foam
 
 class pointBoundaryMesh;
 class pointConstraint;
+class PstreamBuffers;
 
 /*---------------------------------------------------------------------------*\
                       Class pointPatch Declaration
@@ -79,27 +80,27 @@ protected:
         friend class pointBoundaryMesh;
 
         //- Initialise the calculation of the patch geometry
-        virtual void initGeometry()
+        virtual void initGeometry(PstreamBuffers&)
         {}
 
         //- Calculate the patch geometry
-        virtual void calcGeometry()
+        virtual void calcGeometry(PstreamBuffers&)
         {}
 
         //- Initialise the patches for moving points
-        virtual void initMovePoints(const pointField&)
+        virtual void initMovePoints(PstreamBuffers&, const pointField&)
         {}
 
         //- Correct patches after moving points
-        virtual void movePoints(const pointField&)
+        virtual void movePoints(PstreamBuffers&, const pointField&)
         {}
 
         //- Initialise the update of the patch topology
-        virtual void initUpdateMesh()
+        virtual void initUpdateMesh(PstreamBuffers&)
         {}
 
         //- Update of the patch topology
-        virtual void updateMesh()
+        virtual void updateMesh(PstreamBuffers&)
         {}
 
 
diff --git a/src/OpenFOAM/meshes/polyMesh/polyBoundaryMesh/polyBoundaryMesh.C b/src/OpenFOAM/meshes/polyMesh/polyBoundaryMesh/polyBoundaryMesh.C
index eff7af933cabc52791bcf22958e3dbd29094c5c9..07bb357ff34bb39318d0638c1491779cd3509c79 100644
--- a/src/OpenFOAM/meshes/polyMesh/polyBoundaryMesh/polyBoundaryMesh.C
+++ b/src/OpenFOAM/meshes/polyMesh/polyBoundaryMesh/polyBoundaryMesh.C
@@ -29,6 +29,9 @@ License
 #include "primitiveMesh.H"
 #include "processorPolyPatch.H"
 #include "stringListOps.H"
+#include "PstreamBuffers.H"
+#include "lduSchedule.H"
+#include "globalMeshData.H"
 
 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
 
@@ -144,14 +147,46 @@ void Foam::polyBoundaryMesh::clearAddressing()
 
 void Foam::polyBoundaryMesh::calcGeometry()
 {
-    forAll(*this, patchi)
+    PstreamBuffers pBufs(Pstream::defaultCommsType);
+
+    if
+    (
+        Pstream::defaultCommsType == Pstream::blocking
+     || Pstream::defaultCommsType == Pstream::nonBlocking
+    )
     {
-        operator[](patchi).initGeometry();
-    }
+        forAll(*this, patchi)
+        {
+            operator[](patchi).initGeometry(pBufs);
+        }
+
+        pBufs.finishedSends();
 
-    forAll(*this, patchi)
+        forAll(*this, patchi)
+        {
+            operator[](patchi).calcGeometry(pBufs);
+        }
+    }
+    else if (Pstream::defaultCommsType == Pstream::scheduled)
     {
-        operator[](patchi).calcGeometry();
+        const lduSchedule& patchSchedule = mesh().globalData().patchSchedule();
+
+        // Dummy.
+        pBufs.finishedSends();
+
+        forAll(patchSchedule, patchEvali)
+        {
+            label patchi = patchSchedule[patchEvali].patch;
+
+            if (patchSchedule[patchEvali].init)
+            {
+                operator[](patchi).initGeometry(pBufs);
+            }
+            else
+            {
+                operator[](patchi).calcGeometry(pBufs);
+            }
+        }
     }
 }
 
@@ -563,7 +598,7 @@ bool Foam::polyBoundaryMesh::checkDefinition(const bool report) const
         }
         else
         {
-            Info << "    Boundary definition OK." << endl;
+            Info<< "    Boundary definition OK." << endl;
         }
     }
 
@@ -573,16 +608,46 @@ bool Foam::polyBoundaryMesh::checkDefinition(const bool report) const
 
 void Foam::polyBoundaryMesh::movePoints(const pointField& p)
 {
-    polyPatchList& patches = *this;
+    PstreamBuffers pBufs(Pstream::defaultCommsType);
 
-    forAll(patches, patchi)
+    if
+    (
+        Pstream::defaultCommsType == Pstream::blocking
+     || Pstream::defaultCommsType == Pstream::nonBlocking
+    )
     {
-        patches[patchi].initMovePoints(p);
-    }
+        forAll(*this, patchi)
+        {
+            operator[](patchi).initMovePoints(pBufs, p);
+        }
 
-    forAll(patches, patchi)
+        pBufs.finishedSends();
+
+        forAll(*this, patchi)
+        {
+            operator[](patchi).movePoints(pBufs, p);
+        }
+    }
+    else if (Pstream::defaultCommsType == Pstream::scheduled)
     {
-        patches[patchi].movePoints(p);
+        const lduSchedule& patchSchedule = mesh().globalData().patchSchedule();
+
+        // Dummy.
+        pBufs.finishedSends();
+
+        forAll(patchSchedule, patchEvali)
+        {
+            label patchi = patchSchedule[patchEvali].patch;
+
+            if (patchSchedule[patchEvali].init)
+            {
+                operator[](patchi).initMovePoints(pBufs, p);
+            }
+            else
+            {
+                operator[](patchi).movePoints(pBufs, p);
+            }
+        }
     }
 }
 
@@ -591,16 +656,46 @@ void Foam::polyBoundaryMesh::updateMesh()
 {
     deleteDemandDrivenData(neighbourEdgesPtr_);
 
-    polyPatchList& patches = *this;
+    PstreamBuffers pBufs(Pstream::defaultCommsType);
 
-    forAll(patches, patchi)
+    if
+    (
+        Pstream::defaultCommsType == Pstream::blocking
+     || Pstream::defaultCommsType == Pstream::nonBlocking
+    )
     {
-        patches[patchi].initUpdateMesh();
-    }
+        forAll(*this, patchi)
+        {
+            operator[](patchi).initUpdateMesh(pBufs);
+        }
 
-    forAll(patches, patchi)
+        pBufs.finishedSends();
+
+        forAll(*this, patchi)
+        {
+            operator[](patchi).updateMesh(pBufs);
+        }
+    }
+    else if (Pstream::defaultCommsType == Pstream::scheduled)
     {
-        patches[patchi].updateMesh();
+        const lduSchedule& patchSchedule = mesh().globalData().patchSchedule();
+
+        // Dummy.
+        pBufs.finishedSends();
+
+        forAll(patchSchedule, patchEvali)
+        {
+            label patchi = patchSchedule[patchEvali].patch;
+
+            if (patchSchedule[patchEvali].init)
+            {
+                operator[](patchi).initUpdateMesh(pBufs);
+            }
+            else
+            {
+                operator[](patchi).updateMesh(pBufs);
+            }
+        }
     }
 }
 
diff --git a/src/OpenFOAM/meshes/polyMesh/polyBoundaryMesh/polyBoundaryMesh.H b/src/OpenFOAM/meshes/polyMesh/polyBoundaryMesh/polyBoundaryMesh.H
index e3277defccab5da29e15d1835df1a281de7d76d1..fdea473ed3abd8b438604cce9b59ca36e15edb82 100644
--- a/src/OpenFOAM/meshes/polyMesh/polyBoundaryMesh/polyBoundaryMesh.H
+++ b/src/OpenFOAM/meshes/polyMesh/polyBoundaryMesh/polyBoundaryMesh.H
@@ -50,8 +50,6 @@ class polyMesh;
 
 // Forward declaration of friend functions and operators
 
-class polyBoundaryMesh;
-
 Ostream& operator<<(Ostream&, const polyBoundaryMesh&);
 
 
diff --git a/src/OpenFOAM/meshes/polyMesh/polyMeshFromShapeMesh.C b/src/OpenFOAM/meshes/polyMesh/polyMeshFromShapeMesh.C
index f1cc51cb9ec05fd5f3261584f6b92391eda8316b..1a86588c7457762200a9f5a6be7510da8c6e38b6 100644
--- a/src/OpenFOAM/meshes/polyMesh/polyMeshFromShapeMesh.C
+++ b/src/OpenFOAM/meshes/polyMesh/polyMeshFromShapeMesh.C
@@ -614,7 +614,7 @@ Foam::polyMesh::polyMesh
     {
         if (checkMesh())
         {
-            Info << "Mesh OK" << endl;
+            Info<< "Mesh OK" << endl;
         }
     }
 }
diff --git a/src/OpenFOAM/meshes/polyMesh/polyMeshIO.C b/src/OpenFOAM/meshes/polyMesh/polyMeshIO.C
index b8b133ed0115b19a32545ae24c098e93b4b6c2f9..f1bbabc460e1089748d401b13a2cd1f4b54b345b 100644
--- a/src/OpenFOAM/meshes/polyMesh/polyMeshIO.C
+++ b/src/OpenFOAM/meshes/polyMesh/polyMeshIO.C
@@ -89,7 +89,7 @@ Foam::polyMesh::readUpdateState Foam::polyMesh::readUpdate()
         // Topological change
         if (debug)
         {
-            Info << "Topological change" << endl;
+            Info<< "Topological change" << endl;
         }
 
         clearOut();
@@ -403,7 +403,7 @@ Foam::polyMesh::readUpdateState Foam::polyMesh::readUpdate()
         // Points moved
         if (debug)
         {
-            Info << "Point motion" << endl;
+            Info<< "Point motion" << endl;
         }
 
         clearGeom();
@@ -430,14 +430,14 @@ Foam::polyMesh::readUpdateState Foam::polyMesh::readUpdate()
         // Rotation can cause direction vector to change
         geometricD_ = Vector<label>::zero;
         solutionD_ = Vector<label>::zero;
-        
+
         return polyMesh::POINTS_MOVED;
     }
     else
     {
         if (debug)
         {
-            Info << "No change" << endl;
+            Info<< "No change" << endl;
         }
 
         return polyMesh::UNCHANGED;
diff --git a/src/OpenFOAM/meshes/polyMesh/polyPatches/basic/coupled/coupledPolyPatch.H b/src/OpenFOAM/meshes/polyMesh/polyPatches/basic/coupled/coupledPolyPatch.H
index f823148d3a48b020a9d98a57e22fa3f5a4d5c853..e1afad60a812a2aa6fe09267fe4e0b830e091645 100644
--- a/src/OpenFOAM/meshes/polyMesh/polyPatches/basic/coupled/coupledPolyPatch.H
+++ b/src/OpenFOAM/meshes/polyMesh/polyPatches/basic/coupled/coupledPolyPatch.H
@@ -90,22 +90,22 @@ protected:
         ) const;
 
         //- Initialise the calculation of the patch geometry
-        virtual void initGeometry() = 0;
+        virtual void initGeometry(PstreamBuffers&) = 0;
 
         //- Calculate the patch geometry
-        virtual void calcGeometry() = 0;
+        virtual void calcGeometry(PstreamBuffers&) = 0;
 
         //- Initialise the patches for moving points
-        virtual void initMovePoints(const pointField&) = 0;
+        virtual void initMovePoints(PstreamBuffers&, const pointField&) = 0;
 
         //- Correct patches after moving points
-        virtual void movePoints(const pointField&) = 0;
+        virtual void movePoints(PstreamBuffers&, const pointField&) = 0;
 
         //- Initialise the update of the patch topology
-        virtual void initUpdateMesh() = 0;
+        virtual void initUpdateMesh(PstreamBuffers&) = 0;
 
         //- Update of the patch topology
-        virtual void updateMesh() = 0;
+        virtual void updateMesh(PstreamBuffers&) = 0;
 
 
         //- Write point in OBJ format
@@ -283,7 +283,11 @@ public:
 
         //- Initialize ordering for primitivePatch. Does not
         //  refer to *this (except for name() and type() etc.)
-        virtual void initOrder(const primitivePatch&) const = 0;
+        virtual void initOrder
+        (
+            PstreamBuffers&,
+            const primitivePatch&
+        ) const = 0;
 
         //- Return new ordering for primitivePatch.
         //  Ordering is -faceMap: for every face
@@ -292,6 +296,7 @@ public:
         //  (faceMap is identity, rotation is 0), true otherwise.
         virtual bool order
         (
+            PstreamBuffers&,
             const primitivePatch&,
             labelList& faceMap,
             labelList& rotation
diff --git a/src/OpenFOAM/meshes/polyMesh/polyPatches/constraint/cyclic/cyclicPolyPatch.C b/src/OpenFOAM/meshes/polyMesh/polyPatches/constraint/cyclic/cyclicPolyPatch.C
index 8c6b20207913c5eac723b45455257560e4c62b92..fef6c98ec0c075dd66177f9107d84c143e1c2f4c 100644
--- a/src/OpenFOAM/meshes/polyMesh/polyPatches/constraint/cyclic/cyclicPolyPatch.C
+++ b/src/OpenFOAM/meshes/polyMesh/polyPatches/constraint/cyclic/cyclicPolyPatch.C
@@ -516,7 +516,8 @@ void Foam::cyclicPolyPatch::getCentresAndAnchors
         //    if (debug)
         //    {
         //        Pout<< "cyclicPolyPatch::getCentresAndAnchors :"
-        //            << "Specified translation : " << separationVector_ << endl;
+        //            << "Specified translation : " << separationVector_
+        //            << endl;
         //    }
         //
         //    half0Ctrs += separationVector_;
@@ -858,36 +859,44 @@ Foam::cyclicPolyPatch::~cyclicPolyPatch()
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
-void Foam::cyclicPolyPatch::initGeometry()
+void Foam::cyclicPolyPatch::initGeometry(PstreamBuffers& pBufs)
 {
-    polyPatch::initGeometry();
+    polyPatch::initGeometry(pBufs);
 }
 
-void Foam::cyclicPolyPatch::calcGeometry()
+void Foam::cyclicPolyPatch::calcGeometry(PstreamBuffers& pBufs)
 {
-    polyPatch::calcGeometry();
+    polyPatch::calcGeometry(pBufs);
     calcTransforms();
 }
 
-void Foam::cyclicPolyPatch::initMovePoints(const pointField& p)
+void Foam::cyclicPolyPatch::initMovePoints
+(
+    PstreamBuffers& pBufs,
+    const pointField& p
+)
 {
-    polyPatch::initMovePoints(p);
+    polyPatch::initMovePoints(pBufs, p);
 }
 
-void Foam::cyclicPolyPatch::movePoints(const pointField& p)
+void Foam::cyclicPolyPatch::movePoints
+(
+    PstreamBuffers& pBufs,
+    const pointField& p
+)
 {
-    polyPatch::movePoints(p);
+    polyPatch::movePoints(pBufs, p);
     calcTransforms();
 }
 
-void Foam::cyclicPolyPatch::initUpdateMesh()
+void Foam::cyclicPolyPatch::initUpdateMesh(PstreamBuffers& pBufs)
 {
-    polyPatch::initUpdateMesh();
+    polyPatch::initUpdateMesh(pBufs);
 }
 
-void Foam::cyclicPolyPatch::updateMesh()
+void Foam::cyclicPolyPatch::updateMesh(PstreamBuffers& pBufs)
 {
-    polyPatch::updateMesh();
+    polyPatch::updateMesh(pBufs);
     deleteDemandDrivenData(coupledPointsPtr_);
     deleteDemandDrivenData(coupledEdgesPtr_);
 }
@@ -1105,7 +1114,11 @@ const Foam::edgeList& Foam::cyclicPolyPatch::coupledEdges() const
 }
 
 
-void Foam::cyclicPolyPatch::initOrder(const primitivePatch& pp) const
+void Foam::cyclicPolyPatch::initOrder
+(
+    PstreamBuffers&,
+    const primitivePatch& pp
+) const
 {}
 
 
@@ -1115,6 +1128,7 @@ void Foam::cyclicPolyPatch::initOrder(const primitivePatch& pp) const
 //  is identity, rotation is 0)
 bool Foam::cyclicPolyPatch::order
 (
+    PstreamBuffers& pBufs,
     const primitivePatch& pp,
     labelList& faceMap,
     labelList& rotation
@@ -1300,7 +1314,8 @@ bool Foam::cyclicPolyPatch::order
                 << endl;
 
             // Recalculate untransformed face centres
-            //pointField rawHalf0Ctrs = calcFaceCentres(half0Faces, pp.points());
+            //pointField rawHalf0Ctrs =
+            //    calcFaceCentres(half0Faces, pp.points());
             label vertI = 0;
 
             forAll(half1Ctrs, i)
@@ -1413,7 +1428,8 @@ bool Foam::cyclicPolyPatch::order
                     << endl;
 
                 // Recalculate untransformed face centres
-                //pointField rawHalf0Ctrs = calcFaceCentres(half0Faces, pp.points());
+                //pointField rawHalf0Ctrs =
+                //    calcFaceCentres(half0Faces, pp.points());
                 label vertI = 0;
 
                 forAll(half1Ctrs, i)
@@ -1499,7 +1515,8 @@ bool Foam::cyclicPolyPatch::order
                 << endl;
 
             // Recalculate untransformed face centres
-            //pointField rawHalf0Ctrs = calcFaceCentres(half0Faces, pp.points());
+            //pointField rawHalf0Ctrs =
+            //    calcFaceCentres(half0Faces, pp.points());
             label vertI = 0;
 
             forAll(half1Ctrs, i)
diff --git a/src/OpenFOAM/meshes/polyMesh/polyPatches/constraint/cyclic/cyclicPolyPatch.H b/src/OpenFOAM/meshes/polyMesh/polyPatches/constraint/cyclic/cyclicPolyPatch.H
index ea67348891994a77bc356d3621e4d28a4216efeb..4f81975e60557bc21b9c440a9a1a1273baaa13b3 100644
--- a/src/OpenFOAM/meshes/polyMesh/polyPatches/constraint/cyclic/cyclicPolyPatch.H
+++ b/src/OpenFOAM/meshes/polyMesh/polyPatches/constraint/cyclic/cyclicPolyPatch.H
@@ -176,22 +176,22 @@ protected:
     // Protected Member functions
 
         //- Initialise the calculation of the patch geometry
-        virtual void initGeometry();
+        virtual void initGeometry(PstreamBuffers&);
 
         //- Calculate the patch geometry
-        virtual void calcGeometry();
+        virtual void calcGeometry(PstreamBuffers&);
 
         //- Initialise the patches for moving points
-        virtual void initMovePoints(const pointField&);
+        virtual void initMovePoints(PstreamBuffers&, const pointField&);
 
         //- Correct patches after moving points
-        virtual void movePoints(const pointField&);
+        virtual void movePoints(PstreamBuffers&, const pointField&);
 
         //- Initialise the update of the patch topology
-        virtual void initUpdateMesh();
+        virtual void initUpdateMesh(PstreamBuffers&);
 
         //- Update of the patch topology
-        virtual void updateMesh();
+        virtual void updateMesh(PstreamBuffers&);
 
 public:
 
@@ -391,7 +391,7 @@ public:
 
         //- Initialize ordering for primitivePatch. Does not
         //  refer to *this (except for name() and type() etc.)
-        virtual void initOrder(const primitivePatch&) const;
+        virtual void initOrder(PstreamBuffers&, const primitivePatch&) const;
 
         //- Return new ordering for primitivePatch.
         //  Ordering is -faceMap: for every face
@@ -400,6 +400,7 @@ public:
         //  (faceMap is identity, rotation is 0), true otherwise.
         virtual bool order
         (
+            PstreamBuffers&,
             const primitivePatch&,
             labelList& faceMap,
             labelList& rotation
diff --git a/src/OpenFOAM/meshes/polyMesh/polyPatches/constraint/processor/processorPolyPatch.C b/src/OpenFOAM/meshes/polyMesh/polyPatches/constraint/processor/processorPolyPatch.C
index 6e4df9f4e5cb5b6f63c780aa83d209e2986e7ad1..05969ee593305e064d256a8fa36f1d75571fd3c6 100644
--- a/src/OpenFOAM/meshes/polyMesh/polyPatches/constraint/processor/processorPolyPatch.C
+++ b/src/OpenFOAM/meshes/polyMesh/polyPatches/constraint/processor/processorPolyPatch.C
@@ -34,6 +34,7 @@ License
 #include "polyMesh.H"
 #include "Time.H"
 #include "transformList.H"
+#include "PstreamBuffers.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -155,16 +156,11 @@ Foam::processorPolyPatch::~processorPolyPatch()
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
-void Foam::processorPolyPatch::initGeometry()
+void Foam::processorPolyPatch::initGeometry(PstreamBuffers& pBufs)
 {
     if (Pstream::parRun())
     {
-        OPstream toNeighbProc
-        (
-            Pstream::blocking,
-            neighbProcNo(),
-            3*(sizeof(label) + size()*sizeof(vector) + sizeof(scalar))
-        );
+        UOPstream toNeighbProc(neighbProcNo(), pBufs);
 
         toNeighbProc
             << faceCentres()
@@ -174,17 +170,13 @@ void Foam::processorPolyPatch::initGeometry()
 }
 
 
-void Foam::processorPolyPatch::calcGeometry()
+void Foam::processorPolyPatch::calcGeometry(PstreamBuffers& pBufs)
 {
     if (Pstream::parRun())
     {
         {
-            IPstream fromNeighbProc
-            (
-                Pstream::blocking,
-                neighbProcNo(),
-                3*(sizeof(label) + size()*sizeof(vector) + sizeof(scalar))
-            );
+            UIPstream fromNeighbProc(neighbProcNo(), pBufs);
+
             fromNeighbProc
                 >> neighbFaceCentres_
                 >> neighbFaceAreas_
@@ -251,22 +243,30 @@ void Foam::processorPolyPatch::calcGeometry()
 }
 
 
-void Foam::processorPolyPatch::initMovePoints(const pointField& p)
+void Foam::processorPolyPatch::initMovePoints
+(
+    PstreamBuffers& pBufs,
+    const pointField& p
+)
 {
-    polyPatch::movePoints(p);
-    processorPolyPatch::initGeometry();
+    polyPatch::movePoints(pBufs, p);
+    processorPolyPatch::initGeometry(pBufs);
 }
 
 
-void Foam::processorPolyPatch::movePoints(const pointField&)
+void Foam::processorPolyPatch::movePoints
+(
+    PstreamBuffers& pBufs,
+    const pointField&
+)
 {
-    processorPolyPatch::calcGeometry();
+    processorPolyPatch::calcGeometry(pBufs);
 }
 
 
-void Foam::processorPolyPatch::initUpdateMesh()
+void Foam::processorPolyPatch::initUpdateMesh(PstreamBuffers& pBufs)
 {
-    polyPatch::initUpdateMesh();
+    polyPatch::initUpdateMesh(pBufs);
 
     deleteDemandDrivenData(neighbPointsPtr_);
     deleteDemandDrivenData(neighbEdgesPtr_);
@@ -303,14 +303,7 @@ void Foam::processorPolyPatch::initUpdateMesh()
             edgeIndex[patchEdgeI] = findIndex(fEdges, patchEdgeI);
         }
 
-        OPstream toNeighbProc
-        (
-            Pstream::blocking,
-            neighbProcNo(),
-            8*sizeof(label)             // four headers of labelList
-          + 2*nPoints()*sizeof(label)   // two point-based labellists
-          + 2*nEdges()*sizeof(label)    // two edge-based labelLists
-        );
+        UOPstream toNeighbProc(neighbProcNo(), pBufs);
 
         toNeighbProc
             << pointFace
@@ -321,10 +314,10 @@ void Foam::processorPolyPatch::initUpdateMesh()
 }
 
 
-void Foam::processorPolyPatch::updateMesh()
+void Foam::processorPolyPatch::updateMesh(PstreamBuffers& pBufs)
 {
     // For completeness
-    polyPatch::updateMesh();
+    polyPatch::updateMesh(pBufs);
 
     if (Pstream::parRun())
     {
@@ -336,7 +329,7 @@ void Foam::processorPolyPatch::updateMesh()
         {
             // Note cannot predict exact size since opposite nPoints might
             // be different from one over here.
-            IPstream fromNeighbProc(Pstream::blocking, neighbProcNo());
+            UIPstream fromNeighbProc(neighbProcNo(), pBufs);
 
             fromNeighbProc
                 >> nbrPointFace
@@ -446,7 +439,11 @@ const Foam::labelList& Foam::processorPolyPatch::neighbEdges() const
 }
 
 
-void Foam::processorPolyPatch::initOrder(const primitivePatch& pp) const
+void Foam::processorPolyPatch::initOrder
+(
+    PstreamBuffers& pBufs,
+    const primitivePatch& pp
+) const
 {
     if (!Pstream::parRun())
     {
@@ -491,7 +488,7 @@ void Foam::processorPolyPatch::initOrder(const primitivePatch& pp) const
         pointField anchors(getAnchorPoints(pp, pp.points()));
 
         // Now send all info over to the neighbour
-        OPstream toNeighbour(Pstream::blocking, neighbProcNo());
+        UOPstream toNeighbour(neighbProcNo(), pBufs);
         toNeighbour << ctrs << anchors;
     }
 }
@@ -503,6 +500,7 @@ void Foam::processorPolyPatch::initOrder(const primitivePatch& pp) const
 // is identity, rotation is 0)
 bool Foam::processorPolyPatch::order
 (
+    PstreamBuffers& pBufs,
     const primitivePatch& pp,
     labelList& faceMap,
     labelList& rotation
@@ -539,7 +537,7 @@ bool Foam::processorPolyPatch::order
 
         // Receive data from neighbour
         {
-            IPstream fromNeighbour(Pstream::blocking, neighbProcNo());
+            UIPstream fromNeighbour(neighbProcNo(), pBufs);
             fromNeighbour >> masterCtrs >> masterAnchors;
         }
 
diff --git a/src/OpenFOAM/meshes/polyMesh/polyPatches/constraint/processor/processorPolyPatch.H b/src/OpenFOAM/meshes/polyMesh/polyPatches/constraint/processor/processorPolyPatch.H
index a8948fee4376804ce4322973d00499160b94c6d1..807ea19825dd51eec6a38d145ec56c06f559a2fa 100644
--- a/src/OpenFOAM/meshes/polyMesh/polyPatches/constraint/processor/processorPolyPatch.H
+++ b/src/OpenFOAM/meshes/polyMesh/polyPatches/constraint/processor/processorPolyPatch.H
@@ -28,15 +28,12 @@ Class
 Description
     Neighbour processor patch.
 
-    Note: morph patch face ordering comes geometric or topological.
-    Geometric: no cyclics allowed (assumes faces coincident)
-    Topological: needs unmodified faces on both sides to correspond. Also
-    needs at least one per connected patch area (so all patch faces can be
-    visited from an unmodified face)
+    Note: morph patch face ordering tries to do a geometric ordering.
+    (assumes faces coincident) Hence will have problems when cyclics
+    are present. 
 
 SourceFiles
     processorPolyPatch.C
-    processorPolyPatchMorph.C
 
 \*---------------------------------------------------------------------------*/
 
@@ -97,22 +94,22 @@ protected:
     // Protected Member functions
 
         //- Initialise the calculation of the patch geometry
-        void initGeometry();
+        void initGeometry(PstreamBuffers&);
 
         //- Calculate the patch geometry
-        void calcGeometry();
+        void calcGeometry(PstreamBuffers&);
 
         //- Initialise the patches for moving points
-        void initMovePoints(const pointField&);
+        void initMovePoints(PstreamBuffers&, const pointField&);
 
         //- Correct patches after moving points
-        void movePoints(const pointField&);
+        void movePoints(PstreamBuffers&, const pointField&);
 
         //- Initialise the update of the patch topology
-        virtual void initUpdateMesh();
+        virtual void initUpdateMesh(PstreamBuffers&);
 
         //- Update of the patch topology
-        virtual void updateMesh();
+        virtual void updateMesh(PstreamBuffers&);
 
 
 public:
@@ -283,7 +280,7 @@ public:
 
         //- Initialize ordering for primitivePatch. Does not
         //  refer to *this (except for name() and type() etc.)
-        virtual void initOrder(const primitivePatch&) const;
+        virtual void initOrder(PstreamBuffers&, const primitivePatch&) const;
 
         //- Return new ordering for primitivePatch.
         //  Ordering is -faceMap: for every face
@@ -292,6 +289,7 @@ public:
         //  (faceMap is identity, rotation is 0), true otherwise.
         virtual bool order
         (
+            PstreamBuffers&,
             const primitivePatch&,
             labelList& faceMap,
             labelList& rotation
diff --git a/src/OpenFOAM/meshes/polyMesh/polyPatches/polyPatch/polyPatch.C b/src/OpenFOAM/meshes/polyMesh/polyPatches/polyPatch/polyPatch.C
index be0aa378a67e00fffba1b354cd2e65b885d072a1..0a6bde6b4f86d89482eb5206886f0abdeb6a8fa5 100644
--- a/src/OpenFOAM/meshes/polyMesh/polyPatches/polyPatch/polyPatch.C
+++ b/src/OpenFOAM/meshes/polyMesh/polyPatches/polyPatch/polyPatch.C
@@ -55,12 +55,12 @@ namespace Foam
 
 // * * * * * * * * * * * * Protected Member Functions  * * * * * * * * * * * //
 
-void Foam::polyPatch::movePoints(const pointField& p)
+void Foam::polyPatch::movePoints(PstreamBuffers&, const pointField& p)
 {
     primitivePatch::movePoints(p);
 }
 
-void Foam::polyPatch::updateMesh()
+void Foam::polyPatch::updateMesh(PstreamBuffers&)
 {
     clearAddressing();
 }
@@ -334,12 +334,13 @@ void Foam::polyPatch::write(Ostream& os) const
 }
 
 
-void Foam::polyPatch::initOrder(const primitivePatch&) const
+void Foam::polyPatch::initOrder(PstreamBuffers&, const primitivePatch&) const
 {}
 
 
 bool Foam::polyPatch::order
 (
+    PstreamBuffers&,
     const primitivePatch&,
     labelList& faceMap,
     labelList& rotation
diff --git a/src/OpenFOAM/meshes/polyMesh/polyPatches/polyPatch/polyPatch.H b/src/OpenFOAM/meshes/polyMesh/polyPatches/polyPatch/polyPatch.H
index f8c8fa72e72f511f4cdd29d0ead265c3ba66905b..5694e538234a50341d1c9ae1d23c2a0050acaa60 100644
--- a/src/OpenFOAM/meshes/polyMesh/polyPatches/polyPatch/polyPatch.H
+++ b/src/OpenFOAM/meshes/polyMesh/polyPatches/polyPatch/polyPatch.H
@@ -56,6 +56,7 @@ namespace Foam
 
 class polyBoundaryMesh;
 class polyPatch;
+class PstreamBuffers;
 
 Ostream& operator<<(Ostream&, const polyPatch&);
 
@@ -101,26 +102,26 @@ protected:
         friend class polyBoundaryMesh;
 
         //- Initialise the calculation of the patch geometry
-        virtual void initGeometry()
+        virtual void initGeometry(PstreamBuffers&)
         {}
 
         //- Calculate the patch geometry
-        virtual void calcGeometry()
+        virtual void calcGeometry(PstreamBuffers&)
         {}
 
         //- Initialise the patches for moving points
-        virtual void initMovePoints(const pointField&)
+        virtual void initMovePoints(PstreamBuffers&, const pointField&)
         {}
 
         //- Correct patches after moving points
-        virtual void movePoints(const pointField& p);
+        virtual void movePoints(PstreamBuffers&, const pointField& p);
 
         //- Initialise the update of the patch topology
-        virtual void initUpdateMesh()
+        virtual void initUpdateMesh(PstreamBuffers&)
         {}
 
         //- Update of the patch topology
-        virtual void updateMesh();
+        virtual void updateMesh(PstreamBuffers&);
 
 
 public:
@@ -358,7 +359,7 @@ public:
 
         //- Initialize ordering for primitivePatch. Does not
         //  refer to *this (except for name() and type() etc.)
-        virtual void initOrder(const primitivePatch&) const;
+        virtual void initOrder(PstreamBuffers&, const primitivePatch&) const;
 
         //- Return new ordering for primitivePatch.
         //  Ordering is -faceMap: for every face
@@ -367,6 +368,7 @@ public:
         //  (faceMap is identity, rotation is 0), true otherwise.
         virtual bool order
         (
+            PstreamBuffers&,
             const primitivePatch&,
             labelList& faceMap,
             labelList& rotation
diff --git a/src/OpenFOAM/meshes/polyMesh/zones/faceZone/faceZone.C b/src/OpenFOAM/meshes/polyMesh/zones/faceZone/faceZone.C
index bf4ce6725503c42165164fe17fa2ceccea5d9b1a..e3e15e8574b056f8f04757dbcbebb23dd585e7fd 100644
--- a/src/OpenFOAM/meshes/polyMesh/zones/faceZone/faceZone.C
+++ b/src/OpenFOAM/meshes/polyMesh/zones/faceZone/faceZone.C
@@ -156,8 +156,8 @@ void Foam::faceZone::calcCellLayers() const
                 sc[faceI] = neiCellI;
             }
         }
-        //Info << "masterCells: " << mc << endl;
-        //Info << "slaveCells: " << sc << endl;
+        //Info<< "masterCells: " << mc << endl;
+        //Info<< "slaveCells: " << sc << endl;
     }
 }
 
diff --git a/src/OpenFOAM/meshes/preservePatchTypes/preservePatchTypes.C b/src/OpenFOAM/meshes/preservePatchTypes/preservePatchTypes.C
index 3def20788466e12d27ee361d361324d7cfb2a130..0c73d3e46a8dd56313250c9e4dff181cf44dc8b5 100644
--- a/src/OpenFOAM/meshes/preservePatchTypes/preservePatchTypes.C
+++ b/src/OpenFOAM/meshes/preservePatchTypes/preservePatchTypes.C
@@ -74,7 +74,7 @@ void Foam::preservePatchTypes
         {
             if (patchDictionary.found(patchNames[patchi]))
             {
-                const dictionary& patchDict = 
+                const dictionary& patchDict =
                     patchDictionary.subDict(patchNames[patchi]);
 
                 patchDict.lookup("type") >> patchTypes[patchi];
@@ -90,14 +90,14 @@ void Foam::preservePatchTypes
 
         if (patchDictionary.found(defaultFacesName))
         {
-            const dictionary& patchDict = 
+            const dictionary& patchDict =
                 patchDictionary.subDict(defaultFacesName);
 
             patchDict.readIfPresent("geometricType", defaultFacesType);
         }
     }
 
-    Info << nl << "Default patch type set to " << defaultFacesType << endl;
+    Info<< nl << "Default patch type set to " << defaultFacesType << endl;
 }
 
 
diff --git a/src/OpenFOAM/meshes/primitiveMesh/PatchTools/PatchToolsCheck.C b/src/OpenFOAM/meshes/primitiveMesh/PatchTools/PatchToolsCheck.C
index a644cd1934901290b85d83305034cb6f2bdf3d9d..1d74afb48ab435342d4136dac8095641df0432d3 100644
--- a/src/OpenFOAM/meshes/primitiveMesh/PatchTools/PatchToolsCheck.C
+++ b/src/OpenFOAM/meshes/primitiveMesh/PatchTools/PatchToolsCheck.C
@@ -95,7 +95,7 @@ Foam::PatchTools::checkOrientation
         const Face& f = p[faceI];
         const point& p0 = p.points()[f[0]];
         const point& p1 = p.points()[f[1]];
-        const point& p2 = p.points()[f[f.size()-1]];
+        const point& p2 = p.points()[f.last()];
 
         const vector pointNormal((p1 - p0) ^ (p2 - p0));
         if ((pointNormal & p.faceNormals()[faceI]) < 0)
diff --git a/src/OpenFOAM/meshes/primitiveMesh/PrimitivePatch/PrimitivePatch.C b/src/OpenFOAM/meshes/primitiveMesh/PrimitivePatch/PrimitivePatch.C
index 6be9ef348b5071e61874fffacc991a7f83505a68..a86dd36010a9c7207c3f7a1b3551807866f265b5 100644
--- a/src/OpenFOAM/meshes/primitiveMesh/PrimitivePatch/PrimitivePatch.C
+++ b/src/OpenFOAM/meshes/primitiveMesh/PrimitivePatch/PrimitivePatch.C
@@ -28,7 +28,6 @@ License
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-// Construct from components
 template
 <
     class Face,
@@ -36,7 +35,6 @@ template
     class PointField,
     class PointType
 >
-
 Foam::PrimitivePatch<Face, FaceList, PointField, PointType>::
 PrimitivePatch
 (
@@ -60,12 +58,12 @@ PrimitivePatch
     edgeLoopsPtr_(NULL),
     localPointsPtr_(NULL),
     localPointOrderPtr_(NULL),
+    faceCentresPtr_(NULL),
     faceNormalsPtr_(NULL),
     pointNormalsPtr_(NULL)
 {}
 
 
-// Construct from components
 template
 <
     class Face,
@@ -73,7 +71,6 @@ template
     class PointField,
     class PointType
 >
-
 Foam::PrimitivePatch<Face, FaceList, PointField, PointType>::
 PrimitivePatch
 (
@@ -98,12 +95,12 @@ PrimitivePatch
     edgeLoopsPtr_(NULL),
     localPointsPtr_(NULL),
     localPointOrderPtr_(NULL),
+    faceCentresPtr_(NULL),
     faceNormalsPtr_(NULL),
     pointNormalsPtr_(NULL)
 {}
 
 
-// Construct as copy
 template
 <
     class Face,
@@ -111,7 +108,6 @@ template
     class PointField,
     class PointType
 >
-
 Foam::PrimitivePatch<Face, FaceList, PointField, PointType>::
 PrimitivePatch
 (
@@ -135,6 +131,7 @@ PrimitivePatch
     edgeLoopsPtr_(NULL),
     localPointsPtr_(NULL),
     localPointOrderPtr_(NULL),
+    faceCentresPtr_(NULL),
     faceNormalsPtr_(NULL),
     pointNormalsPtr_(NULL)
 {}
@@ -149,8 +146,8 @@ template
     class PointField,
     class PointType
 >
-
-Foam::PrimitivePatch<Face, FaceList, PointField, PointType>::~PrimitivePatch()
+Foam::PrimitivePatch<Face, FaceList, PointField, PointType>::
+~PrimitivePatch()
 {
     clearOut();
 }
@@ -158,7 +155,6 @@ Foam::PrimitivePatch<Face, FaceList, PointField, PointType>::~PrimitivePatch()
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
-// Correct patch after moving points
 template
 <
     class Face,
@@ -166,7 +162,6 @@ template
     class PointField,
     class PointType
 >
-
 void
 Foam::PrimitivePatch<Face, FaceList, PointField, PointType>::
 movePoints
@@ -193,7 +188,6 @@ template
     class PointField,
     class PointType
 >
-
 const Foam::edgeList&
 Foam::PrimitivePatch<Face, FaceList, PointField, PointType>::
 edges() const
@@ -214,7 +208,6 @@ template
     class PointField,
     class PointType
 >
-
 Foam::label
 Foam::PrimitivePatch<Face, FaceList, PointField, PointType>::
 nInternalEdges() const
@@ -235,7 +228,6 @@ template
     class PointField,
     class PointType
 >
-
 const Foam::labelList&
 Foam::PrimitivePatch<Face, FaceList, PointField, PointType>::
 boundaryPoints() const
@@ -256,7 +248,6 @@ template
     class PointField,
     class PointType
 >
-
 const Foam::labelListList&
 Foam::PrimitivePatch<Face, FaceList, PointField, PointType>::
 faceFaces() const
@@ -277,7 +268,6 @@ template
     class PointField,
     class PointType
 >
-
 const Foam::labelListList&
 Foam::PrimitivePatch<Face, FaceList, PointField, PointType>::
 edgeFaces() const
@@ -298,7 +288,6 @@ template
     class PointField,
     class PointType
 >
-
 const Foam::labelListList&
 Foam::PrimitivePatch<Face, FaceList, PointField, PointType>::
 faceEdges() const
@@ -319,7 +308,6 @@ template
     class PointField,
     class PointType
 >
-
 const Foam::labelListList&
 Foam::PrimitivePatch<Face, FaceList, PointField, PointType>::
 pointEdges() const
@@ -340,7 +328,6 @@ template
     class PointField,
     class PointType
 >
-
 const Foam::labelListList&
 Foam::PrimitivePatch<Face, FaceList, PointField, PointType>::
 pointFaces() const
@@ -361,7 +348,6 @@ template
     class PointField,
     class PointType
 >
-
 const Foam::List<Face>&
 Foam::PrimitivePatch<Face, FaceList, PointField, PointType>::
 localFaces() const
@@ -382,7 +368,6 @@ template
     class PointField,
     class PointType
 >
-
 const Foam::labelList&
 Foam::PrimitivePatch<Face, FaceList, PointField, PointType>::
 meshPoints() const
@@ -403,7 +388,6 @@ template
     class PointField,
     class PointType
 >
-
 const Foam::Map<Foam::label>&
 Foam::PrimitivePatch<Face, FaceList, PointField, PointType>::
 meshPointMap() const
@@ -424,7 +408,6 @@ template
     class PointField,
     class PointType
 >
-
 const Foam::Field<PointType>&
 Foam::PrimitivePatch<Face, FaceList, PointField, PointType>::
 localPoints() const
@@ -445,7 +428,6 @@ template
     class PointField,
     class PointType
 >
-
 const Foam::labelList&
 Foam::PrimitivePatch<Face, FaceList, PointField, PointType>::
 localPointOrder() const
@@ -466,7 +448,6 @@ template
     class PointField,
     class PointType
 >
-
 Foam::label
 Foam::PrimitivePatch<Face, FaceList, PointField, PointType>::
 whichPoint
@@ -495,7 +476,26 @@ template
     class PointField,
     class PointType
 >
+const Foam::Field<PointType>&
+Foam::PrimitivePatch<Face, FaceList, PointField, PointType>::
+faceCentres() const
+{
+    if (!faceCentresPtr_)
+    {
+        calcFaceCentres();
+    }
+
+    return *faceCentresPtr_;
+}
 
+
+template
+<
+    class Face,
+    template<class> class FaceList,
+    class PointField,
+    class PointType
+>
 const Foam::Field<PointType>&
 Foam::PrimitivePatch<Face, FaceList, PointField, PointType>::
 faceNormals() const
@@ -516,7 +516,6 @@ template
     class PointField,
     class PointType
 >
-
 const Foam::Field<PointType>&
 Foam::PrimitivePatch<Face, FaceList, PointField, PointType>::
 pointNormals() const
@@ -539,7 +538,6 @@ template
     class PointField,
     class PointType
 >
-
 void
 Foam::PrimitivePatch<Face, FaceList, PointField, PointType>::
 operator=
@@ -552,6 +550,7 @@ operator=
     FaceList<Face>::operator=(pp);
 }
 
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 #include "PrimitivePatchAddressing.C"
diff --git a/src/OpenFOAM/meshes/primitiveMesh/PrimitivePatch/PrimitivePatch.H b/src/OpenFOAM/meshes/primitiveMesh/PrimitivePatch/PrimitivePatch.H
index c741b0839ec91863cb47c5071a1c3d08c03c2a33..dbd8a9ffb582a877bd37e868c4f88759c4e9cabc 100644
--- a/src/OpenFOAM/meshes/primitiveMesh/PrimitivePatch/PrimitivePatch.H
+++ b/src/OpenFOAM/meshes/primitiveMesh/PrimitivePatch/PrimitivePatch.H
@@ -166,6 +166,9 @@ private:
         //- Local point order for most efficient search
         mutable labelList* localPointOrderPtr_;
 
+        //- Face centres
+        mutable Field<PointType>* faceCentresPtr_;
+
         //- Face unit normals
         mutable Field<PointType>* faceNormalsPtr_;
 
@@ -205,6 +208,9 @@ private:
         //- Calculate local point order
         void calcLocalPointOrder() const;
 
+        //- Calculate face centres
+        void calcFaceCentres() const;
+
         //- Calculate unit face normals
         void calcFaceNormals() const;
 
@@ -370,6 +376,9 @@ public:
                 const labelListList& pointEdges
             ) const;
 
+            //- Return face centres for patch
+            const Field<PointType>& faceCentres() const;
+
             //- Return face normals for patch
             const Field<PointType>& faceNormals() const;
 
diff --git a/src/OpenFOAM/meshes/primitiveMesh/PrimitivePatch/PrimitivePatchAddressing.C b/src/OpenFOAM/meshes/primitiveMesh/PrimitivePatch/PrimitivePatchAddressing.C
index 14d91344d13c90a374e80393886132311ddbd0d6..5deecba26c4f20dcf301270cbf1ec012d675fa71 100644
--- a/src/OpenFOAM/meshes/primitiveMesh/PrimitivePatch/PrimitivePatchAddressing.C
+++ b/src/OpenFOAM/meshes/primitiveMesh/PrimitivePatch/PrimitivePatchAddressing.C
@@ -48,7 +48,6 @@ template
     class PointField,
     class PointType
 >
-
 void
 Foam::PrimitivePatch<Face, FaceList, PointField, PointType>::
 calcAddressing() const
diff --git a/src/OpenFOAM/meshes/primitiveMesh/PrimitivePatch/PrimitivePatchBdryPoints.C b/src/OpenFOAM/meshes/primitiveMesh/PrimitivePatch/PrimitivePatchBdryPoints.C
index fbd309d2cf4bb7e8df4b012ec6184d513fcb61df..379445b1c47ecf8e56207750b8ec80daa7685b79 100644
--- a/src/OpenFOAM/meshes/primitiveMesh/PrimitivePatch/PrimitivePatchBdryPoints.C
+++ b/src/OpenFOAM/meshes/primitiveMesh/PrimitivePatch/PrimitivePatchBdryPoints.C
@@ -22,8 +22,6 @@ License
     along with OpenFOAM; if not, write to the Free Software Foundation,
     Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
 
-Description
-
 \*---------------------------------------------------------------------------*/
 
 #include "PrimitivePatch.H"
@@ -39,7 +37,6 @@ template
     class PointField,
     class PointType
 >
-
 void
 Foam::PrimitivePatch<Face, FaceList, PointField, PointType>::
 calcBdryPoints() const
diff --git a/src/OpenFOAM/meshes/primitiveMesh/PrimitivePatch/PrimitivePatchCheck.C b/src/OpenFOAM/meshes/primitiveMesh/PrimitivePatch/PrimitivePatchCheck.C
index 172bc9db7e217c6ffa4bd81d7d29ef62604bcd4b..11fe2235ba50843272587b2a40d45de3380f84d5 100644
--- a/src/OpenFOAM/meshes/primitiveMesh/PrimitivePatch/PrimitivePatchCheck.C
+++ b/src/OpenFOAM/meshes/primitiveMesh/PrimitivePatch/PrimitivePatchCheck.C
@@ -41,7 +41,6 @@ template
     class PointField,
     class PointType
 >
-
 void
 Foam::PrimitivePatch<Face, FaceList, PointField, PointType>::
 visitPointRegion
@@ -120,7 +119,6 @@ template
     class PointField,
     class PointType
 >
-
 typename Foam::PrimitivePatch<Face, FaceList, PointField, PointType>::surfaceTopo
 Foam::PrimitivePatch<Face, FaceList, PointField, PointType>::
 surfaceType() const
@@ -174,7 +172,6 @@ template
     class PointField,
     class PointType
 >
-
 bool
 Foam::PrimitivePatch<Face, FaceList, PointField, PointType>::
 checkTopology
@@ -245,7 +242,6 @@ template
     class PointField,
     class PointType
 >
-
 bool
 Foam::PrimitivePatch<Face, FaceList, PointField, PointType>::
 checkPointManifold
diff --git a/src/OpenFOAM/meshes/primitiveMesh/PrimitivePatch/PrimitivePatchClear.C b/src/OpenFOAM/meshes/primitiveMesh/PrimitivePatch/PrimitivePatchClear.C
index 160bf5546fb78f4266b4b5aadfbc4a39bf2f3178..c85cf14789c88f8dc4b1136952ff65489d0fcfe7 100644
--- a/src/OpenFOAM/meshes/primitiveMesh/PrimitivePatch/PrimitivePatchClear.C
+++ b/src/OpenFOAM/meshes/primitiveMesh/PrimitivePatch/PrimitivePatchClear.C
@@ -22,8 +22,6 @@ License
     along with OpenFOAM; if not, write to the Free Software Foundation,
     Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
 
-Description
-
 \*---------------------------------------------------------------------------*/
 
 #include "PrimitivePatch.H"
@@ -39,7 +37,6 @@ template
     class PointField,
     class PointType
 >
-
 void
 Foam::PrimitivePatch<Face, FaceList, PointField, PointType>::
 clearGeom()
@@ -52,6 +49,7 @@ clearGeom()
     }
 
     deleteDemandDrivenData(localPointsPtr_);
+    deleteDemandDrivenData(faceCentresPtr_);
     deleteDemandDrivenData(faceNormalsPtr_);
     deleteDemandDrivenData(pointNormalsPtr_);
 }
@@ -64,7 +62,6 @@ template
     class PointField,
     class PointType
 >
-
 void
 Foam::PrimitivePatch<Face, FaceList, PointField, PointType>::
 clearTopology()
@@ -106,7 +103,6 @@ template
     class PointField,
     class PointType
 >
-
 void
 Foam::PrimitivePatch<Face, FaceList, PointField, PointType>::
 clearPatchMeshAddr()
@@ -132,7 +128,6 @@ template
     class PointField,
     class PointType
 >
-
 void
 Foam::PrimitivePatch<Face, FaceList, PointField, PointType>::
 clearOut()
diff --git a/src/OpenFOAM/meshes/primitiveMesh/PrimitivePatch/PrimitivePatchEdgeLoops.C b/src/OpenFOAM/meshes/primitiveMesh/PrimitivePatch/PrimitivePatchEdgeLoops.C
index 3b7d87df90cbbda1cba465ad1223ebf050ff27e4..80e36f166dba6209014e79ab20c1ed67daf1a25c 100644
--- a/src/OpenFOAM/meshes/primitiveMesh/PrimitivePatch/PrimitivePatchEdgeLoops.C
+++ b/src/OpenFOAM/meshes/primitiveMesh/PrimitivePatch/PrimitivePatchEdgeLoops.C
@@ -31,7 +31,6 @@ Description
 #include "PrimitivePatch.H"
 
 
-
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
 template
@@ -41,7 +40,6 @@ template
     class PointField,
     class PointType
 >
-
 void
 Foam::PrimitivePatch<Face, FaceList, PointField, PointType>::
 calcEdgeLoops() const
@@ -174,7 +172,6 @@ template
     class PointField,
     class PointType
 >
-
 const Foam::labelListList&
 Foam::PrimitivePatch<Face, FaceList, PointField, PointType>::
 edgeLoops() const
diff --git a/src/OpenFOAM/meshes/primitiveMesh/PrimitivePatch/PrimitivePatchLocalPointOrder.C b/src/OpenFOAM/meshes/primitiveMesh/PrimitivePatch/PrimitivePatchLocalPointOrder.C
index b4359d83ebc06e02a356685bc545833b3987a599..7a20d8a81b942fb49059f9d884c38cab476e2258 100644
--- a/src/OpenFOAM/meshes/primitiveMesh/PrimitivePatch/PrimitivePatchLocalPointOrder.C
+++ b/src/OpenFOAM/meshes/primitiveMesh/PrimitivePatch/PrimitivePatchLocalPointOrder.C
@@ -39,14 +39,13 @@ template
     class PointField,
     class PointType
 >
-
 void
 Foam::PrimitivePatch<Face, FaceList, PointField, PointType>::
 calcLocalPointOrder() const
 {
     // Note: Cannot use bandCompressing as point-point addressing does
     // not exist and is not considered generally useful.
-    //  
+    //
 
     if (debug)
     {
@@ -137,4 +136,5 @@ calcLocalPointOrder() const
     }
 }
 
+
 // ************************************************************************* //
diff --git a/src/OpenFOAM/meshes/primitiveMesh/PrimitivePatch/PrimitivePatchMeshData.C b/src/OpenFOAM/meshes/primitiveMesh/PrimitivePatch/PrimitivePatchMeshData.C
index 30cffb6310a0e3b74fa5641b8d9ed1641cb6dd15..cd05f3f0e1fea2a63e4e9d83d01b6c1025535e25 100644
--- a/src/OpenFOAM/meshes/primitiveMesh/PrimitivePatch/PrimitivePatchMeshData.C
+++ b/src/OpenFOAM/meshes/primitiveMesh/PrimitivePatch/PrimitivePatchMeshData.C
@@ -27,8 +27,6 @@ License
 #include "PrimitivePatch.H"
 #include "Map.H"
 
-
-
 // * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
 
 template
@@ -38,7 +36,6 @@ template
     class PointField,
     class PointType
 >
-
 void
 Foam::PrimitivePatch<Face, FaceList, PointField, PointType>::
 calcMeshData() const
@@ -76,13 +73,13 @@ calcMeshData() const
 
     ////- 1.5 code:
     //// if the point is used, set the mark to 1
-    //forAll (*this, faceI)
+    //forAll(*this, facei)
     //{
-    //    const Face& curPoints = this->operator[](faceI);
+    //    const Face& curPoints = this->operator[](facei);
     //
-    //    forAll (curPoints, pointI)
+    //    forAll(curPoints, pointi)
     //    {
-    //        markedPoints.insert(curPoints[pointI], -1);
+    //        markedPoints.insert(curPoints[pointi], -1);
     //    }
     //}
     //
@@ -95,22 +92,22 @@ calcMeshData() const
     //sort(pointPatch);
     //
     //// For every point in map give it its label in mesh points
-    //forAll (pointPatch, pointI)
+    //forAll(pointPatch, pointi)
     //{
-    //    markedPoints.find(pointPatch[pointI])() = pointI;
+    //    markedPoints.find(pointPatch[pointi])() = pointi;
     //}
 
     //- Unsorted version:
     DynamicList<label> meshPoints(2*this->size());
-    forAll (*this, faceI)
+    forAll(*this, facei)
     {
-        const Face& curPoints = this->operator[](faceI);
+        const Face& curPoints = this->operator[](facei);
 
-        forAll (curPoints, pointI)
+        forAll(curPoints, pointi)
         {
-            if (markedPoints.insert(curPoints[pointI], meshPoints.size()))
+            if (markedPoints.insert(curPoints[pointi], meshPoints.size()))
             {
-                meshPoints.append(curPoints[pointI]);
+                meshPoints.append(curPoints[pointi]);
             }
         }
     }
@@ -124,14 +121,14 @@ calcMeshData() const
     localFacesPtr_ = new List<Face>(*this);
     List<Face>& lf = *localFacesPtr_;
 
-    forAll (*this, faceI)
+    forAll(*this, facei)
     {
-        const Face& curFace = this->operator[](faceI);
-        lf[faceI].setSize(curFace.size());
+        const Face& curFace = this->operator[](facei);
+        lf[facei].setSize(curFace.size());
 
-        forAll (curFace, labelI)
+        forAll(curFace, labelI)
         {
-            lf[faceI][labelI] = markedPoints.find(curFace[labelI])();
+            lf[facei][labelI] = markedPoints.find(curFace[labelI])();
         }
     }
 
@@ -152,7 +149,6 @@ template
     class PointField,
     class PointType
 >
-
 void
 Foam::PrimitivePatch<Face, FaceList, PointField, PointType>::
 calcMeshPointMap() const
@@ -182,7 +178,7 @@ calcMeshPointMap() const
     meshPointMapPtr_ = new Map<label>(2*mp.size());
     Map<label>& mpMap = *meshPointMapPtr_;
 
-    forAll (mp, i)
+    forAll(mp, i)
     {
         mpMap.insert(mp[i], i);
     }
@@ -204,7 +200,6 @@ template
     class PointField,
     class PointType
 >
-
 void
 Foam::PrimitivePatch<Face, FaceList, PointField, PointType>::
 calcLocalPoints() const
@@ -235,9 +230,9 @@ calcLocalPoints() const
 
     Field<PointType>& locPts = *localPointsPtr_;
 
-    forAll (meshPts, pointI)
+    forAll(meshPts, pointi)
     {
-        locPts[pointI] = points_[meshPts[pointI]];
+        locPts[pointi] = points_[meshPts[pointi]];
     }
 
     if (debug)
@@ -257,7 +252,6 @@ template
     class PointField,
     class PointType
 >
-
 void
 Foam::PrimitivePatch<Face, FaceList, PointField, PointType>::
 calcPointNormals() const
@@ -294,15 +288,15 @@ calcPointNormals() const
 
     Field<PointType>& n = *pointNormalsPtr_;
 
-    forAll (pf, pointI)
+    forAll(pf, pointi)
     {
-        PointType& curNormal = n[pointI];
+        PointType& curNormal = n[pointi];
 
-        const labelList& curFaces = pf[pointI];
+        const labelList& curFaces = pf[pointi];
 
-        forAll (curFaces, faceI)
+        forAll(curFaces, facei)
         {
-            curNormal += faceUnitNormals[curFaces[faceI]];
+            curNormal += faceUnitNormals[curFaces[facei]];
         }
 
         curNormal /= mag(curNormal) + VSMALL;
@@ -325,7 +319,56 @@ template
     class PointField,
     class PointType
 >
+void
+Foam::PrimitivePatch<Face, FaceList, PointField, PointType>::
+calcFaceCentres() const
+{
+    if (debug)
+    {
+        Pout<< "PrimitivePatch<Face, FaceList, PointField, PointType>::"
+               "calcFaceCentres() : "
+               "calculating faceCentres in PrimitivePatch"
+            << endl;
+    }
+
+    // It is considered an error to attempt to recalculate faceCentres
+    // if they have already been calculated.
+    if (faceCentresPtr_)
+    {
+        FatalErrorIn
+        (
+            "PrimitivePatch<Face, FaceList, PointField, PointType>::"
+            "calcFaceCentres()"
+        )   << "faceCentresPtr_already allocated"
+            << abort(FatalError);
+    }
+
+    faceCentresPtr_ = new Field<PointType>(this->size());
+
+    Field<PointType>& c = *faceCentresPtr_;
+
+    forAll(c, facei)
+    {
+        c[facei] = this->operator[](facei).centre(points_);
+    }
 
+    if (debug)
+    {
+        Pout<< "PrimitivePatch<Face, FaceList, PointField, PointType>::"
+               "calcFaceCentres() : "
+               "finished calculating faceCentres in PrimitivePatch"
+            << endl;
+    }
+}
+
+
+template
+<
+    class Face,
+    template<class> class FaceList,
+    class PointField,
+    class PointType
+>
 void
 Foam::PrimitivePatch<Face, FaceList, PointField, PointType>::
 calcFaceNormals() const
@@ -354,10 +397,10 @@ calcFaceNormals() const
 
     Field<PointType>& n = *faceNormalsPtr_;
 
-    forAll (n, faceI)
+    forAll(n, facei)
     {
-        n[faceI] = this->operator[](faceI).normal(points_);
-        n[faceI] /= mag(n[faceI]) + VSMALL;
+        n[facei] = this->operator[](facei).normal(points_);
+        n[facei] /= mag(n[facei]) + VSMALL;
     }
 
     if (debug)
diff --git a/src/OpenFOAM/meshes/primitiveMesh/PrimitivePatch/PrimitivePatchMeshEdges.C b/src/OpenFOAM/meshes/primitiveMesh/PrimitivePatch/PrimitivePatchMeshEdges.C
index 79bac6f1c09db49c4dea705edd79e17c045b47b6..fe65b515ecf517232cfdf4ba8cd179d1fd45a255 100644
--- a/src/OpenFOAM/meshes/primitiveMesh/PrimitivePatch/PrimitivePatchMeshEdges.C
+++ b/src/OpenFOAM/meshes/primitiveMesh/PrimitivePatch/PrimitivePatchMeshEdges.C
@@ -22,8 +22,6 @@ License
     along with OpenFOAM; if not, write to the Free Software Foundation,
     Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
 
-Description
-
 \*---------------------------------------------------------------------------*/
 
 #include "PrimitivePatch.H"
@@ -38,7 +36,6 @@ template
     class PointField,
     class PointType
 >
-
 Foam::labelList
 Foam::PrimitivePatch<Face, FaceList, PointField, PointType>::
 meshEdges
@@ -116,7 +113,6 @@ template
     class PointField,
     class PointType
 >
-
 Foam::labelList
 Foam::PrimitivePatch<Face, FaceList, PointField, PointType>::
 meshEdges
@@ -174,7 +170,6 @@ template
     class PointField,
     class PointType
 >
-
 Foam::label
 Foam::PrimitivePatch<Face, FaceList, PointField, PointType>::
 whichEdge
diff --git a/src/OpenFOAM/meshes/primitiveMesh/PrimitivePatch/PrimitivePatchPointAddressing.C b/src/OpenFOAM/meshes/primitiveMesh/PrimitivePatch/PrimitivePatchPointAddressing.C
index 7ac3612286753872aabb2ae35b9f41180a7cea65..e28cfc4d2383cf83288ee2ce3fa1d781478e3de8 100644
--- a/src/OpenFOAM/meshes/primitiveMesh/PrimitivePatch/PrimitivePatchPointAddressing.C
+++ b/src/OpenFOAM/meshes/primitiveMesh/PrimitivePatch/PrimitivePatchPointAddressing.C
@@ -40,7 +40,6 @@ template
     class PointField,
     class PointType
 >
-
 void
 Foam::PrimitivePatch<Face, FaceList, PointField, PointType>::
 calcPointEdges() const
@@ -112,7 +111,6 @@ template
     class PointField,
     class PointType
 >
-
 void
 Foam::PrimitivePatch<Face, FaceList, PointField, PointType>::
 calcPointFaces() const
diff --git a/src/OpenFOAM/meshes/primitiveMesh/PrimitivePatch/PrimitivePatchProjectPoints.C b/src/OpenFOAM/meshes/primitiveMesh/PrimitivePatch/PrimitivePatchProjectPoints.C
index d79caa9da4f493771f07059f2359d7fe204ac0d9..55e97b3681589376b3412f6de1bd288bb97a76ac 100644
--- a/src/OpenFOAM/meshes/primitiveMesh/PrimitivePatch/PrimitivePatchProjectPoints.C
+++ b/src/OpenFOAM/meshes/primitiveMesh/PrimitivePatch/PrimitivePatchProjectPoints.C
@@ -42,7 +42,6 @@ template
     class PointField,
     class PointType
 >
-
 template <class ToPatch>
 Foam::List<Foam::objectHit>
 Foam::PrimitivePatch<Face, FaceList, PointField, PointType>::
@@ -263,7 +262,7 @@ projectPoints
 
             if (debug)
             {
-                Info << result[curLocalPointLabel] << nl;
+                Info<< result[curLocalPointLabel] << nl;
             }
         }
         else
@@ -290,7 +289,6 @@ template
     class PointField,
     class PointType
 >
-
 template <class ToPatch>
 Foam::List<Foam::objectHit>
 Foam::PrimitivePatch<Face, FaceList, PointField, PointType>::
@@ -507,7 +505,7 @@ projectFaceCentres
 
             if (debug)
             {
-                Info << result[curLocalFaceLabel] << nl;
+                Info<< result[curLocalFaceLabel] << nl;
             }
         }
         else
diff --git a/src/OpenFOAM/meshes/primitiveMesh/primitiveMeshCheck/primitiveMeshCheck.C b/src/OpenFOAM/meshes/primitiveMesh/primitiveMeshCheck/primitiveMeshCheck.C
index 5dda9f504d68d0a1fbf342e46bea069585dfc19d..36d6b1a28f34da1748e22ef35fe5fe0f04e907c4 100644
--- a/src/OpenFOAM/meshes/primitiveMesh/primitiveMeshCheck/primitiveMeshCheck.C
+++ b/src/OpenFOAM/meshes/primitiveMesh/primitiveMeshCheck/primitiveMeshCheck.C
@@ -175,7 +175,7 @@ bool Foam::primitiveMesh::checkClosedCells
     {
         scalar maxOpenness = 0;
 
-        for(direction cmpt=0; cmpt<vector::nComponents; cmpt++)
+        for (direction cmpt=0; cmpt<vector::nComponents; cmpt++)
         {
             maxOpenness = max
             (
@@ -654,7 +654,7 @@ bool Foam::primitiveMesh::checkFaceSkewness
             nWarnSkew++;
         }
 
-        if(skewness > maxSkew)
+        if (skewness > maxSkew)
         {
             maxSkew = skewness;
         }
@@ -702,7 +702,7 @@ bool Foam::primitiveMesh::checkFaceSkewness
             nWarnSkew++;
         }
 
-        if(skewness > maxSkew)
+        if (skewness > maxSkew)
         {
             maxSkew = skewness;
         }
@@ -856,7 +856,7 @@ bool Foam::primitiveMesh::checkFaceAngles
         const face& f = fcs[faceI];
 
         // Get edge from f[0] to f[size-1];
-        vector ePrev(p[f[0]] - p[f[f.size()-1]]);
+        vector ePrev(p[f.first()] - p[f.last()]);
         scalar magEPrev = mag(ePrev);
         ePrev /= magEPrev + VSMALL;
 
@@ -1836,19 +1836,21 @@ bool Foam::primitiveMesh::checkFaceFaces
 
     if (nErrorDuplicate > 0 || nErrorOrder > 0)
     {
+        // These are actually warnings, not errors.
         if (nErrorDuplicate > 0)
         {
-            Info<< " ***Number of duplicate (not baffle) faces found: "
-                << nErrorDuplicate << endl;
+            Info<< "  <<Number of duplicate (not baffle) faces found: "
+                << nErrorDuplicate
+                << ". This might indicate a problem." << endl;
         }
 
         if (nErrorOrder > 0)
         {
-            Info<< " ***Number of faces with non-consecutive shared points: "
-                << nErrorOrder << endl;
+            Info<< "  <<Number of faces with non-consecutive shared points: "
+                << nErrorOrder << ". This might indicate a problem." << endl;
         }
 
-        return true;
+        return false;   //return true;
     }
     else
     {
diff --git a/src/OpenFOAM/meshes/primitiveMesh/primitiveMeshEdges.C b/src/OpenFOAM/meshes/primitiveMesh/primitiveMeshEdges.C
index b7278ecf4900e0b871d667041dcf3fe18b2938cc..38f8597985e2c03b43d736180e1a7f07a9674795 100644
--- a/src/OpenFOAM/meshes/primitiveMesh/primitiveMeshEdges.C
+++ b/src/OpenFOAM/meshes/primitiveMesh/primitiveMeshEdges.C
@@ -468,7 +468,7 @@ Foam::label Foam::primitiveMesh::findFirstCommonElementFromSortedLists
 
     while (iter1 != list1.end() && iter2 != list2.end())
     {
-        if( *iter1 < *iter2)
+        if (*iter1 < *iter2)
         {
             ++iter1;
         }
diff --git a/src/OpenFOAM/meshes/primitiveMesh/primitivePatch/patchZones.C b/src/OpenFOAM/meshes/primitiveMesh/primitivePatch/patchZones.C
index ef48f93ba0e26528c578980a691907ac7e9e68c7..1fb91286e1003fa5dd5b507f6ccfaae3b2f485a9 100644
--- a/src/OpenFOAM/meshes/primitiveMesh/primitivePatch/patchZones.C
+++ b/src/OpenFOAM/meshes/primitiveMesh/primitivePatch/patchZones.C
@@ -114,7 +114,7 @@ void Foam::patchZones::markZone(label faceI)
     // Zones on all edges.
     labelList edgeZone(pp_.nEdges(), -1);
 
-    while(1)
+    while (true)
     {
         changedEdges = faceToEdge(changedFaces, edgeZone);
 
diff --git a/src/OpenFOAM/meshes/primitiveShapes/triangle/triangle.H b/src/OpenFOAM/meshes/primitiveShapes/triangle/triangle.H
index 3bc3ea38a809c1850057de2d25cc73d0cdc2413b..ae24678c4a550ca41f96f41f1b39af8f1aa0179b 100644
--- a/src/OpenFOAM/meshes/primitiveShapes/triangle/triangle.H
+++ b/src/OpenFOAM/meshes/primitiveShapes/triangle/triangle.H
@@ -38,6 +38,7 @@ SourceFiles
 
 #include "intersection.H"
 #include "vector.H"
+#include "tensor.H"
 #include "pointHit.H"
 
 
@@ -100,7 +101,7 @@ public:
     //- Return types for classify
     enum proxType
     {
-        NONE, 
+        NONE,
         POINT,  // Close to point
         EDGE    // Close to edge
     };
@@ -152,6 +153,14 @@ public:
             //- Return swept-volume
             inline scalar sweptVol(const triangle& t) const;
 
+            //- Return the inertia tensor, with optional reference
+            //  point and density specification
+            inline tensor inertia
+            (
+                PointRef refPt = vector::zero,
+                scalar density = 1.0
+            ) const;
+
             //- Return point intersection with a ray.
             //  For a hit, the distance is signed. Positive number
             //  represents the point in front of triangle.
diff --git a/src/OpenFOAM/meshes/primitiveShapes/triangle/triangleI.H b/src/OpenFOAM/meshes/primitiveShapes/triangle/triangleI.H
index 40fa909b16633aa89fcc629a672a2197ced9a27f..be4c3d95d0be335821cd1873113a18f97b3f1645 100644
--- a/src/OpenFOAM/meshes/primitiveShapes/triangle/triangleI.H
+++ b/src/OpenFOAM/meshes/primitiveShapes/triangle/triangleI.H
@@ -331,6 +331,42 @@ inline scalar triangle<Point, PointRef>::sweptVol(const triangle& t) const
 }
 
 
+template<class Point, class PointRef>
+inline tensor triangle<Point, PointRef>::inertia
+(
+    PointRef refPt,
+    scalar density
+) const
+{
+    Point aRel = a_ - refPt;
+    Point bRel = b_ - refPt;
+    Point cRel = c_ - refPt;
+
+    tensor V
+    (
+        aRel.x(), aRel.y(), aRel.z(),
+        bRel.x(), bRel.y(), bRel.z(),
+        cRel.x(), cRel.y(), cRel.z()
+    );
+
+    scalar a = Foam::mag((b_ - a_)^(c_ - a_));
+
+    tensor S = 1/24.0*(tensor::one + I);
+
+    return
+    (
+        a*I/24.0*
+        (
+            (aRel & aRel)
+          + (bRel & bRel)
+          + (cRel & cRel)
+          + ((aRel + bRel + cRel) & (aRel + bRel + cRel))
+        )
+      - a*(V.T() & S & V)
+    )
+   *density;
+}
+
 template<class Point, class PointRef>
 inline pointHit triangle<Point, PointRef>::ray
 (
diff --git a/src/OpenFOAM/primitives/Tensor2D/Tensor2D.H b/src/OpenFOAM/primitives/Tensor2D/Tensor2D.H
index f3c5d30e64447e31f588dd1aca56a008e4e96524..42fa25f07fb8ee1d26427c5a4a4fb26b004df342 100644
--- a/src/OpenFOAM/primitives/Tensor2D/Tensor2D.H
+++ b/src/OpenFOAM/primitives/Tensor2D/Tensor2D.H
@@ -130,7 +130,7 @@ public:
 
     // Member Operators
 
-        //- Construct given SphericalTensor2D
+        //- Copy SphericalTensor2D
         inline void operator=(const SphericalTensor2D<Cmpt>&);
 };
 
diff --git a/src/OpenFOAM/primitives/Tensor2D/Tensor2DI.H b/src/OpenFOAM/primitives/Tensor2D/Tensor2DI.H
index 752be90d85f169c0df3fbb734864ae1aa32b2c04..385d53c16c55081ca66b8dda0b8ff2f38066532e 100644
--- a/src/OpenFOAM/primitives/Tensor2D/Tensor2DI.H
+++ b/src/OpenFOAM/primitives/Tensor2D/Tensor2DI.H
@@ -474,6 +474,14 @@ public:
 };
 
 
+template<class Cmpt>
+class innerProduct<Tensor2D<Cmpt>, Tensor2D<Cmpt> >
+{
+public:
+
+    typedef Tensor2D<Cmpt> type;
+};
+
 template<class Cmpt>
 class innerProduct<SphericalTensor2D<Cmpt>, Tensor2D<Cmpt> >
 {
@@ -490,6 +498,23 @@ public:
     typedef Tensor2D<Cmpt> type;
 };
 
+template<class Cmpt>
+class innerProduct<Tensor2D<Cmpt>, Vector2D<Cmpt> >
+{
+public:
+
+    typedef Vector2D<Cmpt> type;
+};
+
+template<class Cmpt>
+class innerProduct<Vector2D<Cmpt>, Tensor2D<Cmpt> >
+{
+public:
+
+    typedef Vector2D<Cmpt> type;
+};
+
+
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
diff --git a/src/OpenFOAM/primitives/hashes/SHA1/SHA1.C b/src/OpenFOAM/primitives/hashes/SHA1/SHA1.C
index 7bf07845e2f87f1200bfb6c3b8380f03e945a2ef..14fac1ba8cfea72447f90fd8882b6e973a3e5619 100644
--- a/src/OpenFOAM/primitives/hashes/SHA1/SHA1.C
+++ b/src/OpenFOAM/primitives/hashes/SHA1/SHA1.C
@@ -129,28 +129,29 @@ void Foam::SHA1::processBytes(const void *data, size_t len)
     }
 
     // Process available complete blocks
-    if (len >= 64)
-    {
-#if !_STRING_ARCH_unaligned
-# define alignof(type) offsetof (struct { char c; type x; }, x)
-# define UNALIGNED_P(p) (((size_t) p) % alignof (uint32_t) != 0)
-        if (UNALIGNED_P (data))
-        {
-            while (len > 64)
+//    if (len >= 64)
+//    {
+//#if !_STRING_ARCH_unaligned
+//# define alignof(type) offsetof (struct { char c; type x; }, x)
+//# define UNALIGNED_P(p) (((size_t) p) % alignof (uint32_t) != 0)
+//        if (UNALIGNED_P (data))
+//        {
+//            while (len > 64)
+            while (len >= 64)
             {
                 processBlock(memcpy (buffer_, data, 64), 64);
                 data = reinterpret_cast<const unsigned char*>(data) + 64;
                 len -= 64;
             }
-        }
-        else
-#endif
-        {
-            processBlock(data, len & ~63);
-            data = reinterpret_cast<const unsigned char*>(data) + (len & ~63);
-            len &= 63;
-        }
-    }
+//        }
+//        else
+//#endif
+//        {
+//            processBlock(data, len & ~63);
+//            data = reinterpret_cast<const unsigned char*>(data) + (len & ~63);
+//            len &= 63;
+//        }
+//    }
 
     // Move remaining bytes in internal buffer.
     if (len > 0)
@@ -223,7 +224,7 @@ Foam::SHA1::processBlock(const void *data, size_t len)
     {                                                                         \
         E += rol_uint32(A, 5) + F(B, C, D) + K + M;                           \
         B = rol_uint32(B, 30);                                                \
-    } while(0)
+    } while (0)
 
     while (words < endp)
     {
diff --git a/src/Pstream/mpi/UIPread.C b/src/Pstream/mpi/UIPread.C
index 14360e0cc095039aa49c2cc8c76a0f6454f40c92..fb6a9ec7d7b45930a594280a75bc0707194654e4 100644
--- a/src/Pstream/mpi/UIPread.C
+++ b/src/Pstream/mpi/UIPread.C
@@ -66,6 +66,14 @@ Foam::UIPstream::UIPstream
 
         label wantedSize = externalBuf_.capacity();
 
+        if (debug)
+        {
+            Pout<< "UIPstream::UIPstream : read from:" << fromProcNo
+                << " tag:" << tag << " wanted size:" << wantedSize
+                << Foam::endl;
+        }
+
+
         // If the buffer size is not specified, probe the incomming message
         // and set it
         if (!wantedSize)
@@ -75,6 +83,12 @@ Foam::UIPstream::UIPstream
 
             externalBuf_.setCapacity(messageSize_);
             wantedSize = messageSize_;
+
+            if (debug)
+            {
+                Pout<< "UIPstream::UIPstream : probed size:" << wantedSize
+                    << Foam::endl;
+            }
         }
 
         messageSize_ = UIPstream::read
@@ -127,6 +141,7 @@ Foam::UIPstream::UIPstream(const int fromProcNo, PstreamBuffers& buffers)
     if (commsType() == UPstream::nonBlocking)
     {
         // Message is already received into externalBuf
+        messageSize_ = buffers.recvBuf_[fromProcNo].size();
     }
     else
     {
@@ -134,6 +149,14 @@ Foam::UIPstream::UIPstream(const int fromProcNo, PstreamBuffers& buffers)
 
         label wantedSize = externalBuf_.capacity();
 
+        if (debug)
+        {
+            Pout<< "UIPstream::UIPstream PstreamBuffers :"
+                << " read from:" << fromProcNo
+                << " tag:" << tag_ << " wanted size:" << wantedSize
+                << Foam::endl;
+        }
+
         // If the buffer size is not specified, probe the incomming message
         // and set it
         if (!wantedSize)
@@ -143,6 +166,12 @@ Foam::UIPstream::UIPstream(const int fromProcNo, PstreamBuffers& buffers)
 
             externalBuf_.setCapacity(messageSize_);
             wantedSize = messageSize_;
+
+            if (debug)
+            {
+                Pout<< "UIPstream::UIPstream PstreamBuffers : probed size:"
+                    << wantedSize << Foam::endl;
+            }
         }
 
         messageSize_ = UIPstream::read
@@ -180,6 +209,14 @@ Foam::label Foam::UIPstream::read
     const int tag
 )
 {
+    if (debug)
+    {
+        Pout<< "UIPstream::read : starting read from:" << fromProcNo
+            << " tag:" << tag << " wanted size:" << label(bufSize)
+            << " commsType:" << UPstream::commsTypeNames[commsType]
+            << Foam::endl;
+    }
+
     if (commsType == blocking || commsType == scheduled)
     {
         MPI_Status status;
@@ -214,6 +251,14 @@ Foam::label Foam::UIPstream::read
         label messageSize;
         MPI_Get_count(&status, MPI_BYTE, &messageSize);
 
+        if (debug)
+        {
+            Pout<< "UIPstream::read : finished read from:" << fromProcNo
+                << " tag:" << tag << " read size:" << label(bufSize)
+                << " commsType:" << UPstream::commsTypeNames[commsType]
+                << Foam::endl;
+        }
+
         if (messageSize > bufSize)
         {
             FatalErrorIn
@@ -256,6 +301,15 @@ Foam::label Foam::UIPstream::read
             return 0;
         }
 
+        if (debug)
+        {
+            Pout<< "UIPstream::read : started read from:" << fromProcNo
+                << " tag:" << tag << " read size:" << label(bufSize)
+                << " commsType:" << UPstream::commsTypeNames[commsType]
+                << " request:" << PstreamGlobals::outstandingRequests_.size()
+                << Foam::endl;
+        }
+
         PstreamGlobals::outstandingRequests_.append(request);
 
         // Assume the message is completely received.
@@ -267,7 +321,8 @@ Foam::label Foam::UIPstream::read
         (
             "UIPstream::read"
             "(const int fromProcNo, char* buf, std::streamsize bufSize)"
-        )   << "Unsupported communications type " << commsType
+        )   << "Unsupported communications type "
+            << commsType
             << Foam::abort(FatalError);
 
         return 0;
diff --git a/src/Pstream/mpi/UOPwrite.C b/src/Pstream/mpi/UOPwrite.C
index f8439ba517ed43d09fb82896e429b6e5d065d1ac..9f8726d9a036d2e4af275f51bd4a20140bc7521d 100644
--- a/src/Pstream/mpi/UOPwrite.C
+++ b/src/Pstream/mpi/UOPwrite.C
@@ -43,6 +43,14 @@ bool Foam::UOPstream::write
     const int tag
 )
 {
+    if (debug)
+    {
+        Pout<< "UIPstream::write : starting write to:" << toProcNo
+            << " tag:" << tag << " size:" << label(bufSize)
+            << " commsType:" << UPstream::commsTypeNames[commsType]
+            << Foam::endl;
+    }
+
     bool transferFailed = true;
 
     if (commsType == blocking)
@@ -56,6 +64,14 @@ bool Foam::UOPstream::write
             tag,
             MPI_COMM_WORLD
         );
+
+        if (debug)
+        {
+            Pout<< "UIPstream::write : finished write to:" << toProcNo
+                << " tag:" << tag << " size:" << label(bufSize)
+                << " commsType:" << UPstream::commsTypeNames[commsType]
+                << Foam::endl;
+        }
     }
     else if (commsType == scheduled)
     {
@@ -68,6 +84,14 @@ bool Foam::UOPstream::write
             tag,
             MPI_COMM_WORLD
         );
+
+        if (debug)
+        {
+            Pout<< "UIPstream::write : finished write to:" << toProcNo
+                << " tag:" << tag << " size:" << label(bufSize)
+                << " commsType:" << UPstream::commsTypeNames[commsType]
+                << Foam::endl;
+        }
     }
     else if (commsType == nonBlocking)
     {
@@ -84,6 +108,15 @@ bool Foam::UOPstream::write
             &request
         );
 
+        if (debug)
+        {
+            Pout<< "UIPstream::write : started write to:" << toProcNo
+                << " tag:" << tag << " size:" << label(bufSize)
+                << " commsType:" << UPstream::commsTypeNames[commsType]
+                << " request:" << PstreamGlobals::outstandingRequests_.size()
+                << Foam::endl;
+        }
+
         PstreamGlobals::outstandingRequests_.append(request);
     }
     else
@@ -93,7 +126,8 @@ bool Foam::UOPstream::write
             "UOPstream::write"
             "(const int fromProcNo, char* buf, std::streamsize bufSize"
             ", const int)"
-        )   << "Unsupported communications type " << commsType
+        )   << "Unsupported communications type "
+            << UPstream::commsTypeNames[commsType]
             << Foam::abort(FatalError);
     }
 
diff --git a/src/Pstream/mpi/UPstream.C b/src/Pstream/mpi/UPstream.C
index b5a76e36e9ee26b8155728d624e6c5c46d877904..d05fe2ad9a7f4b72a8ca47d9fb9b96c986e1ed07 100644
--- a/src/Pstream/mpi/UPstream.C
+++ b/src/Pstream/mpi/UPstream.C
@@ -70,6 +70,12 @@ bool Foam::UPstream::init(int& argc, char**& argv)
     MPI_Comm_size(MPI_COMM_WORLD, &numprocs);
     MPI_Comm_rank(MPI_COMM_WORLD, &myProcNo_);
 
+    if (debug)
+    {
+        Pout<< "UPstream::init : initialised with numProcs:" << numprocs
+            << " myProcNo:" << myProcNo_ << endl;
+    }
+
     if (numprocs <= 1)
     {
         FatalErrorIn("UPstream::init(int& argc, char**& argv)")
@@ -124,6 +130,11 @@ bool Foam::UPstream::init(int& argc, char**& argv)
 
 void Foam::UPstream::exit(int errnum)
 {
+    if (debug)
+    {
+        Pout<< "UPstream::exit." << endl;
+    }
+
 #   ifndef SGIMPI
     int size;
     char* buff;
@@ -164,6 +175,11 @@ void Foam::UPstream::abort()
 
 void Foam::reduce(scalar& Value, const sumOp<scalar>& bop)
 {
+    if (Pstream::debug)
+    {
+        Pout<< "Foam::reduce : value:" << Value << endl;
+    }
+
     if (!UPstream::parRun())
     {
         return;
@@ -433,11 +449,23 @@ void Foam::reduce(scalar& Value, const sumOp<scalar>& bop)
         }
         */
     }
+
+    if (Pstream::debug)
+    {
+        Pout<< "Foam::reduce : reduced value:" << Value << endl;
+    }
 }
 
 
 void Foam::UPstream::waitRequests()
 {
+    if (debug)
+    {
+        Pout<< "UPstream::waitRequests : starting wait for "
+            << PstreamGlobals::outstandingRequests_.size()
+            << " outstanding requests." << endl;
+    }
+
     if (PstreamGlobals::outstandingRequests_.size())
     {
         if
@@ -458,11 +486,22 @@ void Foam::UPstream::waitRequests()
 
         PstreamGlobals::outstandingRequests_.clear();
     }
+
+    if (debug)
+    {
+        Pout<< "UPstream::waitRequests : finished wait." << endl;
+    }
 }
 
 
 bool Foam::UPstream::finishedRequest(const label i)
 {
+    if (debug)
+    {
+        Pout<< "UPstream::waitRequests : starting wait for request:" << i
+            << endl;
+    }
+
     if (i >= PstreamGlobals::outstandingRequests_.size())
     {
         FatalErrorIn
@@ -483,6 +522,12 @@ bool Foam::UPstream::finishedRequest(const label i)
         MPI_STATUS_IGNORE
     );
 
+    if (debug)
+    {
+        Pout<< "UPstream::waitRequests : finished wait for request:" << i
+            << endl;
+    }
+
     return flag != 0;
 }
 
diff --git a/src/conversion/meshReader/meshReaderAux.C b/src/conversion/meshReader/meshReaderAux.C
index 856d704857cdabb3a6ffbdfcc9660041ee42ec9b..9b1c9f2bdfa48334050a744dfa7ff64e0b547a35 100644
--- a/src/conversion/meshReader/meshReaderAux.C
+++ b/src/conversion/meshReader/meshReaderAux.C
@@ -58,15 +58,15 @@ void Foam::meshReader::warnDuplicates
     // warn about duplicate names
     if (duplicates)
     {
-        Info << nl << "WARNING: " << context << " with identical names:";
+        Info<< nl << "WARNING: " << context << " with identical names:";
         forAllConstIter(HashTable<label>, hashed, iter)
         {
             if (*iter > 1)
             {
-                Info << "  " << iter.key();
+                Info<< "  " << iter.key();
             }
         }
-        Info << nl << endl;
+        Info<< nl << endl;
     }
 }
 
diff --git a/src/conversion/meshWriter/starcd/STARCDMeshWriter.C b/src/conversion/meshWriter/starcd/STARCDMeshWriter.C
index 15d681898ee24c907d8bb8cb19647bf6d4ccae1d..0bb4632cce7ee5aae608df2b543da2d30e47dfb2 100644
--- a/src/conversion/meshWriter/starcd/STARCDMeshWriter.C
+++ b/src/conversion/meshWriter/starcd/STARCDMeshWriter.C
@@ -554,7 +554,7 @@ bool Foam::meshWriters::STARCD::writeSurface
     OFstream celFile(baseName + ".cel");
     writeHeader(celFile, "CELL");
 
-    Info << "Writing " << celFile.name() << endl;
+    Info<< "Writing " << celFile.name() << endl;
 
     // mesh and patch info
     const pointField& points = mesh_.points();
@@ -693,7 +693,7 @@ bool Foam::meshWriters::STARCD::writeSurface
     vrtFile.precision(10);
     vrtFile.setf(std::ios::showpoint);  // force decimal point for Fortran
 
-    Info << "Writing " << vrtFile.name() << endl;
+    Info<< "Writing " << vrtFile.name() << endl;
 
     // build sorted table of contents
     SortableList<label> toc(pointHash.size());
diff --git a/src/conversion/polyDualMesh/polyDualMesh.C b/src/conversion/polyDualMesh/polyDualMesh.C
index 1332d90fd4bdab5cb3168c854f777a9d01ea5b49..1d04252b1e726a74d14a8b0d8688c1c22378a08e 100644
--- a/src/conversion/polyDualMesh/polyDualMesh.C
+++ b/src/conversion/polyDualMesh/polyDualMesh.C
@@ -1015,7 +1015,7 @@ void Foam::polyDualMesh::calcDual
 
         {
             // Check orientation.
-            const face& f = dynDualFaces[dynDualFaces.size()-1];
+            const face& f = dynDualFaces.last();
             vector n = f.normal(dualPoints);
             if (((mesh.points()[owner] - dualPoints[f[0]]) & n) > 0)
             {
@@ -1130,7 +1130,7 @@ void Foam::polyDualMesh::calcDual
 
             {
                 // Check orientation.
-                const face& f = dynDualFaces[dynDualFaces.size()-1];
+                const face& f = dynDualFaces.last();
                 vector n = f.normal(dualPoints);
                 if (((mesh.points()[owner] - dualPoints[f[0]]) & n) > 0)
                 {
diff --git a/src/dynamicFvMesh/solidBodyMotionFvMesh/solidBodyMotionFunctions/tabulated6DoFMotion/tabulated6DoFMotion.C b/src/dynamicFvMesh/solidBodyMotionFvMesh/solidBodyMotionFunctions/tabulated6DoFMotion/tabulated6DoFMotion.C
index c58fa9852e12b2a54976a86e5abf61451c49c01b..9660994749f9aae5d5c5f2f5dff43eb3d6e1a9c2 100644
--- a/src/dynamicFvMesh/solidBodyMotionFvMesh/solidBodyMotionFunctions/tabulated6DoFMotion/tabulated6DoFMotion.C
+++ b/src/dynamicFvMesh/solidBodyMotionFvMesh/solidBodyMotionFunctions/tabulated6DoFMotion/tabulated6DoFMotion.C
@@ -88,14 +88,14 @@ Foam::solidBodyMotionFunctions::tabulated6DoFMotion::transformation() const
             << exit(FatalError);
     }
 
-    if (t > times_[times_.size()-1])
+    if (t > times_.last())
     {
         FatalErrorIn
         (
             "solidBodyMotionFunctions::tabulated6DoFMotion::transformation()"
         )   << "current time (" << t
             << ") is greater than the maximum in the data table ("
-            << times_[times_.size()-1] << ')'
+            << times_.last() << ')'
             << exit(FatalError);
     }
 
diff --git a/src/dynamicMesh/Make/files b/src/dynamicMesh/Make/files
index e59bbe3800345945a7865a6087c0514655e056bc..8201b7236de30acc08aa38d751cb6d1c04cf47cf 100644
--- a/src/dynamicMesh/Make/files
+++ b/src/dynamicMesh/Make/files
@@ -49,7 +49,6 @@ perfectInterface/perfectInterface.C
 
 boundaryMesh/boundaryMesh.C
 boundaryPatch/boundaryPatch.C
-boundaryMesh/octreeDataFaceList.C
 setUpdater/setUpdater.C
 
 meshModifiers = meshCut/meshModifiers
diff --git a/src/dynamicMesh/boundaryMesh/boundaryMesh.C b/src/dynamicMesh/boundaryMesh/boundaryMesh.C
index 494cda92951aaad1b4962d781ddb6f0d6a57353b..2ca4973e7c13c29cc25d85f077608f5f5f5739e5 100644
--- a/src/dynamicMesh/boundaryMesh/boundaryMesh.C
+++ b/src/dynamicMesh/boundaryMesh/boundaryMesh.C
@@ -29,11 +29,12 @@ License
 #include "polyMesh.H"
 #include "repatchPolyTopoChanger.H"
 #include "faceList.H"
-#include "octree.H"
-#include "octreeDataFaceList.H"
+#include "indexedOctree.H"
+#include "treeDataPrimitivePatch.H"
 #include "triSurface.H"
 #include "SortableList.H"
 #include "OFstream.H"
+#include "uindirectPrimitivePatch.H"
 
 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
 
@@ -389,7 +390,7 @@ void Foam::boundaryMesh::markZone
     // Zones on all edges.
     labelList edgeZone(mesh().nEdges(), -1);
 
-    while(1)
+    while (true)
     {
         changedEdges = faceToEdge
         (
@@ -892,6 +893,17 @@ Foam::labelList Foam::boundaryMesh::getNearest
             << endl;
     }
 
+    uindirectPrimitivePatch leftPatch
+    (
+        UIndirectList<face>(mesh(), leftFaces),
+        mesh().points()
+    );
+    uindirectPrimitivePatch rightPatch
+    (
+        UIndirectList<face>(mesh(), rightFaces),
+        mesh().points()
+    );
+
 
     // Overall bb
     treeBoundBox overallBb(mesh().localPoints());
@@ -911,29 +923,35 @@ Foam::labelList Foam::boundaryMesh::getNearest
     bbMax.z() += 2*tol;
 
     // Create the octrees
-    octree<octreeDataFaceList> leftTree
+    indexedOctree
+    <
+        treeDataPrimitivePatch<face, UIndirectList, const pointField&>
+    > leftTree
     (
-        overallBb,
-        octreeDataFaceList
+        treeDataPrimitivePatch<face, UIndirectList, const pointField&>
         (
-            mesh(),
-            leftFaces
+            false,          // cacheBb
+            leftPatch
         ),
-        1,
-        20,
-        10
+        overallBb,
+        10, // maxLevel
+        10, // leafSize
+        3.0 // duplicity
     );
-    octree<octreeDataFaceList> rightTree
+    indexedOctree
+    <
+        treeDataPrimitivePatch<face, UIndirectList, const pointField&>
+    > rightTree
     (
-        overallBb,
-        octreeDataFaceList
+        treeDataPrimitivePatch<face, UIndirectList, const pointField&>
         (
-            mesh(),
-            rightFaces
+            false,          // cacheBb
+            rightPatch
         ),
-        1,
-        20,
-        10
+        overallBb,
+        10, // maxLevel
+        10, // leafSize
+        3.0 // duplicity
     );
 
     if (debug)
@@ -953,7 +971,7 @@ Foam::labelList Foam::boundaryMesh::getNearest
 
     treeBoundBox tightest;
 
-    const scalar searchDim = mag(searchSpan);
+    const scalar searchDimSqr = magSqr(searchSpan);
 
     forAll(nearestBFaceI, patchFaceI)
     {
@@ -982,50 +1000,25 @@ Foam::labelList Foam::boundaryMesh::getNearest
         }
 
         // Search right tree
-        tightest.min() = ctr - searchSpan;
-        tightest.max() = ctr + searchSpan;
-        scalar rightDist = searchDim;
-        label rightI = rightTree.findNearest(ctr, tightest, rightDist);
-
+        pointIndexHit rightInfo = rightTree.findNearest(ctr, searchDimSqr);
 
         // Search left tree. Note: could start from rightDist bounding box
         // instead of starting from top.
-        tightest.min() = ctr - searchSpan;
-        tightest.max() = ctr + searchSpan;
-        scalar leftDist = searchDim;
-        label leftI = leftTree.findNearest(ctr, tightest, leftDist);
+        pointIndexHit leftInfo = leftTree.findNearest(ctr, searchDimSqr);
 
-
-        if (rightI == -1)
-        {
-            // No face found in right tree.
-
-            if (leftI == -1)
-            {
-                // No face found in left tree.
-                nearestBFaceI[patchFaceI] = -1;
-            }
-            else
-            {
-                // Found in left but not in right. Choose left regardless if
-                // correct sign. Note: do we want this?
-                nearestBFaceI[patchFaceI] = leftFaces[leftI];
-            }
-        }
-        else
+        if (rightInfo.hit())
         {
-            if (leftI == -1)
-            {
-                // Found in right but not in left. Choose right regardless if
-                // correct sign. Note: do we want this?
-                nearestBFaceI[patchFaceI] = rightFaces[rightI];
-            }
-            else
+            if (leftInfo.hit())
             {
                 // Found in both trees. Compare normals.
+                label rightFaceI = rightFaces[rightInfo.index()];
+                label leftFaceI = leftFaces[leftInfo.index()];
+
+                label rightDist = mag(rightInfo.hitPoint()-ctr);
+                label leftDist = mag(leftInfo.hitPoint()-ctr);
 
-                scalar rightSign = n & ns[rightFaces[rightI]];
-                scalar leftSign = n & ns[leftFaces[leftI]];
+                scalar rightSign = n & ns[rightFaceI];
+                scalar leftSign = n & ns[leftFaceI];
 
                 if
                 (
@@ -1036,11 +1029,11 @@ Foam::labelList Foam::boundaryMesh::getNearest
                     // Both same sign. Choose nearest.
                     if (rightDist < leftDist)
                     {
-                        nearestBFaceI[patchFaceI] = rightFaces[rightI];
+                        nearestBFaceI[patchFaceI] = rightFaceI;
                     }
                     else
                     {
-                        nearestBFaceI[patchFaceI] = leftFaces[leftI];
+                        nearestBFaceI[patchFaceI] = leftFaceI;
                     }
                 }
                 else
@@ -1059,11 +1052,11 @@ Foam::labelList Foam::boundaryMesh::getNearest
                         // Different sign and nearby. Choosing matching normal
                         if (rightSign > 0)
                         {
-                            nearestBFaceI[patchFaceI] = rightFaces[rightI];
+                            nearestBFaceI[patchFaceI] = rightFaceI;
                         }
                         else
                         {
-                            nearestBFaceI[patchFaceI] = leftFaces[leftI];
+                            nearestBFaceI[patchFaceI] = leftFaceI;
                         }
                     }
                     else
@@ -1071,15 +1064,38 @@ Foam::labelList Foam::boundaryMesh::getNearest
                         // Different sign but faraway. Choosing nearest.
                         if (rightDist < leftDist)
                         {
-                            nearestBFaceI[patchFaceI] = rightFaces[rightI];
+                            nearestBFaceI[patchFaceI] = rightFaceI;
                         }
                         else
                         {
-                            nearestBFaceI[patchFaceI] = leftFaces[leftI];
+                            nearestBFaceI[patchFaceI] = leftFaceI;
                         }
                     }
                 }
             }
+            else
+            {
+                // Found in right but not in left. Choose right regardless if
+                // correct sign. Note: do we want this?
+                label rightFaceI = rightFaces[rightInfo.index()];
+                nearestBFaceI[patchFaceI] = rightFaceI;
+            }
+        }
+        else
+        {
+            // No face found in right tree.
+
+            if (leftInfo.hit())
+            {
+                // Found in left but not in right. Choose left regardless if
+                // correct sign. Note: do we want this?
+                nearestBFaceI[patchFaceI] = leftFaces[leftInfo.index()];
+            }
+            else
+            {
+                // No face found in left tree.
+                nearestBFaceI[patchFaceI] = -1;
+            }
         }
     }
 
diff --git a/src/dynamicMesh/boundaryMesh/octreeDataFaceList.C b/src/dynamicMesh/boundaryMesh/octreeDataFaceList.C
deleted file mode 100644
index c44c455c74f1cdc7a2fe56d6660cb60c5842cd7e..0000000000000000000000000000000000000000
--- a/src/dynamicMesh/boundaryMesh/octreeDataFaceList.C
+++ /dev/null
@@ -1,573 +0,0 @@
-/*---------------------------------------------------------------------------*\
-  =========                 |
-  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
-   \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2009 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 2 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, write to the Free Software Foundation,
-    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-Description
-
-\*---------------------------------------------------------------------------*/
-
-#include "octreeDataFaceList.H"
-#include "octree.H"
-
-// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
-
-defineTypeNameAndDebug(Foam::octreeDataFaceList, 0);
-
-Foam::scalar Foam::octreeDataFaceList::tol = 1E-6;
-
-
-// * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
-
-void Foam::octreeDataFaceList::calcBb()
-{
-    allBb_.setSize(faceLabels_.size());
-    allBb_ = treeBoundBox
-    (
-        vector(GREAT, GREAT, GREAT),
-        vector(-GREAT, -GREAT, -GREAT)
-    );
-
-    forAll (faceLabels_, faceLabelI)
-    {
-        label faceI = faceLabels_[faceLabelI];
-
-        // Update bb of face
-        treeBoundBox& myBb = allBb_[faceLabelI];
-
-        const face& f = mesh_.localFaces()[faceI];
-
-        forAll(f, fp)
-        {
-            const point& coord = mesh_.localPoints()[f[fp]];
-
-            myBb.min() = min(myBb.min(), coord);
-            myBb.max() = max(myBb.max(), coord);
-        }
-    }
-}
-
-// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
-
-// Construct from all faces in bMesh
-Foam::octreeDataFaceList::octreeDataFaceList(const bMesh& mesh)
-:
-    mesh_(mesh),
-    faceLabels_(mesh_.size()),
-    allBb_(mesh_.size())
-{
-    forAll(faceLabels_, faceI)
-    {
-        faceLabels_[faceI] = faceI;
-    }
-
-    // Generate tight fitting bounding box
-    calcBb();
-}
-
-
-// Construct from selected faces in bMesh
-Foam::octreeDataFaceList::octreeDataFaceList
-(
-    const bMesh& mesh,
-    const labelList& faceLabels
-)
-:
-    mesh_(mesh),
-    faceLabels_(faceLabels),
-    allBb_(faceLabels.size())
-{
-    // Generate tight fitting bounding box
-    calcBb();
-}
-
-
-
-// Construct as copy
-Foam::octreeDataFaceList::octreeDataFaceList(const octreeDataFaceList& shapes)
-:
-    mesh_(shapes.mesh()),
-    faceLabels_(shapes.faceLabels()),
-    allBb_(shapes.allBb())
-{}
-
-
-// * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
-
-Foam::octreeDataFaceList::~octreeDataFaceList()
-{}
-
-
-// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
-
-
-Foam::label Foam::octreeDataFaceList::getSampleType
-(
-    const octree<octreeDataFaceList>& oc,
-    const point& sample
-) const
-{
-    // Need to determine whether sample is 'inside' or 'outside'
-    // Done by finding nearest face. This gives back a face which is
-    // guaranteed to contain nearest point. This point can be
-    // - in interior of face: compare to face normal
-    // - on edge of face: compare to edge normal
-    // - on point of face: compare to point normal
-    // Unfortunately the octree does not give us back the intersection point
-    // or where on the face it has hit so we have to recreate all that
-    // information.
-
-
-    // Find nearest face to sample
-    treeBoundBox tightest(treeBoundBox::greatBox);
-
-    scalar tightestDist = GREAT;
-
-    label index = oc.findNearest(sample, tightest, tightestDist);
-
-    if (index == -1)
-    {
-        FatalErrorIn
-        (
-            "octreeDataFaceList::getSampleType"
-            "(octree<octreeDataFaceList>&, const point&)"
-        )   << "Could not find " << sample << " in octree."
-            << abort(FatalError);
-    }
-
-    label faceI = faceLabels_[index];
-
-    // Get actual intersection point on face
-
-    if (debug & 2)
-    {
-        Pout<< "getSampleType : sample:" << sample
-            << " nearest face:" << faceI;
-    }
-
-    const face& f = mesh_.localFaces()[faceI];
-
-    const pointField& points = mesh_.localPoints();
-
-    pointHit curHit = f.nearestPoint(sample, points);
-
-    //
-    // 1] Check whether sample is above face
-    //
-
-    if (curHit.hit())
-    {
-        // Simple case. Compare to face normal.
-
-        if (debug & 2)
-        {
-            Pout<< " -> face hit:" << curHit.hitPoint()
-                << " comparing to face normal " << mesh_.faceNormals()[faceI]
-                << endl;
-        }
-        return octree<octreeDataFaceList>::getVolType
-        (
-            mesh_.faceNormals()[faceI],
-            sample - curHit.hitPoint()
-        );
-    }
-
-    if (debug & 2)
-    {
-        Pout<< " -> face miss:" << curHit.missPoint();
-    }
-
-    //
-    // 2] Check whether intersection is on one of the face vertices or
-    //    face centre
-    //
-
-    // typical dimension as sqrt of face area.
-    scalar typDim = sqrt(mag(f.normal(points))) + VSMALL;
-
-    forAll(f, fp)
-    {
-        if ((mag(points[f[fp]] - curHit.missPoint())/typDim) < tol)
-        {
-            // Face intersection point equals face vertex fp
-
-            if (debug & 2)
-            {
-                    Pout<< " -> face point hit :" << points[f[fp]]
-                        << " point normal:" << mesh_.pointNormals()[f[fp]]
-                        << " distance:"
-                        << mag(points[f[fp]] - curHit.missPoint())/typDim
-                        << endl;
-            }
-            return octree<octreeDataFaceList>::getVolType
-            (
-                mesh_.pointNormals()[f[fp]],
-                sample - curHit.missPoint()
-            );
-        }
-    }
-
-    // Get face centre
-    point ctr(f.centre(points));
-
-    if ((mag(ctr - curHit.missPoint())/typDim) < tol)
-    {
-        // Face intersection point equals face centre. Normal at face centre
-        // is already average of face normals
-
-        if (debug & 2)
-        {
-            Pout<< " -> centre hit:" << ctr
-                << " distance:"
-                << mag(ctr - curHit.missPoint())/typDim
-                << endl;
-        }
-
-        return octree<octreeDataFaceList>::getVolType
-        (
-            mesh_.faceNormals()[faceI],
-            sample - curHit.missPoint()
-        );
-    }
-
-
-    //
-    // 3] Get the 'real' edge the face intersection is on
-    //
-
-    const labelList& myEdges = mesh_.faceEdges()[faceI];
-
-    forAll(myEdges, myEdgeI)
-    {
-        const edge& e = mesh_.edges()[myEdges[myEdgeI]];
-
-        pointHit edgeHit =
-            line<point, const point&>
-            (
-                points[e.start()],
-                points[e.end()]
-            ).nearestDist(sample);
-
-        point edgePoint;
-        if (edgeHit.hit())
-        {
-            edgePoint = edgeHit.hitPoint();
-        }
-        else
-        {
-            edgePoint = edgeHit.missPoint();
-        }
-
-
-        if ((mag(edgePoint - curHit.missPoint())/typDim) < tol)
-        {
-            // Face intersection point lies on edge e
-
-            // Calculate edge normal (wrong: uses face normals instead of
-            // triangle normals)
-            const labelList& myFaces = mesh_.edgeFaces()[myEdges[myEdgeI]];
-
-            vector edgeNormal(vector::zero);
-
-            forAll(myFaces, myFaceI)
-            {
-                edgeNormal += mesh_.faceNormals()[myFaces[myFaceI]];
-            }
-
-            if (debug & 2)
-            {
-                Pout<< " -> real edge hit point:" << edgePoint
-                    << " comparing to edge normal:" << edgeNormal
-                    << endl;
-            }
-
-            // Found face intersection point on this edge. Compare to edge
-            // normal
-            return octree<octreeDataFaceList>::getVolType
-            (
-                edgeNormal,
-                sample - curHit.missPoint()
-            );
-        }
-    }
-
-
-    //
-    // 4] Get the internal edge (vertex - faceCentre) the face intersection
-    //    is on
-    //
-
-    forAll(f, fp)
-    {
-        pointHit edgeHit =
-            line<point, const point&>
-            (
-                points[f[fp]],
-                ctr
-            ).nearestDist(sample);
-
-        point edgePoint;
-        if (edgeHit.hit())
-        {
-            edgePoint = edgeHit.hitPoint();
-        }
-        else
-        {
-            edgePoint = edgeHit.missPoint();
-        }
-
-        if ((mag(edgePoint - curHit.missPoint())/typDim) < tol)
-        {
-            // Face intersection point lies on edge between two face triangles
-
-            // Calculate edge normal as average of the two triangle normals
-            label fpPrev = f.rcIndex(fp);
-            label fpNext = f.fcIndex(fp);
-
-            vector e = points[f[fp]] - ctr;
-            vector ePrev = points[f[fpPrev]] - ctr;
-            vector eNext = points[f[fpNext]] - ctr;
-
-            vector nLeft = ePrev ^ e;
-            nLeft /= mag(nLeft) + VSMALL;
-
-            vector nRight = e ^ eNext;
-            nRight /= mag(nRight) + VSMALL;
-
-            if (debug & 2)
-            {
-                Pout<< " -> internal edge hit point:" << edgePoint
-                    << " comparing to edge normal "
-                    << 0.5*(nLeft + nRight)
-                    << endl;
-            }
-
-            // Found face intersection point on this edge. Compare to edge
-            // normal
-            return octree<octreeDataFaceList>::getVolType
-            (
-                0.5*(nLeft + nRight),
-                sample - curHit.missPoint()
-            );
-        }
-    }
-
-    if (debug & 2)
-    {
-        Pout<< "Did not find sample " << sample
-            << " anywhere related to nearest face " << faceI << endl
-            << "Face:";
-
-        forAll(f, fp)
-        {
-            Pout<< "    vertex:" << f[fp] << "  coord:" << points[f[fp]]
-                << endl;
-        }
-    }
-
-    // Can't determine status of sample with respect to nearest face.
-    // Either
-    // - tolerances are wrong. (if e.g. face has zero area)
-    // - or (more likely) surface is not closed.
-
-    return octree<octreeDataFaceList>::UNKNOWN;
-}
-
-
-bool Foam::octreeDataFaceList::overlaps
-(
-    const label index,
-    const treeBoundBox& sampleBb
-) const
-{
-    return sampleBb.overlaps(allBb_[index]);
-}
-
-
-bool Foam::octreeDataFaceList::contains
-(
-    const label,
-    const point&
-) const
-{
-    notImplemented
-    (
-        "octreeDataFaceList::contains(const label, const point&)"
-    );
-    return false;
-}
-
-
-bool Foam::octreeDataFaceList::intersects
-(
-    const label index,
-    const point& start,
-    const point& end,
-    point& intersectionPoint
-) const
-{
-    label faceI = faceLabels_[index];
-
-    const face& f = mesh_.localFaces()[faceI];
-
-    const vector dir(end - start);
-
-    // Disable picking up intersections behind us.
-    scalar oldTol = intersection::setPlanarTol(0.0);
-
-    pointHit inter =
-        f.ray
-        (
-            start,
-            dir,
-            mesh_.localPoints(),
-            intersection::HALF_RAY,
-            intersection::VECTOR
-        );
-
-    intersection::setPlanarTol(oldTol);
-
-    if (inter.hit() && inter.distance() <= mag(dir))
-    {
-        intersectionPoint = inter.hitPoint();
-
-        return true;
-    }
-    else
-    {
-        return false;
-    }
-}
-
-
-bool Foam::octreeDataFaceList::findTightest
-(
-    const label index,
-    const point& sample,
-    treeBoundBox& tightest
-) const
-{
-    // Get nearest and furthest away vertex
-    point myNear, myFar;
-    allBb_[index].calcExtremities(sample, myNear, myFar);
-
-    const point dist = myFar - sample;
-    scalar myFarDist = mag(dist);
-
-    point tightestNear, tightestFar;
-    tightest.calcExtremities(sample, tightestNear, tightestFar);
-
-    scalar tightestFarDist = mag(tightestFar - sample);
-
-    if (tightestFarDist < myFarDist)
-    {
-        // Keep current tightest.
-        return false;
-    }
-    else
-    {
-        // Construct bb around sample and myFar
-        const point dist2(fabs(dist.x()), fabs(dist.y()), fabs(dist.z()));
-
-        tightest.min() = sample - dist2;
-        tightest.max() = sample + dist2;
-
-        return true;
-    }
-}
-
-
-// Determine numerical value of sign of sample compared to shape at index
-Foam::scalar Foam::octreeDataFaceList::calcSign
-(
-    const label index,
-    const point& sample,
-    vector&
-) const
-{
-    label faceI = faceLabels_[index];
-
-    const face& f = mesh_.localFaces()[faceI];
-
-    point ctr = f.centre(mesh_.localPoints());
-
-    vector vec = sample - ctr;
-
-    vec /= mag(vec) + VSMALL;
-
-    return mesh_.faceNormals()[faceI] & vec;
-}
-
-
-// Calculate nearest point on/in shapei
-Foam::scalar Foam::octreeDataFaceList::calcNearest
-(
-    const label index,
-    const point& sample,
-    point& nearest
-) const
-{
-    label faceI = faceLabels_[index];
-
-    const face& f = mesh_.localFaces()[faceI];
-
-    pointHit nearHit = f.nearestPoint(sample, mesh_.localPoints());
-
-    if (nearHit.hit())
-    {
-        nearest = nearHit.hitPoint();
-    }
-    else
-    {
-        nearest = nearHit.missPoint();
-    }
-
-    if (debug & 1)
-    {
-        point ctr = f.centre(mesh_.localPoints());
-
-        scalar sign = mesh_.faceNormals()[faceI] & (sample - nearest);
-
-        Pout<< "octreeDataFaceList::calcNearest : "
-            << "sample:" << sample
-            << "  faceI:" << faceI
-            << "  ctr:" << ctr
-            << "  sign:" << sign
-            << "  nearest point:" << nearest
-            << "  distance to face:" << nearHit.distance()
-            << endl;
-    }
-    return nearHit.distance();
-}
-
-
-void Foam::octreeDataFaceList::write
-(
-    Ostream& os,
-    const label index
-) const
-{
-    os << faceLabels_[index] << " " << allBb_[index];
-}
-
-
-// ************************************************************************* //
diff --git a/src/dynamicMesh/boundaryMesh/octreeDataFaceList.H b/src/dynamicMesh/boundaryMesh/octreeDataFaceList.H
deleted file mode 100644
index addd71d79be9948d3ce20ed89ec9c26ea014cbc3..0000000000000000000000000000000000000000
--- a/src/dynamicMesh/boundaryMesh/octreeDataFaceList.H
+++ /dev/null
@@ -1,220 +0,0 @@
-/*---------------------------------------------------------------------------*\
-  =========                 |
-  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
-   \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2009 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 2 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, write to the Free Software Foundation,
-    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-Class
-    Foam::octreeDataFaceList
-
-Description
-    Holds data for octree to work on list of faces on a bMesh
-    (= PrimitivePatch which holds faces, not references them)
-    Same as octreeDataFace except for that.
-
-SourceFiles
-    octreeDataFaceList.C
-
-\*---------------------------------------------------------------------------*/
-
-#ifndef octreeDataFaceList_H
-#define octreeDataFaceList_H
-
-#include "treeBoundBoxList.H"
-#include "faceList.H"
-#include "point.H"
-#include "className.H"
-#include "bMesh.H"
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-namespace Foam
-{
-
-// Forward declaration of classes
-template<class Type> class octree;
-
-/*---------------------------------------------------------------------------*\
-                           Class octreeDataFaceList Declaration
-\*---------------------------------------------------------------------------*/
-
-class octreeDataFaceList
-{
-    // Static data
-
-        //- tolerance on linear dimensions
-        static scalar tol;
-
-
-    // Static function
-
-        static inline label nexti(label max, label i)
-        {
-            return (i + 1) % max;
-        }            
-
-
-    // Private data
-
-        //- the mesh
-        const bMesh& mesh_;
-
-        //- labels (in mesh indexing) of faces
-        labelList faceLabels_;
-
-        //- bbs for all above faces
-        treeBoundBoxList allBb_;
-
-
-    // Private Member Functions
-
-        //- Set allBb to tight fitting bounding box
-        void calcBb();
-
-public:
-
-    // Declare name of the class and its debug switch
-    ClassName("octreeDataFaceList");
-
-    // Constructors
-
-        //- Construct from all faces in bMesh.
-        octreeDataFaceList(const bMesh& mesh);
-
-        //- Construct from selected faces in bMesh.
-        octreeDataFaceList(const bMesh& mesh, const labelList& faceLabels);
-
-        //- Construct as copy
-        octreeDataFaceList(const octreeDataFaceList&);
-
-
-    // Destructor
-
-        ~octreeDataFaceList();
-
-
-    // Member Functions
-
-        // Access
-
-            const bMesh& mesh() const
-            {
-                return mesh_;
-            }
-
-            const labelList& faceLabels() const
-            {
-                return faceLabels_;
-            }
-
-            const treeBoundBoxList& allBb() const
-            {
-                return allBb_;
-            }
-
-            label size() const
-            {
-                return allBb_.size();
-            }
-
-        // Search
-
-            //- Get type of sample
-            label getSampleType
-            (
-                const octree<octreeDataFaceList>&,
-                const point&
-            ) const;
-
-            //- Does (bb of) shape at index overlap bb
-            bool overlaps
-            (
-                const label index,
-                const treeBoundBox& sampleBb
-            ) const;
-
-            //- Does shape at index contain sample
-            bool contains
-            (
-                const label index,
-                const point& sample
-            ) const;
-
-            //- Segment (from start to end) intersection with shape
-            //  at index. If intersects returns true and sets intersectionPoint
-            bool intersects
-            (
-                const label index,
-                const point& start,
-                const point& end,
-                point& intersectionPoint
-            ) const;
-
-            //- Sets newTightest to bounding box (and returns true) if
-            //  nearer to sample than tightest bounding box. Otherwise
-            //  returns false.
-            bool findTightest
-            (
-                const label index,
-                const point& sample,
-                treeBoundBox& tightest
-            ) const;
-
-            //- Given index get unit normal and calculate (numerical) sign 
-            //  of sample.
-            //  Used to determine accuracy of calcNearest or inside/outside.
-            scalar calcSign
-            (
-                const label index,
-                const point& sample,
-                vector& n
-            ) const;
-
-            //- Calculates nearest (to sample) point in shape.
-            //  Returns point and mag(nearest - sample). Returns GREAT if
-            //  sample does not project onto (triangle decomposition) of face.
-            scalar calcNearest
-            (
-                const label index,
-                const point& sample,
-                point& nearest
-            ) const;
-
-
-        // Edit
-
-        // Write
-
-            //- Write shape at index
-            void write(Ostream& os, const label index) const;
-};
-
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-} // End namespace Foam
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-
-#endif
-
-// ************************************************************************* //
diff --git a/src/dynamicMesh/fvMeshAdder/fvMeshAdderTemplates.C b/src/dynamicMesh/fvMeshAdder/fvMeshAdderTemplates.C
index 3df03c8c703deed05e60c22a6541b5fa680b96f9..37562abc35b505f9e2a63615ed940d2242a367af 100644
--- a/src/dynamicMesh/fvMeshAdder/fvMeshAdderTemplates.C
+++ b/src/dynamicMesh/fvMeshAdder/fvMeshAdderTemplates.C
@@ -330,8 +330,6 @@ void Foam::fvMeshAdder::MapVolFields
 
         if (fieldsToAdd.found(fld.name()))
         {
-            Pout<< "Mapping field " << fld.name() << endl;
-
             const GeometricField<Type, fvPatchField, volMesh>& fldToAdd =
                 *fieldsToAdd[fld.name()];
 
@@ -339,7 +337,7 @@ void Foam::fvMeshAdder::MapVolFields
         }
         else
         {
-            WarningIn("fvMeshAdder::MapVolFields")
+            WarningIn("fvMeshAdder::MapVolFields(..)")
                 << "Not mapping field " << fld.name()
                 << " since not present on mesh to add"
                 << endl;
@@ -642,15 +640,13 @@ void Foam::fvMeshAdder::MapSurfaceFields
 
         if (fieldsToAdd.found(fld.name()))
         {
-            Pout<< "Mapping field " << fld.name() << endl;
-
             const fldType& fldToAdd = *fieldsToAdd[fld.name()];
 
             MapSurfaceField<Type>(meshMap, fld, fldToAdd);
         }
         else
         {
-            WarningIn("fvMeshAdder::MapSurfaceFields")
+            WarningIn("fvMeshAdder::MapSurfaceFields(..)")
                 << "Not mapping field " << fld.name()
                 << " since not present on mesh to add"
                 << endl;
diff --git a/src/dynamicMesh/fvMeshDistribute/fvMeshDistribute.C b/src/dynamicMesh/fvMeshDistribute/fvMeshDistribute.C
index fea10f410bd96768a11c839a17ccd406fd28672b..5d4144a32ce45c1ec947da8df29b8302026924da 100644
--- a/src/dynamicMesh/fvMeshDistribute/fvMeshDistribute.C
+++ b/src/dynamicMesh/fvMeshDistribute/fvMeshDistribute.C
@@ -25,8 +25,6 @@ License
 \*----------------------------------------------------------------------------*/
 
 #include "fvMeshDistribute.H"
-#include "ProcessorTopology.H"
-#include "commSchedule.H"
 #include "PstreamCombineReduceOps.H"
 #include "fvMeshAdder.H"
 #include "faceCoupleInfo.H"
@@ -39,6 +37,8 @@ License
 #include "mergePoints.H"
 #include "mapDistributePolyMesh.H"
 #include "surfaceFields.H"
+#include "syncTools.H"
+#include "CompactListList.H"
 
 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
 
@@ -47,71 +47,6 @@ defineTypeNameAndDebug(Foam::fvMeshDistribute, 0);
 
 // * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
 
-//Foam::List<Foam::labelPair> Foam::fvMeshDistribute::getSchedule
-//(
-//    const labelList& distribution
-//)
-//{
-//    labelList nCellsPerProc(countCells(distribution));
-//
-//    if (debug)
-//    {
-//        Pout<< "getSchedule : Wanted distribution:" << nCellsPerProc << endl;
-//    }
-//
-//    // Processors I need to send data to
-//    labelListList mySendProcs(Pstream::nProcs());
-//
-//    // Count
-//    label nSendProcs = 0;
-//    forAll(nCellsPerProc, sendProcI)
-//    {
-//        if (sendProcI != Pstream::myProcNo() && nCellsPerProc[sendProcI] > 0)
-//        {
-//            nSendProcs++;
-//        }
-//    }
-//
-//    // Fill 
-//    mySendProcs[Pstream::myProcNo()].setSize(nSendProcs);
-//    nSendProcs = 0;
-//    forAll(nCellsPerProc, sendProcI)
-//    {
-//        if (sendProcI != Pstream::myProcNo() && nCellsPerProc[sendProcI] > 0)
-//        {
-//            mySendProcs[Pstream::myProcNo()][nSendProcs++] = sendProcI;
-//        }
-//    }
-//
-//    // Synchronise
-//    Pstream::gatherList(mySendProcs);
-//    Pstream::scatterList(mySendProcs);
-//
-//    // Combine into list (same on all procs) giving sending and receiving
-//    // processor
-//    label nComms = 0;
-//    forAll(mySendProcs, procI)
-//    {
-//        nComms += mySendProcs[procI].size();
-//    }
-//
-//    List<labelPair> schedule(nComms);
-//    nComms = 0;
-//
-//    forAll(mySendProcs, procI)
-//    {
-//        const labelList& sendProcs = mySendProcs[procI];
-//
-//        forAll(sendProcs, i)
-//        {
-//            schedule[nComms++] = labelPair(procI, sendProcs[i]);
-//        }
-//    }
-//
-//    return schedule;
-//}
-
-
 Foam::labelList Foam::fvMeshDistribute::select
 (
     const bool selectEqual,
@@ -144,14 +79,29 @@ Foam::labelList Foam::fvMeshDistribute::select
 
 
 // Check all procs have same names and in exactly same order.
-void Foam::fvMeshDistribute::checkEqualWordList(const wordList& lst)
+void Foam::fvMeshDistribute::checkEqualWordList
+(
+    const string& msg,
+    const wordList& lst
+)
 {
-    wordList myObjects(lst);
+    List<wordList> allNames(Pstream::nProcs());
+    allNames[Pstream::myProcNo()] = lst;
+    Pstream::gatherList(allNames);
+    Pstream::scatterList(allNames);
 
-    // Check that all meshes have same objects
-    Pstream::listCombineGather(myObjects, checkEqualType());
-    // Below scatter only needed to balance sends and receives.
-    Pstream::listCombineScatter(myObjects);
+    for (label procI = 1; procI < Pstream::nProcs(); procI++)
+    {
+        if (allNames[procI] != allNames[0])
+        {
+            FatalErrorIn("fvMeshDistribute::checkEqualWordList(..)")
+                << "When checking for equal " << msg.c_str() << " :" << endl
+                << "processor0 has:" << allNames[0] << endl
+                << "processor" << procI << " has:" << allNames[procI] << endl
+                << msg.c_str() << " need to be synchronised on all processors."
+                << exit(FatalError);
+        }
+    }
 }
 
 
@@ -664,21 +614,6 @@ Foam::autoPtr<Foam::mapPolyMesh> Foam::fvMeshDistribute::mergeSharedPoints
                     << " newPointI:" << newPointI << abort(FatalError);
             }
         }
-        //- old: use pointToMaster map.
-        //forAll(constructMap, i)
-        //{
-        //    label oldPointI = constructMap[i];
-        //
-        //    // See if merged into other point
-        //    Map<label>::const_iterator iter = pointToMaster.find(oldPointI);
-        //
-        //    if (iter != pointToMaster.end())
-        //    {
-        //        oldPointI = iter();
-        //    }
-        //
-        //    constructMap[i] = map().reversePointMap()[oldPointI];
-        //}
     }
     return map;
 }
@@ -693,46 +628,49 @@ void Foam::fvMeshDistribute::getNeighbourData
     labelList& sourceNewProc
 ) const
 {
-    sourceFace.setSize(mesh_.nFaces() - mesh_.nInternalFaces());
-    sourceProc.setSize(sourceFace.size());
-    sourceNewProc.setSize(sourceFace.size());
+    label nBnd = mesh_.nFaces() - mesh_.nInternalFaces();
+    sourceFace.setSize(nBnd);
+    sourceProc.setSize(nBnd);
+    sourceNewProc.setSize(nBnd);
 
     const polyBoundaryMesh& patches = mesh_.boundaryMesh();
 
-    // Send meshFace labels of processor patches and destination processor.
+    // Get neighbouring meshFace labels and new processor of coupled boundaries.
+    labelList nbrFaces(nBnd, -1);
+    labelList nbrNewProc(nBnd, -1);
+
     forAll(patches, patchI)
     {
         const polyPatch& pp = patches[patchI];
 
         if (isA<processorPolyPatch>(pp))
         {
-            const processorPolyPatch& procPatch =
-                refCast<const processorPolyPatch>(pp);
+            label offset = pp.start() - mesh_.nInternalFaces();
 
-            // Labels of faces on this side
-            labelList meshFaceLabels(pp.size());
-            forAll(meshFaceLabels, i)
+            // Mesh labels of faces on this side
+            forAll(pp, i)
             {
-                meshFaceLabels[i] = pp.start()+i;
+                label bndI = offset + i;
+                nbrFaces[bndI] = pp.start()+i;
             }
 
             // Which processor they will end up on
-            const labelList newProc
+            SubList<label>(nbrNewProc, pp.size(), offset).assign
             (
-                UIndirectList<label>(distribution, pp.faceCells())
+                UIndirectList<label>(distribution, pp.faceCells())()
             );
-
-            OPstream toNeighbour(Pstream::blocking, procPatch.neighbProcNo());
-
-            toNeighbour << meshFaceLabels << newProc;
         }
     }
 
-    // Receive meshFace labels and destination processors of processor faces.
+
+    // Exchange the boundary data
+    syncTools::swapBoundaryFaceList(mesh_, nbrFaces, false);
+    syncTools::swapBoundaryFaceList(mesh_, nbrNewProc, false);
+
+
     forAll(patches, patchI)
     {
         const polyPatch& pp = patches[patchI];
-
         label offset = pp.start() - mesh_.nInternalFaces();
 
         if (isA<processorPolyPatch>(pp))
@@ -740,11 +678,6 @@ void Foam::fvMeshDistribute::getNeighbourData
             const processorPolyPatch& procPatch =
                 refCast<const processorPolyPatch>(pp);
 
-            // Receive the data
-            IPstream fromNeighbour(Pstream::blocking, procPatch.neighbProcNo());
-            labelList nbrFaces(fromNeighbour);
-            labelList nbrNewProc(fromNeighbour);
-
             // Check which of the two faces we store.
 
             if (Pstream::myProcNo() < procPatch.neighbProcNo())
@@ -752,9 +685,10 @@ void Foam::fvMeshDistribute::getNeighbourData
                 // Use my local face labels
                 forAll(pp, i)
                 {
-                    sourceFace[offset + i] = pp.start()+i;
-                    sourceProc[offset + i] = Pstream::myProcNo();
-                    sourceNewProc[offset + i] = nbrNewProc[i];
+                    label bndI = offset + i;
+                    sourceFace[bndI] = pp.start()+i;
+                    sourceProc[bndI] = Pstream::myProcNo();
+                    sourceNewProc[bndI] = nbrNewProc[bndI];
                 }
             }
             else
@@ -762,9 +696,10 @@ void Foam::fvMeshDistribute::getNeighbourData
                 // Use my neighbours face labels
                 forAll(pp, i)
                 {
-                    sourceFace[offset + i] = nbrFaces[i];
-                    sourceProc[offset + i] = procPatch.neighbProcNo();
-                    sourceNewProc[offset + i] = nbrNewProc[i];
+                    label bndI = offset + i;
+                    sourceFace[bndI] = nbrFaces[bndI];
+                    sourceProc[bndI] = procPatch.neighbProcNo();
+                    sourceNewProc[bndI] = nbrNewProc[bndI];
                 }
             }
         }
@@ -773,9 +708,10 @@ void Foam::fvMeshDistribute::getNeighbourData
             // Normal (physical) boundary
             forAll(pp, i)
             {
-                sourceFace[offset + i] = patchI;
-                sourceProc[offset + i] = -1;
-                sourceNewProc[offset + i] = -1;
+                label bndI = offset + i;
+                sourceFace[bndI] = patchI;
+                sourceProc[bndI] = -1;
+                sourceNewProc[bndI] = -1;
             }
         }
     }
@@ -1120,7 +1056,8 @@ void Foam::fvMeshDistribute::sendMesh
 
     const labelList& sourceFace,
     const labelList& sourceProc,
-    const labelList& sourceNewProc
+    const labelList& sourceNewProc,
+    UOPstream& toDomain
 )
 {
     if (debug)
@@ -1133,52 +1070,95 @@ void Foam::fvMeshDistribute::sendMesh
             << endl;
     }
 
-    // Assume sparse point zones. Get contents in merged-zone indices.
-    labelListList zonePoints(pointZoneNames.size());
+    // Assume sparse, possibly overlapping point zones. Get contents
+    // in merged-zone indices.
+    CompactListList<label> zonePoints;
     {
         const pointZoneMesh& pointZones = mesh.pointZones();
 
+        labelList rowSizes(pointZoneNames.size(), 0);
+
+        forAll(pointZoneNames, nameI)
+        {
+            label myZoneID = pointZones.findZoneID(pointZoneNames[nameI]);
+
+            if (myZoneID != -1)
+            {
+                rowSizes[nameI] = pointZones[myZoneID].size();
+            }
+        }
+        zonePoints.setSize(rowSizes);
+
         forAll(pointZoneNames, nameI)
         {
             label myZoneID = pointZones.findZoneID(pointZoneNames[nameI]);
 
             if (myZoneID != -1)
             {
-                zonePoints[nameI] = pointZones[myZoneID];
+                zonePoints[nameI].assign(pointZones[myZoneID]);
             }
         }
     }
 
-    // Assume sparse face zones
-    labelListList zoneFaces(faceZoneNames.size());
-    boolListList zoneFaceFlip(faceZoneNames.size());
+    // Assume sparse, possibly overlapping face zones
+    CompactListList<label> zoneFaces;
+    CompactListList<bool> zoneFaceFlip;
     {
         const faceZoneMesh& faceZones = mesh.faceZones();
 
+        labelList rowSizes(faceZoneNames.size(), 0);
+
         forAll(faceZoneNames, nameI)
         {
             label myZoneID = faceZones.findZoneID(faceZoneNames[nameI]);
 
             if (myZoneID != -1)
             {
-                zoneFaces[nameI] = faceZones[myZoneID];
-                zoneFaceFlip[nameI] = faceZones[myZoneID].flipMap();
+                rowSizes[nameI] = faceZones[myZoneID].size();
+            }
+        }
+
+        zoneFaces.setSize(rowSizes);
+        zoneFaceFlip.setSize(rowSizes);
+
+        forAll(faceZoneNames, nameI)
+        {
+            label myZoneID = faceZones.findZoneID(faceZoneNames[nameI]);
+
+            if (myZoneID != -1)
+            {
+                zoneFaces[nameI].assign(faceZones[myZoneID]);
+                zoneFaceFlip[nameI].assign(faceZones[myZoneID].flipMap());
             }
         }
     }
 
-    // Assume sparse cell zones
-    labelListList zoneCells(cellZoneNames.size());
+    // Assume sparse, possibly overlapping cell zones
+    CompactListList<label> zoneCells;
     {
         const cellZoneMesh& cellZones = mesh.cellZones();
 
+        labelList rowSizes(pointZoneNames.size(), 0);
+
+        forAll(cellZoneNames, nameI)
+        {
+            label myZoneID = cellZones.findZoneID(cellZoneNames[nameI]);
+
+            if (myZoneID != -1)
+            {
+                rowSizes[nameI] = cellZones[myZoneID].size();
+            }
+        }
+
+        zoneCells.setSize(rowSizes);
+
         forAll(cellZoneNames, nameI)
         {
             label myZoneID = cellZones.findZoneID(cellZoneNames[nameI]);
 
             if (myZoneID != -1)
             {
-                zoneCells[nameI] = cellZones[myZoneID];
+                zoneCells[nameI].assign(cellZones[myZoneID]);
             }
         }
     }
@@ -1198,10 +1178,9 @@ void Foam::fvMeshDistribute::sendMesh
     //}
 
     // Send
-    OPstream toDomain(Pstream::blocking, domain);
     toDomain
         << mesh.points()
-        << mesh.faces()
+        << CompactListList<label, face>(mesh.faces())
         << mesh.faceOwner()
         << mesh.faceNeighbour()
         << mesh.boundaryMesh()
@@ -1214,6 +1193,13 @@ void Foam::fvMeshDistribute::sendMesh
         << sourceFace
         << sourceProc
         << sourceNewProc;
+
+
+    if (debug)
+    {
+        Pout<< "Started sending mesh to domain " << domain
+            << endl;
+    }
 }
 
 
@@ -1227,21 +1213,20 @@ Foam::autoPtr<Foam::fvMesh> Foam::fvMeshDistribute::receiveMesh
     const Time& runTime,
     labelList& domainSourceFace,
     labelList& domainSourceProc,
-    labelList& domainSourceNewProc
+    labelList& domainSourceNewProc,
+    UIPstream& fromNbr
 )
 {
-    IPstream fromNbr(Pstream::blocking, domain);
-
     pointField domainPoints(fromNbr);
-    faceList domainFaces(fromNbr);
+    faceList domainFaces = CompactListList<label, face>(fromNbr)();
     labelList domainAllOwner(fromNbr);
     labelList domainAllNeighbour(fromNbr);
     PtrList<entry> patchEntries(fromNbr);
 
-    labelListList zonePoints(fromNbr);
-    labelListList zoneFaces(fromNbr);
-    boolListList zoneFaceFlip(fromNbr);
-    labelListList zoneCells(fromNbr);
+    CompactListList<label> zonePoints(fromNbr);
+    CompactListList<label> zoneFaces(fromNbr);
+    CompactListList<bool> zoneFaceFlip(fromNbr);
+    CompactListList<label> zoneCells(fromNbr);
 
     fromNbr
         >> domainSourceFace
@@ -1442,6 +1427,7 @@ Foam::autoPtr<Foam::mapDistributePolyMesh> Foam::fvMeshDistribute::distribute
     const wordList cellZoneNames(mergeWordList(mesh_.cellZones().names()));
 
 
+
     // Local environment of all boundary faces
     // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -1481,36 +1467,39 @@ Foam::autoPtr<Foam::mapDistributePolyMesh> Foam::fvMeshDistribute::distribute
     mesh_.clearOut();
     mesh_.resetMotion();
 
+    // Get data to send. Make sure is synchronised
     const wordList volScalars(mesh_.names(volScalarField::typeName));
-    checkEqualWordList(volScalars);
+    checkEqualWordList("volScalarFields", volScalars);
     const wordList volVectors(mesh_.names(volVectorField::typeName));
-    checkEqualWordList(volVectors);
+    checkEqualWordList("volVectorFields", volVectors);
     const wordList volSphereTensors
     (
         mesh_.names(volSphericalTensorField::typeName)
     );
-    checkEqualWordList(volSphereTensors);
+    checkEqualWordList("volSphericalTensorFields", volSphereTensors);
     const wordList volSymmTensors(mesh_.names(volSymmTensorField::typeName));
-    checkEqualWordList(volSymmTensors);
+    checkEqualWordList("volSymmTensorFields", volSymmTensors);
     const wordList volTensors(mesh_.names(volTensorField::typeName));
-    checkEqualWordList(volTensors);
+    checkEqualWordList("volTensorField", volTensors);
 
     const wordList surfScalars(mesh_.names(surfaceScalarField::typeName));
-    checkEqualWordList(surfScalars);
+    checkEqualWordList("surfaceScalarFields", surfScalars);
     const wordList surfVectors(mesh_.names(surfaceVectorField::typeName));
-    checkEqualWordList(surfVectors);
+    checkEqualWordList("surfaceVectorFields", surfVectors);
     const wordList surfSphereTensors
     (
         mesh_.names(surfaceSphericalTensorField::typeName)
     );
-    checkEqualWordList(surfSphereTensors);
+    checkEqualWordList("surfaceSphericalTensorFields", surfSphereTensors);
     const wordList surfSymmTensors
     (
         mesh_.names(surfaceSymmTensorField::typeName)
     );
-    checkEqualWordList(surfSymmTensors);
+    checkEqualWordList("surfaceSymmTensorFields", surfSymmTensors);
     const wordList surfTensors(mesh_.names(surfaceTensorField::typeName));
-    checkEqualWordList(surfTensors);
+    checkEqualWordList("surfaceTensorFields", surfTensors);
+
+
 
 
     // Find patch to temporarily put exposed and processor faces into.
@@ -1589,6 +1578,9 @@ Foam::autoPtr<Foam::mapDistributePolyMesh> Foam::fvMeshDistribute::distribute
     Pstream::scatterList(nSendCells);
 
 
+    // Allocate buffers
+    PstreamBuffers pBufs(Pstream::nonBlocking);
+
 
     // What to send to neighbouring domains
     // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -1612,6 +1604,10 @@ Foam::autoPtr<Foam::mapDistributePolyMesh> Foam::fvMeshDistribute::distribute
                     << nl << endl;
             }
 
+            // Pstream for sending mesh and fields
+            //OPstream str(Pstream::blocking, recvProc);
+            UOPstream str(recvProc, pBufs);
+
             // Mesh subsetting engine
             fvMeshSubset subsetter(mesh_);
 
@@ -1659,6 +1655,8 @@ Foam::autoPtr<Foam::mapDistributePolyMesh> Foam::fvMeshDistribute::distribute
                 procSourceNewProc
             );
 
+
+
             // Send to neighbour
             sendMesh
             (
@@ -1671,43 +1669,69 @@ Foam::autoPtr<Foam::mapDistributePolyMesh> Foam::fvMeshDistribute::distribute
 
                 procSourceFace,
                 procSourceProc,
-                procSourceNewProc
+                procSourceNewProc,
+                str
             );
-            sendFields<volScalarField>(recvProc, volScalars, subsetter);
-            sendFields<volVectorField>(recvProc, volVectors, subsetter);
+            sendFields<volScalarField>(recvProc, volScalars, subsetter, str);
+            sendFields<volVectorField>(recvProc, volVectors, subsetter, str);
             sendFields<volSphericalTensorField>
             (
                 recvProc,
                 volSphereTensors,
-                subsetter
+                subsetter,
+                str
             );
             sendFields<volSymmTensorField>
             (
                 recvProc,
                 volSymmTensors,
-                subsetter
+                subsetter,
+                str
             );
-            sendFields<volTensorField>(recvProc, volTensors, subsetter);
+            sendFields<volTensorField>(recvProc, volTensors, subsetter, str);
 
-            sendFields<surfaceScalarField>(recvProc, surfScalars, subsetter);
-            sendFields<surfaceVectorField>(recvProc, surfVectors, subsetter);
+            sendFields<surfaceScalarField>
+            (
+                recvProc,
+                surfScalars,
+                subsetter,
+                str
+            );
+            sendFields<surfaceVectorField>
+            (
+                recvProc,
+                surfVectors,
+                subsetter,
+                str
+            );
             sendFields<surfaceSphericalTensorField>
             (   
                 recvProc,
                 surfSphereTensors,
-                subsetter
+                subsetter,
+                str
             );
             sendFields<surfaceSymmTensorField>
             (
                 recvProc,
                 surfSymmTensors,
-                subsetter
+                subsetter,
+                str
+            );
+            sendFields<surfaceTensorField>
+            (
+                recvProc,
+                surfTensors,
+                subsetter,
+                str
             );
-            sendFields<surfaceTensorField>(recvProc, surfTensors, subsetter);
         }
     }
 
 
+    // Start sending&receiving from buffers
+    pBufs.finishedSends();
+
 
     // Subset the part that stays
     // ~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -1817,109 +1841,132 @@ Foam::autoPtr<Foam::mapDistributePolyMesh> Foam::fvMeshDistribute::distribute
                     << nl << endl;
             }
 
+
+            // Pstream for receiving mesh and fields
+            UIPstream str(sendProc, pBufs);
+
+
             // Receive from sendProc
             labelList domainSourceFace;
             labelList domainSourceProc;
             labelList domainSourceNewProc;
 
-            // Opposite of sendMesh
-            autoPtr<fvMesh> domainMeshPtr = receiveMesh
-            (
-                sendProc,
-                pointZoneNames,
-                faceZoneNames,
-                cellZoneNames,
-
-                const_cast<Time&>(mesh_.time()),
-                domainSourceFace,
-                domainSourceProc,
-                domainSourceNewProc
-            );
-            fvMesh& domainMesh = domainMeshPtr();
-
-            // Receive fields
+            autoPtr<fvMesh> domainMeshPtr;
             PtrList<volScalarField> vsf;
-            receiveFields<volScalarField>
-            (
-                sendProc,
-                volScalars,
-                domainMesh,
-                vsf
-            );
-
             PtrList<volVectorField> vvf;
-            receiveFields<volVectorField>
-            (
-                sendProc,
-                volVectors,
-                domainMesh,
-                vvf
-            );
             PtrList<volSphericalTensorField> vsptf;
-            receiveFields<volSphericalTensorField>
-            (
-                sendProc,
-                volSphereTensors,
-                domainMesh,
-                vsptf
-            );
             PtrList<volSymmTensorField> vsytf;
-            receiveFields<volSymmTensorField>
-            (
-                sendProc,
-                volSymmTensors,
-                domainMesh,
-                vsytf
-            );
             PtrList<volTensorField> vtf;
-            receiveFields<volTensorField>
-            (
-                sendProc,
-                volTensors,
-                domainMesh,
-                vtf
-            );
-
             PtrList<surfaceScalarField> ssf;
-            receiveFields<surfaceScalarField>
-            (
-                sendProc,
-                surfScalars,
-                domainMesh,
-                ssf
-            );
             PtrList<surfaceVectorField> svf;
-            receiveFields<surfaceVectorField>
-            (
-                sendProc,
-                surfVectors,
-                domainMesh,
-                svf
-            );
             PtrList<surfaceSphericalTensorField> ssptf;
-            receiveFields<surfaceSphericalTensorField>
-            (
-                sendProc,
-                surfSphereTensors,
-                domainMesh,
-                ssptf
-            );
             PtrList<surfaceSymmTensorField> ssytf;
-            receiveFields<surfaceSymmTensorField>
-            (
-                sendProc,
-                surfSymmTensors,
-                domainMesh,
-                ssytf
-            );
             PtrList<surfaceTensorField> stf;
-            receiveFields<surfaceTensorField>
-            (
-                sendProc,
-                surfTensors,
-                domainMesh,
-                stf
-            );
+
+            // Opposite of sendMesh
+            {
+                domainMeshPtr = receiveMesh
+                (
+                    sendProc,
+                    pointZoneNames,
+                    faceZoneNames,
+                    cellZoneNames,
+
+                    const_cast<Time&>(mesh_.time()),
+                    domainSourceFace,
+                    domainSourceProc,
+                    domainSourceNewProc,
+                    str
+                );
+                fvMesh& domainMesh = domainMeshPtr();
+
+                // Receive fields. Read as single dictionary because
+                // of problems reading consecutive fields from single stream.
+                dictionary fieldDicts(str);
+
+                receiveFields<volScalarField>
+                (
+                    sendProc,
+                    volScalars,
+                    domainMesh,
+                    vsf,
+                    fieldDicts.subDict(volScalarField::typeName)
+                );
+                receiveFields<volVectorField>
+                (
+                    sendProc,
+                    volVectors,
+                    domainMesh,
+                    vvf,
+                    fieldDicts.subDict(volVectorField::typeName)
+                );
+                receiveFields<volSphericalTensorField>
+                (
+                    sendProc,
+                    volSphereTensors,
+                    domainMesh,
+                    vsptf,
+                    fieldDicts.subDict(volSphericalTensorField::typeName)
+                );
+                receiveFields<volSymmTensorField>
+                (
+                    sendProc,
+                    volSymmTensors,
+                    domainMesh,
+                    vsytf,
+                    fieldDicts.subDict(volSymmTensorField::typeName)
+                );
+                receiveFields<volTensorField>
+                (
+                    sendProc,
+                    volTensors,
+                    domainMesh,
+                    vtf,
+                    fieldDicts.subDict(volTensorField::typeName)
+                );
+
+                receiveFields<surfaceScalarField>
+                (
+                    sendProc,
+                    surfScalars,
+                    domainMesh,
+                    ssf,
+                    fieldDicts.subDict(surfaceScalarField::typeName)
+                );
+                receiveFields<surfaceVectorField>
+                (
+                    sendProc,
+                    surfVectors,
+                    domainMesh,
+                    svf,
+                    fieldDicts.subDict(surfaceVectorField::typeName)
+                );
+                receiveFields<surfaceSphericalTensorField>
+                (
+                    sendProc,
+                    surfSphereTensors,
+                    domainMesh,
+                    ssptf,
+                    fieldDicts.subDict(surfaceSphericalTensorField::typeName)
+                );
+                receiveFields<surfaceSymmTensorField>
+                (
+                    sendProc,
+                    surfSymmTensors,
+                    domainMesh,
+                    ssytf,
+                    fieldDicts.subDict(surfaceSymmTensorField::typeName)
+                );
+                receiveFields<surfaceTensorField>
+                (
+                    sendProc,
+                    surfTensors,
+                    domainMesh,
+                    stf,
+                    fieldDicts.subDict(surfaceTensorField::typeName)
+                );
+            }
+            const fvMesh& domainMesh = domainMeshPtr();
 
 
             constructCellMap[sendProc] = identity(domainMesh.nCells());
diff --git a/src/dynamicMesh/fvMeshDistribute/fvMeshDistribute.H b/src/dynamicMesh/fvMeshDistribute/fvMeshDistribute.H
index ae3584672072b8c73db4cc6674be2443d15a4b82..0be663b7330be3a6ae7176948ea0bb58a0b7260f 100644
--- a/src/dynamicMesh/fvMeshDistribute/fvMeshDistribute.H
+++ b/src/dynamicMesh/fvMeshDistribute/fvMeshDistribute.H
@@ -82,38 +82,8 @@ class fvMeshDistribute
         const scalar mergeTol_;
 
 
-    // Private classes
-
-        //- Check words are the same. Used in patch type checking of similarly
-        //  named patches.
-        class checkEqualType
-        {
-        public:
-
-            void operator()(word& x, const word& y) const
-            {
-                if (x != y)
-                {
-                    FatalErrorIn("checkEqualType()(word&, const word&) const")
-                        << "Patch type " << x << " possibly on processor "
-                        << Pstream::myProcNo()
-                        << " does not equal patch type " << y
-                        << " on some other processor." << nl
-                        << "Please check similarly named patches for"
-                        << " having exactly the same type."
-                        << abort(FatalError);
-                }
-            }
-        };
-
-
     // Private Member Functions
 
-        //- Given distribution work out a communication schedule. Is list
-        //  of pairs. First element of pair is send processor, second is
-        //  receive processor.
-        //static List<labelPair> getSchedule(const labelList&);
-
         //- Find indices with value
         static labelList select
         (
@@ -123,7 +93,7 @@ class fvMeshDistribute
         );
 
         //- Check all procs have same names and in exactly same order.
-        static void checkEqualWordList(const wordList&);
+        static void checkEqualWordList(const string&, const wordList&);
 
         //- Merge wordlists over all processors
         static wordList mergeWordList(const wordList&);
@@ -288,7 +258,8 @@ class fvMeshDistribute
                 const wordList& cellZoneNames,
                 const labelList& sourceFace,
                 const labelList& sourceProc,
-                const labelList& sourceNewProc
+                const labelList& sourceNewProc,
+                UOPstream& toDomain
             );
             //- Send subset of fields
             template<class GeoField>
@@ -296,7 +267,8 @@ class fvMeshDistribute
             (
                 const label domain,
                 const wordList& fieldNames,
-                const fvMeshSubset&
+                const fvMeshSubset&,
+                UOPstream& toNbr
             );
 
             //- Receive mesh. Opposite of sendMesh
@@ -309,7 +281,8 @@ class fvMeshDistribute
                 const Time& runTime,
                 labelList& domainSourceFace,
                 labelList& domainSourceProc,
-                labelList& domainSourceNewProc
+                labelList& domainSourceNewProc,
+                UIPstream& fromNbr
             );
 
             //- Receive fields. Opposite of sendFields
@@ -319,7 +292,8 @@ class fvMeshDistribute
                 const label domain,
                 const wordList& fieldNames,
                 fvMesh&,
-                PtrList<GeoField>&
+                PtrList<GeoField>&,
+                const dictionary& fieldDicts
             );
 
             //- Disallow default bitwise copy construct
diff --git a/src/dynamicMesh/fvMeshDistribute/fvMeshDistributeTemplates.C b/src/dynamicMesh/fvMeshDistribute/fvMeshDistributeTemplates.C
index 79972ca3fb792c023a8de2b847fc17b8db55a123..06123db004fd1f7ca040f2ec043a711d21236eb0 100644
--- a/src/dynamicMesh/fvMeshDistribute/fvMeshDistributeTemplates.C
+++ b/src/dynamicMesh/fvMeshDistribute/fvMeshDistributeTemplates.C
@@ -184,7 +184,7 @@ void Foam::fvMeshDistribute::mapBoundaryFields
 
     if (flds.size() != oldBflds.size())
     {
-        FatalErrorIn("fvMeshDistribute::mapBoundaryFields") << "problem"
+        FatalErrorIn("fvMeshDistribute::mapBoundaryFields(..)") << "problem"
             << abort(FatalError);
     }
 
@@ -273,19 +273,40 @@ void Foam::fvMeshDistribute::initPatchFields
 
 
 // Send fields. Note order supplied so we can receive in exactly the same order.
+// Note that field gets written as entry in dictionary so we
+// can construct from subdictionary.
+// (since otherwise the reading as-a-dictionary mixes up entries from
+// consecutive fields)
+// The dictionary constructed is:
+//  volScalarField
+//  {
+//      p {internalField ..; boundaryField ..;}
+//      k {internalField ..; boundaryField ..;}
+//  }
+//  volVectorField
+//  {
+//      U {internalField ...  }
+//  }
+
+// volVectorField {U {internalField ..; boundaryField ..;}}
+// 
 template<class GeoField>
 void Foam::fvMeshDistribute::sendFields
 (
     const label domain,
     const wordList& fieldNames,
-    const fvMeshSubset& subsetter
+    const fvMeshSubset& subsetter,
+    UOPstream& toNbr
 )
 {
+    toNbr << GeoField::typeName << token::NL << token::BEGIN_BLOCK << token::NL;
     forAll(fieldNames, i)
     {
-        //Pout<< "Subsetting field " << fieldNames[i]
-        //    << " for domain:" << domain
-        //    << endl;
+        if (debug)
+        {
+            Pout<< "Subsetting field " << fieldNames[i]
+                << " for domain:" << domain << endl;
+        }
 
         // Send all fieldNames. This has to be exactly the same set as is
         // being received!
@@ -294,10 +315,12 @@ void Foam::fvMeshDistribute::sendFields
 
         tmp<GeoField> tsubfld = subsetter.interpolate(fld);
 
-        // Send
-        OPstream toNbr(Pstream::blocking, domain);
-        toNbr << tsubfld();
+        toNbr
+            << fieldNames[i] << token::NL << token::BEGIN_BLOCK
+            << tsubfld
+            << token::NL << token::END_BLOCK << token::NL;
     }
+    toNbr << token::END_BLOCK << token::NL;
 }
 
 
@@ -308,18 +331,25 @@ void Foam::fvMeshDistribute::receiveFields
     const label domain,
     const wordList& fieldNames,
     fvMesh& mesh,
-    PtrList<GeoField>& fields
+    PtrList<GeoField>& fields,
+    const dictionary& fieldDicts
 )
 {
+    if (debug)
+    {
+        Pout<< "Receiving fields " << fieldNames
+            << " from domain:" << domain << endl;
+    }
+
     fields.setSize(fieldNames.size());
 
     forAll(fieldNames, i)
     {
-        //Pout<< "Receiving field " << fieldNames[i]
-        //    << " from domain:" << domain
-        //    << endl;
-
-        IPstream fromNbr(Pstream::blocking, domain);
+        if (debug)
+        {
+            Pout<< "Constructing field " << fieldNames[i]
+                << " from domain:" << domain << endl;
+        }
 
         fields.set
         (
@@ -335,7 +365,7 @@ void Foam::fvMeshDistribute::receiveFields
                     IOobject::AUTO_WRITE
                 ),
                 mesh,
-                fromNbr
+                fieldDicts.subDict(fieldNames[i])
             )
         );
     }
diff --git a/src/dynamicMesh/motionSmoother/motionSmoother.C b/src/dynamicMesh/motionSmoother/motionSmoother.C
index d780ec79dde3dc9d33c007b0a3ddc73271d72b69..b4288c200734e7e635f74c9b96949e37154c1b30 100644
--- a/src/dynamicMesh/motionSmoother/motionSmoother.C
+++ b/src/dynamicMesh/motionSmoother/motionSmoother.C
@@ -65,7 +65,7 @@ void Foam::motionSmoother::makePatchPatchAddressing()
 
     forAll(bm, patchi)
     {
-        if(!isA<emptyPolyPatch>(bm[patchi]))
+        if (!isA<emptyPolyPatch>(bm[patchi]))
         {
             nPatchPatchPoints += bm[patchi].boundaryPoints().size();
         }
@@ -83,7 +83,7 @@ void Foam::motionSmoother::makePatchPatchAddressing()
 
     forAll(bm, patchi)
     {
-        if(!isA<emptyPolyPatch>(bm[patchi]))
+        if (!isA<emptyPolyPatch>(bm[patchi]))
         {
             const labelList& bp = bm[patchi].boundaryPoints();
             const labelList& meshPoints = bm[patchi].meshPoints();
diff --git a/src/dynamicMesh/motionSmoother/motionSmootherTemplates.C b/src/dynamicMesh/motionSmoother/motionSmootherTemplates.C
index 232c19d6b5bcdcf8db5c2f9575835ef9cb2b0b69..4ea2fa926067f395da7be27f6e7f68dcca4283eb 100644
--- a/src/dynamicMesh/motionSmoother/motionSmootherTemplates.C
+++ b/src/dynamicMesh/motionSmoother/motionSmootherTemplates.C
@@ -51,7 +51,7 @@ void Foam::motionSmoother::checkConstraints
 
     forAll(bm, patchi)
     {
-        if(!isA<emptyPolyPatch>(bm[patchi]))
+        if (!isA<emptyPolyPatch>(bm[patchi]))
         {
             nPatchPatchPoints += bm[patchi].boundaryPoints().size();
         }
@@ -81,7 +81,7 @@ void Foam::motionSmoother::checkConstraints
 
     forAll(bm, patchi)
     {
-        if(!isA<emptyPolyPatch>(bm[patchi]))
+        if (!isA<emptyPolyPatch>(bm[patchi]))
         {
             const labelList& bp = bm[patchi].boundaryPoints();
             const labelList& meshPoints = bm[patchi].meshPoints();
@@ -93,7 +93,7 @@ void Foam::motionSmoother::checkConstraints
             }
         }
     }
-    
+
 
     // Forward evaluation
 
@@ -106,7 +106,7 @@ void Foam::motionSmoother::checkConstraints
 
     forAll(bm, patchi)
     {
-        if(!isA<emptyPolyPatch>(bm[patchi]))
+        if (!isA<emptyPolyPatch>(bm[patchi]))
         {
             const labelList& bp = bm[patchi].boundaryPoints();
             const labelList& meshPoints = bm[patchi].meshPoints();
@@ -246,7 +246,7 @@ Foam::tmp<Foam::GeometricField<Type, Foam::pointPatchField, Foam::pointMesh> >
         else
         {
             res[pointI] /= sumWeight[pointI];
-        }        
+        }
     }
 
     res.correctBoundaryConditions();
diff --git a/src/dynamicMesh/motionSmoother/polyMeshGeometry/polyMeshGeometry.C b/src/dynamicMesh/motionSmoother/polyMeshGeometry/polyMeshGeometry.C
index 9c4030ed81d95d295f21aad87fd26fa559c73df6..f42f2a4ef4130059d8aad52c65824d7e0e8b3a79 100644
--- a/src/dynamicMesh/motionSmoother/polyMeshGeometry/polyMeshGeometry.C
+++ b/src/dynamicMesh/motionSmoother/polyMeshGeometry/polyMeshGeometry.C
@@ -1276,7 +1276,7 @@ bool Foam::polyMeshGeometry::checkFaceAngles
         faceNormal /= mag(faceNormal) + VSMALL;
 
         // Get edge from f[0] to f[size-1];
-        vector ePrev(p[f[0]] - p[f[f.size()-1]]);
+        vector ePrev(p[f.first()] - p[f.last()]);
         scalar magEPrev = mag(ePrev);
         ePrev /= magEPrev + VSMALL;
 
diff --git a/src/dynamicMesh/motionSolver/motionSolver.C b/src/dynamicMesh/motionSolver/motionSolver.C
index 5966679feb719ce88d16dcc0c7115f76e849db25..a8c28ea8752469f5e443e5cf724a477f271ba14c 100644
--- a/src/dynamicMesh/motionSolver/motionSolver.C
+++ b/src/dynamicMesh/motionSolver/motionSolver.C
@@ -78,7 +78,7 @@ Foam::autoPtr<Foam::motionSolver> Foam::motionSolver::New(const polyMesh& mesh)
 
     word solverTypeName(msData);
 
-    Info << "Selecting motion solver: " << solverTypeName << endl;
+    Info<< "Selecting motion solver: " << solverTypeName << endl;
 
     dlLibraryTable::open
     (
diff --git a/src/dynamicMesh/polyMeshAdder/faceCoupleInfo.C b/src/dynamicMesh/polyMeshAdder/faceCoupleInfo.C
index bfa9b2ca0c1df82ad0ec9a854c5293bc365e34ab..8261941be2b84101bb0d76a12e247f3449c5600c 100644
--- a/src/dynamicMesh/polyMeshAdder/faceCoupleInfo.C
+++ b/src/dynamicMesh/polyMeshAdder/faceCoupleInfo.C
@@ -1790,7 +1790,7 @@ void Foam::faceCoupleInfo::subDivisionMatch
 
             cutPointI = cutEdges[cutEdgeI].otherVertex(cutPointI);
 
-        } while(cutPointI != cutPoint1);
+        } while (cutPointI != cutPoint1);
     }
 
     if (debug)
diff --git a/src/dynamicMesh/polyTopoChange/polyTopoChange/addPatchCellLayer.C b/src/dynamicMesh/polyTopoChange/polyTopoChange/addPatchCellLayer.C
index 41ba56aedba532d58a11226e2a264598cf558e1a..5574abcb86d8022b6e0c102f0a3e31884bb8ea83 100644
--- a/src/dynamicMesh/polyTopoChange/polyTopoChange/addPatchCellLayer.C
+++ b/src/dynamicMesh/polyTopoChange/polyTopoChange/addPatchCellLayer.C
@@ -262,7 +262,7 @@ Foam::labelPair Foam::addPatchCellLayer::getEdgeString
             // - which hasn't been handled yet
             // - with same neighbour
             // - that needs extrusion
-            while(true)
+            while (true)
             {
                 label prevFp = fEdges.rcIndex(startFp);
 
@@ -286,7 +286,7 @@ Foam::labelPair Foam::addPatchCellLayer::getEdgeString
 
             // Search forward for end of string
             endFp = startFp;
-            while(true)
+            while (true)
             {
                 label nextFp = fEdges.fcIndex(endFp);
 
@@ -1278,7 +1278,7 @@ void Foam::addPatchCellLayer::setRefinement
                     doneEdge[fEdges[fp]] = true;
                     fp = f.fcIndex(fp);
                 }
-                stringedVerts[stringedVerts.size()-1] = f[fp];
+                stringedVerts.last() = f[fp];
 
 
                 // Now stringedVerts contains the vertices in order of face f.
@@ -1296,7 +1296,7 @@ void Foam::addPatchCellLayer::setRefinement
 
                 for (label i = 0; i < numEdgeSideFaces; i++)
                 {
-                    label vEnd = stringedVerts[stringedVerts.size()-1];
+                    label vEnd = stringedVerts.last();
                     label vStart = stringedVerts[0];
 
                     // calculate number of points making up a face
diff --git a/src/dynamicMesh/polyTopoChange/polyTopoChange/combineFaces.C b/src/dynamicMesh/polyTopoChange/polyTopoChange/combineFaces.C
index 51c92b035cecb17744c91f7d59f24cc5fabdffda..bb07db3eb8950c1abd8d44124b7551ca62e27f6f 100644
--- a/src/dynamicMesh/polyTopoChange/polyTopoChange/combineFaces.C
+++ b/src/dynamicMesh/polyTopoChange/polyTopoChange/combineFaces.C
@@ -62,7 +62,7 @@ bool Foam::combineFaces::convexFace
     n /= mag(n);
 
     // Get edge from f[0] to f[size-1];
-    vector ePrev(points[f[0]] - points[f[f.size()-1]]);
+    vector ePrev(points[f.first()] - points[f.last()]);
     scalar magEPrev = mag(ePrev);
     ePrev /= magEPrev + VSMALL;
 
diff --git a/src/dynamicMesh/polyTopoChange/polyTopoChange/edgeCollapser.C b/src/dynamicMesh/polyTopoChange/polyTopoChange/edgeCollapser.C
index 7727e04c87fbf8f39e15600802388cbf1bdda76e..25a0414f830d370da14292f43d61b9723c985172 100644
--- a/src/dynamicMesh/polyTopoChange/polyTopoChange/edgeCollapser.C
+++ b/src/dynamicMesh/polyTopoChange/polyTopoChange/edgeCollapser.C
@@ -456,7 +456,7 @@ bool Foam::edgeCollapser::setRefinement(polyTopoChange& meshMod)
         {
             break;
         }
-    } while(true);
+    } while (true);
 
 
     // Keep track of faces that have been done already.
diff --git a/src/dynamicMesh/polyTopoChange/polyTopoChange/hexRef8.C b/src/dynamicMesh/polyTopoChange/polyTopoChange/hexRef8.C
index a47f8a06f11547ebd222a722a9b13c69af147a09..6c7d321533aac5fbc1a68cca27e3db0d9f6242b9 100644
--- a/src/dynamicMesh/polyTopoChange/polyTopoChange/hexRef8.C
+++ b/src/dynamicMesh/polyTopoChange/polyTopoChange/hexRef8.C
@@ -2222,7 +2222,7 @@ Foam::labelList Foam::hexRef8::consistentSlowRefinement
                     faceCount
                 )
             );
-            allFaceInfo[faceI] = seedFacesInfo[seedFacesInfo.size()-1];
+            allFaceInfo[faceI] = seedFacesInfo.last();
         }
         else
         {
@@ -2238,7 +2238,7 @@ Foam::labelList Foam::hexRef8::consistentSlowRefinement
                     faceCount
                 )
             );
-            allFaceInfo[faceI] = seedFacesInfo[seedFacesInfo.size()-1];
+            allFaceInfo[faceI] = seedFacesInfo.last();
         }
     }
 
@@ -2319,7 +2319,7 @@ Foam::labelList Foam::hexRef8::consistentSlowRefinement
         allCellInfo
     );
 
-    while(true)
+    while (true)
     {
         if (debug)
         {
diff --git a/src/dynamicMesh/polyTopoChange/polyTopoChange/polyTopoChange.C b/src/dynamicMesh/polyTopoChange/polyTopoChange/polyTopoChange.C
index fc405b2d0e2b3e56523aa642ed5eba03f15127e0..d3f1cfe797f0b216771d6feece2ca3d41db0a1a7 100644
--- a/src/dynamicMesh/polyTopoChange/polyTopoChange/polyTopoChange.C
+++ b/src/dynamicMesh/polyTopoChange/polyTopoChange/polyTopoChange.C
@@ -1844,6 +1844,8 @@ void Foam::polyTopoChange::reorderCoupledFaces
     // Rotation on new faces.
     labelList rotation(faces_.size(), 0);
 
+    PstreamBuffers pBufs(Pstream::nonBlocking);
+
     // Send ordering
     forAll(boundary, patchI)
     {
@@ -1851,6 +1853,7 @@ void Foam::polyTopoChange::reorderCoupledFaces
         {
             boundary[patchI].initOrder
             (
+                pBufs,
                 primitivePatch
                 (
                     SubList<face>
@@ -1865,6 +1868,8 @@ void Foam::polyTopoChange::reorderCoupledFaces
         }
     }
 
+    pBufs.finishedSends();
+
     // Receive and calculate ordering
 
     bool anyChanged = false;
@@ -1878,6 +1883,7 @@ void Foam::polyTopoChange::reorderCoupledFaces
 
             bool changed = boundary[patchI].order
             (
+                pBufs,
                 primitivePatch
                 (
                     SubList<face>
diff --git a/src/dynamicMesh/polyTopoChange/polyTopoChange/refinementHistory.C b/src/dynamicMesh/polyTopoChange/polyTopoChange/refinementHistory.C
index 86be16d7a072c1febfce44b63b28066e6c3b41ae..3239c6a8e0efbf2118bf80a66eba35bb1e287ec2 100644
--- a/src/dynamicMesh/polyTopoChange/polyTopoChange/refinementHistory.C
+++ b/src/dynamicMesh/polyTopoChange/polyTopoChange/refinementHistory.C
@@ -745,7 +745,7 @@ Pout<< "refinementHistory::distribute :"
                 newSplitCells.append(splitCells_[index]);
 
                 Pout<< "Added oldCell " << index
-                    << " info " << newSplitCells[newSplitCells.size()-1]
+                    << " info " << newSplitCells.last()
                     << " at position " << newSplitCells.size()-1
                     << endl;
             }
diff --git a/src/dynamicMesh/polyTopoChange/polyTopoChanger/polyTopoChanger.C b/src/dynamicMesh/polyTopoChange/polyTopoChanger/polyTopoChanger.C
index c89388e3199023bc705b730902b8f2ea6f7f0b10..6519c0e86de4baa056728e54e1627b7730d2f315 100644
--- a/src/dynamicMesh/polyTopoChange/polyTopoChanger/polyTopoChanger.C
+++ b/src/dynamicMesh/polyTopoChange/polyTopoChanger/polyTopoChanger.C
@@ -174,14 +174,14 @@ bool Foam::polyTopoChanger::changeTopology() const
             {
                 Info<< "Modifier " << morphI << " named "
                     << topoChanges[morphI].name();
-                
+
                 if (curTriggerChange)
                 {
-                    Info << " morphing" << endl;
+                    Info<< " morphing" << endl;
                 }
                 else
                 {
-                    Info << " unchanged" << endl;
+                    Info<< " unchanged" << endl;
                 }
             }
 
@@ -195,7 +195,7 @@ bool Foam::polyTopoChanger::changeTopology() const
                     << topoChanges[morphI].name() << " inactive" << endl;
             }
         }
-            
+
     }
 
     return triggerChange;
@@ -252,7 +252,7 @@ void Foam::polyTopoChanger::update(const mapPolyMesh& m)
 
     // Force the mesh modifiers to auto-write.  This allows us to
     // preserve the current state of modifiers corresponding with
-    // the mesh.  
+    // the mesh.
     writeOpt() = IOobject::AUTO_WRITE;
     instance() = mesh_.time().timeName();
 }
diff --git a/src/dynamicMesh/slidingInterface/enrichedPatch/enrichedPatchFaces.C b/src/dynamicMesh/slidingInterface/enrichedPatch/enrichedPatchFaces.C
index bad4dd118e535aab507f8122f7ce12203bdd8883..1030fcc374ae03fd78bc5a4b08d5401d864ead95 100644
--- a/src/dynamicMesh/slidingInterface/enrichedPatch/enrichedPatchFaces.C
+++ b/src/dynamicMesh/slidingInterface/enrichedPatch/enrichedPatchFaces.C
@@ -91,7 +91,7 @@ void Foam::enrichedPatch::calcEnrichedFaces
     {
         const face oldFace = slavePatch_[faceI];
         const face oldLocalFace = slaveLocalFaces[faceI];
-//         Info << "old slave face " << faceI << ": " << oldFace << endl;
+//         Info<< "old slave face " << faceI << ": " << oldFace << endl;
         const labelList& curEdges = slaveFaceEdges[faceI];
 
         DynamicList<label> newFace(oldFace.size()*enrichedFaceRatio_);
@@ -133,7 +133,7 @@ void Foam::enrichedPatch::calcEnrichedFaces
 
             const labelList& slavePointsOnEdge =
                 pointsIntoSlaveEdges[curEdges[i]];
-//             Info << "slavePointsOnEdge for " << curEdges[i] << ": " << slavePointsOnEdge << endl;
+//             Info<< "slavePointsOnEdge for " << curEdges[i] << ": " << slavePointsOnEdge << endl;
             // If there are no points on the edge, skip everything
             // If there is only one point, no need for sorting
             if (slavePointsOnEdge.size())
@@ -246,7 +246,7 @@ void Foam::enrichedPatch::calcEnrichedFaces
     {
         const face& oldFace = masterPatch_[faceI];
         const face& oldLocalFace = masterLocalFaces[faceI];
-//         Info << "old master face: " << oldFace << endl;
+//         Info<< "old master face: " << oldFace << endl;
         const labelList& curEdges = masterFaceEdges[faceI];
 
         DynamicList<label> newFace(oldFace.size()*enrichedFaceRatio_);
diff --git a/src/dynamicMesh/slidingInterface/slidingInterface.C b/src/dynamicMesh/slidingInterface/slidingInterface.C
index 316dd389b6f7843a5edaddc6a8eafac253acfa89..12d99e8083eb25efd90c9b1b42d34b005b4434b7 100644
--- a/src/dynamicMesh/slidingInterface/slidingInterface.C
+++ b/src/dynamicMesh/slidingInterface/slidingInterface.C
@@ -420,7 +420,7 @@ void Foam::slidingInterface::setRefinement(polyTopoChange& ref) const
         }
 
         coupleInterface(ref);
-        
+
         trigger_ = false;
     }
 }
@@ -430,7 +430,7 @@ void Foam::slidingInterface::modifyMotionPoints(pointField& motionPoints) const
 {
     if (debug)
     {
-        Pout<< "void slidingInterface::modifyMotionPoints(" 
+        Pout<< "void slidingInterface::modifyMotionPoints("
             << "pointField& motionPoints) const for object " << name() << " : "
             << "Adjusting motion points." << endl;
     }
@@ -485,7 +485,7 @@ void Foam::slidingInterface::modifyMotionPoints(pointField& motionPoints) const
             else
             {
                 // A cut point is not a projected slave point.  Therefore, it
-                // must be an edge-to-edge intersection.  
+                // must be an edge-to-edge intersection.
 
                 Map<Pair<edge> >::const_iterator cpepmIter =
                     cpepm.find(cutPoints[pointI]);
@@ -499,7 +499,7 @@ void Foam::slidingInterface::modifyMotionPoints(pointField& motionPoints) const
                     // slidingInterface::coupleInterface.  This is done for
                     // efficiency reasons and avoids multiple creation of
                     // cutting planes.  Please update both simultaneously.
-                    // 
+                    //
                     const edge& globalMasterEdge = cpepmIter().first();
 
                     const label curMasterEdgeIndex =
@@ -582,7 +582,7 @@ void Foam::slidingInterface::modifyMotionPoints(pointField& motionPoints) const
                         if (slaveCut.hit())
                         {
                             // Strict checking of slave cut to avoid capturing
-                            // end points.  
+                            // end points.
                             scalar cutOnSlave =
                                 (
                                     (
@@ -615,7 +615,7 @@ void Foam::slidingInterface::modifyMotionPoints(pointField& motionPoints) const
                                 << cme.line(masterLocalPoints)
                                 << " slave edge: " << curSlaveLine
                                 << " point: " << masterCutPoint
-                                << " weight: " << 
+                                << " weight: " <<
                                 (
                                     (
                                         slaveCut.missPoint()
@@ -657,7 +657,7 @@ void Foam::slidingInterface::updateMesh(const mapPolyMesh& m)
 {
     if (debug)
     {
-        Pout<< "void slidingInterface::updateMesh(const mapPolyMesh& m)" 
+        Pout<< "void slidingInterface::updateMesh(const mapPolyMesh& m)"
             << " const for object " << name() << " : "
             << "Updating topology." << endl;
     }
@@ -771,7 +771,7 @@ void Foam::slidingInterface::write(Ostream& os) const
 
 // To write out all those tolerances
 #define WRITE_NON_DEFAULT(name) \
-    if( name ## _ != name ## Default_ )\
+    if ( name ## _ != name ## Default_ )\
     { \
         os << "    " #name " " <<  name ## _ << token::END_STATEMENT << nl; \
     }
diff --git a/src/finiteVolume/Make/files b/src/finiteVolume/Make/files
index 5fe44b935751f8c95bdc23e7e561c1b40ac7b359..94c83312d35b49b48f4019411eab97c1ba1dfcee 100644
--- a/src/finiteVolume/Make/files
+++ b/src/finiteVolume/Make/files
@@ -122,6 +122,7 @@ $(derivedFvPatchFields)/inletOutletTotalTemperature/inletOutletTotalTemperatureF
 $(derivedFvPatchFields)/flowRateInletVelocity/flowRateInletVelocityFvPatchVectorField.C
 $(derivedFvPatchFields)/movingWallVelocity/movingWallVelocityFvPatchVectorField.C
 $(derivedFvPatchFields)/rotatingWallVelocity/rotatingWallVelocityFvPatchVectorField.C
+$(derivedFvPatchFields)/translatingWallVelocity/translatingWallVelocityFvPatchVectorField.C
 $(derivedFvPatchFields)/oscillatingFixedValue/oscillatingFixedValueFvPatchFields.C
 $(derivedFvPatchFields)/outletInlet/outletInletFvPatchFields.C
 $(derivedFvPatchFields)/partialSlip/partialSlipFvPatchFields.C
diff --git a/src/finiteVolume/cfdTools/general/adjustPhi/adjustPhi.C b/src/finiteVolume/cfdTools/general/adjustPhi/adjustPhi.C
index dfaef4308e6c98824612a3b60a1e4e79a58ebc51..439d83e1786003f7b7686859521429ebf5918fcf 100644
--- a/src/finiteVolume/cfdTools/general/adjustPhi/adjustPhi.C
+++ b/src/finiteVolume/cfdTools/general/adjustPhi/adjustPhi.C
@@ -107,7 +107,7 @@ bool Foam::adjustPhi
         {
             massCorr = (massIn - fixedMassOut)/adjustableMassOut;
         }
-        else if(mag(fixedMassOut - massIn)/totalFlux > 1e-10)
+        else if (mag(fixedMassOut - massIn)/totalFlux > 1e-10)
         {
             FatalErrorIn
             (
diff --git a/src/finiteVolume/cfdTools/general/include/readGravitationalAcceleration.H b/src/finiteVolume/cfdTools/general/include/readGravitationalAcceleration.H
index 2389d0bd2b72d87f0fe4d599aaeb0463e8bfc51d..1be4dc52f53623de32758c6587bb3d4713a56aa1 100644
--- a/src/finiteVolume/cfdTools/general/include/readGravitationalAcceleration.H
+++ b/src/finiteVolume/cfdTools/general/include/readGravitationalAcceleration.H
@@ -1,4 +1,4 @@
-    Info << "\nReading g" << endl;
+    Info<< "\nReading g" << endl;
     uniformDimensionedVectorField g
     (
         IOobject
diff --git a/src/finiteVolume/cfdTools/general/porousMedia/porousZone.H b/src/finiteVolume/cfdTools/general/porousMedia/porousZone.H
index 9a3eb151f969e4034f0c7607f2999c82ec4a9783..edfbad5efb825e61bd06d785ace0db64e3650a21 100644
--- a/src/finiteVolume/cfdTools/general/porousMedia/porousZone.H
+++ b/src/finiteVolume/cfdTools/general/porousMedia/porousZone.H
@@ -42,7 +42,7 @@ Description
 
     Darcy-Forchheimer (@e d and @e f parameters)
     @f[
-        S = - (\mu \, d \, U + \frac{\rho |U|}{2} \, f) U
+        S = - (\mu \, d + \frac{\rho |U|}{2} \, f) U
     @f]
 
 
diff --git a/src/finiteVolume/fields/fvPatchFields/constraint/jumpCyclic/jumpCyclicFvPatchField.C b/src/finiteVolume/fields/fvPatchFields/constraint/jumpCyclic/jumpCyclicFvPatchField.C
index 4f4ec60dd039528795e5e13496cdead1db6c9fd6..dcd3440e3662cf9d6264302e1b295831116c6ade 100644
--- a/src/finiteVolume/fields/fvPatchFields/constraint/jumpCyclic/jumpCyclicFvPatchField.C
+++ b/src/finiteVolume/fields/fvPatchFields/constraint/jumpCyclic/jumpCyclicFvPatchField.C
@@ -154,7 +154,7 @@ void jumpCyclicFvPatchField<Type>::updateInterfaceMatrix
     label sizeby2 = this->size()/2;
     const unallocLabelList& faceCells = this->cyclicPatch().faceCells();
 
-    if (long(&psiInternal) == long(&this->internalField()))
+    if (&psiInternal == &this->internalField())
     {
         tmp<Field<scalar> > tjf = jump();
         const Field<scalar>& jf = tjf();
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/fan/fanFvPatchFields.C b/src/finiteVolume/fields/fvPatchFields/derived/fan/fanFvPatchFields.C
index ce005c5683eb2cf802aaf663bb2543162157f9c4..2ae16afc957fd0d17719289b5876c0ce96642897 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/fan/fanFvPatchFields.C
+++ b/src/finiteVolume/fields/fvPatchFields/derived/fan/fanFvPatchFields.C
@@ -74,7 +74,7 @@ void Foam::fanFvPatchField<Foam::scalar>::updateCoeffs()
                 );
         }
 
-        for(label i=1; i<f_.size(); i++)
+        for (label i=1; i<f_.size(); i++)
         {
             jump_ += f_[i]*pow(Un, i);
         }
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/translatingWallVelocity/translatingWallVelocityFvPatchVectorField.C b/src/finiteVolume/fields/fvPatchFields/derived/translatingWallVelocity/translatingWallVelocityFvPatchVectorField.C
new file mode 100644
index 0000000000000000000000000000000000000000..ef3fb96aa148e0697c536e71ce49178248a6865a
--- /dev/null
+++ b/src/finiteVolume/fields/fvPatchFields/derived/translatingWallVelocity/translatingWallVelocityFvPatchVectorField.C
@@ -0,0 +1,142 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 1991-2009 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 2 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, write to the Free Software Foundation,
+    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+\*---------------------------------------------------------------------------*/
+
+#include "translatingWallVelocityFvPatchVectorField.H"
+#include "addToRunTimeSelectionTable.H"
+#include "volFields.H"
+#include "surfaceFields.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+translatingWallVelocityFvPatchVectorField::
+translatingWallVelocityFvPatchVectorField
+(
+    const fvPatch& p,
+    const DimensionedField<vector, volMesh>& iF
+)
+:
+    fixedValueFvPatchField<vector>(p, iF),
+    U_(vector::zero)
+{}
+
+
+translatingWallVelocityFvPatchVectorField::
+translatingWallVelocityFvPatchVectorField
+(
+    const translatingWallVelocityFvPatchVectorField& ptf,
+    const fvPatch& p,
+    const DimensionedField<vector, volMesh>& iF,
+    const fvPatchFieldMapper& mapper
+)
+:
+    fixedValueFvPatchField<vector>(ptf, p, iF, mapper),
+    U_(ptf.U_)
+{}
+
+
+translatingWallVelocityFvPatchVectorField::
+translatingWallVelocityFvPatchVectorField
+(
+    const fvPatch& p,
+    const DimensionedField<vector, volMesh>& iF,
+    const dictionary& dict
+)
+:
+    fixedValueFvPatchField<vector>(p, iF),
+    U_(dict.lookup("U"))
+{
+    // Evaluate the wall velocity
+    updateCoeffs();
+}
+
+
+translatingWallVelocityFvPatchVectorField::
+translatingWallVelocityFvPatchVectorField
+(
+    const translatingWallVelocityFvPatchVectorField& twvpvf
+)
+:
+    fixedValueFvPatchField<vector>(twvpvf),
+    U_(twvpvf.U_)
+{}
+
+
+translatingWallVelocityFvPatchVectorField::
+translatingWallVelocityFvPatchVectorField
+(
+    const translatingWallVelocityFvPatchVectorField& twvpvf,
+    const DimensionedField<vector, volMesh>& iF
+)
+:
+    fixedValueFvPatchField<vector>(twvpvf, iF),
+    U_(twvpvf.U_)
+{}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+void translatingWallVelocityFvPatchVectorField::updateCoeffs()
+{
+    if (updated())
+    {
+        return;
+    }
+
+    // Remove the component of U normal to the wall in case the wall is not flat
+    vectorField n = patch().nf();
+    vectorField::operator=(U_ - n*(n & U_));
+
+    fixedValueFvPatchVectorField::updateCoeffs();
+}
+
+
+void translatingWallVelocityFvPatchVectorField::write(Ostream& os) const
+{
+    fvPatchVectorField::write(os);
+    os.writeKeyword("U") << U_ << token::END_STATEMENT << nl;
+    writeEntry("value", os);
+}
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+makePatchTypeField
+(
+    fvPatchVectorField,
+    translatingWallVelocityFvPatchVectorField
+);
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Foam
+
+// ************************************************************************* //
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/translatingWallVelocity/translatingWallVelocityFvPatchVectorField.H b/src/finiteVolume/fields/fvPatchFields/derived/translatingWallVelocity/translatingWallVelocityFvPatchVectorField.H
new file mode 100644
index 0000000000000000000000000000000000000000..68345ae537f5e5597732012a0f82cc1b23798dec
--- /dev/null
+++ b/src/finiteVolume/fields/fvPatchFields/derived/translatingWallVelocity/translatingWallVelocityFvPatchVectorField.H
@@ -0,0 +1,155 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 1991-2009 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 2 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, write to the Free Software Foundation,
+    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+Class
+    Foam::translatingWallVelocityFvPatchVectorField
+
+Description
+    Foam::translatingWallVelocityFvPatchVectorField
+
+SourceFiles
+    translatingWallVelocityFvPatchVectorField.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef translatingWallVelocityFvPatchVectorField_H
+#define translatingWallVelocityFvPatchVectorField_H
+
+#include "fixedValueFvPatchFields.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+/*---------------------------------------------------------------------------*\
+           Class translatingWallVelocityFvPatchField Declaration
+\*---------------------------------------------------------------------------*/
+
+class translatingWallVelocityFvPatchVectorField
+:
+    public fixedValueFvPatchVectorField
+{
+    // Private data
+
+        //- Origin of the rotation
+        vector U_;
+
+
+public:
+
+    //- Runtime type information
+    TypeName("translatingWallVelocity");
+
+
+    // Constructors
+
+        //- Construct from patch and internal field
+        translatingWallVelocityFvPatchVectorField
+        (
+            const fvPatch&,
+            const DimensionedField<vector, volMesh>&
+        );
+
+        //- Construct from patch, internal field and dictionary
+        translatingWallVelocityFvPatchVectorField
+        (
+            const fvPatch&,
+            const DimensionedField<vector, volMesh>&,
+            const dictionary&
+        );
+
+        //- Construct by mapping given a
+        // translatingWallVelocityFvPatchVectorField onto a new patch
+        translatingWallVelocityFvPatchVectorField
+        (
+            const translatingWallVelocityFvPatchVectorField&,
+            const fvPatch&,
+            const DimensionedField<vector, volMesh>&,
+            const fvPatchFieldMapper&
+        );
+
+        //- Construct as copy
+        translatingWallVelocityFvPatchVectorField
+        (
+            const translatingWallVelocityFvPatchVectorField&
+        );
+
+        //- Construct and return a clone
+        virtual tmp<fvPatchVectorField> clone() const
+        {
+            return tmp<fvPatchVectorField>
+            (
+                new translatingWallVelocityFvPatchVectorField(*this)
+            );
+        }
+
+        //- Construct as copy setting internal field reference
+        translatingWallVelocityFvPatchVectorField
+        (
+            const translatingWallVelocityFvPatchVectorField&,
+            const DimensionedField<vector, volMesh>&
+        );
+
+        //- Construct and return a clone setting internal field reference
+        virtual tmp<fvPatchVectorField> clone
+        (
+             const DimensionedField<vector, volMesh>& iF
+        ) const
+        {
+            return tmp<fvPatchVectorField>
+            (
+                new translatingWallVelocityFvPatchVectorField(*this, iF)
+            );
+        }
+
+
+
+    // Member functions
+
+        // Access functions
+
+            //- Return the velocity
+            const vector& U() const
+            {
+                return U_;
+            }
+
+            //- 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/finiteVolume/finiteVolume/gradSchemes/limitedGradSchemes/cellLimitedGrad/cellLimitedGrad.H b/src/finiteVolume/finiteVolume/gradSchemes/limitedGradSchemes/cellLimitedGrad/cellLimitedGrad.H
index 22083de571e94fcbe637c269bd91206e5c0d4715..5c4d711ab30be538e0701e9ab2552a1bcfce1625 100644
--- a/src/finiteVolume/finiteVolume/gradSchemes/limitedGradSchemes/cellLimitedGrad/cellLimitedGrad.H
+++ b/src/finiteVolume/finiteVolume/gradSchemes/limitedGradSchemes/cellLimitedGrad/cellLimitedGrad.H
@@ -162,7 +162,7 @@ inline void cellLimitedGrad<Type>::limitFace
     const Type& extrapolate
 )
 {
-    for(direction cmpt=0; cmpt<Type::nComponents; cmpt++)
+    for (direction cmpt=0; cmpt<Type::nComponents; cmpt++)
     {
         cellLimitedGrad<scalar>::limitFace
         (
diff --git a/src/finiteVolume/finiteVolume/gradSchemes/limitedGradSchemes/cellMDLimitedGrad/cellMDLimitedGrad.H b/src/finiteVolume/finiteVolume/gradSchemes/limitedGradSchemes/cellMDLimitedGrad/cellMDLimitedGrad.H
index d9b389d0f54147eb4fdd01d1821bd4ef58fe4ac3..f48ed450d9a2290b573115d1c61a9d2124deb845 100644
--- a/src/finiteVolume/finiteVolume/gradSchemes/limitedGradSchemes/cellMDLimitedGrad/cellMDLimitedGrad.H
+++ b/src/finiteVolume/finiteVolume/gradSchemes/limitedGradSchemes/cellMDLimitedGrad/cellMDLimitedGrad.H
@@ -164,7 +164,7 @@ inline void cellMDLimitedGrad<Type>::limitFace
     const vector& dcf
 )
 {
-    for(direction cmpt=0; cmpt<Type::nComponents; cmpt++)
+    for (direction cmpt=0; cmpt<Type::nComponents; cmpt++)
     {
         vector gi(g[cmpt], g[cmpt+3], g[cmpt+6]);
         cellMDLimitedGrad<scalar>::limitFace
diff --git a/src/finiteVolume/finiteVolume/snGradSchemes/quadraticFitSnGrad/quadraticFitSnGradData.C b/src/finiteVolume/finiteVolume/snGradSchemes/quadraticFitSnGrad/quadraticFitSnGradData.C
index 1d13f0d915196802308277fd973e137ddde16b65..bd65a3fd375320e32b670145b8eb01cd949bcd38 100644
--- a/src/finiteVolume/finiteVolume/snGradSchemes/quadraticFitSnGrad/quadraticFitSnGradData.C
+++ b/src/finiteVolume/finiteVolume/snGradSchemes/quadraticFitSnGrad/quadraticFitSnGradData.C
@@ -64,7 +64,7 @@ Foam::quadraticFitSnGradData::quadraticFitSnGradData
 {
     if (debug)
     {
-        Info << "Contructing quadraticFitSnGradData" << endl;
+        Info<< "Contructing quadraticFitSnGradData" << endl;
     }
 
     // check input
@@ -108,7 +108,7 @@ Foam::quadraticFitSnGradData::quadraticFitSnGradData
 
     // find the fit coefficients for every face in the mesh
 
-    for(label faci = 0; faci < mesh.nInternalFaces(); faci++)
+    for (label faci = 0; faci < mesh.nInternalFaces(); faci++)
     {
         snGradPolySize[faci] = calcFit(stencilPoints[faci], faci);
     }
@@ -206,7 +206,7 @@ Foam::label Foam::quadraticFitSnGradData::calcFit
     // calculate the matrix of the polynomial components
     scalarRectangularMatrix B(C.size(), minSize_, scalar(0));
 
-    for(label ip = 0; ip < C.size(); ip++)
+    for (label ip = 0; ip < C.size(); ip++)
     {
         const point& p = C[ip];
 
@@ -254,7 +254,7 @@ Foam::label Foam::quadraticFitSnGradData::calcFit
     const scalar deltaCoeff = mesh().deltaCoeffs()[faci];
 
     bool goodFit = false;
-    for(int iIt = 0; iIt < 10 && !goodFit; iIt++)
+    for (int iIt = 0; iIt < 10 && !goodFit; iIt++)
     {
         SVD svd(B, SMALL);
 
@@ -270,7 +270,7 @@ Foam::label Foam::quadraticFitSnGradData::calcFit
         {
             fit_[faci][0] = fit0;
             fit_[faci][1] = fit1;
-            for(label i = 2; i < stencilSize; i++)
+            for (label i = 2; i < stencilSize; i++)
             {
                 fit_[faci][i] = wts[0]*wts[i]*svd.VSinvUt()[1][i]/scale;
             }
@@ -282,13 +282,13 @@ Foam::label Foam::quadraticFitSnGradData::calcFit
             wts[0] *= 10;
             wts[1] *= 10;
 
-            for(label i = 0; i < B.n(); i++)
+            for (label i = 0; i < B.n(); i++)
             {
                 B[i][0] *= 10;
                 B[i][1] *= 10;
             }
 
-            for(label j = 0; j < B.m(); j++)
+            for (label j = 0; j < B.m(); j++)
             {
                 B[0][j] *= 10;
                 B[1][j] *= 10;
diff --git a/src/finiteVolume/fvMatrices/fvMatrix/fvMatrix.C b/src/finiteVolume/fvMatrices/fvMatrix/fvMatrix.C
index 5e85f505922c3118fb411fa2949f5e72e5a7ac6d..9ce8d888c4bfdedad90d8216809664424428d19f 100644
--- a/src/finiteVolume/fvMatrices/fvMatrix/fvMatrix.C
+++ b/src/finiteVolume/fvMatrices/fvMatrix/fvMatrix.C
@@ -725,7 +725,7 @@ Foam::fvMatrix<Type>::H() const
         )
     );
 
-    for(direction cmpt=0; cmpt<Type::nComponents; cmpt++)
+    for (direction cmpt=0; cmpt<Type::nComponents; cmpt++)
     {
         if (validComponents[cmpt] == -1)
         {
diff --git a/src/finiteVolume/fvMatrices/fvMatrix/fvMatrixSolve.C b/src/finiteVolume/fvMatrices/fvMatrix/fvMatrixSolve.C
index c56899bd62ea89da15aacae44c743e069135f452..a78d6be6cf28250d44475857594f8e0b46acb239 100644
--- a/src/finiteVolume/fvMatrices/fvMatrix/fvMatrixSolve.C
+++ b/src/finiteVolume/fvMatrices/fvMatrix/fvMatrixSolve.C
@@ -90,7 +90,7 @@ Foam::lduMatrix::solverPerformance Foam::fvMatrix<Type>::solve
         )
     );
 
-    for(direction cmpt=0; cmpt<Type::nComponents; cmpt++)
+    for (direction cmpt=0; cmpt<Type::nComponents; cmpt++)
     {
         if (validComponents[cmpt] == -1) continue;
 
diff --git a/src/finiteVolume/fvMatrices/solvers/MULES/MULESTemplates.C b/src/finiteVolume/fvMatrices/solvers/MULES/MULESTemplates.C
index 151de78a1ef28a735d488ba94c290a29e6c1a479..f938c2cf9f930871677be7b49b23d78f470b30f5 100644
--- a/src/finiteVolume/fvMatrices/solvers/MULES/MULESTemplates.C
+++ b/src/finiteVolume/fvMatrices/solvers/MULES/MULESTemplates.C
@@ -142,8 +142,7 @@ void Foam::MULES::implicitSolve
 {
     const fvMesh& mesh = psi.mesh();
 
-    const dictionary& MULEScontrols = 
-       mesh.solverDict(psi.name()).subDict("MULESImplicit");
+    const dictionary& MULEScontrols = mesh.solverDict(psi.name());
 
     label maxIter
     (
@@ -255,7 +254,7 @@ void Foam::MULES::implicitSolve
         solve
         (
             psiConvectionDiffusion + fvc::div(lambda*phiCorr),
-            MULEScontrols.lookup("solver")
+            MULEScontrols
         );
 
         scalar maxPsiM1 = gMax(psi.internalField()) - 1.0;
@@ -478,7 +477,7 @@ void Foam::MULES::limiter
     scalarField sumlPhip(psiIf.size());
     scalarField mSumlPhim(psiIf.size());
 
-    for(int j=0; j<nLimiterIter; j++)
+    for (int j=0; j<nLimiterIter; j++)
     {
         sumlPhip = 0.0;
         mSumlPhim = 0.0;
diff --git a/src/finiteVolume/fvMesh/extendedStencil/cellToFace/fullStencils/CECCellToFaceStencil.H b/src/finiteVolume/fvMesh/extendedStencil/cellToFace/fullStencils/CECCellToFaceStencil.H
index 640c2aa4f4746aa0a63e0805870b6d7b67b6f00a..666c4b1b5d93eae77d50c324a93a91010c92b815 100644
--- a/src/finiteVolume/fvMesh/extendedStencil/cellToFace/fullStencils/CECCellToFaceStencil.H
+++ b/src/finiteVolume/fvMesh/extendedStencil/cellToFace/fullStencils/CECCellToFaceStencil.H
@@ -51,15 +51,6 @@ class CECCellToFaceStencil
 :
     public cellToFaceStencil
 {
-    // Private Member Functions
-
-        //- Disallow default bitwise copy construct
-        CECCellToFaceStencil(const CECCellToFaceStencil&);
-
-        //- Disallow default bitwise assignment
-        void operator=(const CECCellToFaceStencil&);
-
-
 public:
 
     // Constructors
diff --git a/src/finiteVolume/fvMesh/extendedStencil/cellToFace/fullStencils/CFCCellToFaceStencil.H b/src/finiteVolume/fvMesh/extendedStencil/cellToFace/fullStencils/CFCCellToFaceStencil.H
index a05b1b7aa6dfcaf2425d27c68bbfa57983239347..6b8dbcaedff0f007fa93df3b5d67dc28ce77c0bb 100644
--- a/src/finiteVolume/fvMesh/extendedStencil/cellToFace/fullStencils/CFCCellToFaceStencil.H
+++ b/src/finiteVolume/fvMesh/extendedStencil/cellToFace/fullStencils/CFCCellToFaceStencil.H
@@ -51,14 +51,6 @@ class CFCCellToFaceStencil
 :
     public cellToFaceStencil
 {
-    // Private Member Functions
-
-        //- Disallow default bitwise copy construct
-        CFCCellToFaceStencil(const CFCCellToFaceStencil&);
-
-        //- Disallow default bitwise assignment
-        void operator=(const CFCCellToFaceStencil&);
-
 public:
 
     // Constructors
diff --git a/src/finiteVolume/fvMesh/extendedStencil/cellToFace/fullStencils/CPCCellToFaceStencil.H b/src/finiteVolume/fvMesh/extendedStencil/cellToFace/fullStencils/CPCCellToFaceStencil.H
index a82886e11145aca2883ac6846d822dca268eb0bd..f3e996332de4f013434955a553d3b1d7bcec1f0a 100644
--- a/src/finiteVolume/fvMesh/extendedStencil/cellToFace/fullStencils/CPCCellToFaceStencil.H
+++ b/src/finiteVolume/fvMesh/extendedStencil/cellToFace/fullStencils/CPCCellToFaceStencil.H
@@ -51,15 +51,6 @@ class CPCCellToFaceStencil
 :
     public cellToFaceStencil
 {
-    // Private Member Functions
-
-        //- Disallow default bitwise copy construct
-        CPCCellToFaceStencil(const CPCCellToFaceStencil&);
-
-        //- Disallow default bitwise assignment
-        void operator=(const CPCCellToFaceStencil&);
-
-
 public:
 
     // Constructors
diff --git a/src/finiteVolume/fvMesh/extendedStencil/cellToFace/fullStencils/FECCellToFaceStencil.H b/src/finiteVolume/fvMesh/extendedStencil/cellToFace/fullStencils/FECCellToFaceStencil.H
index 6a00f702ea92cc9d19d655ad0ee19ff70e846510..d08afb8bebca125a40d6cadbdfac93daf90d0c36 100644
--- a/src/finiteVolume/fvMesh/extendedStencil/cellToFace/fullStencils/FECCellToFaceStencil.H
+++ b/src/finiteVolume/fvMesh/extendedStencil/cellToFace/fullStencils/FECCellToFaceStencil.H
@@ -65,13 +65,6 @@ class FECCellToFaceStencil
         void calcFaceStencil(labelListList& faceStencil) const;
 
 
-        //- Disallow default bitwise copy construct
-        FECCellToFaceStencil(const FECCellToFaceStencil&);
-
-        //- Disallow default bitwise assignment
-        void operator=(const FECCellToFaceStencil&);
-
-
 public:
 
     // Constructors
diff --git a/src/finiteVolume/fvMesh/extendedStencil/faceToCell/fullStencils/CFCFaceToCellStencil.H b/src/finiteVolume/fvMesh/extendedStencil/faceToCell/fullStencils/CFCFaceToCellStencil.H
index 2bbf9376f438047e47ece65c6e1a9c6f5a091173..80086262e16b8e965d199a661fb7c48f7bb817cc 100644
--- a/src/finiteVolume/fvMesh/extendedStencil/faceToCell/fullStencils/CFCFaceToCellStencil.H
+++ b/src/finiteVolume/fvMesh/extendedStencil/faceToCell/fullStencils/CFCFaceToCellStencil.H
@@ -56,11 +56,6 @@ class CFCFaceToCellStencil
 
         void calcCellStencil(labelListList& globalCellFaces) const;
 
-        //- Disallow default bitwise copy construct
-        CFCFaceToCellStencil(const CFCFaceToCellStencil&);
-
-        //- Disallow default bitwise assignment
-        void operator=(const CFCFaceToCellStencil&);
 
 public:
 
diff --git a/src/finiteVolume/fvMesh/fvMesh.C b/src/finiteVolume/fvMesh/fvMesh.C
index 28f0a8d23ee6946b34de5885160a603d2f2bd9e2..95002fd960c47a60b00b23493c5870ebeab0952b 100644
--- a/src/finiteVolume/fvMesh/fvMesh.C
+++ b/src/finiteVolume/fvMesh/fvMesh.C
@@ -356,7 +356,7 @@ Foam::polyMesh::readUpdateState Foam::fvMesh::readUpdate()
     {
         if (debug)
         {
-            Info << "Boundary and topological update" << endl;
+            Info<< "Boundary and topological update" << endl;
         }
 
         boundary_.readUpdate(boundaryMesh());
@@ -368,7 +368,7 @@ Foam::polyMesh::readUpdateState Foam::fvMesh::readUpdate()
     {
         if (debug)
         {
-            Info << "Topological update" << endl;
+            Info<< "Topological update" << endl;
         }
 
         clearOut();
@@ -377,7 +377,7 @@ Foam::polyMesh::readUpdateState Foam::fvMesh::readUpdate()
     {
         if (debug)
         {
-            Info << "Point motion update" << endl;
+            Info<< "Point motion update" << endl;
         }
 
         clearGeom();
@@ -386,7 +386,7 @@ Foam::polyMesh::readUpdateState Foam::fvMesh::readUpdate()
     {
         if (debug)
         {
-            Info << "No update" << endl;
+            Info<< "No update" << endl;
         }
     }
 
diff --git a/src/finiteVolume/fvMesh/fvMeshSubset/fvMeshSubset.C b/src/finiteVolume/fvMesh/fvMeshSubset/fvMeshSubset.C
index 3ecbd0a19720075ef77ec93f6faa8b800d82e993..dc2aec8960d320fdf0ee8ed33cfe664fedb398ec 100644
--- a/src/finiteVolume/fvMesh/fvMeshSubset/fvMeshSubset.C
+++ b/src/finiteVolume/fvMesh/fvMeshSubset/fvMeshSubset.C
@@ -1341,7 +1341,7 @@ void Foam::fvMeshSubset::setLargeCellSubset
 {
     labelList region(baseMesh().nCells(), 0);
 
-    forAllConstIter (labelHashSet, globalCellMap, iter)
+    forAllConstIter(labelHashSet, globalCellMap, iter)
     {
         region[iter.key()] = 1;
     }
diff --git a/src/finiteVolume/fvMesh/singleCellFvMesh/singleCellFvMesh.C b/src/finiteVolume/fvMesh/singleCellFvMesh/singleCellFvMesh.C
index 65965f15d94612cdee4cee766e017666dc73a4df..7e38d098316366e3b98fdbcb5ae7bafe6223d14f 100644
--- a/src/finiteVolume/fvMesh/singleCellFvMesh/singleCellFvMesh.C
+++ b/src/finiteVolume/fvMesh/singleCellFvMesh/singleCellFvMesh.C
@@ -146,6 +146,10 @@ void Foam::singleCellFvMesh::agglomerateMesh
     // From new patch face back to agglomeration
     patchFaceMap_.setSize(oldPatches.size());
 
+    // From fine face to coarse face (or -1)
+    reverseFaceMap_.setSize(mesh.nFaces());
+    reverseFaceMap_.labelList::operator=(-1);
+
     // Face counter
     coarseI = 0;
 
diff --git a/src/finiteVolume/interpolation/interpolation/interpolationCellPointFace/findCellPointFaceTriangle.H b/src/finiteVolume/interpolation/interpolation/interpolationCellPointFace/findCellPointFaceTriangle.H
index dc9e2baa00f9f97ebb92ba2339612828e2f7e032..490b20f182c398e30900ec63b0df0c19590b1b56 100644
--- a/src/finiteVolume/interpolation/interpolation/interpolationCellPointFace/findCellPointFaceTriangle.H
+++ b/src/finiteVolume/interpolation/interpolation/interpolationCellPointFace/findCellPointFaceTriangle.H
@@ -45,7 +45,7 @@ bool interpolationCellPointFace<Type>::findTriangle
         // calculate triangle edge vectors and triangle face normal
         // the 'i':th edge is opposite node i
         vector edge[3], normal[3];
-        for(label i=0; i<3; i++)
+        for (label i=0; i<3; i++)
         {
             label ip0 = (i+1) % 3;
             label ipp = (i+2) % 3;
@@ -55,7 +55,7 @@ bool interpolationCellPointFace<Type>::findTriangle
         vector triangleFaceNormal = edge[1] ^ edge[2];
         
         // calculate edge normal (pointing inwards)
-        for(label i=0; i<3; i++)
+        for (label i=0; i<3; i++)
         {
             normal[i] = triangleFaceNormal ^ edge[i];
             normal[i] /= mag(normal[i]) + VSMALL;
@@ -63,7 +63,7 @@ bool interpolationCellPointFace<Type>::findTriangle
 
         // check if position is inside triangle
         bool inside = true;
-        for(label i=0; i<3; i++)
+        for (label i=0; i<3; i++)
         {
             label ip = (i+1) % 3;
             inside = inside && (((newPos - tetPoints[ip]) & edge[i]) >= 0);
@@ -74,7 +74,7 @@ bool interpolationCellPointFace<Type>::findTriangle
             foundTriangle = true;
 
             // calculate phi-values
-            for(label i=0; i<3; i++)
+            for (label i=0; i<3; i++)
             {
                 label ip = (i+1) % 3;
                 scalar phiMax = max(VSMALL, normal[i] & edge[ip]);
diff --git a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/CentredFitScheme/CentredFitData.C b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/CentredFitScheme/CentredFitData.C
index fb9611e9c8aa06f8f70c56ccd847232b34b72ef5..4870127e51d3de130a78967e72e5b60f1fe62172 100644
--- a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/CentredFitScheme/CentredFitData.C
+++ b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/CentredFitScheme/CentredFitData.C
@@ -86,7 +86,7 @@ void Foam::CentredFitData<Polynomial>::calcFit()
 
     const surfaceScalarField& w = mesh.surfaceInterpolation::weights();
 
-    for(label facei = 0; facei < mesh.nInternalFaces(); facei++)
+    for (label facei = 0; facei < mesh.nInternalFaces(); facei++)
     {
         FitData
         <
diff --git a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/FitData/FitData.C b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/FitData/FitData.C
index dcea0902668d1444f3d93af5c37550f45a8245bf..62d464dcd6718f7d1c3658af521bdff886e32a4e 100644
--- a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/FitData/FitData.C
+++ b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/FitData/FitData.C
@@ -153,7 +153,7 @@ void Foam::FitData<FitDataType, ExtendedStencil, Polynomial>::calcFit
     // Reference point
     point p0 = this->mesh().faceCentres()[facei];
 
-    // Info << "Face " << facei << " at " << p0 << " stencil points at:\n"
+    // Info<< "Face " << facei << " at " << p0 << " stencil points at:\n"
     //     << C - p0 << endl;
 
     // p0 -> p vector in the face-local coordinate system
@@ -165,7 +165,7 @@ void Foam::FitData<FitDataType, ExtendedStencil, Polynomial>::calcFit
     // Matrix of the polynomial components
     scalarRectangularMatrix B(C.size(), minSize_, scalar(0));
 
-    for(label ip = 0; ip < C.size(); ip++)
+    for (label ip = 0; ip < C.size(); ip++)
     {
         const point& p = C[ip];
 
@@ -195,7 +195,7 @@ void Foam::FitData<FitDataType, ExtendedStencil, Polynomial>::calcFit
     }
 
     // Additional weighting for constant and linear terms
-    for(label i = 0; i < B.n(); i++)
+    for (label i = 0; i < B.n(); i++)
     {
         B[i][0] *= wts[0];
         B[i][1] *= wts[0];
@@ -206,14 +206,14 @@ void Foam::FitData<FitDataType, ExtendedStencil, Polynomial>::calcFit
     coeffsi.setSize(stencilSize);
 
     bool goodFit = false;
-    for(int iIt = 0; iIt < 8 && !goodFit; iIt++)
+    for (int iIt = 0; iIt < 8 && !goodFit; iIt++)
     {
         SVD svd(B, SMALL);
 
         scalar maxCoeff = 0;
         label maxCoeffi = 0;
 
-        for(label i=0; i<stencilSize; i++)
+        for (label i=0; i<stencilSize; i++)
         {
             coeffsi[i] = wts[0]*wts[i]*svd.VSinvUt()[0][i];
             if (mag(coeffsi[i]) > maxCoeff)
@@ -240,7 +240,7 @@ void Foam::FitData<FitDataType, ExtendedStencil, Polynomial>::calcFit
 
         // if (goodFit && iIt > 0)
         // {
-            // Info << "FitData<Polynomial>::calcFit"
+            // Info<< "FitData<Polynomial>::calcFit"
             //     << "(const List<point>& C, const label facei" << nl
             //     << "Can now fit face " << facei << " iteration " << iIt
             //     << " with sum of weights " << sum(coeffsi) << nl
@@ -271,13 +271,13 @@ void Foam::FitData<FitDataType, ExtendedStencil, Polynomial>::calcFit
                 wts[1] *= 10;
             }
 
-            for(label j = 0; j < B.m(); j++)
+            for (label j = 0; j < B.m(); j++)
             {
                 B[0][j] *= 10;
                 B[1][j] *= 10;
             }
 
-            for(label i = 0; i < B.n(); i++)
+            for (label i = 0; i < B.n(); i++)
             {
                 B[i][0] *= 10;
                 B[i][1] *= 10;
diff --git a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/UpwindFitScheme/UpwindFitData.C b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/UpwindFitScheme/UpwindFitData.C
index cd7a206ba50048779468aaf50a9b350e0c4a910a..0841fe7d72a8a4f7eb356a80324e51570ce0fecf 100644
--- a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/UpwindFitScheme/UpwindFitData.C
+++ b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/UpwindFitScheme/UpwindFitData.C
@@ -97,7 +97,7 @@ void Foam::UpwindFitData<Polynomial>::calcFit()
     // find the fit coefficients for every owner
 
     //Pout<< "-- Owner --" << endl;
-    for(label facei = 0; facei < mesh.nInternalFaces(); facei++)
+    for (label facei = 0; facei < mesh.nInternalFaces(); facei++)
     {
         FitData
         <
@@ -156,7 +156,7 @@ void Foam::UpwindFitData<Polynomial>::calcFit()
     // find the fit coefficients for every neighbour
 
     //Pout<< "-- Neighbour --" << endl;
-    for(label facei = 0; facei < mesh.nInternalFaces(); facei++)
+    for (label facei = 0; facei < mesh.nInternalFaces(); facei++)
     {
         FitData
         <
diff --git a/src/finiteVolume/interpolation/surfaceInterpolation/surfaceInterpolation/surfaceInterpolate.H b/src/finiteVolume/interpolation/surfaceInterpolation/surfaceInterpolation/surfaceInterpolate.H
index c22174451b9f6c3c8bd83afceabc3fa76ee79710..115aedc9fe8ebad921190151c0c3fffbe1503ea5 100644
--- a/src/finiteVolume/interpolation/surfaceInterpolation/surfaceInterpolation/surfaceInterpolate.H
+++ b/src/finiteVolume/interpolation/surfaceInterpolation/surfaceInterpolation/surfaceInterpolate.H
@@ -157,14 +157,14 @@ namespace fvc
     );
 
 
-    //- Interpolate tmp field onto faces using central differencing
+    //- Interpolate tmp field onto faces using 'interpolate(<name>)'
     template<class Type>
     static tmp<GeometricField<Type, fvsPatchField, surfaceMesh> > interpolate
     (
         const tmp<GeometricField<Type, fvPatchField, volMesh> >& tvf
     );
 
-    //- Interpolate field onto faces using central differencing
+    //- Interpolate tmp field onto faces using 'interpolate(<name>)'
     template<class Type>
     static tmp<GeometricField<Type, fvsPatchField, surfaceMesh> > interpolate
     (
diff --git a/src/finiteVolume/interpolation/volPointInterpolation/pointPatchInterpolation/pointPatchInterpolation.C b/src/finiteVolume/interpolation/volPointInterpolation/pointPatchInterpolation/pointPatchInterpolation.C
index 16cd028f726392e5723ec62abf75f2903f18ce50..6cebe3369bd95024213b75f113292a0dc5b9e5c2 100644
--- a/src/finiteVolume/interpolation/volPointInterpolation/pointPatchInterpolation/pointPatchInterpolation.C
+++ b/src/finiteVolume/interpolation/volPointInterpolation/pointPatchInterpolation/pointPatchInterpolation.C
@@ -63,7 +63,7 @@ void pointPatchInterpolation::makePatchPatchAddressing()
 
     forAll(bm, patchi)
     {
-        if(!isA<emptyFvPatch>(bm[patchi]) && !bm[patchi].coupled())
+        if (!isA<emptyFvPatch>(bm[patchi]) && !bm[patchi].coupled())
         {
             nPatchPatchPoints += bm[patchi].patch().boundaryPoints().size();
         }
@@ -81,7 +81,7 @@ void pointPatchInterpolation::makePatchPatchAddressing()
 
     forAll(bm, patchi)
     {
-        if(!isA<emptyFvPatch>(bm[patchi]) && !bm[patchi].coupled())
+        if (!isA<emptyFvPatch>(bm[patchi]) && !bm[patchi].coupled())
         {
             const labelList& bp = bm[patchi].patch().boundaryPoints();
             const labelList& meshPoints = bm[patchi].patch().meshPoints();
@@ -129,10 +129,10 @@ void pointPatchInterpolation::makePatchPatchAddressing()
     {
         if (patchPatchPointConstraints[i].first() != 0)
         {
-            patchPatchPointConstraintPoints_[nConstraints] = 
+            patchPatchPointConstraintPoints_[nConstraints] =
                 patchPatchPoints_[i];
 
-            patchPatchPointConstraintTensors_[nConstraints] = 
+            patchPatchPointConstraintTensors_[nConstraints] =
                 patchPatchPointConstraints[i].constraintTransformation();
 
             nConstraints++;
diff --git a/src/fvMotionSolver/fvMotionSolvers/displacement/interpolation/displacementInterpolationFvMotionSolver.C b/src/fvMotionSolver/fvMotionSolvers/displacement/interpolation/displacementInterpolationFvMotionSolver.C
index cdd5a999ec1290068d5fb02c141830c419a28c53..80fc0d9bc4ac61ce1b4f07796117c8e12ff91e23 100644
--- a/src/fvMotionSolver/fvMotionSolvers/displacement/interpolation/displacementInterpolationFvMotionSolver.C
+++ b/src/fvMotionSolver/fvMotionSolvers/displacement/interpolation/displacementInterpolationFvMotionSolver.C
@@ -179,7 +179,7 @@ displacementInterpolationFvMotionSolver
 
         // Slightly tweak min and max face zone so points sort within
         zoneCoordinates[0] -= SMALL;
-        zoneCoordinates[zoneCoordinates.size()-1] += SMALL;
+        zoneCoordinates.last() += SMALL;
 
         // Check if we have static min and max mesh bounds
         const scalarField meshCoords = points0().component(dir);
@@ -237,7 +237,7 @@ displacementInterpolationFvMotionSolver
             }
             rangeI++;
         }
-        if (maxCoord > zoneCoordinates[zoneCoordinates.size()-1])
+        if (maxCoord > zoneCoordinates.last())
         {
             label sz = rangeToCoord.size();
             rangeToCoord.setSize(sz+1);
diff --git a/src/fvMotionSolver/motionDiffusivity/motionDiffusivity/motionDiffusivity.C b/src/fvMotionSolver/motionDiffusivity/motionDiffusivity/motionDiffusivity.C
index 50936f456a903eb935cf8ec23f0cedc185fe496f..159a363b4a114298e4072684fa58fc2cc6561405 100644
--- a/src/fvMotionSolver/motionDiffusivity/motionDiffusivity/motionDiffusivity.C
+++ b/src/fvMotionSolver/motionDiffusivity/motionDiffusivity/motionDiffusivity.C
@@ -54,7 +54,7 @@ Foam::autoPtr<Foam::motionDiffusivity> Foam::motionDiffusivity::New
 {
     word diffTypeName(mdData);
 
-    Info << "Selecting motion diffusion: " << diffTypeName << endl;
+    Info<< "Selecting motion diffusion: " << diffTypeName << endl;
 
     IstreamConstructorTable::iterator cstrIter =
         IstreamConstructorTablePtr_->find(diffTypeName);
diff --git a/src/fvMotionSolver/pointPatchFields/derived/angularOscillatingDisplacement/angularOscillatingDisplacementPointPatchVectorField.C b/src/fvMotionSolver/pointPatchFields/derived/angularOscillatingDisplacement/angularOscillatingDisplacementPointPatchVectorField.C
index e7014038ee6c8e939b965c11fa78afbc3b1b1548..1b6a9e6d5a00120d5c46c68bca65a192d8e29b2c 100644
--- a/src/fvMotionSolver/pointPatchFields/derived/angularOscillatingDisplacement/angularOscillatingDisplacementPointPatchVectorField.C
+++ b/src/fvMotionSolver/pointPatchFields/derived/angularOscillatingDisplacement/angularOscillatingDisplacementPointPatchVectorField.C
@@ -100,7 +100,7 @@ angularOscillatingDisplacementPointPatchVectorField
     angle0_(ptf.angle0_),
     amplitude_(ptf.amplitude_),
     omega_(ptf.omega_),
-    p0_(ptf.p0_)
+    p0_(ptf.p0_, mapper)
 {}
 
 
diff --git a/src/fvMotionSolver/pointPatchFields/derived/oscillatingVelocity/oscillatingVelocityPointPatchVectorField.C b/src/fvMotionSolver/pointPatchFields/derived/oscillatingVelocity/oscillatingVelocityPointPatchVectorField.C
index dbd769c557734c21ac695a7ca89276f8ef88a400..412c9561a20fd0f85dd35d6e68db9c0ea456074b 100644
--- a/src/fvMotionSolver/pointPatchFields/derived/oscillatingVelocity/oscillatingVelocityPointPatchVectorField.C
+++ b/src/fvMotionSolver/pointPatchFields/derived/oscillatingVelocity/oscillatingVelocityPointPatchVectorField.C
@@ -91,7 +91,7 @@ oscillatingVelocityPointPatchVectorField
     fixedValuePointPatchField<vector>(ptf, p, iF, mapper),
     amplitude_(ptf.amplitude_),
     omega_(ptf.omega_),
-    p0_(ptf.p0_)
+    p0_(ptf.p0_, mapper)
 {}
 
 
diff --git a/src/fvMotionSolver/pointPatchFields/derived/sixDoFRigidBodyDisplacement/sixDoFRigidBodyDisplacementPointPatchVectorField.C b/src/fvMotionSolver/pointPatchFields/derived/sixDoFRigidBodyDisplacement/sixDoFRigidBodyDisplacementPointPatchVectorField.C
index db0ff59bfe3985378b63a31664c801b409ccc5bd..8fb0408e6704ae06657d96efddbc6d0e3cc77e00 100644
--- a/src/fvMotionSolver/pointPatchFields/derived/sixDoFRigidBodyDisplacement/sixDoFRigidBodyDisplacementPointPatchVectorField.C
+++ b/src/fvMotionSolver/pointPatchFields/derived/sixDoFRigidBodyDisplacement/sixDoFRigidBodyDisplacementPointPatchVectorField.C
@@ -93,7 +93,7 @@ sixDoFRigidBodyDisplacementPointPatchVectorField
 :
     fixedValuePointPatchField<vector>(ptf, p, iF, mapper),
     motion_(ptf.motion_),
-    p0_(ptf.p0_),
+    p0_(ptf.p0_, mapper),
     rhoInf_(ptf.rhoInf_)
 {}
 
diff --git a/src/fvMotionSolver/pointPatchFields/derived/surfaceDisplacement/surfaceDisplacementPointPatchVectorField.C b/src/fvMotionSolver/pointPatchFields/derived/surfaceDisplacement/surfaceDisplacementPointPatchVectorField.C
index 72d0541e7e5d3ba253ec086d9e3865268ce9d86b..f6d91a9edc635a360307bb3c56d841c0449fccda 100644
--- a/src/fvMotionSolver/pointPatchFields/derived/surfaceDisplacement/surfaceDisplacementPointPatchVectorField.C
+++ b/src/fvMotionSolver/pointPatchFields/derived/surfaceDisplacement/surfaceDisplacementPointPatchVectorField.C
@@ -329,7 +329,7 @@ surfaceDisplacementPointPatchVectorField
     surfacesDict_(dict.subDict("geometry")),
     projectMode_(projectModeNames_.read(dict.lookup("projectMode"))),
     projectDir_(dict.lookup("projectDirection")),
-    wedgePlane_(dict.lookupOrDefault(dict.lookup("wedgePlane"), -1)),
+    wedgePlane_(dict.lookupOrDefault("wedgePlane", -1)),
     frozenPointsZone_(dict.lookupOrDefault("frozenPointsZone", word::null))
 {
     if (velocity_.x() < 0 || velocity_.y() < 0 || velocity_.z() < 0)
diff --git a/src/lagrangian/basic/Cloud/Cloud.C b/src/lagrangian/basic/Cloud/Cloud.C
index 6098e1b8ab882573856e0adbdf863711b3c47fe1..3979d04158a5a3333eecf37a16dfe57a2a166d24 100644
--- a/src/lagrangian/basic/Cloud/Cloud.C
+++ b/src/lagrangian/basic/Cloud/Cloud.C
@@ -313,20 +313,15 @@ void Foam::Cloud<ParticleType>::move(TrackingData& td)
     const globalMeshData& pData = polyMesh_.globalData();
     const labelList& processorPatches = pData.processorPatches();
     const labelList& processorPatchIndices = pData.processorPatchIndices();
-    const labelList& processorPatchNeighbours =
-        pData.processorPatchNeighbours();
 
-    // Initialise the setpFraction moved for the particles
+    // Initialise the stepFraction moved for the particles
     forAllIter(typename Cloud<ParticleType>, *this, pIter)
     {
         pIter().stepFraction() = 0;
     }
 
-    // Assume there will be particles to transfer
-    bool transfered = true;
-
     // While there are particles to transfer
-    while (transfered)
+    while (true)
     {
         // List of lists of particles to be transfered for all the processor
         // patches
@@ -366,105 +361,94 @@ void Foam::Cloud<ParticleType>::move(TrackingData& td)
             }
         }
 
-        if (Pstream::parRun())
+        if (!Pstream::parRun())
         {
-            // List of the numbers of particles to be transfered across the
-            // processor patches
-            labelList nsTransPs(transferList.size());
-
-            forAll(transferList, i)
-            {
-                nsTransPs[i] = transferList[i].size();
-            }
+            break;
+        }
 
-            // List of the numbers of particles to be transfered across the
-            // processor patches for all the processors
-            labelListList allNTrans(Pstream::nProcs());
-            allNTrans[Pstream::myProcNo()] = nsTransPs;
-            combineReduce(allNTrans, UPstream::listEq());
 
-            transfered = false;
+        // Allocate transfer buffers
+        PstreamBuffers pBufs(Pstream::nonBlocking);
 
-            forAll(allNTrans, i)
+        // Stream into send buffers
+        forAll(transferList, i)
+        {
+            if (transferList[i].size())
             {
-                forAll(allNTrans[i], j)
-                {
-                    if (allNTrans[i][j])
-                    {
-                        transfered = true;
-                        break;
-                    }
-                }
-            }
+                UOPstream particleStream
+                (
+                    refCast<const processorPolyPatch>
+                    (
+                        pMesh().boundaryMesh()[processorPatches[i]]
+                    ).neighbProcNo(),
+                    pBufs
+                );
 
-            if (!transfered)
-            {
-                break;
+                particleStream << transferList[i];
             }
+        }
+
+        // Set up transfers when in non-blocking mode. Returns sizes (in bytes)
+        // to be sent/received.
+        labelListList allNTrans(Pstream::nProcs());
+        pBufs.finishedSends(allNTrans);
 
-            forAll(transferList, i)
+        bool transfered = false;
+
+        forAll(allNTrans, i)
+        {
+            forAll(allNTrans[i], j)
             {
-                if (transferList[i].size())
+                if (allNTrans[i][j])
                 {
-                    OPstream particleStream
-                    (
-                        Pstream::blocking,
-                        refCast<const processorPolyPatch>
-                        (
-                            pMesh().boundaryMesh()[processorPatches[i]]
-                        ).neighbProcNo()
-                    );
-
-                    particleStream << transferList[i];
+                    transfered = true;
+                    break;
                 }
             }
+        }
 
-            forAll(processorPatches, i)
-            {
-                label patchi = processorPatches[i];
+        if (!transfered)
+        {
+            break;
+        }
 
-                const processorPolyPatch& procPatch =
-                    refCast<const processorPolyPatch>
-                    (pMesh().boundaryMesh()[patchi]);
 
-                label neighbProci =
-                    procPatch.neighbProcNo() - Pstream::masterNo();
+        // Retrieve from receive buffers
+        forAll(processorPatches, i)
+        {
+            label patchi = processorPatches[i];
 
-                label neighbProcPatchi = processorPatchNeighbours[patchi];
+            const processorPolyPatch& procPatch =
+                refCast<const processorPolyPatch>
+                (pMesh().boundaryMesh()[patchi]);
 
-                label nRecPs = allNTrans[neighbProci][neighbProcPatchi];
+            label neighbProci = procPatch.neighbProcNo();
 
-                if (nRecPs)
-                {
-                    IPstream particleStream
-                    (
-                        Pstream::blocking,
-                        procPatch.neighbProcNo()
-                    );
-                    IDLList<ParticleType> newParticles
-                    (
-                        particleStream,
-                        typename ParticleType::iNew(*this)
-                    );
+            label nRecPs = allNTrans[neighbProci][Pstream::myProcNo()];
 
-                    forAllIter
-                    (
-                        typename Cloud<ParticleType>,
-                        newParticles,
-                        newpIter
-                    )
-                    {
-                        ParticleType& newp = newpIter();
-                        newp.correctAfterParallelTransfer(patchi, td);
-                        addParticle(newParticles.remove(&newp));
-                    }
+            if (nRecPs)
+            {
+                UIPstream particleStream(neighbProci, pBufs);
+
+                IDLList<ParticleType> newParticles
+                (
+                    particleStream,
+                    typename ParticleType::iNew(*this)
+                );
+
+                forAllIter
+                (
+                    typename Cloud<ParticleType>,
+                    newParticles,
+                    newpIter
+                )
+                {
+                    ParticleType& newp = newpIter();
+                    newp.correctAfterParallelTransfer(patchi, td);
+                    addParticle(newParticles.remove(&newp));
                 }
             }
         }
-        else
-        {
-            transfered = false;
-        }
     }
 }
 
diff --git a/src/lagrangian/basic/Particle/Particle.C b/src/lagrangian/basic/Particle/Particle.C
index b3210647fa13ab54f8da1b532d0eaeb643db0bf0..dabbf03cf769adaa229363c21c2ea3789305f1a1 100644
--- a/src/lagrangian/basic/Particle/Particle.C
+++ b/src/lagrangian/basic/Particle/Particle.C
@@ -698,7 +698,7 @@ Foam::label Foam::Particle<ParticleType>::track
     facei_ = -1;
 
     // Tracks to endPosition or stop on boundary
-    while(!onBoundary() && stepFraction_ < 1.0 - SMALL)
+    while (!onBoundary() && stepFraction_ < 1.0 - SMALL)
     {
         stepFraction_ += trackToFace(endPosition, td)*(1.0 - stepFraction_);
     }
diff --git a/src/lagrangian/dieselSpray/injector/commonRailInjector/commonRailInjector.C b/src/lagrangian/dieselSpray/injector/commonRailInjector/commonRailInjector.C
index 72acb4167969fbb2899b004c33ad4d80f1d73863..6d5201111c39e3f4a267b65bdfaf2b78fb8ad034 100644
--- a/src/lagrangian/dieselSpray/injector/commonRailInjector/commonRailInjector.C
+++ b/src/lagrangian/dieselSpray/injector/commonRailInjector/commonRailInjector.C
@@ -104,8 +104,8 @@ Foam::commonRailInjector::commonRailInjector
 
     if
     (
-        mag(injectionPressureProfile_[injectionPressureProfile_.size()-1][0]
-      - massFlowRateProfile_[massFlowRateProfile_.size()-1][0])
+        mag(injectionPressureProfile_.last()[0]
+      - massFlowRateProfile_.last()[0])
       > SMALL
     )
     {
@@ -163,7 +163,7 @@ Foam::commonRailInjector::commonRailInjector
         }
     }
 
-    Info << "end constructor. in commonRail" << endl;
+    Info<< "end constructor. in commonRail" << endl;
 }
 
 
@@ -330,13 +330,13 @@ Foam::scalar Foam::commonRailInjector::T(const scalar time) const
 
 Foam::scalar Foam::commonRailInjector::tsoi() const
 {
-    return massFlowRateProfile_[0][0];
+    return massFlowRateProfile_.first()[0];
 }
 
 
 Foam::scalar Foam::commonRailInjector::teoi() const
 {
-    return massFlowRateProfile_[massFlowRateProfile_.size()-1][0];
+    return massFlowRateProfile_.last()[0];
 }
 
 
diff --git a/src/lagrangian/dieselSpray/injector/definedInjector/definedInjector.C b/src/lagrangian/dieselSpray/injector/definedInjector/definedInjector.C
index 4cd8780535accd344672733b51379515086e9dce..76c9e4ea5df4d8bbac8c708e52e8e7df40d72bad 100644
--- a/src/lagrangian/dieselSpray/injector/definedInjector/definedInjector.C
+++ b/src/lagrangian/dieselSpray/injector/definedInjector/definedInjector.C
@@ -99,8 +99,7 @@ Foam::definedInjector::definedInjector
 
     if
     (
-        mag(massFlowRateProfile_[massFlowRateProfile_.size()-1][0]
-      - velocityProfile_[velocityProfile_.size()-1][0])
+        mag(massFlowRateProfile_.last()[0] - velocityProfile_.last()[0])
       > SMALL
     )
     {
@@ -331,13 +330,13 @@ Foam::scalar Foam::definedInjector::T(const scalar time) const
 
 Foam::scalar Foam::definedInjector::tsoi() const
 {
-    return massFlowRateProfile_[0][0];
+    return massFlowRateProfile_.first()[0];
 }
 
 
 Foam::scalar Foam::definedInjector::teoi() const
 {
-    return massFlowRateProfile_[massFlowRateProfile_.size()-1][0];
+    return massFlowRateProfile_.last()[0];
 }
 
 
diff --git a/src/lagrangian/dieselSpray/injector/multiHoleInjector/multiHoleInjector.C b/src/lagrangian/dieselSpray/injector/multiHoleInjector/multiHoleInjector.C
index 4b2367c41a8dc6f2147ba0d435872239d2fe4b8d..ea7cd833230643d3ceaa8ad18f1646579a9afe38 100644
--- a/src/lagrangian/dieselSpray/injector/multiHoleInjector/multiHoleInjector.C
+++ b/src/lagrangian/dieselSpray/injector/multiHoleInjector/multiHoleInjector.C
@@ -91,8 +91,7 @@ Foam::multiHoleInjector::multiHoleInjector
 
     if
     (
-        mag(massFlowRateProfile_[massFlowRateProfile_.size()-1][0]
-      - TProfile_[TProfile_.size()-1][0])
+        mag(massFlowRateProfile_.last()[0] - TProfile_.last()[0])
       > SMALL
     )
     {
@@ -178,9 +177,9 @@ void Foam::multiHoleInjector::setTangentialVectors()
     }
     vector yp = zp^xp;
 
-//    Info << "xp = " << xp << endl;
-//    Info << "yp = " << yp << endl;
-//    Info << "zp = " << zp << endl;
+//    Info<< "xp = " << xp << endl;
+//    Info<< "yp = " << yp << endl;
+//    Info<< "zp = " << zp << endl;
 
     scalar angle = 0.0;
     scalar u = degToRad(umbrellaAngle_/2.0);
@@ -351,13 +350,13 @@ Foam::scalar Foam::multiHoleInjector::T(const scalar time) const
 
 Foam::scalar Foam::multiHoleInjector::tsoi() const
 {
-    return massFlowRateProfile_[0][0];
+    return massFlowRateProfile_.first()[0];
 }
 
 
 Foam::scalar Foam::multiHoleInjector::teoi() const
 {
-    return massFlowRateProfile_[massFlowRateProfile_.size()-1][0];
+    return massFlowRateProfile_.last()[0];
 }
 
 
diff --git a/src/lagrangian/dieselSpray/injector/swirlInjector/swirlInjector.C b/src/lagrangian/dieselSpray/injector/swirlInjector/swirlInjector.C
index 7d05a29a5c2526006631e75d5567f92e68ee3a2b..e1e0fe26f408f78d4baa00b79bce7b4aa564742f 100644
--- a/src/lagrangian/dieselSpray/injector/swirlInjector/swirlInjector.C
+++ b/src/lagrangian/dieselSpray/injector/swirlInjector/swirlInjector.C
@@ -384,13 +384,13 @@ Foam::scalar Foam::swirlInjector::T(const scalar time) const
 
 Foam::scalar Foam::swirlInjector::tsoi() const
 {
-    return massFlowRateProfile_[0][0];
+    return massFlowRateProfile_.first()[0];
 }
 
 
 Foam::scalar Foam::swirlInjector::teoi() const
 {
-    return massFlowRateProfile_[massFlowRateProfile_.size()-1][0];
+    return massFlowRateProfile_.last()[0];
 }
 
 
diff --git a/src/lagrangian/dieselSpray/injector/unitInjector/unitInjector.C b/src/lagrangian/dieselSpray/injector/unitInjector/unitInjector.C
index a3a1093eb624a12d152b7c6bee958ba5fe03ce2f..1e054f2d41fe3c1f506305be567c32b054002f6f 100644
--- a/src/lagrangian/dieselSpray/injector/unitInjector/unitInjector.C
+++ b/src/lagrangian/dieselSpray/injector/unitInjector/unitInjector.C
@@ -83,8 +83,8 @@ Foam::unitInjector::unitInjector
 
     if
     (
-        mag(massFlowRateProfile_[massFlowRateProfile_.size()-1][0]
-      - TProfile_[TProfile_.size()-1][0])
+        mag(massFlowRateProfile_.last()[0]
+      - TProfile_.last()[0])
       > SMALL
     )
     {
@@ -306,13 +306,13 @@ Foam::scalar Foam::unitInjector::T(const scalar time) const
 
 Foam::scalar Foam::unitInjector::tsoi() const
 {
-    return massFlowRateProfile_[0][0];
+    return massFlowRateProfile_.first()[0];
 }
 
 
 Foam::scalar Foam::unitInjector::teoi() const
 {
-    return massFlowRateProfile_[massFlowRateProfile_.size()-1][0];
+    return massFlowRateProfile_.last()[0];
 }
 
 
diff --git a/src/lagrangian/dieselSpray/parcel/parcel.C b/src/lagrangian/dieselSpray/parcel/parcel.C
index dc45f4dec40a4410123793910f20f604376450bb..c0913258454b21767a30404b33b1176fefd756ee 100644
--- a/src/lagrangian/dieselSpray/parcel/parcel.C
+++ b/src/lagrangian/dieselSpray/parcel/parcel.C
@@ -114,7 +114,7 @@ bool Foam::parcel::move(spray& sDB)
     scalarField Yfg(Nf, 0.0);
 
     scalar cpMixture = 0.0;
-    for(label i=0; i<Ns; i++)
+    for (label i=0; i<Ns; i++)
     {
         const volScalarField& Yi = sDB.composition().Y()[i];
         if (sDB.isLiquidFuel()[i])
@@ -341,7 +341,7 @@ void Foam::parcel::updateParcelProperties
 
     // calculate mean molecular weight
     scalar W = 0.0;
-    for(label i=0; i<Ns; i++)
+    for (label i=0; i<Ns; i++)
     {
         W += sDB.composition().Y()[i][celli]/sDB.gasProperties()[i].W();
 
@@ -357,7 +357,7 @@ void Foam::parcel::updateParcelProperties
 
     // correct the gaseous temperature for evaporated fuel
     scalar cpMix = 0.0;
-    for(label i=0; i<Ns; i++)
+    for (label i=0; i<Ns; i++)
     {
         cpMix += sDB.composition().Y()[i][celli]
                 *sDB.gasProperties()[i].Cp(T());
@@ -475,7 +475,7 @@ void Foam::parcel::updateParcelProperties
             newMass = m();
             newhg = 0.0;
             scalarField Ynew(fuels.Y(X()));
-            for(label i=0; i<Nf; i++)
+            for (label i=0; i<Nf; i++)
             {
                 label j = sDB.liquidToGasIndex()[i];
                 newhg += Ynew[i]*sDB.gasProperties()[j].H(Tnew);
@@ -523,7 +523,7 @@ void Foam::parcel::updateParcelProperties
         scalar liquidcL = sDB.fuels().cp(pg, TDroplet, X());
 
         cpMix = 0.0;
-        for(label i=0; i<Ns; i++)
+        for (label i=0; i<Ns; i++)
         {
             if (sDB.isLiquidFuel()[i])
             {
@@ -541,7 +541,7 @@ void Foam::parcel::updateParcelProperties
         scalar z = 0.0;
         scalar tauEvap = 0.0;
 
-        for(label i=0; i<Nf; i++)
+        for (label i=0; i<Nf; i++)
         {
             tauEvap += X()[i]*fuels.properties()[i].W()/tauEvaporation[i];
         }
@@ -616,7 +616,7 @@ void Foam::parcel::updateParcelProperties
                     {
                         if (n>100)
                         {
-                            Info << "n = " << n << ", T = " << Td << ", pv = " << pAtSurface << endl;
+                            Info<< "n = " << n << ", T = " << Td << ", pv = " << pAtSurface << endl;
                         }
                     }
                 }
@@ -628,7 +628,7 @@ void Foam::parcel::updateParcelProperties
         // if the droplet is NOT boiling use implicit scheme.
         if (sDB.evaporation().evaporation())
         {
-            for(label i=0; i<Nf; i++)
+            for (label i=0; i<Nf; i++)
             {
                 // immediately evaporate mass that has reached critical
                 // condition
diff --git a/src/lagrangian/dieselSpray/parcel/setRelaxationTimes.C b/src/lagrangian/dieselSpray/parcel/setRelaxationTimes.C
index 131e9f885f9877a9ba771d4650ffec322aaed6e5..94cc2df8f8a3832ec567a7468fdc3ab90c4449d5 100644
--- a/src/lagrangian/dieselSpray/parcel/setRelaxationTimes.C
+++ b/src/lagrangian/dieselSpray/parcel/setRelaxationTimes.C
@@ -74,7 +74,7 @@ void parcel::setRelaxationTimes
     scalar cpMixture = 0.0;
     scalar muf = 0.0;
 
-    for(label i=0; i<Ns; i++)
+    for (label i=0; i<Ns; i++)
     {
         scalar Y = sDB.composition().Y()[i][celli];
         W += Y/sDB.gasProperties()[i].W();
@@ -90,7 +90,7 @@ void parcel::setRelaxationTimes
     scalarField psat(Nf, 0.0);
     scalarField msat(Nf, 0.0);
 
-    for(label i=0; i<Nf; i++)
+    for (label i=0; i<Nf; i++)
     {
         label j = sDB.liquidToGasIndex()[i];
         scalar Y = sDB.composition().Y()[j][celli];
@@ -121,14 +121,14 @@ void parcel::setRelaxationTimes
     scalarField Ys(Nf, 0.0);
     scalar Wliq = 0.0;
 
-    for(label i=0; i<Nf; i++)
+    for (label i=0; i<Nf; i++)
     {
         label j = sDB.liquidToGasIndex()[i];
         scalar Wi = sDB.gasProperties()[j].W();
         Wliq += Xs[i]*Wi;
     }
 
-    for(label i=0; i<Nf; i++)
+    for (label i=0; i<Nf; i++)
     {
         label j = sDB.liquidToGasIndex()[i];
         scalar Wi = sDB.gasProperties()[j].W();
@@ -140,9 +140,9 @@ void parcel::setRelaxationTimes
 
     // calculate the characteritic times
 
-    if(liquidCore_> 0.5)
+    if (liquidCore_> 0.5)
     {
-//      no drag for parcels in the liquid core..
+        // no drag for parcels in the liquid core.
         tauMomentum = GREAT;
     }
     else
@@ -177,7 +177,7 @@ void parcel::setRelaxationTimes
     // this is mainly to put a limit on the evaporation time,
     // since tauEvaporation is very very small close to the boiling point.
 
-    for(label i=0; i<Nf; i++)
+    for (label i=0; i<Nf; i++)
     {
         scalar Td = min(T(), 0.999*fuels.properties()[i].Tc());
         bool boiling = fuels.properties()[i].pv(pressure, Td) >= 0.999*pressure;
@@ -187,7 +187,7 @@ void parcel::setRelaxationTimes
         scalar partialPressure = Xf[i]*pressure;
 
 //      saturated vapour
-        if(partialPressure > psat[i])
+        if (partialPressure > psat[i])
         {
             tauEvaporation[i] = GREAT;
         }
@@ -259,7 +259,7 @@ void parcel::setRelaxationTimes
                 scalar vapourSurfaceEnthalpy = 0.0;
                 scalar vapourFarEnthalpy = 0.0;
 
-                for(label k = 0; k < sDB.gasProperties().size(); k++)
+                for (label k = 0; k < sDB.gasProperties().size(); k++)
                 {
                     vapourSurfaceEnthalpy += sDB.composition().Y()[k][celli]*sDB.gasProperties()[k].H(tBoilingSurface);
                     vapourFarEnthalpy += sDB.composition().Y()[k][celli]*sDB.gasProperties()[k].H(temperature);
diff --git a/src/lagrangian/dieselSpray/spray/spray.C b/src/lagrangian/dieselSpray/spray/spray.C
index e7725acd2cea59687ec8a45150b456f322075efa..1e556d7a763af4cad9d4fae42dbab8de72fde01e 100644
--- a/src/lagrangian/dieselSpray/spray/spray.C
+++ b/src/lagrangian/dieselSpray/spray/spray.C
@@ -331,11 +331,11 @@ Foam::spray::spray
         }
         if (liquidToGasIndex_[i] == -1)
         {
-            Info << "In composition:" << endl;
+            Info<< "In composition:" << endl;
             for (label k=0; k<Ns; k++)
             {
                 word specieName(composition_.Y()[k].name());
-                Info << specieName << endl;
+                Info<< specieName << endl;
             }
 
             FatalError<<
diff --git a/src/lagrangian/dieselSpray/spray/sprayFunctions.C b/src/lagrangian/dieselSpray/spray/sprayFunctions.C
index fb3e9541b15d0eb6f50acefa228ff1ecb2cee026..632d47411ad88223d2ac1812eafc40ff1118cbdf 100644
--- a/src/lagrangian/dieselSpray/spray/sprayFunctions.C
+++ b/src/lagrangian/dieselSpray/spray/sprayFunctions.C
@@ -77,7 +77,7 @@ scalar spray::injectedEnthalpy
         scalar Wl = fuels_->W(X);
         scalar hg = 0.0;
 
-        for(label j=0; j<Nf; j++)
+        for (label j=0; j<Nf; j++)
         {
             label k = liquidToGasIndex_[j];
             hg += gasProperties()[k].H(T)*gasProperties()[k].W()*X[j]/Wl;
@@ -133,7 +133,7 @@ scalar spray::liquidEnthalpy() const
         scalar hg = 0.0;
         scalar Wl = fuels().W(elmnt().X());
 
-        for(label j=0; j<Nf; j++)
+        for (label j=0; j<Nf; j++)
         {
             label k = liquidToGasIndex_[j];
 
@@ -177,7 +177,7 @@ scalar spray::liquidTotalEnthalpy() const
         scalar hg = 0.0;
         scalar Wl = fuels().W(elmnt().X());
 
-        for(label j=0; j<Nf; j++)
+        for (label j=0; j<Nf; j++)
         {
             label k = liquidToGasIndex_[j];
             hg +=
@@ -251,7 +251,7 @@ scalar spray::liquidPenetration
     vector ip(vector::zero);
     if (nHoles > 1)
     {
-        for(label i=0;i<nHoles;i++)
+        for (label i=0;i<nHoles;i++)
         {
             ip += injectors_[nozzlei].properties()->position(i);
         }
@@ -308,7 +308,7 @@ scalar spray::liquidPenetration
                 if (de < dist[i])
                 {
                     found = true;
-                    for(label j=n; j>i; j--)
+                    for (label j=n; j>i; j--)
                     {
                         m[j]    = m[j-1];
                         dist[j] = dist[j-1];
diff --git a/src/lagrangian/dieselSpray/spray/sprayInject.C b/src/lagrangian/dieselSpray/spray/sprayInject.C
index b0aea70def1878bccdd0eba33d70276936704ce2..f53ad1748363d13d6aa9358cb6f8b68aab2b989c 100644
--- a/src/lagrangian/dieselSpray/spray/sprayInject.C
+++ b/src/lagrangian/dieselSpray/spray/sprayInject.C
@@ -79,12 +79,12 @@ void spray::inject()
                 )
             );
 
-            for(label j=0; j<Np; j++)
+            for (label j=0; j<Np; j++)
             {
                 // calculate the time of injection for parcel 'j'
                 scalar toi = time0 + constT + deltaT*j/scalar(Np);
 
-                for(label n=0; n<nHoles; n++)
+                for (label n=0; n<nHoles; n++)
                 {
 
                     // calculate the velocity of the injected parcel
@@ -164,8 +164,8 @@ void spray::inject()
                             delete pPtr;
                         }
                     } // if (injectorCell....
-                } // for(label n=0...
-            } // for(label j=0....
+                } // for (label n=0...
+            } // for (label j=0....
         } // if (mass>0)...
     } // forAll(injectors)...
 
diff --git a/src/lagrangian/dieselSpray/spraySubModels/atomizationModel/LISA/LISA.C b/src/lagrangian/dieselSpray/spraySubModels/atomizationModel/LISA/LISA.C
index 2478061ab1416b29378f6088a8039e5fb5261d9e..01525723f9b0a6236a46c7395553739a40b2e6ca 100644
--- a/src/lagrangian/dieselSpray/spraySubModels/atomizationModel/LISA/LISA.C
+++ b/src/lagrangian/dieselSpray/spraySubModels/atomizationModel/LISA/LISA.C
@@ -183,7 +183,7 @@ void LISA::atomizeParcel
         scalar kOld = 0.0;
 
 
-        for(label i=0; i<40; i++)
+        for (label i=0; i<40; i++)
         {
 
             k = kPos
diff --git a/src/lagrangian/dieselSpray/spraySubModels/dispersionModel/gradientDispersionRAS/gradientDispersionRAS.C b/src/lagrangian/dieselSpray/spraySubModels/dispersionModel/gradientDispersionRAS/gradientDispersionRAS.C
index d381e9516f52ce9d5b96a0d05cc11b805dee2ac7..1db72fe0088d0e1b8cf2b965f007b3a9304d744d 100644
--- a/src/lagrangian/dieselSpray/spraySubModels/dispersionModel/gradientDispersionRAS/gradientDispersionRAS.C
+++ b/src/lagrangian/dieselSpray/spraySubModels/dispersionModel/gradientDispersionRAS/gradientDispersionRAS.C
@@ -109,7 +109,7 @@ void gradientDispersionRAS::disperseParcels() const
                 scalar x1 = 0.0;
                 scalar x2 = 0.0;
                 scalar rsq = 10.0;
-                while((rsq > 1.0) || (rsq == 0.0))
+                while ((rsq > 1.0) || (rsq == 0.0))
                 {
                     x1 = 2.0*spray_.rndGen().scalar01() - 1.0;
                     x2 = 2.0*spray_.rndGen().scalar01() - 1.0;
diff --git a/src/lagrangian/dieselSpray/spraySubModels/dispersionModel/stochasticDispersionRAS/stochasticDispersionRAS.C b/src/lagrangian/dieselSpray/spraySubModels/dispersionModel/stochasticDispersionRAS/stochasticDispersionRAS.C
index 36cf7b05885da131ed7937077c2944c6554d3734..5c8d8732f8b1164f18d5217bb832ab628e16b80e 100644
--- a/src/lagrangian/dieselSpray/spraySubModels/dispersionModel/stochasticDispersionRAS/stochasticDispersionRAS.C
+++ b/src/lagrangian/dieselSpray/spraySubModels/dispersionModel/stochasticDispersionRAS/stochasticDispersionRAS.C
@@ -111,7 +111,7 @@ void stochasticDispersionRAS::disperseParcels() const
                 // numerical recipes... Ch. 7. Random Numbers...
                 scalar x1,x2;
                 scalar rsq = 10.0;
-                while((rsq > 1.0) || (rsq == 0.0))
+                while ((rsq > 1.0) || (rsq == 0.0))
                 {
                     x1 = 2.0*spray_.rndGen().scalar01() - 1.0;
                     x2 = 2.0*spray_.rndGen().scalar01() - 1.0;
diff --git a/src/lagrangian/dieselSpray/spraySubModels/evaporationModel/RutlandFlashBoil/RutlandFlashBoil.C b/src/lagrangian/dieselSpray/spraySubModels/evaporationModel/RutlandFlashBoil/RutlandFlashBoil.C
index 7ba41141ba35b3840a8a49aad639506e370db833..afb24110d8d9b9329a50c4ad4910b9b760622653 100644
--- a/src/lagrangian/dieselSpray/spraySubModels/evaporationModel/RutlandFlashBoil/RutlandFlashBoil.C
+++ b/src/lagrangian/dieselSpray/spraySubModels/evaporationModel/RutlandFlashBoil/RutlandFlashBoil.C
@@ -160,7 +160,7 @@ scalar RutlandFlashBoil::relaxationTime
     scalar logXratio = log(1.0 + Xratio);
     scalar Fb = 1.0;
 
-    if(logXratio > SMALL)
+    if (logXratio > SMALL)
     {
         Fb = pow((1.0 + Xratio), FbExp)*log(1.0 + Xratio)/Xratio;
     }
@@ -286,7 +286,7 @@ scalar RutlandFlashBoil::boilingTime
                     Gneg = Gneg/10.0;
                     Gneg = max(Gneg, VSMALL);
                     FgNeg = Gneg + Gf - B*log(1.0 + (1.0 + Gf/Gneg)*A);
-                    if(FgNeg < 0.0)
+                    if (FgNeg < 0.0)
                     {
                         break;
                     }
@@ -303,7 +303,7 @@ scalar RutlandFlashBoil::boilingTime
 
             if (FgNeg > 0.0)
             {
-                Info << "no convergence" << endl;
+                Info<< "no convergence" << endl;
             }
 
 
@@ -333,7 +333,7 @@ scalar RutlandFlashBoil::boilingTime
 
                 if (k >= Niter - 1)
                 {
-                    Info << " No convergence for G " << endl;
+                    Info<< " No convergence for G " << endl;
                 }
             }
             else
diff --git a/src/lagrangian/dieselSpray/spraySubModels/wallModel/reflectParcel/reflectParcel.C b/src/lagrangian/dieselSpray/spraySubModels/wallModel/reflectParcel/reflectParcel.C
index aa56562f009838cfbcbf64a078d8fa51b81e3f22..9d631553e57f7cd5379e4033cfceee05dc1949f1 100644
--- a/src/lagrangian/dieselSpray/spraySubModels/wallModel/reflectParcel/reflectParcel.C
+++ b/src/lagrangian/dieselSpray/spraySubModels/wallModel/reflectParcel/reflectParcel.C
@@ -159,7 +159,7 @@ bool reflectParcel::wallTreatment
                 /*
                 if (mag(Ub-v) > SMALL)
                 {
-                    Info << "reflectParcel:: v = " << v
+                    Info<< "reflectParcel:: v = " << v
                         << ", Ub = " << Ub
                         << ", facei = " << facei
                         << ", patchi = " << patchi
diff --git a/src/lagrangian/dsmc/Make/files b/src/lagrangian/dsmc/Make/files
index 9f6d33d209edf23f3a65deb06139746c0bb873ae..983de123ab3dd948fc347e2321285f87154ecb4e 100644
--- a/src/lagrangian/dsmc/Make/files
+++ b/src/lagrangian/dsmc/Make/files
@@ -4,9 +4,6 @@ parcels/derived/dsmcParcel/dsmcParcel.C
 /* Cloud base classes */
 clouds/baseClasses/DsmcBaseCloud/DsmcBaseCloud.C
 
-/* Clouds */
-clouds/derived/dsmcCloud/dsmcCloud.C
-
 /* submodels */
 parcels/derived/dsmcParcel/defineDsmcParcel.C
 parcels/derived/dsmcParcel/makeDsmcParcelBinaryCollisionModels.C
diff --git a/src/lagrangian/dsmc/Make/options b/src/lagrangian/dsmc/Make/options
index 15874b7b55afc2cfae55d9550fd48451604ee3d4..55865dfabcd9146aa4fe204e71d664b62e535b95 100644
--- a/src/lagrangian/dsmc/Make/options
+++ b/src/lagrangian/dsmc/Make/options
@@ -1,7 +1,9 @@
 EXE_INC = \
     -I$(LIB_SRC)/finiteVolume/lnInclude \
-    -I$(LIB_SRC)/lagrangian/basic/lnInclude
+    -I$(LIB_SRC)/lagrangian/basic/lnInclude \
+    -I$(LIB_SRC)/meshTools/lnInclude
 
 LIB_LIBS = \
     -llagrangian \
-    -lfiniteVolume
+    -lfiniteVolume \
+    -lmeshTools
diff --git a/src/lagrangian/dsmc/clouds/Templates/DsmcCloud/DsmcCloud.C b/src/lagrangian/dsmc/clouds/Templates/DsmcCloud/DsmcCloud.C
index b5958bad10606af61c6a7e99c237b152336e5832..5c7819c709a141acbd42b5f77d77a2c1c4d8bb5c 100644
--- a/src/lagrangian/dsmc/clouds/Templates/DsmcCloud/DsmcCloud.C
+++ b/src/lagrangian/dsmc/clouds/Templates/DsmcCloud/DsmcCloud.C
@@ -297,7 +297,7 @@ void Foam::DsmcCloud<ParcelType>::collisions()
     // Temporary storage for subCells
     List<DynamicList<label> > subCells(8);
 
-    scalar deltaT = cachedDeltaT();
+    scalar deltaT = mesh().time().deltaTValue();
 
     label collisionCandidates = 0;
 
@@ -380,7 +380,7 @@ void Foam::DsmcCloud<ParcelType>::collisions()
                     {
                         candidateQ = subCellPs[rndGen_.integer(0, nSC - 1)];
 
-                    } while(candidateP == candidateQ);
+                    } while (candidateP == candidateQ);
                 }
                 else
                 {
@@ -392,7 +392,7 @@ void Foam::DsmcCloud<ParcelType>::collisions()
                     {
                         candidateQ = rndGen_.integer(0, nC - 1);
 
-                    } while(candidateP == candidateQ);
+                    } while (candidateP == candidateQ);
                 }
 
                 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -405,7 +405,7 @@ void Foam::DsmcCloud<ParcelType>::collisions()
                 // label candidateQ = rndGen_.integer(0, nC-1);
 
                 // // If the same candidate is chosen, choose again
-                // while(candidateP == candidateQ)
+                // while (candidateP == candidateQ)
                 // {
                 //     candidateQ = rndGen_.integer(0, nC-1);
                 // }
@@ -1042,9 +1042,6 @@ Foam::DsmcCloud<ParcelType>::~DsmcCloud()
 template<class ParcelType>
 void Foam::DsmcCloud<ParcelType>::evolve()
 {
-    // cache the value of deltaT for this timestep
-    storeDeltaT();
-
     typename ParcelType::trackData td(*this);
 
     // Reset the data collection fields
diff --git a/src/lagrangian/dsmc/clouds/Templates/DsmcCloud/DsmcCloud.H b/src/lagrangian/dsmc/clouds/Templates/DsmcCloud/DsmcCloud.H
index bc6da12c234af94f9af8da3300083696157517df..5b2f382eb62f4b2699ec3a48caae5d1b71579385 100644
--- a/src/lagrangian/dsmc/clouds/Templates/DsmcCloud/DsmcCloud.H
+++ b/src/lagrangian/dsmc/clouds/Templates/DsmcCloud/DsmcCloud.H
@@ -137,10 +137,6 @@ class DsmcCloud
         //- Random number generator
         Random rndGen_;
 
-        //- In-cloud cache of deltaT, lookup in submodels and parcel is
-        //  expensive
-        scalar cachedDeltaT_;
-
 
         // boundary value fields
 
@@ -267,12 +263,6 @@ public:
                 //- Return refernce to the random object
                 inline Random& rndGen();
 
-                //- Store (cache) the current value of deltaT
-                inline void storeDeltaT();
-
-                //- Return the cached value of deltaT
-                inline scalar cachedDeltaT() const;
-
 
             // References to the boundary fields for surface data collection
 
diff --git a/src/lagrangian/dsmc/clouds/Templates/DsmcCloud/DsmcCloudI.H b/src/lagrangian/dsmc/clouds/Templates/DsmcCloud/DsmcCloudI.H
index f0f93498b19c60a2cd57b0badb4f9098d64ce2de..beaacb2276683d7251396dec9a49806e33e0ef79 100644
--- a/src/lagrangian/dsmc/clouds/Templates/DsmcCloud/DsmcCloudI.H
+++ b/src/lagrangian/dsmc/clouds/Templates/DsmcCloud/DsmcCloudI.H
@@ -125,20 +125,6 @@ inline Foam::Random& Foam::DsmcCloud<ParcelType>::rndGen()
 }
 
 
-template<class ParcelType>
-inline void Foam::DsmcCloud<ParcelType>::storeDeltaT()
-{
-    cachedDeltaT_ = mesh().time().deltaTValue();
-}
-
-
-template<class ParcelType>
-inline Foam::scalar Foam::DsmcCloud<ParcelType>::cachedDeltaT() const
-{
-    return cachedDeltaT_;
-}
-
-
 template<class ParcelType>
 inline Foam::volScalarField::GeometricBoundaryField&
 Foam::DsmcCloud<ParcelType>::qBF()
diff --git a/src/lagrangian/dsmc/clouds/derived/dsmcCloud/dsmcCloud.H b/src/lagrangian/dsmc/clouds/derived/dsmcCloud/dsmcCloud.H
index 861244652fbbe6799882a26a021aa1eeaca87550..c0c17336e6b2488ba4b349503ff742d450cdc3c1 100644
--- a/src/lagrangian/dsmc/clouds/derived/dsmcCloud/dsmcCloud.H
+++ b/src/lagrangian/dsmc/clouds/derived/dsmcCloud/dsmcCloud.H
@@ -43,55 +43,8 @@ SourceFiles
 
 namespace Foam
 {
-
-/*---------------------------------------------------------------------------*\
-                          Class dsmcCloud Declaration
-\*---------------------------------------------------------------------------*/
-
-class dsmcCloud
-:
-    public DsmcCloud<dsmcParcel>
-{
-    // Private member functions
-
-        //- Disallow default bitwise copy construct
-        dsmcCloud(const dsmcCloud&);
-
-        //- Disallow default bitwise assignment
-        void operator=(const dsmcCloud&);
-
-
-public:
-
-    //- Runtime type information
-    TypeName("dsmcCloud");
-
-
-    // Constructors
-
-        //- Construct given name and mesh, will read Parcels and fields from
-        //  file
-        dsmcCloud
-        (
-            const word& cloudName,
-            const fvMesh& mesh
-        );
-
-        //- Construct given name, mesh and initialisation dictionary.
-        dsmcCloud
-        (
-            const word& cloudName,
-            const fvMesh& mesh,
-            const IOdictionary& dsmcInitialiseDict
-        );
-
-    //- Destructor
-    ~dsmcCloud();
-};
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-} // End namespace Foam
+    typedef DsmcCloud<dsmcParcel> dsmcCloud;
+}
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
diff --git a/src/lagrangian/dsmc/parcels/Templates/DsmcParcel/DsmcParcel.C b/src/lagrangian/dsmc/parcels/Templates/DsmcParcel/DsmcParcel.C
index ffd7c67d4284e2373ec371522485b858a5076596..3d752aa98dcb97b7b2a4e2be465e13c11a4e99e3 100644
--- a/src/lagrangian/dsmc/parcels/Templates/DsmcParcel/DsmcParcel.C
+++ b/src/lagrangian/dsmc/parcels/Templates/DsmcParcel/DsmcParcel.C
@@ -25,6 +25,7 @@ License
 \*---------------------------------------------------------------------------*/
 
 #include "DsmcParcel.H"
+#include "meshTools.H"
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
@@ -43,16 +44,31 @@ bool Foam::DsmcParcel<ParcelType>::move
     const polyMesh& mesh = td.cloud().pMesh();
     const polyBoundaryMesh& pbMesh = mesh.boundaryMesh();
 
-    const scalar deltaT = td.cloud().cachedDeltaT();
+    const scalar deltaT = mesh.time().deltaTValue();
     scalar tEnd = (1.0 - p.stepFraction())*deltaT;
     const scalar dtMax = tEnd;
 
+    // For reduced-D cases, the velocity used to track needs to be
+    // constrained, but the actual U_ of the parcel must not be
+    // altered or used, as it is altered by patch interactions an
+    // needs to retain its 3D value for collision purposes.
+    vector Utracking = U_;
+
     while (td.keepParticle && !td.switchProcessor && tEnd > ROOTVSMALL)
     {
+        // Apply correction to position for reduced-D cases
+        meshTools::constrainToMeshCentre(mesh, p.position());
+
+        Utracking = U_;
+
+        // Apply correction to velocity to constrain tracking for
+        // reduced-D cases
+        meshTools::constrainDirection(mesh, mesh.solutionD(), Utracking);
+
         // Set the Lagrangian time-step
         scalar dt = min(dtMax, tEnd);
 
-        dt *= p.trackToFace(p.position() + dt*U_, td);
+        dt *= p.trackToFace(p.position() + dt*Utracking, td);
 
         tEnd -= dt;
 
@@ -119,7 +135,7 @@ void Foam::DsmcParcel<ParcelType>::hitWallPatch
 
     const scalar fA = mag(wpp.faceAreas()[wppLocalFace]);
 
-    const scalar deltaT = td.cloud().cachedDeltaT();
+    const scalar deltaT = td.cloud().pMesh().time().deltaTValue();
 
     const constantProperties& constProps(td.cloud().constProps(typeId_));
 
@@ -256,4 +272,3 @@ void Foam::DsmcParcel<ParcelType>::transformProperties
 #include "DsmcParcelIO.C"
 
 // ************************************************************************* //
-
diff --git a/src/lagrangian/dsmc/submodels/InflowBoundaryModel/FreeStream/FreeStream.C b/src/lagrangian/dsmc/submodels/InflowBoundaryModel/FreeStream/FreeStream.C
index 4df1f6e44a67242627942cc5e971f1b026710fd5..1df22c68d5a34f04bdcd01bbdd9fe06b402536ad 100644
--- a/src/lagrangian/dsmc/submodels/InflowBoundaryModel/FreeStream/FreeStream.C
+++ b/src/lagrangian/dsmc/submodels/InflowBoundaryModel/FreeStream/FreeStream.C
@@ -129,7 +129,7 @@ void Foam::FreeStream<CloudType>::inflow()
 
     const polyMesh& mesh(cloud.mesh());
 
-    const scalar deltaT = cloud.cachedDeltaT();
+    const scalar deltaT = mesh.time().deltaTValue();
 
     Random& rndGen(cloud.rndGen());
 
diff --git a/src/lagrangian/intermediate/submodels/IO/DataEntry/Table/Table.C b/src/lagrangian/intermediate/submodels/IO/DataEntry/Table/Table.C
index 98abaf6e67e533db1dfe4d19b0656ba548d9d333..ed009f8f3347eb6d97e4c82349711131836b41b2 100644
--- a/src/lagrangian/intermediate/submodels/IO/DataEntry/Table/Table.C
+++ b/src/lagrangian/intermediate/submodels/IO/DataEntry/Table/Table.C
@@ -64,7 +64,7 @@ template<class Type>
 Type Foam::Table<Type>::value(const scalar x) const
 {
     // Return zero if out of bounds
-    if ((x > table_[table_.size()-1].first()) || (x < table_[0].first()))
+    if (x < table_[0].first() || x > table_.last().first())
     {
         return pTraits<Type>::zero;
     }
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/PatchInteractionModel/PatchInteractionModel.C b/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/PatchInteractionModel/PatchInteractionModel.C
index 873d5fb34611db8528ceb57e5af007c9fc711ccb..b300ea55251b59341110b9df77a102211edf1360 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/PatchInteractionModel/PatchInteractionModel.C
+++ b/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/PatchInteractionModel/PatchInteractionModel.C
@@ -67,6 +67,10 @@ Foam::word Foam::PatchInteractionModel<CloudType>::interactionTypeToWord
             return "other";
         }
     }
+#ifdef __ICC
+    // Prevent Icc complaining about missing return statement.
+    return word::null;
+#endif
 }
 
 
diff --git a/src/lagrangian/molecularDynamics/molecularMeasurements/correlationFunction/correlationFunction.C b/src/lagrangian/molecularDynamics/molecularMeasurements/correlationFunction/correlationFunction.C
index c9e975e296afc9a6730cbc43ffe929594b0d3cf9..2dd3e9bf3fa45ecdf1c260edcda0053dc1628069 100644
--- a/src/lagrangian/molecularDynamics/molecularMeasurements/correlationFunction/correlationFunction.C
+++ b/src/lagrangian/molecularDynamics/molecularMeasurements/correlationFunction/correlationFunction.C
@@ -185,7 +185,7 @@ void Foam::correlationFunction<Type>::calculateCorrelationFunction
     const Type& currentValue
 )
 {
-    if( measurandFieldSize() != 1)
+    if (measurandFieldSize() != 1)
     {
         FatalErrorIn("correlationFunction<Type>::calculateCorrelationFunction")
             << "Trying to supply a single value to calculate the correlation "
diff --git a/src/lagrangian/molecularDynamics/molecularMeasurements/distribution/distribution.C b/src/lagrangian/molecularDynamics/molecularMeasurements/distribution/distribution.C
index 7cc9e70c0ef6413a086dc1f33c8aefdaaa242840..a714a36924dda00814b6c0529535c823f4c1b3ab 100644
--- a/src/lagrangian/molecularDynamics/molecularMeasurements/distribution/distribution.C
+++ b/src/lagrangian/molecularDynamics/molecularMeasurements/distribution/distribution.C
@@ -256,7 +256,7 @@ void Foam::distribution::insertMissingKeys()
 
     if (keys.size())
     {
-        for (label k = keys[0]; k < keys[keys.size()-1]; k++)
+        for (label k = keys[0]; k < keys.last(); k++)
         {
             iter = find(k);
 
diff --git a/src/lagrangian/molecularDynamics/molecule/interactionLists/interactionLists.C b/src/lagrangian/molecularDynamics/molecule/interactionLists/interactionLists.C
index f1036eaa0e937bd2121f80187ef61199cd3d75e4..1a587f3022b5e44b0605661ea7a759b421045888 100644
--- a/src/lagrangian/molecularDynamics/molecule/interactionLists/interactionLists.C
+++ b/src/lagrangian/molecularDynamics/molecule/interactionLists/interactionLists.C
@@ -667,7 +667,7 @@ const Foam::labelList Foam::interactionLists::referredCellsInRangeOfSegment
                     )
                 )
                 {
-                    if(findIndex(referredCellsFoundInRange, rIL) == -1)
+                    if (findIndex(referredCellsFoundInRange, rIL) == -1)
                     {
                         referredCellsFoundInRange.append(rIL);
                     }
diff --git a/src/lagrangian/molecularDynamics/molecule/interactionLists/referredCell/referredCell.C b/src/lagrangian/molecularDynamics/molecule/interactionLists/referredCell/referredCell.C
index 225ad5902a01ca024526ef4e8b43326f90e4f677..0059fad4b9431843f987c0287684b099e1b5255c 100644
--- a/src/lagrangian/molecularDynamics/molecule/interactionLists/referredCell/referredCell.C
+++ b/src/lagrangian/molecularDynamics/molecule/interactionLists/referredCell/referredCell.C
@@ -277,7 +277,7 @@ referredCell::referredCell
     // Allow sourceCell = -1 to create a dummy referredCell
     // to obtain the transformation
 
-    if(sourceCell >= 0)
+    if (sourceCell >= 0)
     {
         setConstructionData(mesh, sourceCell);
     }
diff --git a/src/lagrangian/molecularDynamics/molecule/interactionLists/referredCellList/referredCellList.C b/src/lagrangian/molecularDynamics/molecule/interactionLists/referredCellList/referredCellList.C
index acccb66b31d933a193016cc607b5a137b77ffbd4..583f7382beed512136c0a41fc7a964bb60695dc3 100644
--- a/src/lagrangian/molecularDynamics/molecule/interactionLists/referredCellList/referredCellList.C
+++ b/src/lagrangian/molecularDynamics/molecule/interactionLists/referredCellList/referredCellList.C
@@ -40,7 +40,7 @@ void Foam::referredCellList::buildReferredCellList
     bool pointPointListBuild
 )
 {
-    Info << nl << "Building list of referred interaction neighbours" << endl;
+    Info<< nl << "Building list of referred interaction neighbours" << endl;
 
     const polyMesh& mesh(il_.mesh());
 
diff --git a/src/lagrangian/molecularDynamics/molecule/mdTools/averageMDFields.H b/src/lagrangian/molecularDynamics/molecule/mdTools/averageMDFields.H
index 9781c9d70f415b8c92d90d29d3b05ec015bcebcc..4e93070479e69dfaf71c485acf929e7ac8faab0a 100644
--- a/src/lagrangian/molecularDynamics/molecule/mdTools/averageMDFields.H
+++ b/src/lagrangian/molecularDynamics/molecule/mdTools/averageMDFields.H
@@ -152,7 +152,7 @@ if (runTime.outputTime())
 
     forAll(totalTemperature.internalField(), tT)
     {
-        if(totalN_sum[tT] > 0)
+        if (totalN_sum[tT] > 0)
         {
             totalTemperature.internalField()[tT] =
                 totalTemperatureVTerms_sum[tT]
@@ -181,7 +181,7 @@ if (runTime.outputTime())
 
         forAll(singleSpeciesMeanKE, sSMKE)
         {
-            if(allSpeciesN_RU[mKE][sSMKE])
+            if (allSpeciesN_RU[mKE][sSMKE])
             {
                 singleSpeciesMeanKE[sSMKE] =
                     allSpeciesM_RU[mKE][sSMKE]
@@ -208,7 +208,7 @@ if (runTime.outputTime())
 
     forAll(totalMeanKE.internalField(), tMKE)
     {
-        if(totalN_sum[tMKE] > 0)
+        if (totalN_sum[tMKE] > 0)
         {
             totalMeanKE.internalField()[tMKE] =
                 totalKE_sum[tMKE]
diff --git a/src/lagrangian/molecularDynamics/molecule/mdTools/createMDFields.H b/src/lagrangian/molecularDynamics/molecule/mdTools/createMDFields.H
index 730db2d0a8c7e2f701ff63615ca4d58bd331116e..50e82df48ab0ab945297c8c521db9a5be9bac366 100644
--- a/src/lagrangian/molecularDynamics/molecule/mdTools/createMDFields.H
+++ b/src/lagrangian/molecularDynamics/molecule/mdTools/createMDFields.H
@@ -39,7 +39,7 @@ PtrList<volScalarField> allSpeciesRhoN
 
 forAll (allSpeciesRhoN, rN)
 {
-    Info << "    Creating number density field for "
+    Info<< "    Creating number density field for "
         << molecules.potential().idList()[rN] << endl;
 
     allSpeciesRhoN.set
@@ -94,7 +94,7 @@ PtrList<volScalarField> allSpeciesRhoM
 
 forAll (allSpeciesRhoM, rM)
 {
-    Info << "    Creating mass density field for "
+    Info<< "    Creating mass density field for "
         << molecules.potential().idList()[rM] << endl;
 
     allSpeciesRhoM.set
@@ -149,7 +149,7 @@ PtrList<volVectorField> allSpeciesVelocity
 
 forAll (allSpeciesVelocity, v)
 {
-    Info << "    Creating velocity field for "
+    Info<< "    Creating velocity field for "
         << molecules.potential().idList()[v] << endl;
 
     allSpeciesVelocity.set
@@ -223,7 +223,7 @@ PtrList<volScalarField> allSpeciesTemperature
 
 forAll (allSpeciesTemperature, t)
 {
-    Info << "    Creating temperature field for "
+    Info<< "    Creating temperature field for "
         << molecules.potential().idList()[t] << endl;
 
     allSpeciesTemperature.set
@@ -279,7 +279,7 @@ PtrList<volScalarField> allSpeciesMeanKE
 
 forAll (allSpeciesMeanKE, mKE)
 {
-    Info << "    Creating mean kinetic energy field for "
+    Info<< "    Creating mean kinetic energy field for "
         << molecules.potential().idList()[mKE] << endl;
 
     allSpeciesMeanKE.set
diff --git a/src/lagrangian/molecularDynamics/molecule/mdTools/createRefUnits.H b/src/lagrangian/molecularDynamics/molecule/mdTools/createRefUnits.H
index bbd6c6daf7bc378e10c1cec250febb9184dc9769..c1e558b2213748d246588a244958642a6d972215 100644
--- a/src/lagrangian/molecularDynamics/molecule/mdTools/createRefUnits.H
+++ b/src/lagrangian/molecularDynamics/molecule/mdTools/createRefUnits.H
@@ -11,7 +11,7 @@ IOobject reducedUnitsDictIOobject
 
 if (reducedUnitsDictIOobject.headerOk())
 {
-    Info << nl
+    Info<< nl
         << "Reading reference quantities from reducedUnitsDict file." << endl;
 
     IOdictionary reducedUnitsDict(reducedUnitsDictIOobject);
diff --git a/src/lagrangian/molecularDynamics/molecule/mdTools/meanMomentumEnergyAndNMols.H b/src/lagrangian/molecularDynamics/molecule/mdTools/meanMomentumEnergyAndNMols.H
index fb5118bb5a484f0ce77bb3dd7a88b0e88aa2fd14..446e58da05f6ba861cf026383238b088096a85da 100644
--- a/src/lagrangian/molecularDynamics/molecule/mdTools/meanMomentumEnergyAndNMols.H
+++ b/src/lagrangian/molecularDynamics/molecule/mdTools/meanMomentumEnergyAndNMols.H
@@ -73,7 +73,7 @@ label singleStepDOFs = 0;
         //singleStepCentreOfMass += mol().position()*molMass;
     }
 
-    // if(singleStepNMols)
+    // if (singleStepNMols)
     // {
     //     singleStepCentreOfMass /= singleStepTotalMass;
     // }
@@ -104,7 +104,7 @@ label singleStepDOFs = 0;
         singleStepTotalAngularMomentum += molPiGlobal;
         //+((mol().position() - singleStepCentreOfMass) ^ (molV * molMass));
 
-        if(mag(molV) > singleStepMaxVelocityMag)
+        if (mag(molV) > singleStepMaxVelocityMag)
         {
             singleStepMaxVelocityMag = mag(molV);
         }
@@ -176,7 +176,7 @@ if (singleStepNMols)
         /singleStepNMols
         << endl;
 
-        // Info << singleStepNMols << " "
+        // Info<< singleStepNMols << " "
         //     << singleStepTotalMomentum/singleStepTotalMass << " "
         //     << singleStepMaxVelocityMag << " "
         //     << singleStepTotalKE/singleStepNMols << " "
diff --git a/src/lagrangian/molecularDynamics/molecule/mdTools/temperatureAndPressure.H b/src/lagrangian/molecularDynamics/molecule/mdTools/temperatureAndPressure.H
index 34dd65156a90d7cc61c1f212a33f5518c37703d1..e95addc7bd374577358f504ad2ce7024f8c310bf 100644
--- a/src/lagrangian/molecularDynamics/molecule/mdTools/temperatureAndPressure.H
+++ b/src/lagrangian/molecularDynamics/molecule/mdTools/temperatureAndPressure.H
@@ -53,7 +53,7 @@ if (runTime.outputTime())
 {
     if (accumulatedNMols)
     {
-        Info << "calculating averages" << endl;
+        Info<< "calculating averages" << endl;
 
         averageTemperature =
         (
@@ -77,7 +77,7 @@ if (runTime.outputTime())
             meshVolume
         );
 
-        Info << "----------------------------------------" << nl
+        Info<< "----------------------------------------" << nl
             << "Averaged properties" << nl
             << "Average |velocity| = "
             << mag(accumulatedTotalLinearMomentum)/accumulatedTotalMass << nl
diff --git a/src/lagrangian/molecularDynamics/molecule/molecule/moleculeI.H b/src/lagrangian/molecularDynamics/molecule/molecule/moleculeI.H
index 447a04e4ea3e047f045ac56cf55af05aa2849cac..b13f5ea6a0219fdc36595f087a072fd531a575c4 100644
--- a/src/lagrangian/molecularDynamics/molecule/molecule/moleculeI.H
+++ b/src/lagrangian/molecularDynamics/molecule/molecule/moleculeI.H
@@ -77,7 +77,7 @@ inline Foam::molecule::constantProperties::constantProperties
 
     siteReferencePositions_ -= centreOfMass;
 
-    if(siteIds_.size() == 1)
+    if (siteIds_.size() == 1)
     {
         // Single site molecule - no rotational motion.
 
@@ -85,7 +85,7 @@ inline Foam::molecule::constantProperties::constantProperties
 
         momentOfInertia_ = diagTensor(-1, -1, -1);
     }
-    else if(linearMoleculeTest())
+    else if (linearMoleculeTest())
     {
         // Linear molecule.
 
diff --git a/src/lagrangian/molecularDynamics/molecule/moleculeCloud/moleculeCloud.C b/src/lagrangian/molecularDynamics/molecule/moleculeCloud/moleculeCloud.C
index f341267b846c696c5703118c70d57bd1916f8be5..a50159ee9333c15644fcc7b3262188b798fbfb06 100644
--- a/src/lagrangian/molecularDynamics/molecule/moleculeCloud/moleculeCloud.C
+++ b/src/lagrangian/molecularDynamics/molecule/moleculeCloud/moleculeCloud.C
@@ -509,7 +509,7 @@ void Foam::moleculeCloud::initialiseMolecules
                     zoneDict.lookup("latticePositions")
                 );
 
-                if(latticeIds.size() != latticePositions.size())
+                if (latticeIds.size() != latticePositions.size())
                 {
                     FatalErrorIn("Foam::moleculeCloud::initialiseMolecules")
                         << "latticeIds and latticePositions must be the same "
diff --git a/src/lagrangian/molecularDynamics/molecule/moleculeCloud/moleculeCloudI.H b/src/lagrangian/molecularDynamics/molecule/moleculeCloud/moleculeCloudI.H
index fee67cfced40f59f4820a7ae232844502aad8d83..2a92af07cfe63b27bb2dcd2b4e8a99677792fcbc 100644
--- a/src/lagrangian/molecularDynamics/molecule/moleculeCloud/moleculeCloudI.H
+++ b/src/lagrangian/molecularDynamics/molecule/moleculeCloud/moleculeCloudI.H
@@ -75,7 +75,7 @@ inline void Foam::moleculeCloud::evaluatePair
 
                 scalar rsIsJMagSq = magSqr(rsIsJ);
 
-                if(pairPot.rCutSqr(idsI, idsJ, rsIsJMagSq))
+                if (pairPot.rCutSqr(idsI, idsJ, rsIsJMagSq))
                 {
                     scalar rsIsJMag = mag(rsIsJ);
 
@@ -118,7 +118,7 @@ inline void Foam::moleculeCloud::evaluatePair
 
                 scalar rsIsJMagSq = magSqr(rsIsJ);
 
-                if(rsIsJMagSq <= electrostatic.rCutSqr())
+                if (rsIsJMagSq <= electrostatic.rCutSqr())
                 {
                     scalar rsIsJMag = mag(rsIsJ);
 
diff --git a/src/lagrangian/molecularDynamics/potential/pairPotential/pairPotentialList/pairPotentialList.C b/src/lagrangian/molecularDynamics/potential/pairPotential/pairPotentialList/pairPotentialList.C
index 2d77c4ce59505c320590182f5eae168637f48cc4..26b99d7e3b88863d3ec71147e3bc2188aa04747a 100644
--- a/src/lagrangian/molecularDynamics/potential/pairPotential/pairPotentialList/pairPotentialList.C
+++ b/src/lagrangian/molecularDynamics/potential/pairPotential/pairPotentialList/pairPotentialList.C
@@ -158,7 +158,7 @@ void Foam::pairPotentialList::readPairPotentialDict
     {
         OFstream ppTabFile(mesh.time().path()/"electrostatic");
 
-        if(!electrostaticPotential_->writeEnergyAndForceTables(ppTabFile))
+        if (!electrostaticPotential_->writeEnergyAndForceTables(ppTabFile))
         {
             FatalErrorIn("pairPotentialList::readPairPotentialDict")
                 << "Failed writing to "
diff --git a/src/lagrangian/molecularDynamics/potential/potential/potential.C b/src/lagrangian/molecularDynamics/potential/potential/potential.C
index 5532c2f105c0751eeb4bf966918e91fb12c09c10..2fc95108dd5054ac394da6f8ecc8be88aa2ad2e6 100644
--- a/src/lagrangian/molecularDynamics/potential/potential/potential.C
+++ b/src/lagrangian/molecularDynamics/potential/potential/potential.C
@@ -53,7 +53,7 @@ void Foam::potential::setSiteIdList(const IOdictionary& moleculePropertiesDict)
         {
             const word& siteId = siteIdNames[sI];
 
-            if(findIndex(siteIdList, siteId) == -1)
+            if (findIndex(siteIdList, siteId) == -1)
             {
                 siteIdList.append(siteId);
             }
@@ -65,14 +65,14 @@ void Foam::potential::setSiteIdList(const IOdictionary& moleculePropertiesDict)
         {
             const word& siteId = pairPotSiteIds[sI];
 
-            if(findIndex(siteIdNames, siteId) == -1)
+            if (findIndex(siteIdNames, siteId) == -1)
             {
                 FatalErrorIn("potential.C") << nl
                     << siteId << " in pairPotentialSiteIds is not in siteIds: "
                     << siteIdNames << nl << abort(FatalError);
             }
 
-            if(findIndex(pairPotentialSiteIdList, siteId) == -1)
+            if (findIndex(pairPotentialSiteIdList, siteId) == -1)
             {
                 pairPotentialSiteIdList.append(siteId);
             }
@@ -85,7 +85,7 @@ void Foam::potential::setSiteIdList(const IOdictionary& moleculePropertiesDict)
     {
         const word& siteId = siteIdList[aSIN];
 
-        if(findIndex(pairPotentialSiteIdList, siteId) == -1)
+        if (findIndex(pairPotentialSiteIdList, siteId) == -1)
         {
             pairPotentialSiteIdList.append(siteId);
         }
@@ -231,7 +231,7 @@ void Foam::potential::potential::readPotentialDict()
     if (potentialDict.found("external"))
     {
 
-        Info << nl << "Reading external forces:" << endl;
+        Info<< nl << "Reading external forces:" << endl;
 
         const dictionary& externalDict = potentialDict.subDict("external");
 
@@ -244,7 +244,7 @@ void Foam::potential::potential::readPotentialDict()
         }
     }
 
-    Info << nl << tab << "gravity = " << gravity_ << endl;
+    Info<< nl << tab << "gravity = " << gravity_ << endl;
 }
 
 
@@ -287,7 +287,7 @@ void Foam::potential::potential::readMdInitialiseDict
         {
             const word& id = latticeIds[i];
 
-            if(!moleculePropertiesDict.found(id))
+            if (!moleculePropertiesDict.found(id))
             {
                 FatalErrorIn("potential.C") << nl
                     << "Molecule type "
diff --git a/src/mesh/autoMesh/Make/options b/src/mesh/autoMesh/Make/options
index f1687b7eb1ecf3b19e60d8363cc3703b17a80e72..573d0007c1d9445f4cee37c8f74341922bbc4940 100644
--- a/src/mesh/autoMesh/Make/options
+++ b/src/mesh/autoMesh/Make/options
@@ -1,5 +1,5 @@
 EXE_INC = \
-    -I$(LIB_SRC)/decompositionMethods/decompositionMethods/lnInclude \
+    -I$(LIB_SRC)/parallel/decompositionMethods/lnInclude \
     -I$(LIB_SRC)/dynamicMesh/lnInclude \
     -I$(LIB_SRC)/finiteVolume/lnInclude \
     -I$(LIB_SRC)/lagrangian/basic/lnInclude \
diff --git a/src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/autoLayerDriverShrink.C b/src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/autoLayerDriverShrink.C
index 8f47f9de8cec7d1cbc0f99b3228abc2084ff41fb..bc2dcabf58ecfb269deec9b407cc2bfa0d2f25f6 100644
--- a/src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/autoLayerDriverShrink.C
+++ b/src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/autoLayerDriverShrink.C
@@ -468,7 +468,7 @@ void Foam::autoLayerDriver::findIsolatedRegions
     // Keep count of number of points unextruded
     label nPointCounter = 0;
 
-    while(true)
+    while (true)
     {
         // Stop layer growth where mesh wraps around edge with a
         // large feature angle
@@ -835,7 +835,7 @@ void Foam::autoLayerDriver::medialAxisSmoothingInfo
                                 vector::zero    // passive data
                             )
                         );
-                        pointMedialDist[pointI] = maxInfo[maxInfo.size()-1];
+                        pointMedialDist[pointI] = maxInfo.last();
                     }
                 }
             }
@@ -879,7 +879,7 @@ void Foam::autoLayerDriver::medialAxisSmoothingInfo
                                 vector::zero    // passive data
                             )
                         );
-                        pointMedialDist[pointI] = maxInfo[maxInfo.size()-1];
+                        pointMedialDist[pointI] = maxInfo.last();
                     }
                 }
             }
diff --git a/src/mesh/autoMesh/autoHexMesh/meshRefinement/meshRefinement.C b/src/mesh/autoMesh/autoHexMesh/meshRefinement/meshRefinement.C
index bd5729a1b38545a655df070b5a44cd88709379b5..bda334cc511141fdc6e0cc1a7a0b305c49ada2e2 100644
--- a/src/mesh/autoMesh/autoHexMesh/meshRefinement/meshRefinement.C
+++ b/src/mesh/autoMesh/autoHexMesh/meshRefinement/meshRefinement.C
@@ -1858,7 +1858,7 @@ void Foam::meshRefinement::distribute(const mapDistributePolyMesh& map)
         // Get local mesh bounding box. Single box for now.
         List<treeBoundBox> meshBb(1);
         treeBoundBox& bb = meshBb[0];
-        bb = boundBox(mesh_.points(), false);
+        bb = treeBoundBox(mesh_.points());
         bb = bb.extend(rndGen, 1E-4);
 
         // Distribute all geometry (so refinementSurfaces and shellSurfaces)
diff --git a/src/mesh/autoMesh/autoHexMesh/meshRefinement/meshRefinementBaffles.C b/src/mesh/autoMesh/autoHexMesh/meshRefinement/meshRefinementBaffles.C
index 88f806b5dd1c948ca165439529c4467e19c57f2f..307cb743f813550e026b34293703e5fbbe19b413 100644
--- a/src/mesh/autoMesh/autoHexMesh/meshRefinement/meshRefinementBaffles.C
+++ b/src/mesh/autoMesh/autoHexMesh/meshRefinement/meshRefinementBaffles.C
@@ -2411,6 +2411,9 @@ Foam::autoPtr<Foam::mapPolyMesh> Foam::meshRefinement::zonify
     }
     syncTools::swapBoundaryFaceList(mesh_, neiCellZone, false);
 
+    // Get per face whether is it master (of a coupled set of faces)
+    PackedBoolList isMasterFace(syncTools::getMasterFaces(mesh_));
+
     // Set owner as no-flip
     forAll(patches, patchI)
     {
@@ -2428,14 +2431,27 @@ Foam::autoPtr<Foam::mapPolyMesh> Foam::meshRefinement::zonify
                 label neiZone = neiCellZone[faceI-mesh_.nInternalFaces()];
 
                 bool flip;
-                if (ownZone == max(ownZone, neiZone))
+
+                label maxZone = max(ownZone, neiZone);
+
+                if (maxZone == -1)
                 {
                     flip = false;
                 }
-                else
+                else if (ownZone == neiZone)
+                {
+                    // Can only happen for coupled boundaries. Keep master
+                    // face unflipped.
+                    flip = !isMasterFace[faceI];
+                }
+                else if (neiZone == maxZone)
                 {
                     flip = true;
                 }
+                else
+                {
+                    flip = false;
+                }
 
                 meshMod.setAction
                 (
diff --git a/src/mesh/autoMesh/autoHexMesh/trackedParticle/ExactParticle.C b/src/mesh/autoMesh/autoHexMesh/trackedParticle/ExactParticle.C
index 237e35276c33e528be26b13430bc078ea66baab4..0bda7cd1cc4dafb8c1c887ae09e72d400593cd61 100644
--- a/src/mesh/autoMesh/autoHexMesh/trackedParticle/ExactParticle.C
+++ b/src/mesh/autoMesh/autoHexMesh/trackedParticle/ExactParticle.C
@@ -39,7 +39,7 @@ Foam::label Foam::ExactParticle<ParticleType>::track
     this->facei_ = -1;
 
     // Tracks to endPosition or stop on boundary
-    while(!this->onBoundary() && this->stepFraction_ < 1.0 - SMALL)
+    while (!this->onBoundary() && this->stepFraction_ < 1.0 - SMALL)
     {
         this->stepFraction_ +=
             trackToFace(endPosition, td)
diff --git a/src/mesh/blockMesh/Make/files b/src/mesh/blockMesh/Make/files
index cc7a1c1bb5fe8b9db96e92037ca0dced0fe89b86..d68caa1c244ba6544143a427c877a1e885649894 100644
--- a/src/mesh/blockMesh/Make/files
+++ b/src/mesh/blockMesh/Make/files
@@ -1,13 +1,17 @@
+curvedEdges/CatmullRomSpline.C
+curvedEdges/polyLine.C
+
+curvedEdges/arcEdge.C
 curvedEdges/curvedEdge.C
 curvedEdges/lineEdge.C
-curvedEdges/polyLine.C
 curvedEdges/polyLineEdge.C
-curvedEdges/arcEdge.C
-curvedEdges/spline.C
-curvedEdges/BSpline.C
-curvedEdges/simpleSplineEdge.C
-curvedEdges/polySplineEdge.C
 curvedEdges/lineDivide.C
+curvedEdges/splineEdge.C
+
+curvedEdges/legacy/spline.C
+curvedEdges/legacy/BSpline.C
+curvedEdges/legacy/simpleSplineEdge.C
+curvedEdges/legacy/polySplineEdge.C
 
 blockDescriptor/blockDescriptor.C
 blockDescriptor/blockDescriptorEdges.C
diff --git a/src/mesh/blockMesh/blockDescriptor/blockDescriptor.C b/src/mesh/blockMesh/blockDescriptor/blockDescriptor.C
index 599a108c3cbffaf4ef996f89b8afc20e8711e45f..335fc824b85200d5c89c9d153e95a08be1fa625c 100644
--- a/src/mesh/blockMesh/blockDescriptor/blockDescriptor.C
+++ b/src/mesh/blockMesh/blockDescriptor/blockDescriptor.C
@@ -89,7 +89,7 @@ Foam::blockDescriptor::blockDescriptor
     {
         zoneName_ = t.wordToken();
 
-        // Get the next token
+        // Examine next token
         is >> t;
     }
     is.putBack(t);
@@ -129,7 +129,12 @@ Foam::blockDescriptor::blockDescriptor
 
     scalarList expRatios(is);
 
-    if (expRatios.size() == 3)
+    if (expRatios.size() == 1)
+    {
+        // identical in x/y/z-directions
+        expand_ = expRatios[0];
+    }
+    else if (expRatios.size() == 3)
     {
         // x-direction
         expand_[0]  = expRatios[0];
diff --git a/src/mesh/blockMesh/blockDescriptor/blockDescriptorEdges.C b/src/mesh/blockMesh/blockDescriptor/blockDescriptorEdges.C
index 5fcf31f4218935aa34f52339ddc21214022f737b..afc8fcd078bc53e21897b36a25c4f56d6e6cd006 100644
--- a/src/mesh/blockMesh/blockDescriptor/blockDescriptorEdges.C
+++ b/src/mesh/blockMesh/blockDescriptor/blockDescriptorEdges.C
@@ -120,8 +120,8 @@ void Foam::blockDescriptor::setEdge
                 // divide the line
                 lineDivide divEdge(cedge, dim, 1.0/(gExp+SMALL));
 
-                pointField p = divEdge.points();
-                scalarList d = divEdge.lambdaDivisions();
+                const pointField& p = divEdge.points();
+                const scalarList& d = divEdge.lambdaDivisions();
 
                 edgePoints_[edgeI].setSize(p.size());
                 edgeWeights_[edgeI].setSize(d.size());
diff --git a/src/mesh/blockMesh/curvedEdges/CatmullRomSpline.C b/src/mesh/blockMesh/curvedEdges/CatmullRomSpline.C
new file mode 100644
index 0000000000000000000000000000000000000000..d1647de07f7b3bf926a5f5a7fe9a417f73fc90ec
--- /dev/null
+++ b/src/mesh/blockMesh/curvedEdges/CatmullRomSpline.C
@@ -0,0 +1,131 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2009-2009 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 2 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, write to the Free Software Foundation,
+    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+\*---------------------------------------------------------------------------*/
+
+#include "error.H"
+#include "CatmullRomSpline.H"
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+Foam::CatmullRomSpline::CatmullRomSpline
+(
+    const pointField& Knots,
+    const vector&,
+    const vector&
+)
+:
+    polyLine(Knots)
+{}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+Foam::point Foam::CatmullRomSpline::position(const scalar mu) const
+{
+    // endpoints
+    if (mu < SMALL)
+    {
+        return points().first();
+    }
+    else if (mu > 1 - SMALL)
+    {
+        return points().last();
+    }
+
+    scalar lambda = mu;
+    label segment = localParameter(lambda);
+    return position(segment, lambda);
+}
+
+
+Foam::point Foam::CatmullRomSpline::position
+(
+    const label segment,
+    const scalar mu
+) const
+{
+    const point& p0 = points()[segment];
+    const point& p1 = points()[segment+1];
+
+    // special cases - no calculation needed
+    if (segment < 0 || mu < 0.0)
+    {
+        return p0;
+    }
+    else if (segment > nSegments() || mu >= 1.0)
+    {
+        return p1;
+    }
+
+    // determine the end points
+    point e0;
+    point e1;
+
+    if (segment == 0)
+    {
+        // end: simple reflection
+        e0 = 2.0 * p0 - p1;
+    }
+    else
+    {
+        e0 = points()[segment-1];
+    }
+
+    if (segment+1 == nSegments())
+    {
+        // end: simple reflection
+        e1 = 2.0 * p1 - p0;
+    }
+    else
+    {
+        e1 = points()[segment+2];
+    }
+
+
+    return 0.5 *
+    (
+        ( 2 * p0 )
+      + mu *
+        (
+            ( -e0 + p1 )
+          + mu *
+            (
+                ( 2*e0 - 5*p0 + 4*p1 - e1 )
+              + mu *
+                ( -e0 + 3*p0 - 3*p1 + e1 )
+            )
+        )
+    );
+}
+
+
+Foam::scalar Foam::CatmullRomSpline::length() const
+{
+    notImplemented("CatmullRomSpline::length() const");
+    return 1.0;
+}
+
+
+// ************************************************************************* //
diff --git a/src/mesh/blockMesh/curvedEdges/CatmullRomSpline.H b/src/mesh/blockMesh/curvedEdges/CatmullRomSpline.H
new file mode 100644
index 0000000000000000000000000000000000000000..6f1851a7a65821af8c7986c38c0a17d7504429e0
--- /dev/null
+++ b/src/mesh/blockMesh/curvedEdges/CatmullRomSpline.H
@@ -0,0 +1,128 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2009-2009 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 2 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, write to the Free Software Foundation,
+    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+Class
+    Foam::CatmullRomSpline
+
+Description
+    An implementation of Catmull-Rom splines (sometime as known as
+    Overhauser splines).
+
+    In this implementation, the end tangents are created
+    automatically by reflection.
+
+    In matrix form, the @e local interpolation on the interval t=[0..1] is
+    described as follows:
+    @verbatim
+    P(t) = 0.5 * [ t^3 t^2 t 1 ] * [ -1  3 -3  1 ] * [ P-1 ]
+                                   [  2 -5  4 -1 ]   [ P0 ]
+                                   [ -1  0  1  0 ]   [ P1 ]
+                                   [  0  2  0  0 ]   [ P2 ]
+    @endverbatim
+
+    Where P-1 and P2 represent the neighbouring points or the
+    extrapolated end points. Simple reflection is used to
+    automatically create the end points.
+
+    The spline is discretized based on the chord length of the
+    individual segments. In rare cases (sections with very high
+    curvatures), the resulting distribution may be sub-optimal.
+
+SeeAlso
+    http://www.algorithmist.net/catmullrom.html provides a nice
+    introduction
+
+ToDo
+    A future implementation could also handle closed splines - either
+    when the start/end points are identically or when specified.
+
+SourceFiles
+    CatmullRomSpline.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef CatmullRomSpline_H
+#define CatmullRomSpline_H
+
+#include "polyLine.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+/*---------------------------------------------------------------------------*\
+                      Class CatmullRomSpline Declaration
+\*---------------------------------------------------------------------------*/
+
+class CatmullRomSpline
+:
+    public polyLine
+{
+    // Private Member Functions
+
+        //- Disallow default bitwise copy construct
+        CatmullRomSpline(const CatmullRomSpline&);
+
+        //- Disallow default bitwise assignment
+        void operator=(const CatmullRomSpline&);
+
+
+public:
+
+    // Constructors
+
+        //- Construct from components
+        CatmullRomSpline
+        (
+            const pointField& knots,
+            const vector& begTangentNotImplemented = vector::zero,
+            const vector& endTangentNotImplemented = vector::zero
+        );
+
+
+    // Member Functions
+
+        //- Return the point position corresponding to the curve parameter
+        //  0 <= lambda <= 1
+        point position(const scalar lambda) const;
+
+        //- Return the point position corresponding to the local parameter
+        //  0 <= lambda <= 1 on the given segment
+        point position(const label segment, const scalar lambda) const;
+
+        //- Return the length of the curve
+        scalar length() const;
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/mesh/blockMesh/curvedEdges/arcEdge.C b/src/mesh/blockMesh/curvedEdges/arcEdge.C
index afb62a8f8b437daaf7ba5fa734d6b07b653ba1f2..21143ac43a5bcd6e39a4e09a79c247aff0e8e935 100644
--- a/src/mesh/blockMesh/curvedEdges/arcEdge.C
+++ b/src/mesh/blockMesh/curvedEdges/arcEdge.C
@@ -61,7 +61,7 @@ Foam::cylindricalCS Foam::arcEdge::calcAngle()
 
     scalar fact = 0.5*(bsqr - adotb)/denom;
 
-    vector centre = 0.5*a + fact*((a ^ b) ^ a);
+    point centre = 0.5*a + fact*((a ^ b) ^ a);
 
     centre += p1_;
 
@@ -71,11 +71,10 @@ Foam::cylindricalCS Foam::arcEdge::calcAngle()
     vector r3(p3_ - centre);
 
     // find angles
-    scalar tmp = (r3&r1)/(mag(r3)*mag(r1));
-    angle_ = radToDeg(acos(tmp));
+    angle_ = radToDeg(acos((r3 & r1)/(mag(r3) * mag(r1))));
 
     // check if the vectors define an exterior or an interior arcEdge
-    if (((r1 ^ r2)&(r1 ^ r3)) < 0.0)
+    if (((r1 ^ r2) & (r1 ^ r3)) < 0.0)
     {
         angle_ = 360.0 - angle_;
     }
@@ -99,7 +98,7 @@ Foam::cylindricalCS Foam::arcEdge::calcAngle()
     radius_ = mag(r3);
 
     // set up and return the local coordinate system
-    return cylindricalCS("tmpCS", centre, tempAxis, r1);
+    return cylindricalCS("arcEdgeCS", centre, tempAxis, r1);
 }
 
 
@@ -133,7 +132,7 @@ Foam::arcEdge::arcEdge(const pointField& points, Istream& is)
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
-Foam::vector Foam::arcEdge::position(const scalar lambda) const
+Foam::point Foam::arcEdge::position(const scalar lambda) const
 {
     if (lambda < 0 || lambda > 1)
     {
@@ -146,7 +145,7 @@ Foam::vector Foam::arcEdge::position(const scalar lambda) const
     {
         return p1_;
     }
-    else if (lambda > 1-SMALL)
+    else if (lambda > 1 - SMALL)
     {
         return p3_;
     }
diff --git a/src/mesh/blockMesh/curvedEdges/arcEdge.H b/src/mesh/blockMesh/curvedEdges/arcEdge.H
index da96d150fc0803f0b6fecb6c50d31b072ff17a35..194e5c634bb39d147081af5e25624b2fe9f91de6 100644
--- a/src/mesh/blockMesh/curvedEdges/arcEdge.H
+++ b/src/mesh/blockMesh/curvedEdges/arcEdge.H
@@ -54,15 +54,16 @@ class arcEdge
 {
     // Private data
 
-        vector p1_, p2_, p3_;
+        point p1_, p2_, p3_;
+        cylindricalCS cs_;
         scalar angle_;
         scalar radius_;
-        cylindricalCS cs_;
-
-        cylindricalCS calcAngle();
 
     // Private Member Functions
 
+        //- Calculate the coordinate system, angle and radius
+        cylindricalCS calcAngle();
+
         //- Disallow default bitwise copy construct
         arcEdge(const arcEdge&);
 
@@ -96,9 +97,9 @@ public:
 
     // Member Functions
 
-        //- Return the position of a point on the curve given by
-        //  the parameter 0 <= lambda <= 1
-        vector position(const scalar) const;
+        //- Return the point position corresponding to the curve parameter
+        //  0 <= lambda <= 1
+        point position(const scalar) const;
 
         //- Return the length of the curve
         scalar length() const;
diff --git a/src/mesh/blockMesh/curvedEdges/curvedEdge.C b/src/mesh/blockMesh/curvedEdges/curvedEdge.C
index 4b80a221ddd16c78fead7a889344db6d4454b189..35e58b7692b96e1573f900e6554cd664d90bb799 100644
--- a/src/mesh/blockMesh/curvedEdges/curvedEdge.C
+++ b/src/mesh/blockMesh/curvedEdges/curvedEdge.C
@@ -108,27 +108,27 @@ Foam::autoPtr<Foam::curvedEdge> Foam::curvedEdge::New
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
-Foam::pointField Foam::curvedEdge::knotlist
+Foam::pointField Foam::curvedEdge::appendEndPoints
 (
     const pointField& points,
     const label start,
     const label end,
-    const pointField& otherknots
+    const pointField& otherKnots
 )
 {
-    pointField newPoints(otherknots.size() + 2);
+    pointField allKnots(otherKnots.size() + 2);
 
     // start/end knots
-    newPoints[0] = points[start];
-    newPoints[otherknots.size() + 1] = points[end];
+    allKnots[0] = points[start];
+    allKnots[otherKnots.size() + 1] = points[end];
 
     // intermediate knots
-    forAll(otherknots, knotI)
+    forAll(otherKnots, knotI)
     {
-        newPoints[knotI+1] = otherknots[knotI];
+        allKnots[knotI+1] = otherKnots[knotI];
     }
 
-    return newPoints;
+    return allKnots;
 }
 
 
diff --git a/src/mesh/blockMesh/curvedEdges/curvedEdge.H b/src/mesh/blockMesh/curvedEdges/curvedEdge.H
index 49ad047e45a759603d41141e38ee6b010ccf9979..bd1ad3246ada4444ef88cd3dabdfd914d695c329 100644
--- a/src/mesh/blockMesh/curvedEdges/curvedEdge.H
+++ b/src/mesh/blockMesh/curvedEdges/curvedEdge.H
@@ -26,8 +26,8 @@ Class
     Foam::curvedEdge
 
 Description
-    Define a curved edge in space that is parameterised for
-    0<lambda<1 from the beginning to the end point.
+    Define a curved edge that is parameterized for 0<lambda<1
+    between the start and end point.
 
 SourceFiles
     curvedEdge.C
@@ -62,6 +62,19 @@ protected:
         const label start_;
         const label end_;
 
+    // Protected Member Functions
+
+        //- Return a complete point field by appending the start/end points
+        //  to the given list
+        static pointField appendEndPoints
+        (
+            const pointField&,
+            const label start,
+            const label end,
+            const pointField& otherKnots
+        );
+
+
 public:
 
     //- Runtime type information
@@ -136,23 +149,13 @@ public:
         //  - -1: same edge, but different orientation
         inline int compare(const label start, const label end) const;
 
-        //- Return the position of a point on the curve given by
-        //  the parameter 0 <= lambda <= 1
-        virtual vector position(const scalar) const = 0;
+        //- Return the point position corresponding to the curve parameter
+        //  0 <= lambda <= 1
+        virtual point position(const scalar) const = 0;
 
         //- Return the length of the curve
         virtual scalar length() const = 0;
 
-        //- Return a complete knotList by adding the start/end points
-        //  to the given list
-        static pointField knotlist
-        (
-            const pointField&,
-            const label start,
-            const label end,
-            const pointField& otherknots
-        );
-
 
     // Member operators
 
diff --git a/src/mesh/blockMesh/curvedEdges/curvedEdgeI.H b/src/mesh/blockMesh/curvedEdges/curvedEdgeI.H
index 6d3de4e554009922cc29918ad31a41d5369a3e62..ade7db175bfe2e0ada926c04f0fa38b65ac25921 100644
--- a/src/mesh/blockMesh/curvedEdges/curvedEdgeI.H
+++ b/src/mesh/blockMesh/curvedEdges/curvedEdgeI.H
@@ -67,7 +67,4 @@ inline int Foam::curvedEdge::compare(const edge& e) const
 }
 
 
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-
 // ************************************************************************* //
diff --git a/src/mesh/blockMesh/curvedEdges/BSpline.C b/src/mesh/blockMesh/curvedEdges/legacy/BSpline.C
similarity index 96%
rename from src/mesh/blockMesh/curvedEdges/BSpline.C
rename to src/mesh/blockMesh/curvedEdges/legacy/BSpline.C
index 3e166f25cb9650f17a5271df613e47cad7db686e..cd7ee90ca1e195e9270034943ac06a819038816d 100644
--- a/src/mesh/blockMesh/curvedEdges/BSpline.C
+++ b/src/mesh/blockMesh/curvedEdges/legacy/BSpline.C
@@ -115,13 +115,13 @@ Foam::BSpline::BSpline
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
-Foam::vector Foam::BSpline::realPosition(const scalar mu) const
+Foam::point Foam::BSpline::realPosition(const scalar mu) const
 {
     return spline::position(mu);
 }
 
 
-Foam::vector Foam::BSpline::position(const scalar mu) const
+Foam::point Foam::BSpline::position(const scalar mu) const
 {
     return spline::position((1.0/(nKnots() - 1))*(1.0 + mu*(nKnots() - 3)));
 }
diff --git a/src/mesh/blockMesh/curvedEdges/BSpline.H b/src/mesh/blockMesh/curvedEdges/legacy/BSpline.H
similarity index 89%
rename from src/mesh/blockMesh/curvedEdges/BSpline.H
rename to src/mesh/blockMesh/curvedEdges/legacy/BSpline.H
index ace98b4e21097bd7e0f90be743683601810a9974..5ba6423ea12d4a6cdee287e9dd1803d6b13166c7 100644
--- a/src/mesh/blockMesh/curvedEdges/BSpline.H
+++ b/src/mesh/blockMesh/curvedEdges/legacy/BSpline.H
@@ -82,13 +82,13 @@ public:
 
     // Member Functions
 
-        //- Return the real position of a point on the curve given by
-        //  the parameter 0 <= lambda <= 1
-        vector realPosition(const scalar lambda) const;
+        //- Return the real point position corresponding to the curve parameter
+        //  0 <= lambda <= 1
+        point realPosition(const scalar lambda) const;
 
-        //- Return the position of a point on the curve given by
-        //  the parameter 0 <= lambda <= 1
-        vector position(const scalar lambda) const;
+        //- Return the point position corresponding to the curve parameter
+        //  0 <= lambda <= 1
+        point position(const scalar lambda) const;
 
         //- Return the length of the curve
         scalar length() const;
diff --git a/src/mesh/blockMesh/curvedEdges/polySplineEdge.C b/src/mesh/blockMesh/curvedEdges/legacy/polySplineEdge.C
similarity index 92%
rename from src/mesh/blockMesh/curvedEdges/polySplineEdge.C
rename to src/mesh/blockMesh/curvedEdges/legacy/polySplineEdge.C
index 8e4f0f90b3c324888d95bb7c0de7de2f44879664..bf370cd7d3fe0fee5ebb1f554fd430a032b836a3 100644
--- a/src/mesh/blockMesh/curvedEdges/polySplineEdge.C
+++ b/src/mesh/blockMesh/curvedEdges/legacy/polySplineEdge.C
@@ -56,7 +56,7 @@ Foam::pointField Foam::polySplineEdge::intervening
 {
     BSpline spl
     (
-        knotlist(points_, start_, end_, otherknots),
+        appendEndPoints(curvedEdge::points_, start_, end_, otherknots),
         fstend,
         sndend
     );
@@ -73,7 +73,7 @@ Foam::pointField Foam::polySplineEdge::intervening
     interval /= nBetweenKnots + 1;
 
     pointField ans(nSize);
-    ans[0] = points_[start_];
+    ans[0] = curvedEdge::points_[start_];
 
     register scalar index(init);
     for (register label i=1; i<nSize-1; i++)
@@ -82,7 +82,7 @@ Foam::pointField Foam::polySplineEdge::intervening
         ans[i] = spl.realPosition(index);
     }
 
-    ans[nSize-1] = points_[end_];
+    ans[nSize-1] = curvedEdge::points_[end_];
 
     return ans;
 }
@@ -128,14 +128,14 @@ Foam::polySplineEdge::polySplineEdge
     vector fstend(is);
     vector sndend(is);
 
-    controlPoints_ = intervening(otherKnots_, nInterKnots, fstend, sndend);
-    calcDistances();
+    polyLine::points_ = intervening(otherKnots_, nInterKnots, fstend, sndend);
+    calcParam();
 }
 
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
-Foam::vector Foam::polySplineEdge::position(const scalar mu) const
+Foam::point Foam::polySplineEdge::position(const scalar mu) const
 {
     return polyLine::position(mu);
 }
diff --git a/src/mesh/blockMesh/curvedEdges/polySplineEdge.H b/src/mesh/blockMesh/curvedEdges/legacy/polySplineEdge.H
similarity index 91%
rename from src/mesh/blockMesh/curvedEdges/polySplineEdge.H
rename to src/mesh/blockMesh/curvedEdges/legacy/polySplineEdge.H
index b133b9e45dd15de1f261e118593993bb8b2ca02c..dcb5fc2dfe97da62bbbf423196dc84a7839b86cb 100644
--- a/src/mesh/blockMesh/curvedEdges/polySplineEdge.H
+++ b/src/mesh/blockMesh/curvedEdges/legacy/polySplineEdge.H
@@ -26,7 +26,7 @@ Class
     Foam::polySplineEdge
 
 Description
-    A spline representation via a polyLine
+    A curvedEdge interface for B-splines.
 
 SourceFiles
     polySplineEdge.C
@@ -90,16 +90,16 @@ public:
         polySplineEdge(const pointField&, Istream&);
 
 
-    // Destructor
-
-        virtual ~polySplineEdge(){}
+    //- Destructor
+        virtual ~polySplineEdge()
+        {}
 
 
     // Member Functions
 
-        //- Return the position of a point on the curve given by
-        //  the parameter 0 <= lambda <= 1
-        vector position(const scalar mu) const;
+        //- Return the point position corresponding to the curve parameter
+        //  0 <= lambda <= 1
+        point position(const scalar mu) const;
 
         //- Return the length of the curve
         scalar length() const;
diff --git a/src/mesh/blockMesh/curvedEdges/simpleSplineEdge.C b/src/mesh/blockMesh/curvedEdges/legacy/simpleSplineEdge.C
similarity index 90%
rename from src/mesh/blockMesh/curvedEdges/simpleSplineEdge.C
rename to src/mesh/blockMesh/curvedEdges/legacy/simpleSplineEdge.C
index 3132a1f7eaff97f24178dc84aef9d1f774ab12e9..c5dc9e6d9c866015c02c0914640413a5b72f3bc0 100644
--- a/src/mesh/blockMesh/curvedEdges/simpleSplineEdge.C
+++ b/src/mesh/blockMesh/curvedEdges/legacy/simpleSplineEdge.C
@@ -48,7 +48,7 @@ Foam::simpleSplineEdge::simpleSplineEdge
 )
 :
     curvedEdge(points, start, end),
-    BSpline(knotlist(points, start, end, otherknots))
+    BSpline(appendEndPoints(points, start, end, otherknots))
 {}
 
 
@@ -63,20 +63,20 @@ Foam::simpleSplineEdge::simpleSplineEdge
 )
 :
     curvedEdge(points, start, end),
-    BSpline(knotlist(points, start, end, otherknots), fstend, sndend)
+    BSpline(appendEndPoints(points, start, end, otherknots), fstend, sndend)
 {}
 
 
 Foam::simpleSplineEdge::simpleSplineEdge(const pointField& points, Istream& is)
 :
     curvedEdge(points, is),
-    BSpline(knotlist(points, start_, end_, pointField(is)))
+    BSpline(appendEndPoints(points, start_, end_, pointField(is)))
 {}
 
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
-Foam::vector Foam::simpleSplineEdge::position(const scalar mu) const
+Foam::point Foam::simpleSplineEdge::position(const scalar mu) const
 {
     return BSpline::position(mu);
 }
diff --git a/src/mesh/blockMesh/curvedEdges/simpleSplineEdge.H b/src/mesh/blockMesh/curvedEdges/legacy/simpleSplineEdge.H
similarity index 93%
rename from src/mesh/blockMesh/curvedEdges/simpleSplineEdge.H
rename to src/mesh/blockMesh/curvedEdges/legacy/simpleSplineEdge.H
index 4c6df2a5095a3893f0a609cb8f4c4134b204b4b8..91acf6fdee535928dd7589b8c50b3bcc017bba73 100644
--- a/src/mesh/blockMesh/curvedEdges/simpleSplineEdge.H
+++ b/src/mesh/blockMesh/curvedEdges/legacy/simpleSplineEdge.H
@@ -26,7 +26,7 @@ Class
     Foam::simpleSplineEdge
 
 Description
-    The actual access class for Bspline
+    A curvedEdge interface for B-splines.
 
 SourceFiles
     simpleSplineEdge.C
@@ -102,9 +102,9 @@ public:
 
     // Member Functions
 
-        //- Return the position of a point on the simple spline curve given by
-        //  the parameter 0 <= lambda <= 1
-        vector position(const scalar mu) const;
+        //- Return the point position corresponding to the curve parameter
+        //  0 <= lambda <= 1
+        point position(const scalar) const;
 
         //- Return the length of the simple spline curve
         scalar length() const;
diff --git a/src/mesh/blockMesh/curvedEdges/spline.C b/src/mesh/blockMesh/curvedEdges/legacy/spline.C
similarity index 96%
rename from src/mesh/blockMesh/curvedEdges/spline.C
rename to src/mesh/blockMesh/curvedEdges/legacy/spline.C
index cddf6fa8edaad6653612d396760d69ad009820d5..4f7ab8e195e33f12144a2ba90bc264fb5e13bb67 100644
--- a/src/mesh/blockMesh/curvedEdges/spline.C
+++ b/src/mesh/blockMesh/curvedEdges/legacy/spline.C
@@ -72,9 +72,9 @@ Foam::spline::spline(const pointField& knotPoints)
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
-Foam::vector Foam::spline::position(const scalar mu) const
+Foam::point Foam::spline::position(const scalar mu) const
 {
-    vector loc(vector::zero);
+    point loc(point::zero);
 
     for (register label i=0; i < knots_.size(); i++)
     {
diff --git a/src/mesh/blockMesh/curvedEdges/spline.H b/src/mesh/blockMesh/curvedEdges/legacy/spline.H
similarity index 90%
rename from src/mesh/blockMesh/curvedEdges/spline.H
rename to src/mesh/blockMesh/curvedEdges/legacy/spline.H
index 74e73afdc652c00efe762d0d72b75cbb23ca7800..1055690933919980b3b5fa9e1959210dba04d165 100644
--- a/src/mesh/blockMesh/curvedEdges/spline.H
+++ b/src/mesh/blockMesh/curvedEdges/legacy/spline.H
@@ -81,6 +81,13 @@ public:
 
         // Access
 
+            //- Return the knot points in the spline
+            const pointField& knotPoints() const
+            {
+                return knots_;
+            }
+
+
             //- Return the number of knots in the spline
             label nKnots() const
             {
@@ -88,9 +95,9 @@ public:
             }
 
 
-        //- Return the position of a point on the curve given by
-        //  the parameter 0 <= lambda <= 1
-        vector position(const scalar) const;
+        //- Return the point position corresponding to the curve parameter
+        //  0 <= lambda <= 1
+        point position(const scalar) const;
 
         //- Return the length of the spline curve
         scalar length() const;
diff --git a/src/mesh/blockMesh/curvedEdges/lineDivide.H b/src/mesh/blockMesh/curvedEdges/lineDivide.H
index 37f1d9ba5c3670ea55ecb7295bf11acc8db9f129..1b3f33e69da6184b76f2b8adb699d360a749184f 100644
--- a/src/mesh/blockMesh/curvedEdges/lineDivide.H
+++ b/src/mesh/blockMesh/curvedEdges/lineDivide.H
@@ -55,14 +55,14 @@ class lineDivide
     // Private data
 
         pointField points_;
+
         scalarList divisions_;
 
 public:
 
     // Constructors
 
-        //- Construct from components
-        //  discretization and expansion ration
+        //- Construct from components with discretization and expansion ratio
         lineDivide
         (
             const curvedEdge&,
diff --git a/src/mesh/blockMesh/curvedEdges/lineEdge.C b/src/mesh/blockMesh/curvedEdges/lineEdge.C
index 72e173ea2ce3e6b88d953b1006de372cc78a9b80..586d495d491d8e0a556a0d96f81e630fe308a35b 100644
--- a/src/mesh/blockMesh/curvedEdges/lineEdge.C
+++ b/src/mesh/blockMesh/curvedEdges/lineEdge.C
@@ -46,23 +46,23 @@ Foam::lineEdge::lineEdge
     const label end
 )
 :
-    curvedEdge(points, start, end),
-    startPoint_(points_[start_]),
-    direction_(points_[end_] - points_[start_])
+    curvedEdge(points, start, end)
 {}
 
 
 Foam::lineEdge::lineEdge(const pointField& points, Istream& is)
 :
-    curvedEdge(points, is),
-    startPoint_(points_[start_]),
-    direction_(points_[end_] - points_[start_])
+    curvedEdge(points, is)
 {}
 
+// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * * //
+
+Foam::lineEdge::~lineEdge()
+{}
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
-Foam::vector Foam::lineEdge::position(const scalar lambda) const
+Foam::point Foam::lineEdge::position(const scalar lambda) const
 {
     if (lambda < 0 || lambda > 1)
     {
@@ -71,13 +71,13 @@ Foam::vector Foam::lineEdge::position(const scalar lambda) const
             << abort(FatalError);
     }
 
-    return startPoint_ + lambda*direction_;
+    return points_[start_] + lambda * (points_[end_] - points_[start_]);
 }
 
 
 Foam::scalar Foam::lineEdge::length() const
 {
-    return mag(direction_);
+    return mag(points_[end_] - points_[start_]);
 }
 
 
diff --git a/src/mesh/blockMesh/curvedEdges/lineEdge.H b/src/mesh/blockMesh/curvedEdges/lineEdge.H
index a601830f7f70e6449110a5949ef44cf41a734855..3d295912325ae204df275b720707defdb416a62a 100644
--- a/src/mesh/blockMesh/curvedEdges/lineEdge.H
+++ b/src/mesh/blockMesh/curvedEdges/lineEdge.H
@@ -26,7 +26,7 @@ Class
     Foam::lineEdge
 
 Description
-    Defines a straight line between the start point and the end point.
+    A straight edge between the start point and the end point.
 
 SourceFiles
     lineEdge.C
@@ -52,14 +52,6 @@ class lineEdge
 :
     public curvedEdge
 {
-    // Private data
-
-        //- Avoid repetitive calculation of the start point
-        const vector startPoint_;
-
-        //- Avoid repetitive calculation of the direction (end - start)
-        const vector direction_;
-
     // Private Member Functions
 
         //- Disallow default bitwise copy construct
@@ -68,7 +60,6 @@ class lineEdge
         //- Disallow default bitwise assignment
         void operator=(const lineEdge&);
 
-
 public:
 
     //- Runtime type information
@@ -79,20 +70,19 @@ public:
         //- Construct from components
         lineEdge(const pointField&, const label start, const label end);
 
-        //- Construct from Istream setting pointsList
+        //- Construct from Istream with a pointField
         lineEdge(const pointField&, Istream&);
 
 
-    // Destructor
-
-        virtual ~lineEdge(){}
+        //- Destructor
+        virtual ~lineEdge();
 
 
     // Member Functions
 
-        //- Return the position of a point on the curve given by
-        //  the parameter 0 <= lambda <= 1
-        vector position(const scalar) const;
+        //- Return the point position corresponding to the curve parameter
+        //  0 <= lambda <= 1
+        point position(const scalar) const;
 
         //- Return the length of the curve
         scalar length() const;
diff --git a/src/mesh/blockMesh/curvedEdges/polyLine.C b/src/mesh/blockMesh/curvedEdges/polyLine.C
index e8872de6a2b983bddc0fb2c99e9a6cc0ba9f60c7..08083041f2d5c7c82bb8b0fb86af14f3120d1468 100644
--- a/src/mesh/blockMesh/curvedEdges/polyLine.C
+++ b/src/mesh/blockMesh/curvedEdges/polyLine.C
@@ -29,29 +29,26 @@ License
 
 // * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
 
-// calcDistances generates the distances_ lookup table (cumulative
-// distance along the line) from the individual vectors to the points
-
-void Foam::polyLine::calcDistances()
+void Foam::polyLine::calcParam()
 {
-    distances_.setSize(controlPoints_.size());
+    param_.setSize(points_.size());
 
-    if (distances_.size())
+    if (param_.size())
     {
-        distances_[0] = 0.0;
+        param_[0] = 0.0;
 
-        for (label i=1; i<distances_.size(); i++)
+        for (label i=1; i < param_.size(); i++)
         {
-            distances_[i] = distances_[i-1] +
-                mag(controlPoints_[i] - controlPoints_[i-1]);
+            param_[i] = param_[i-1] + mag(points_[i] - points_[i-1]);
         }
 
-        // normalize
-        lineLength_ = distances_[distances_.size()-1];
-        for (label i=1; i<distances_.size(); i++)
+        // normalize on the interval 0-1
+        lineLength_ = param_.last();
+        for (label i=1; i < param_.size() - 1; i++)
         {
-            distances_[i] /= lineLength_;
+            param_[i] /= lineLength_;
         }
+        param_.last() = 1.0;
     }
     else
     {
@@ -65,20 +62,75 @@ void Foam::polyLine::calcDistances()
 
 Foam::polyLine::polyLine(const pointField& ps)
 :
-    controlPoints_(ps),
-    distances_(0),
-    lineLength_(0.0)
+    points_(ps),
+    lineLength_(0.0),
+    param_(0)
 {
-    calcDistances();
+    calcParam();
 }
 
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
-Foam::vector Foam::polyLine::position(const scalar lambda) const
+const Foam::pointField& Foam::polyLine::points() const
+{
+    return points_;
+}
+
+
+Foam::label Foam::polyLine::nSegments() const
+{
+    return points_.size()-1;
+}
+
+
+Foam::label Foam::polyLine::localParameter(scalar& lambda) const
 {
     // check range of lambda
+    if (lambda < 0 || lambda > 1)
+    {
+        FatalErrorIn("polyLine::localParameter(scalar&)")
+            << "Parameter out-of-range, "
+            << "lambda = " << lambda
+            << abort(FatalError);
+    }
 
+    // check endpoints
+    if (lambda < SMALL)
+    {
+        lambda = 0;
+        return 0;
+    }
+    else if (lambda > 1 - SMALL)
+    {
+        lambda = 1;
+        return nSegments();
+    }
+
+    // search table of cumulative distances to find which line-segment
+    // we are on. Check the upper bound.
+
+    label segmentI = 1;
+    while (param_[segmentI] < lambda)
+    {
+        segmentI++;
+    }
+    segmentI--;   // we want the corresponding lower bound
+
+    // the local parameter [0-1] on this line segment
+    lambda =
+    (
+        ( lambda - param_[segmentI] )
+      / ( param_[segmentI+1] - param_[segmentI] )
+    );
+
+    return segmentI;
+}
+
+
+Foam::point Foam::polyLine::position(const scalar lambda) const
+{
+    // check range of lambda
     if (lambda < 0 || lambda > 1)
     {
         FatalErrorIn("polyLine::position(const scalar)")
@@ -87,37 +139,36 @@ Foam::vector Foam::polyLine::position(const scalar lambda) const
             << abort(FatalError);
     }
 
-    // Quick calc of endpoints
-
+    // check endpoints
     if (lambda < SMALL)
     {
-        return controlPoints_[0];
+        return points_[0];
     }
     else if (lambda > 1 - SMALL)
     {
-        return controlPoints_[controlPoints_.size()-1];
+        return points_.last();
     }
 
 
-    // search table of cumulative distance to find which linesegment we
-    // are on
+    // search table of cumulative distances to find which line-segment
+    // we are on. Check the upper bound.
 
-    label i(0);
-    do
+    label segmentI = 1;
+    while (param_[segmentI] < lambda)
     {
-        i++;
-    } while (distances_[i] < lambda);
-
-    i--;               // we overshot!
-
-    // construct position vector
-    scalar offsetDist =
-        (lambda - distances_[i])
-       /(distances_[i+1] - distances_[i]);
+        ++segmentI;
+    }
+    --segmentI;   // we now want the lower bound
 
-    vector offsetV = controlPoints_[i+1] - controlPoints_[i];
 
-    return controlPoints_[i] + offsetDist*offsetV;
+    // linear interpolation
+    return
+    (
+        points_[segmentI]
+      + ( points_[segmentI+1] - points_[segmentI] )
+      * ( lambda - param_[segmentI] )
+      / ( param_[segmentI+1] - param_[segmentI] )
+    );
 }
 
 
diff --git a/src/mesh/blockMesh/curvedEdges/polyLine.H b/src/mesh/blockMesh/curvedEdges/polyLine.H
index 4ef97f30525b6368e3f9a0f7ddb6a4ef5107bd5b..ea8c59e389bf08cfa5a6d28c1cd5d1503342e107 100644
--- a/src/mesh/blockMesh/curvedEdges/polyLine.H
+++ b/src/mesh/blockMesh/curvedEdges/polyLine.H
@@ -26,10 +26,8 @@ Class
     Foam::polyLine
 
 Description
-    Defines a curvedEdge in terms of a series of straight line segments.
-
-    This is the basic polyLine class which implements just the line
-    (no topology - it is not derived from curvedEdge)
+    A series of straight line segments, which can also be interpreted as
+    a series of control points for splines, etc.
 
 SourceFiles
     polyLine.C
@@ -66,15 +64,26 @@ protected:
 
     // Protected data
 
-        pointField controlPoints_;
-        scalarList distances_;
+        //- The control points or ends of each segments
+        pointField points_;
+
+        //- The real line length
         scalar lineLength_;
 
+        //- The rational (0-1) cumulative parameter value for each point
+        scalarList param_;
+
     // Protected member functions
 
-        void calcDistances();
+        //- Precalculate the rational cumulative parameter value
+        //  and the line-length
+        void calcParam();
 
 
+        //- Return the line segment and the local parameter [0..1]
+        //  corresponding to the global lambda [0..1]
+        label localParameter(scalar& lambda) const;
+
 public:
 
     // Constructors
@@ -85,9 +94,15 @@ public:
 
     // Member Functions
 
-        //- Return the position of a point on the curve given by
-        //  the parameter 0 <= lambda <= 1
-        vector position(const scalar) const;
+        //- Return const-access to the control-points
+        const pointField& points() const;
+
+        //- Return the number of line segments
+        label nSegments() const;
+
+        //- Return the point position corresponding to the curve parameter
+        //  0 <= lambda <= 1
+        point position(const scalar) const;
 
         //- Return the length of the curve
         scalar length() const;
diff --git a/src/mesh/blockMesh/curvedEdges/polyLineEdge.C b/src/mesh/blockMesh/curvedEdges/polyLineEdge.C
index 89029d1af97726cf6895650b32e8baaa8e1bf971..1f038a78a85af3e3812bb3b0b0bf93eaa2e5c7cc 100644
--- a/src/mesh/blockMesh/curvedEdges/polyLineEdge.C
+++ b/src/mesh/blockMesh/curvedEdges/polyLineEdge.C
@@ -44,24 +44,30 @@ Foam::polyLineEdge::polyLineEdge
     const pointField& ps,
     const label start,
     const label end,
-    const pointField& otherpoints
+    const pointField& otherPoints
 )
 :
     curvedEdge(ps, start, end),
-    polyLine(knotlist(ps, start, end, otherpoints))
+    polyLine(appendEndPoints(ps, start_, end_, otherPoints))
 {}
 
 
 Foam::polyLineEdge::polyLineEdge(const pointField& ps, Istream& is)
 :
     curvedEdge(ps, is),
-    polyLine(knotlist(ps, start_, end_, pointField(is)))
+    polyLine(appendEndPoints(ps, start_, end_, pointField(is)))
+{}
+
+
+// * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
+
+Foam::polyLineEdge::~polyLineEdge()
 {}
 
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
-Foam::vector Foam::polyLineEdge::position(const scalar lambda) const
+Foam::point Foam::polyLineEdge::position(const scalar lambda) const
 {
     return polyLine::position(lambda);
 }
diff --git a/src/mesh/blockMesh/curvedEdges/polyLineEdge.H b/src/mesh/blockMesh/curvedEdges/polyLineEdge.H
index 532a91ad5d50c265ca3b42c76033a0d04fc4725c..e941bba716183daf3c111ae92bcb1925a781c2bf 100644
--- a/src/mesh/blockMesh/curvedEdges/polyLineEdge.H
+++ b/src/mesh/blockMesh/curvedEdges/polyLineEdge.H
@@ -26,8 +26,7 @@ Class
     Foam::polyLineEdge
 
 Description
-    Defines a curvedEdge in terms of a series of straight line segments.
-    This is the public face of polyLine
+    A curvedEdge defined in terms of a series of straight line segments.
 
 SourceFiles
     polyLineEdge.C
@@ -84,16 +83,15 @@ public:
         polyLineEdge(const pointField&, Istream&);
 
 
-    // Destructor
-
-        virtual ~polyLineEdge(){}
+        //- Destructor
+        virtual ~polyLineEdge();
 
 
     // Member Functions
 
-        //- Return the position of a point on the curve given by
-        //  the parameter 0 <= lambda <= 1
-        vector position(const scalar lambda) const;
+        //- Return the point position corresponding to the curve parameter
+        //  0 <= lambda <= 1
+        point position(const scalar lambda) const;
 
         //- Return the length of the curve
         scalar length() const;
diff --git a/src/mesh/blockMesh/curvedEdges/splineEdge.C b/src/mesh/blockMesh/curvedEdges/splineEdge.C
new file mode 100644
index 0000000000000000000000000000000000000000..810cd7dc9b87c912bc092c3ab5921e48505f1fde
--- /dev/null
+++ b/src/mesh/blockMesh/curvedEdges/splineEdge.C
@@ -0,0 +1,86 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2009-2009 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 2 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, write to the Free Software Foundation,
+    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+\*---------------------------------------------------------------------------*/
+
+#include "splineEdge.H"
+#include "addToRunTimeSelectionTable.H"
+
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+namespace Foam
+{
+    defineTypeNameAndDebug(splineEdge, 0);
+    addToRunTimeSelectionTable(curvedEdge, splineEdge, Istream);
+}
+
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+Foam::splineEdge::splineEdge
+(
+    const pointField& points,
+    const label start,
+    const label end,
+    const pointField& otherknots
+)
+:
+    curvedEdge(points, start, end),
+    CatmullRomSpline(appendEndPoints(points, start, end, otherknots))
+{}
+
+
+Foam::splineEdge::splineEdge(const pointField& points, Istream& is)
+:
+    curvedEdge(points, is),
+    CatmullRomSpline(appendEndPoints(points, start_, end_, pointField(is)))
+{
+    token t(is);
+    is.putBack(t);
+
+    // might have start/end tangents that we currently ignore
+    if (t == token::BEGIN_LIST)
+    {
+        vector fstend(is);
+        vector sndend(is);
+    }
+}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+Foam::point Foam::splineEdge::position(const scalar mu) const
+{
+    return CatmullRomSpline::position(mu);
+}
+
+
+Foam::scalar Foam::splineEdge::length() const
+{
+    return CatmullRomSpline::length();
+}
+
+
+// ************************************************************************* //
diff --git a/src/mesh/blockMesh/curvedEdges/splineEdge.H b/src/mesh/blockMesh/curvedEdges/splineEdge.H
new file mode 100644
index 0000000000000000000000000000000000000000..ba9501c20447b13857f7295724f8f18490f59e18
--- /dev/null
+++ b/src/mesh/blockMesh/curvedEdges/splineEdge.H
@@ -0,0 +1,111 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2009-2009 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 2 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, write to the Free Software Foundation,
+    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+Class
+    Foam::splineEdge
+
+Description
+    A curvedEdge interface for Catmull-Rom splines.
+
+SourceFiles
+    splineEdge.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef splineEdge_H
+#define splineEdge_H
+
+#include "curvedEdge.H"
+#include "CatmullRomSpline.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+/*---------------------------------------------------------------------------*\
+                      Class splineEdge Declaration
+\*---------------------------------------------------------------------------*/
+
+class splineEdge
+:
+    public curvedEdge,
+    public CatmullRomSpline
+{
+    // Private Member Functions
+
+        //- Disallow default bitwise copy construct
+        splineEdge(const splineEdge&);
+
+        //- Disallow default bitwise assignment
+        void operator=(const splineEdge&);
+
+
+public:
+
+    //- Runtime type information
+    TypeName("spline");
+
+
+    // Constructors
+
+        //- Construct from components
+        splineEdge
+        (
+            const pointField&,
+            const label start,
+            const label end,
+            const pointField& otherKnots
+        );
+
+        //- Construct from Istream setting pointsList
+        splineEdge(const pointField&, Istream&);
+
+
+    // Destructor
+
+        virtual ~splineEdge()
+        {}
+
+
+    // Member Functions
+
+        //- Return the point position corresponding to the curve parameter
+        //  0 <= lambda <= 1
+        virtual point position(const scalar) const;
+
+        //- Return the length of the simple spline curve
+        virtual scalar length() const;
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/meshTools/Make/files b/src/meshTools/Make/files
index 272f3e067c27f459aaa1cdab2288d7c320fb16a8..ada844b5a5d274f209d64431dfc32e888cb92434 100644
--- a/src/meshTools/Make/files
+++ b/src/meshTools/Make/files
@@ -50,6 +50,7 @@ indexedOctree/treeDataCell.C
 indexedOctree/treeDataEdge.C
 indexedOctree/treeDataFace.C
 indexedOctree/treeDataPoint.C
+indexedOctree/treeDataPrimitivePatchName.C
 indexedOctree/treeDataTriSurface.C
 
 searchableSurface = searchableSurface
diff --git a/src/meshTools/Make/options b/src/meshTools/Make/options
index 1d1560eb5a4b73f7c97f6644a30f146534b5bb5e..0ff22029260fd949e08c06a762e8352bcadf6d7c 100644
--- a/src/meshTools/Make/options
+++ b/src/meshTools/Make/options
@@ -1,6 +1,6 @@
 EXE_INC = \
     -I$(LIB_SRC)/triSurface/lnInclude \
-    -I$(LIB_SRC)/decompositionMethods/decompositionMethods/lnInclude \
+    -I$(LIB_SRC)/parallel/decompositionMethods/lnInclude \
     -I$(LIB_SRC)/lagrangian/basic/lnInclude
 
 LIB_LIBS = \
diff --git a/src/meshTools/PointEdgeWave/PointEdgeWave.C b/src/meshTools/PointEdgeWave/PointEdgeWave.C
index 81309490d5f31745c55629bd4dbf250c05a86f79..7dcaea3f85077b7b5237cbe304709414454d068c 100644
--- a/src/meshTools/PointEdgeWave/PointEdgeWave.C
+++ b/src/meshTools/PointEdgeWave/PointEdgeWave.C
@@ -994,7 +994,7 @@ Foam::label Foam::PointEdgeWave<Type>::iterate(const label maxIter)
 
     label iter = 0;
 
-    while(iter < maxIter)
+    while (iter < maxIter)
     {
         if (debug)
         {
diff --git a/src/meshTools/cellClassification/cellClassification.C b/src/meshTools/cellClassification/cellClassification.C
index 518fd5ae4a03e171ff1b85ab39a2bc935dabf7bd..58c1cfeb4670a2c0be316e365e103bb93134e2c5 100644
--- a/src/meshTools/cellClassification/cellClassification.C
+++ b/src/meshTools/cellClassification/cellClassification.C
@@ -683,7 +683,7 @@ Foam::label Foam::cellClassification::fillHangingCells
 {
     label nTotChanged = 0;
 
-    for(label iter = 0; iter < maxIter; iter++)
+    for (label iter = 0; iter < maxIter; iter++)
     {
         label nChanged = 0;
 
@@ -740,7 +740,7 @@ Foam::label Foam::cellClassification::fillRegionEdges
 {
     label nTotChanged = 0;
 
-    for(label iter = 0; iter < maxIter; iter++)
+    for (label iter = 0; iter < maxIter; iter++)
     {
         // Get interface between meshType cells and non-meshType cells as a list
         // of faces and for each face the cell which is the meshType.
@@ -809,7 +809,7 @@ Foam::label Foam::cellClassification::fillRegionPoints
 {
     label nTotChanged = 0;
 
-    for(label iter = 0; iter < maxIter; iter++)
+    for (label iter = 0; iter < maxIter; iter++)
     {
         // Get interface between meshType cells and non-meshType cells as a list
         // of faces and for each face the cell which is the meshType.
diff --git a/src/meshTools/cellDist/cellDistFuncs.C b/src/meshTools/cellDist/cellDistFuncs.C
index bca2841273c45d8782658aa9ef4526ac95dffbd8..76ec6eee355a5644a866ae445f173c9538de9a99 100644
--- a/src/meshTools/cellDist/cellDistFuncs.C
+++ b/src/meshTools/cellDist/cellDistFuncs.C
@@ -121,7 +121,7 @@ Foam::scalar Foam::cellDistFuncs::smallestDist
     scalar minDist = GREAT;
     minFaceI = -1;
 
-    for(label wallFaceI = 0; wallFaceI < nWallFaces; wallFaceI++)
+    for (label wallFaceI = 0; wallFaceI < nWallFaces; wallFaceI++)
     {
         label patchFaceI = wallFaces[wallFaceI];
 
diff --git a/src/meshTools/directMapped/directMappedPolyPatch/directMappedPolyPatch.C b/src/meshTools/directMapped/directMappedPolyPatch/directMappedPolyPatch.C
index e16b8204f7c4ac72211ed3783173bb4c9312e385..0da60686813aa8a54acdeed7eb12a11553562ad8 100644
--- a/src/meshTools/directMapped/directMappedPolyPatch/directMappedPolyPatch.C
+++ b/src/meshTools/directMapped/directMappedPolyPatch/directMappedPolyPatch.C
@@ -145,44 +145,49 @@ Foam::directMappedPolyPatch::~directMappedPolyPatch()
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
 //- Initialise the calculation of the patch geometry
-void Foam::directMappedPolyPatch::initGeometry()
+void Foam::directMappedPolyPatch::initGeometry(PstreamBuffers& pBufs)
 {
-    polyPatch::initGeometry();
-    directMappedPatchBase::clearOut();
+    polyPatch::initGeometry(pBufs);
 }
 
 //- Calculate the patch geometry
-void Foam::directMappedPolyPatch::calcGeometry()
+void Foam::directMappedPolyPatch::calcGeometry(PstreamBuffers& pBufs)
 {
-    polyPatch::calcGeometry();
+    polyPatch::calcGeometry(pBufs);
     directMappedPatchBase::clearOut();
 }
 
 //- Initialise the patches for moving points
-void Foam::directMappedPolyPatch::initMovePoints(const pointField& p)
+void Foam::directMappedPolyPatch::initMovePoints
+(
+    PstreamBuffers& pBufs,
+    const pointField& p
+)
 {
-    polyPatch::initMovePoints(p);
-    directMappedPatchBase::clearOut();
+    polyPatch::initMovePoints(pBufs, p);
 }
 
 //- Correct patches after moving points
-void Foam::directMappedPolyPatch::movePoints(const pointField& p)
+void Foam::directMappedPolyPatch::movePoints
+(
+    PstreamBuffers& pBufs,
+    const pointField& p
+)
 {
-    polyPatch::movePoints(p);
+    polyPatch::movePoints(pBufs, p);
     directMappedPatchBase::clearOut();
 }
 
 //- Initialise the update of the patch topology
-void Foam::directMappedPolyPatch::initUpdateMesh()
+void Foam::directMappedPolyPatch::initUpdateMesh(PstreamBuffers& pBufs)
 {
-    polyPatch::initUpdateMesh();
-    directMappedPatchBase::clearOut();
+    polyPatch::initUpdateMesh(pBufs);
 }
 
 //- Update of the patch topology
-void Foam::directMappedPolyPatch::updateMesh()
+void Foam::directMappedPolyPatch::updateMesh(PstreamBuffers& pBufs)
 {
-    polyPatch::updateMesh();
+    polyPatch::updateMesh(pBufs);
     directMappedPatchBase::clearOut();
 }
 
diff --git a/src/meshTools/directMapped/directMappedPolyPatch/directMappedPolyPatch.H b/src/meshTools/directMapped/directMappedPolyPatch/directMappedPolyPatch.H
index 8cb5907c9514da934a6e05e6409bf31e9fece070..654c3470a481d97343027883a86333ea509898b3 100644
--- a/src/meshTools/directMapped/directMappedPolyPatch/directMappedPolyPatch.H
+++ b/src/meshTools/directMapped/directMappedPolyPatch/directMappedPolyPatch.H
@@ -65,22 +65,22 @@ class directMappedPolyPatch
 protected:
 
         //- Initialise the calculation of the patch geometry
-        virtual void initGeometry();
+        virtual void initGeometry(PstreamBuffers&);
 
         //- Calculate the patch geometry
-        virtual void calcGeometry();
+        virtual void calcGeometry(PstreamBuffers&);
 
         //- Initialise the patches for moving points
-        virtual void initMovePoints(const pointField&);
+        virtual void initMovePoints(PstreamBuffers&, const pointField&);
 
         //- Correct patches after moving points
-        virtual void movePoints(const pointField&);
+        virtual void movePoints(PstreamBuffers&, const pointField&);
 
         //- Initialise the update of the patch topology
-        virtual void initUpdateMesh();
+        virtual void initUpdateMesh(PstreamBuffers&);
 
         //- Update of the patch topology
-        virtual void updateMesh();
+        virtual void updateMesh(PstreamBuffers&);
 
 
 public:
diff --git a/src/meshTools/directMapped/directMappedPolyPatch/directMappedWallPolyPatch.C b/src/meshTools/directMapped/directMappedPolyPatch/directMappedWallPolyPatch.C
index 6d6038430d21ad7189b8b901e1dd4309ef37f735..c4295a31a433550ddb49796cc4af29172073ddcc 100644
--- a/src/meshTools/directMapped/directMappedPolyPatch/directMappedWallPolyPatch.C
+++ b/src/meshTools/directMapped/directMappedPolyPatch/directMappedWallPolyPatch.C
@@ -150,44 +150,49 @@ Foam::directMappedWallPolyPatch::~directMappedWallPolyPatch()
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
 //- Initialise the calculation of the patch geometry
-void Foam::directMappedWallPolyPatch::initGeometry()
+void Foam::directMappedWallPolyPatch::initGeometry(PstreamBuffers& pBufs)
 {
-    wallPolyPatch::initGeometry();
-    directMappedPatchBase::clearOut();
+    wallPolyPatch::initGeometry(pBufs);
 }
 
 //- Calculate the patch geometry
-void Foam::directMappedWallPolyPatch::calcGeometry()
+void Foam::directMappedWallPolyPatch::calcGeometry(PstreamBuffers& pBufs)
 {
-    wallPolyPatch::calcGeometry();
+    wallPolyPatch::calcGeometry(pBufs);
     directMappedPatchBase::clearOut();
 }
 
 //- Initialise the patches for moving points
-void Foam::directMappedWallPolyPatch::initMovePoints(const pointField& p)
+void Foam::directMappedWallPolyPatch::initMovePoints
+(
+    PstreamBuffers& pBufs,
+    const pointField& p
+)
 {
-    wallPolyPatch::initMovePoints(p);
-    directMappedPatchBase::clearOut();
+    wallPolyPatch::initMovePoints(pBufs, p);
 }
 
 //- Correct patches after moving points
-void Foam::directMappedWallPolyPatch::movePoints(const pointField& p)
+void Foam::directMappedWallPolyPatch::movePoints
+(
+    PstreamBuffers& pBufs,
+    const pointField& p
+)
 {
-    wallPolyPatch::movePoints(p);
+    wallPolyPatch::movePoints(pBufs, p);
     directMappedPatchBase::clearOut();
 }
 
 //- Initialise the update of the patch topology
-void Foam::directMappedWallPolyPatch::initUpdateMesh()
+void Foam::directMappedWallPolyPatch::initUpdateMesh(PstreamBuffers& pBufs)
 {
-    wallPolyPatch::initUpdateMesh();
-    directMappedPatchBase::clearOut();
+    wallPolyPatch::initUpdateMesh(pBufs);
 }
 
 //- Update of the patch topology
-void Foam::directMappedWallPolyPatch::updateMesh()
+void Foam::directMappedWallPolyPatch::updateMesh(PstreamBuffers& pBufs)
 {
-    wallPolyPatch::updateMesh();
+    wallPolyPatch::updateMesh(pBufs);
     directMappedPatchBase::clearOut();
 }
 
diff --git a/src/meshTools/directMapped/directMappedPolyPatch/directMappedWallPolyPatch.H b/src/meshTools/directMapped/directMappedPolyPatch/directMappedWallPolyPatch.H
index 0a2f5bdfd37f2536ed6feae5161df29d8d755614..b0657164da9304bc6db68d48c05dd74c63253745 100644
--- a/src/meshTools/directMapped/directMappedPolyPatch/directMappedWallPolyPatch.H
+++ b/src/meshTools/directMapped/directMappedPolyPatch/directMappedWallPolyPatch.H
@@ -65,22 +65,22 @@ class directMappedWallPolyPatch
 protected:
 
         //- Initialise the calculation of the patch geometry
-        virtual void initGeometry();
+        virtual void initGeometry(PstreamBuffers&);
 
         //- Calculate the patch geometry
-        virtual void calcGeometry();
+        virtual void calcGeometry(PstreamBuffers&);
 
         //- Initialise the patches for moving points
-        virtual void initMovePoints(const pointField&);
+        virtual void initMovePoints(PstreamBuffers&, const pointField&);
 
         //- Correct patches after moving points
-        virtual void movePoints(const pointField&);
+        virtual void movePoints(PstreamBuffers&, const pointField&);
 
         //- Initialise the update of the patch topology
-        virtual void initUpdateMesh();
+        virtual void initUpdateMesh(PstreamBuffers&);
 
         //- Update of the patch topology
-        virtual void updateMesh();
+        virtual void updateMesh(PstreamBuffers&);
 
 
 public:
diff --git a/src/meshTools/indexedOctree/treeDataPrimitivePatch.C b/src/meshTools/indexedOctree/treeDataPrimitivePatch.C
new file mode 100644
index 0000000000000000000000000000000000000000..97b7821b1e7022c18698aaaab012e4fea25dcf9d
--- /dev/null
+++ b/src/meshTools/indexedOctree/treeDataPrimitivePatch.C
@@ -0,0 +1,567 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 1991-2009 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 2 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, write to the Free Software Foundation,
+    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+\*---------------------------------------------------------------------------*/
+
+#include "treeDataPrimitivePatch.H"
+#include "indexedOctree.H"
+#include "triangleFuncs.H"
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+template
+<
+    class Face,
+    template<class> class FaceList,
+    class PointField,
+    class PointType
+>
+Foam::scalar
+Foam::treeDataPrimitivePatch<Face, FaceList, PointField, PointType>::
+tolSqr = sqr(1E-6);
+
+
+// * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
+
+template
+<
+    class Face,
+    template<class> class FaceList,
+    class PointField,
+    class PointType
+>
+Foam::treeBoundBox
+Foam::treeDataPrimitivePatch<Face, FaceList, PointField, PointType>::
+calcBb
+(
+    const pointField& points,
+    const face& f
+)
+{
+    treeBoundBox bb(points[f[0]], points[f[0]]);
+
+    for (label fp = 1; fp < f.size(); fp++)
+    {
+        const point& p = points[f[fp]];
+
+        bb.min() = min(bb.min(), p);
+        bb.max() = max(bb.max(), p);
+    }
+    return bb;
+}
+
+
+template
+<
+    class Face,
+    template<class> class FaceList,
+    class PointField,
+    class PointType
+>
+void Foam::treeDataPrimitivePatch<Face, FaceList, PointField, PointType>::
+update()
+{
+    if (cacheBb_)
+    {
+        bbs_.setSize(patch_.size());
+
+        forAll(patch_, i)
+        {
+            bbs_[i] = calcBb(patch_.points(), patch_[i]);
+        }
+    }
+}
+
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+// Construct from components
+template
+<
+    class Face,
+    template<class> class FaceList,
+    class PointField,
+    class PointType
+>
+Foam::treeDataPrimitivePatch<Face, FaceList, PointField, PointType>::
+treeDataPrimitivePatch
+(
+    const bool cacheBb,
+    const PrimitivePatch<Face, FaceList, PointField, PointType>& patch
+)
+:
+    patch_(patch),
+    cacheBb_(cacheBb)
+{
+    update();
+}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+template
+<
+    class Face,
+    template<class> class FaceList,
+    class PointField,
+    class PointType
+>
+Foam::pointField
+Foam::treeDataPrimitivePatch<Face, FaceList, PointField, PointType>::
+points() const
+{
+    pointField cc(patch_.size());
+
+    forAll(patch_, i)
+    {
+        cc[i] = patch_[i].centre(patch_.points());
+    }
+
+    return cc;
+}
+
+
+//- Get type (inside,outside,mixed,unknown) of point w.r.t. surface.
+//  Only makes sense for closed surfaces.
+template
+<
+    class Face,
+    template<class> class FaceList,
+    class PointField,
+    class PointType
+>
+Foam::label
+Foam::treeDataPrimitivePatch<Face, FaceList, PointField, PointType>::
+getVolumeType
+(
+    const indexedOctree
+    <
+        treeDataPrimitivePatch
+        <
+            Face,
+            FaceList,
+            PointField,
+            PointType
+        >
+    >& oc,
+    const point& sample
+) const
+{
+    // Need to determine whether sample is 'inside' or 'outside'
+    // Done by finding nearest face. This gives back a face which is
+    // guaranteed to contain nearest point. This point can be
+    // - in interior of face: compare to face normal
+    // - on edge of face: compare to edge normal
+    // - on point of face: compare to point normal
+    // Unfortunately the octree does not give us back the intersection point
+    // or where on the face it has hit so we have to recreate all that
+    // information.
+
+
+    // Find nearest face to sample
+    pointIndexHit info = oc.findNearest(sample, sqr(GREAT));
+
+    if (info.index() == -1)
+    {
+        FatalErrorIn
+        (
+            "treeDataPrimitivePatch::getSampleType"
+            "(indexedOctree<treeDataPrimitivePatch>&, const point&)"
+        )   << "Could not find " << sample << " in octree."
+            << abort(FatalError);
+    }
+
+
+    // Get actual intersection point on face
+    label faceI = info.index();
+
+    if (debug & 2)
+    {
+        Pout<< "getSampleType : sample:" << sample
+            << " nearest face:" << faceI;
+    }
+
+    const pointField& points = patch_.localPoints();
+    const face& f = patch_.localFaces()[faceI];
+
+    // Retest to classify where on face info is. Note: could be improved. We
+    // already have point.
+
+    pointHit curHit = f.nearestPoint(sample, points);
+    const vector area = f.normal(points);
+    const point& curPt = curHit.rawPoint();
+
+    //
+    // 1] Check whether sample is above face
+    //
+
+    if (curHit.hit())
+    {
+        // Nearest point inside face. Compare to face normal.
+
+        if (debug & 2)
+        {
+            Pout<< " -> face hit:" << curPt
+                << " comparing to face normal " << area << endl;
+        }
+        return indexedOctree<treeDataPrimitivePatch>::getSide
+        (
+            area,
+            sample - curPt
+        );
+    }
+
+    if (debug & 2)
+    {
+        Pout<< " -> face miss:" << curPt;
+    }
+
+    //
+    // 2] Check whether intersection is on one of the face vertices or
+    //    face centre
+    //
+
+    const scalar typDimSqr = mag(area) + VSMALL;
+
+    forAll(f, fp)
+    {
+        if ((magSqr(points[f[fp]] - curPt)/typDimSqr) < tolSqr)
+        {
+            // Face intersection point equals face vertex fp
+
+            // Calculate point normal (wrong: uses face normals instead of
+            // triangle normals)
+
+            return indexedOctree<treeDataPrimitivePatch>::getSide
+            (
+                patch_.pointNormals()[f[fp]],
+                sample - curPt
+            );
+        }
+    }
+
+    const point fc(f.centre(points));
+
+    if ((magSqr(fc - curPt)/typDimSqr) < tolSqr)
+    {
+        // Face intersection point equals face centre. Normal at face centre
+        // is already average of face normals
+
+        if (debug & 2)
+        {
+            Pout<< " -> centre hit:" << fc
+                << " distance:" << magSqr(fc - curPt)/typDimSqr << endl;
+        }
+
+        return indexedOctree<treeDataPrimitivePatch>::getSide
+        (
+            area,
+            sample - curPt
+        );
+    }
+
+
+
+    //
+    // 3] Get the 'real' edge the face intersection is on
+    //
+
+    const labelList& fEdges = patch_.faceEdges()[faceI];
+
+    forAll(fEdges, fEdgeI)
+    {
+        label edgeI = fEdges[fEdgeI];
+        const edge& e = patch_.edges()[edgeI];
+
+        pointHit edgeHit = e.line(points).nearestDist(sample);
+
+        if ((magSqr(edgeHit.rawPoint() - curPt)/typDimSqr) < tolSqr)
+        {
+            // Face intersection point lies on edge e
+
+            // Calculate edge normal (wrong: uses face normals instead of
+            // triangle normals)
+            const labelList& eFaces = patch_.edgeFaces()[edgeI];
+
+            vector edgeNormal(vector::zero);
+
+            forAll(eFaces, i)
+            {
+                edgeNormal += patch_.faceNormal()[eFaces[i]];
+            }
+
+            if (debug & 2)
+            {
+                Pout<< " -> real edge hit point:" << edgeHit.rawPoint()
+                    << " comparing to edge normal:" << edgeNormal
+                    << endl;
+            }
+
+            // Found face intersection point on this edge. Compare to edge
+            // normal
+            return indexedOctree<treeDataPrimitivePatch>::getSide
+            (
+                edgeNormal,
+                sample - curPt
+            );
+        }
+    }
+
+
+    //
+    // 4] Get the internal edge the face intersection is on
+    //
+
+    forAll(f, fp)
+    {
+        pointHit edgeHit = linePointRef
+        (
+            points[f[fp]],
+            fc
+        ).nearestDist(sample);
+
+        if ((magSqr(edgeHit.rawPoint() - curPt)/typDimSqr) < tolSqr)
+        {
+            // Face intersection point lies on edge between two face triangles
+
+            // Calculate edge normal as average of the two triangle normals
+            vector e = points[f[fp]] - fc;
+            vector ePrev = points[f[f.rcIndex(fp)]] - fc;
+            vector eNext = points[f[f.fcIndex(fp)]] - fc;
+
+            vector nLeft = ePrev ^ e;
+            nLeft /= mag(nLeft) + VSMALL;
+
+            vector nRight = e ^ eNext;
+            nRight /= mag(nRight) + VSMALL;
+
+            if (debug & 2)
+            {
+                Pout<< " -> internal edge hit point:" << edgeHit.rawPoint()
+                    << " comparing to edge normal "
+                    << 0.5*(nLeft + nRight)
+                    << endl;
+            }
+
+            // Found face intersection point on this edge. Compare to edge
+            // normal
+            return indexedOctree<treeDataPrimitivePatch>::getSide
+            (
+                0.5*(nLeft + nRight),
+                sample - curPt
+            );
+        }
+    }
+
+    if (debug & 2)
+    {
+        Pout<< "Did not find sample " << sample
+            << " anywhere related to nearest face " << faceI << endl
+            << "Face:";
+
+        forAll(f, fp)
+        {
+            Pout<< "    vertex:" << f[fp] << "  coord:" << points[f[fp]]
+                << endl;
+        }
+    }
+
+    // Can't determine status of sample with respect to nearest face.
+    // Either
+    // - tolerances are wrong. (if e.g. face has zero area)
+    // - or (more likely) surface is not closed.
+
+    return indexedOctree<treeDataPrimitivePatch>::UNKNOWN;
+}
+
+
+// Check if any point on shape is inside cubeBb.
+template
+<
+    class Face,
+    template<class> class FaceList,
+    class PointField,
+    class PointType
+>
+bool
+Foam::treeDataPrimitivePatch<Face, FaceList, PointField, PointType>::
+overlaps
+(
+    const label index,
+    const treeBoundBox& cubeBb
+) const
+{
+    // 1. Quick rejection: bb does not intersect face bb at all
+    if (cacheBb_)
+    {
+        if (!cubeBb.overlaps(bbs_[index]))
+        {
+            return false;
+        }
+    }
+    else
+    {
+        if (!cubeBb.overlaps(calcBb(patch_.points(), patch_[index])))
+        {
+            return false;
+        }
+    }
+
+
+    // 2. Check if one or more face points inside
+
+    const pointField& points = patch_.points();
+    const face& f = patch_[index];
+
+    forAll(f, fp)
+    {
+        if (cubeBb.contains(points[f[fp]]))
+        {
+            return true;
+        }
+    }
+
+    // 3. Difficult case: all points are outside but connecting edges might
+    // go through cube. Use triangle-bounding box intersection.
+    const point fc = f.centre(points);
+
+    forAll(f, fp)
+    {
+        bool triIntersects = triangleFuncs::intersectBb
+        (
+            points[f[fp]],
+            points[f[f.fcIndex(fp)]],
+            fc,
+            cubeBb
+        );
+
+        if (triIntersects)
+        {
+            return true;
+        }
+    }
+    return false;
+}
+
+
+// Calculate nearest point to sample. Updates (if any) nearestDistSqr, minIndex,
+// nearestPoint.
+template
+<
+    class Face,
+    template<class> class FaceList,
+    class PointField,
+    class PointType
+>
+void
+Foam::treeDataPrimitivePatch<Face, FaceList, PointField, PointType>::
+findNearest
+(
+    const labelList& indices,
+    const point& sample,
+
+    scalar& nearestDistSqr,
+    label& minIndex,
+    point& nearestPoint
+) const
+{
+    const pointField& points = patch_.points();
+
+    forAll(indices, i)
+    {
+        label index = indices[i];
+
+        const face& f = patch_[index];
+
+        pointHit nearHit = f.nearestPoint(sample, points);
+        scalar distSqr = sqr(nearHit.distance());
+
+        if (distSqr < nearestDistSqr)
+        {
+            nearestDistSqr = distSqr;
+            minIndex = index;
+            nearestPoint = nearHit.rawPoint();
+        }
+    }
+}
+
+
+template
+<
+    class Face,
+    template<class> class FaceList,
+    class PointField,
+    class PointType
+>
+bool
+Foam::treeDataPrimitivePatch<Face, FaceList, PointField, PointType>::
+intersects
+(
+    const label index,
+    const point& start,
+    const point& end,
+    point& intersectionPoint
+) const
+{
+    // Do quick rejection test
+    if (cacheBb_)
+    {
+        const treeBoundBox& faceBb = bbs_[index];
+
+        if ((faceBb.posBits(start) & faceBb.posBits(end)) != 0)
+        {
+            // start and end in same block outside of faceBb.
+            return false;
+        }
+    }
+
+    const pointField& points = patch_.points();
+    const face& f = patch_[index];
+    const point fc = f.centre(points);
+    const vector dir(end - start);
+
+    pointHit inter = patch_[index].intersection
+    (
+        start,
+        dir,
+        fc,
+        points,
+        intersection::HALF_RAY
+    );
+
+    if (inter.hit() && inter.distance() <= 1)
+    {
+        // Note: no extra test on whether intersection is in front of us
+        // since using half_ray
+        intersectionPoint = inter.hitPoint();
+        return true;
+    }
+    else
+    {
+        return false;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/src/meshTools/indexedOctree/treeDataPrimitivePatch.H b/src/meshTools/indexedOctree/treeDataPrimitivePatch.H
new file mode 100644
index 0000000000000000000000000000000000000000..9fd4da2fd5a61021afe2e18e2ed9183108dc62dc
--- /dev/null
+++ b/src/meshTools/indexedOctree/treeDataPrimitivePatch.H
@@ -0,0 +1,210 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 1991-2009 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 2 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, write to the Free Software Foundation,
+    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+Class
+    Foam::treeDataPrimitivePatch
+
+Description
+    Encapsulation of data needed to search on PrimitivePatches
+
+SourceFiles
+    treeDataPrimitivePatch.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef treeDataPrimitivePatch_H
+#define treeDataPrimitivePatch_H
+
+#include "PrimitivePatch.H"
+//#include "indexedOctree.H"
+#include "treeBoundBoxList.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+// Forward declaration of classes
+template<class Type> class indexedOctree;
+
+
+/*---------------------------------------------------------------------------*\
+                 Class treeDataPrimitivePatchName Declaration
+\*---------------------------------------------------------------------------*/
+
+TemplateName(treeDataPrimitivePatch);
+
+
+/*---------------------------------------------------------------------------*\
+                           Class treeDataPrimitivePatch Declaration
+\*---------------------------------------------------------------------------*/
+
+template
+<
+    class Face,
+    template<class> class FaceList,
+    class PointField,
+    class PointType=point
+>
+class treeDataPrimitivePatch
+:
+    public treeDataPrimitivePatchName
+{
+    // Static data
+
+        //- tolerance on linear dimensions
+        static scalar tolSqr;
+
+    // Private data
+
+        //- Underlying geometry
+        const PrimitivePatch<Face, FaceList, PointField, PointType>& patch_;
+
+        //- Whether to precalculate and store face bounding box
+        const bool cacheBb_;
+
+        //- face bounding boxes (valid only if cacheBb_)
+        treeBoundBoxList bbs_;
+
+
+    // Private Member Functions
+
+        //- Calculate face bounding box
+        static treeBoundBox calcBb(const pointField&, const face&);
+
+        //- Initialise all member data
+        void update();
+
+public:
+
+    // Constructors
+
+        //- Construct from patch.
+        treeDataPrimitivePatch
+        (
+            const bool cacheBb,
+            const PrimitivePatch<Face, FaceList, PointField, PointType>&
+        );
+
+
+    // Member Functions
+
+        // Access
+
+            label size() const
+            {
+                return patch_.size();
+            }
+
+            //- Get representative point cloud for all shapes inside
+            //  (one point per shape)
+            pointField points() const;
+
+
+        // Search
+
+            //- Get type (inside,outside,mixed,unknown) of point w.r.t. surface.
+            //  Only makes sense for closed surfaces.
+            label getVolumeType
+            (
+                const indexedOctree
+                <
+                    treeDataPrimitivePatch
+                    <
+                        Face,
+                        FaceList,
+                        PointField,
+                        PointType
+                    >
+                >&,
+                const point&
+            ) const;
+
+            //- Does (bb of) shape at index overlap bb
+            bool overlaps
+            (
+                const label index,
+                const treeBoundBox& sampleBb
+            ) const;
+
+            //- Calculates nearest (to sample) point in shape.
+            //  Returns actual point and distance (squared)
+            void findNearest
+            (
+                const labelList& indices,
+                const point& sample,
+
+                scalar& nearestDistSqr,
+                label& nearestIndex,
+                point& nearestPoint
+            ) const;
+
+            //- Calculates nearest (to line) point in shape.
+            //  Returns point and distance (squared)
+            void findNearest
+            (
+                const labelList& indices,
+                const linePointRef& ln,
+
+                treeBoundBox& tightest,
+                label& minIndex,
+                point& linePoint,
+                point& nearestPoint
+            ) const
+            {
+                notImplemented
+                (
+                    "treeDataPrimitivePatch::findNearest"
+                    "(const labelList&, const linePointRef&, ..)"
+                );
+            }
+
+            //- Calculate intersection of shape with ray. Sets result
+            //  accordingly
+            bool intersects
+            (
+                const label index,
+                const point& start,
+                const point& end,
+                point& result
+            ) const;
+
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#ifdef NoRepository
+#   include "treeDataPrimitivePatch.C"
+#endif
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/PVFoamReader/vtkFoamData.cxx b/src/meshTools/indexedOctree/treeDataPrimitivePatchName.C
similarity index 77%
rename from applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/PVFoamReader/vtkFoamData.cxx
rename to src/meshTools/indexedOctree/treeDataPrimitivePatchName.C
index 4f89b6e25d0fddc5a8e1aff6f77b8023522ce9d6..59cf44b8a68c89d92546437631f65ddebfd947fb 100644
--- a/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/PVFoamReader/vtkFoamData.cxx
+++ b/src/meshTools/indexedOctree/treeDataPrimitivePatchName.C
@@ -22,28 +22,12 @@ License
     along with OpenFOAM; if not, write to the Free Software Foundation,
     Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
 
-Description
-
 \*---------------------------------------------------------------------------*/
 
-#include <ctype.h>
-
-#include "vtkFoamData.h"
-#include "vtkObjectFactory.h"
-
-vtkCxxRevisionMacro(vtkFoamData, "$Revision: 1.20 $");
-vtkStandardNewMacro(vtkFoamData);
-
-// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
-
-vtkFoamData::vtkFoamData()
-{}
-
-
-// * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
+#include "treeDataPrimitivePatch.H"
 
-vtkFoamData::~vtkFoamData()
-{}
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
 
+defineTypeNameAndDebug(Foam::treeDataPrimitivePatchName, 0);
 
 // ************************************************************************* //
diff --git a/src/meshTools/indexedOctree/treeDataTriSurface.C b/src/meshTools/indexedOctree/treeDataTriSurface.C
index ea519291e3a275351622082b35d45413ddab825d..b4ec2af89f05acb6d148542eea4a69c728dfb06a 100644
--- a/src/meshTools/indexedOctree/treeDataTriSurface.C
+++ b/src/meshTools/indexedOctree/treeDataTriSurface.C
@@ -276,7 +276,7 @@ bool Foam::treeDataTriSurface::overlaps
     const point& p1 = points[f[1]];
     const point& p2 = points[f[2]];
 
-    boundBox triBb(p0, p0);
+    treeBoundBox triBb(p0, p0);
     triBb.min() = min(triBb.min(), p1);
     triBb.min() = min(triBb.min(), p2);
 
diff --git a/src/meshTools/meshSearch/meshSearch.C b/src/meshTools/meshSearch/meshSearch.C
index 9b822b11516ad57114fa7b786b564afd93ac47a9..7448c7faa3df702b6abcab1495f15f2c8665da92 100644
--- a/src/meshTools/meshSearch/meshSearch.C
+++ b/src/meshTools/meshSearch/meshSearch.C
@@ -791,7 +791,7 @@ Foam::label Foam::meshSearch::findCell
                       + offset(curHit.hitPoint(), curHit.index(), edgeVec);
                 }
             }
-            while(true);
+            while (true);
         }
         else
         {
@@ -928,7 +928,7 @@ Foam::List<Foam::pointIndexHit> Foam::meshSearch::intersections
               + offset(bHit.hitPoint(), bHit.index(), edgeVec);
         }
 
-    } while(bHit.hit());
+    } while (bHit.hit());
 
 
     hits.shrink();
diff --git a/src/meshTools/octree/octreeDataPoint.H b/src/meshTools/octree/octreeDataPoint.H
index 32e47097345141f2883cbbb34756b178e8969e1b..8435b598862a4212658bea447557573b4a487f65 100644
--- a/src/meshTools/octree/octreeDataPoint.H
+++ b/src/meshTools/octree/octreeDataPoint.H
@@ -69,7 +69,7 @@ public:
     // Constructors
 
         //- Construct from components. Holds reference to points!
-        octreeDataPoint(const pointField&);
+        explicit octreeDataPoint(const pointField&);
 
 
     // Member Functions
diff --git a/src/meshTools/octree/treeBoundBox.H b/src/meshTools/octree/treeBoundBox.H
index 01660d618d33e5eb05d6e9a101519dc51d6f4858..a0fa8a1f51ad3adc029493fc5c519eb936ade7ba 100644
--- a/src/meshTools/octree/treeBoundBox.H
+++ b/src/meshTools/octree/treeBoundBox.H
@@ -170,11 +170,11 @@ public:
         inline treeBoundBox(const point& min, const point& max);
 
         //- Construct from components
-        inline treeBoundBox(const boundBox& bb);
+        explicit inline treeBoundBox(const boundBox& bb);
 
         //- Construct as the bounding box of the given pointField.
         //  Local processor domain only (no reduce as in boundBox)
-        treeBoundBox(const UList<point>&);
+        explicit treeBoundBox(const UList<point>&);
 
         //- Construct as subset of points
         //  Local processor domain only (no reduce as in boundBox)
diff --git a/src/meshTools/polyMeshZipUpCells/polyMeshZipUpCells.C b/src/meshTools/polyMeshZipUpCells/polyMeshZipUpCells.C
index 0d4ec63faa85b81bb425257a43825df670026ef1..17a598626047230d32f8190bc3c719a5c79036ce 100644
--- a/src/meshTools/polyMeshZipUpCells/polyMeshZipUpCells.C
+++ b/src/meshTools/polyMeshZipUpCells/polyMeshZipUpCells.C
@@ -154,7 +154,7 @@ bool Foam::polyMeshZipUpCells(polyMesh& mesh)
             singleEdges.setSize(nSingleEdges);
 
 #           ifdef DEBUG_ZIPUP
-            Info << "Cell " << cellI << endl;
+            Info<< "Cell " << cellI << endl;
 
             forAll (curFaces, faceI)
             {
@@ -274,18 +274,18 @@ bool Foam::polyMeshZipUpCells(polyMesh& mesh)
                             if (pointUsage[pointI] > 2)
                             {
 #                               ifdef DEBUG_CHAIN
-                                Info << "start head blocked" << endl;
+                                Info<< "start head blocked" << endl;
 #                               endif
 
                                 blockHead = true;
                             }
                         }
-                        else if(cellPoints[pointI] == newEdgeEnd)
+                        else if (cellPoints[pointI] == newEdgeEnd)
                         {
                             if (pointUsage[pointI] > 2)
                             {
 #                               ifdef DEBUG_CHAIN
-                                Info << "start tail blocked" << endl;
+                                Info<< "start tail blocked" << endl;
 #                               endif
 
                                 blockTail = true;
@@ -369,18 +369,18 @@ bool Foam::polyMeshZipUpCells(polyMesh& mesh)
                                         if (pointUsage[pointI] > 2)
                                         {
 #                                           ifdef DEBUG_CHAIN
-                                            Info << "head blocked" << endl;
+                                            Info<< "head blocked" << endl;
 #                                           endif
 
                                             blockHead = true;
                                         }
                                     }
-                                    else if(cellPoints[pointI] == curEdgeEnd)
+                                    else if (cellPoints[pointI] == curEdgeEnd)
                                     {
                                         if (pointUsage[pointI] > 2)
                                         {
 #                                           ifdef DEBUG_CHAIN
-                                            Info << "tail blocked" << endl;
+                                            Info<< "tail blocked" << endl;
 #                                           endif
 
                                             blockTail = true;
@@ -392,7 +392,7 @@ bool Foam::polyMeshZipUpCells(polyMesh& mesh)
                                 if (curEdgeStart == curEdgeEnd)
                                 {
 #                                   ifdef DEBUG_CHAIN
-                                    Info << "closed loop" << endl;
+                                    Info<< "closed loop" << endl;
 #                                   endif
 
                                     pointChain.removeHead();
@@ -415,7 +415,7 @@ bool Foam::polyMeshZipUpCells(polyMesh& mesh)
                 }
 
 #               ifdef DEBUG_CHAIN
-                Info << "completed patch chain: " << pointChain << endl;
+                Info<< "completed patch chain: " << pointChain << endl;
 #               endif
 
                 if (pointChain.size() > 2)
@@ -428,7 +428,7 @@ bool Foam::polyMeshZipUpCells(polyMesh& mesh)
             edgesToInsert.setSize(nEdgesToInsert);
 
 #           ifdef DEBUG_ZIPUP
-            Info << "edgesToInsert: " << edgesToInsert << endl;
+            Info<< "edgesToInsert: " << edgesToInsert << endl;
 #           endif
 
             // Insert the edges into a list of faces
@@ -588,7 +588,7 @@ bool Foam::polyMeshZipUpCells(polyMesh& mesh)
 #                       ifdef DEBUG_ZIPUP
                         if (allPointsPresent)
                         {
-                            Info << "All points present" << endl;
+                            Info<< "All points present" << endl;
                         }
 #                       endif
 
@@ -605,7 +605,7 @@ bool Foam::polyMeshZipUpCells(polyMesh& mesh)
                             edgeList newFaceEdges = newFace.edges();
 
 #                           ifdef DEBUG_ZIPUP
-                            Info << "Not all points present." << endl;
+                            Info<< "Not all points present." << endl;
 #                           endif
 
                             label nNewFacePoints = 0;
diff --git a/src/meshTools/primitiveMeshGeometry/primitiveMeshGeometry.C b/src/meshTools/primitiveMeshGeometry/primitiveMeshGeometry.C
index 91afa7c23ee6fa7ce92f36ab3d01a107f4480bad..e20a0dddb607f418839d867cd686c10416098113 100644
--- a/src/meshTools/primitiveMeshGeometry/primitiveMeshGeometry.C
+++ b/src/meshTools/primitiveMeshGeometry/primitiveMeshGeometry.C
@@ -796,7 +796,7 @@ bool Foam::primitiveMeshGeometry::checkFaceAngles
         faceNormal /= mag(faceNormal) + VSMALL;
 
         // Get edge from f[0] to f[size-1];
-        vector ePrev(p[f[0]] - p[f[f.size()-1]]);
+        vector ePrev(p[f.first()] - p[f.last()]);
         scalar magEPrev = mag(ePrev);
         ePrev /= magEPrev + VSMALL;
 
diff --git a/src/meshTools/regionSplit/regionSplit.C b/src/meshTools/regionSplit/regionSplit.C
index 667a2ddc5d102bfe7d8d8b1906d416f48f58f515..b415d66f02e0375de8d18604c900307919bd1280 100644
--- a/src/meshTools/regionSplit/regionSplit.C
+++ b/src/meshTools/regionSplit/regionSplit.C
@@ -342,7 +342,7 @@ Foam::label Foam::regionSplit::calcRegionSplit
         nRegions++;
         unsetCellI++;
     }
-    while(true);
+    while (true);
 
 
     if (debug)
diff --git a/src/meshTools/searchableSurface/distributedTriSurfaceMesh.C b/src/meshTools/searchableSurface/distributedTriSurfaceMesh.C
index 033d6a0a8655fcbcdddfbaff9612df01099675f8..c7ef4d5d9461c0487743fd047b42e87c8ff19ab4 100644
--- a/src/meshTools/searchableSurface/distributedTriSurfaceMesh.C
+++ b/src/meshTools/searchableSurface/distributedTriSurfaceMesh.C
@@ -957,7 +957,7 @@ bool Foam::distributedTriSurfaceMesh::overlaps
     {
         const treeBoundBox& bb = bbs[bbI];
 
-        boundBox triBb(p0, p0);
+        treeBoundBox triBb(p0, p0);
         triBb.min() = min(triBb.min(), p1);
         triBb.min() = min(triBb.min(), p2);
 
diff --git a/src/meshTools/searchableSurface/searchableBox.C b/src/meshTools/searchableSurface/searchableBox.C
index 8b4c0f5c76c5c8abfd0b0ab5f432e268766769a8..a4cc593562a6460ac80f4998d7dc570c4651da71 100644
--- a/src/meshTools/searchableSurface/searchableBox.C
+++ b/src/meshTools/searchableSurface/searchableBox.C
@@ -496,7 +496,7 @@ void Foam::searchableBox::findLineAll
                 if
                 (
                     !inter.hit()
-                 || (inter.index() == hits[hits.size()-1].index())
+                 || (inter.index() == hits.last().index())
                 )
                 {
                     break;
diff --git a/src/meshTools/searchableSurface/searchableSurfacesQueries.C b/src/meshTools/searchableSurface/searchableSurfacesQueries.C
index b0d6322a740b3fe42012a114fa4687a24d89aac8..6b8c2841f32ce074702f903120821675caaed8f0 100644
--- a/src/meshTools/searchableSurface/searchableSurfacesQueries.C
+++ b/src/meshTools/searchableSurface/searchableSurfacesQueries.C
@@ -730,7 +730,7 @@ Foam::pointIndexHit Foam::searchableSurfacesQueries::facesIntersection
         }
     }
 
-    nearest[nearest.size()-1] = sumNearest / surfacesToTest.size();
+    nearest.last() = sumNearest / surfacesToTest.size();
 
 
     // Get the sum of distances (initial evaluation)
diff --git a/src/meshTools/searchableSurface/triSurfaceMesh.C b/src/meshTools/searchableSurface/triSurfaceMesh.C
index 950cd13285334a4849f187b61f678f0dc21b309d..5f9a846ace2144d0b2da506417959b5bdba0e067 100644
--- a/src/meshTools/searchableSurface/triSurfaceMesh.C
+++ b/src/meshTools/searchableSurface/triSurfaceMesh.C
@@ -632,7 +632,7 @@ void Foam::triSurfaceMesh::findLineAll
                 if
                 (
                     !inter.hit()
-                 || (inter.index() == hits[hits.size()-1].index())
+                 || (inter.index() == hits.last().index())
                 )
                 {
                     break;
diff --git a/src/meshTools/sets/faceZoneSources/setsToFaceZone/setsToFaceZone.C b/src/meshTools/sets/faceZoneSources/setsToFaceZone/setsToFaceZone.C
index 11e2eadd483d9db9bc7c9a6bcc38fd7c32e5c2f9..7f822733b8a5c96c0326e0e37f9e4556828dd0d6 100644
--- a/src/meshTools/sets/faceZoneSources/setsToFaceZone/setsToFaceZone.C
+++ b/src/meshTools/sets/faceZoneSources/setsToFaceZone/setsToFaceZone.C
@@ -35,13 +35,9 @@ License
 
 namespace Foam
 {
-
-defineTypeNameAndDebug(setsToFaceZone, 0);
-
-addToRunTimeSelectionTable(topoSetSource, setsToFaceZone, word);
-
-addToRunTimeSelectionTable(topoSetSource, setsToFaceZone, istream);
-
+    defineTypeNameAndDebug(setsToFaceZone, 0);
+    addToRunTimeSelectionTable(topoSetSource, setsToFaceZone, word);
+    addToRunTimeSelectionTable(topoSetSource, setsToFaceZone, istream);
 }
 
 
@@ -155,7 +151,7 @@ void Foam::setsToFaceZone::applyToSet
                         {
                             flip = false;
                         }
-                        else if(!ownFound && neiFound)
+                        else if (!ownFound && neiFound)
                         {
                             flip = true;
                         }
diff --git a/src/meshTools/triSurface/booleanOps/intersectedSurface/edgeSurface.C b/src/meshTools/triSurface/booleanOps/intersectedSurface/edgeSurface.C
index 5caa377e0549a686d9388865c9bc7bf88e2ff04a..4721cb48ab489c1d53432fd1549487938c1ac14d 100644
--- a/src/meshTools/triSurface/booleanOps/intersectedSurface/edgeSurface.C
+++ b/src/meshTools/triSurface/booleanOps/intersectedSurface/edgeSurface.C
@@ -213,7 +213,7 @@ Foam::edgeSurface::edgeSurface
             (
                 edge
                 (
-                    extraVerts[extraVerts.size()-1] + nSurfacePoints_,
+                    extraVerts.last() + nSurfacePoints_,
                     e.end()
                 )
             );
@@ -330,7 +330,7 @@ Foam::edgeSurface::edgeSurface
         labelList edgeLabels(edges_.size() - nSurfaceEdges_);
 
         label i = 0;
-        for(label edgeI = nSurfaceEdges_; edgeI < edges_.size(); edgeI++)
+        for (label edgeI = nSurfaceEdges_; edgeI < edges_.size(); edgeI++)
         {
             edgeLabels[i++] = edgeI;
         }
diff --git a/src/meshTools/triSurface/booleanOps/intersectedSurface/intersectedSurface.C b/src/meshTools/triSurface/booleanOps/intersectedSurface/intersectedSurface.C
index be758c07fdf0c6b4d9677b57629c066ee4d2fda1..201593990b21dfec7d12524bb0999fa43aeba247 100644
--- a/src/meshTools/triSurface/booleanOps/intersectedSurface/intersectedSurface.C
+++ b/src/meshTools/triSurface/booleanOps/intersectedSurface/intersectedSurface.C
@@ -597,7 +597,7 @@ Foam::face Foam::intersectedSurface::walkFace
     label vertI = startVertI;
     label edgeI = startEdgeI;
 
-    while(true)
+    while (true)
     {
         const edge& e = edges[edgeI];
 
diff --git a/src/meshTools/triSurface/booleanOps/surfaceIntersection/edgeIntersections.C b/src/meshTools/triSurface/booleanOps/surfaceIntersection/edgeIntersections.C
index 47c31f04bf049800c62eb0fd2fe4e1f740e9246c..86e97a49d385f90b9780eac412c707cd341c4346 100644
--- a/src/meshTools/triSurface/booleanOps/surfaceIntersection/edgeIntersections.C
+++ b/src/meshTools/triSurface/booleanOps/surfaceIntersection/edgeIntersections.C
@@ -258,12 +258,12 @@ bool Foam::edgeIntersections::inlinePerturb
         bool perturbEnd = false;
 
         // Check first intersection.
-        if (edgeEnds[0] == 0)
+        if (edgeEnds.first() == 0)
         {
             perturbStart = true;
         }
 
-        if (edgeEnds[edgeEnds.size()-1] == 1)
+        if (edgeEnds.last() == 1)
         {
             perturbEnd = true;
         }
diff --git a/src/meshTools/triSurface/booleanOps/surfaceIntersection/surfaceIntersection.C b/src/meshTools/triSurface/booleanOps/surfaceIntersection/surfaceIntersection.C
index 33940989b8228a358caa1c19ebfda82404a94344..a25664a130db244aa91809279003702222d5c36c 100644
--- a/src/meshTools/triSurface/booleanOps/surfaceIntersection/surfaceIntersection.C
+++ b/src/meshTools/triSurface/booleanOps/surfaceIntersection/surfaceIntersection.C
@@ -242,8 +242,7 @@ void Foam::surfaceIntersection::storeIntersection
 
             // Check whether perhaps degenerate
             const point& prevHit = allCutPoints[*iter];
-
-            const point& thisHit = allCutPoints[allCutPoints.size()-1];
+            const point& thisHit = allCutPoints.last();
 
             if (mag(prevHit - thisHit) < SMALL)
             {
@@ -706,7 +705,7 @@ void Foam::surfaceIntersection::doCutEdges
                 doTrack = false;
             }
         }
-        while(doTrack);
+        while (doTrack);
     }
     intersection::setPlanarTol(oldTol);
 }
diff --git a/src/meshTools/triSurface/booleanOps/surfaceIntersection/surfaceIntersectionFuncs.C b/src/meshTools/triSurface/booleanOps/surfaceIntersection/surfaceIntersectionFuncs.C
index b2a5eec086885c647d557aef1b4969bf236429f3..a710c98d44c560bfbda01f9f7ee039165e164ade 100644
--- a/src/meshTools/triSurface/booleanOps/surfaceIntersection/surfaceIntersectionFuncs.C
+++ b/src/meshTools/triSurface/booleanOps/surfaceIntersection/surfaceIntersectionFuncs.C
@@ -155,12 +155,12 @@ void Foam::surfaceIntersection::removeDuplicates
         // Insert first
         elems[elemI++] = map[oldElems[0]];
 
-        for(label vertI = 1; vertI < oldElems.size(); vertI++)
+        for (label vertI = 1; vertI < oldElems.size(); vertI++)
         {
             // Insert others only if they differ from one before
             label newVertI = map[oldElems[vertI]];
 
-            if (newVertI != elems[elems.size()-1])
+            if (newVertI != elems.last())
             {
                 elems[elemI++] = newVertI;
             }
@@ -294,13 +294,13 @@ void Foam::surfaceIntersection::writeIntersectedEdges
             os  << "l " << e.start()+1 << ' '
                 << extraVerts[0] + surf.nPoints() + 1 << endl;
 
-            for(label i = 1; i < extraVerts.size(); i++)
+            for (label i = 1; i < extraVerts.size(); i++)
             {
                 os  << "l " << extraVerts[i-1] + surf.nPoints() + 1  << ' '
                     << extraVerts[i] + surf.nPoints() + 1 << endl;
             }
 
-            os  << "l " << extraVerts[extraVerts.size()-1] + surf.nPoints() + 1
+            os  << "l " << extraVerts.last() + surf.nPoints() + 1
                 << ' ' << e.end()+1 << endl;
         }
     }
diff --git a/src/meshTools/triSurface/orientedSurface/orientedSurface.C b/src/meshTools/triSurface/orientedSurface/orientedSurface.C
index 34a230744754b257802e9a2a47c39320ac5e75fb..045693caa8434dc9ebb76d22b373f8573dd91e69 100644
--- a/src/meshTools/triSurface/orientedSurface/orientedSurface.C
+++ b/src/meshTools/triSurface/orientedSurface/orientedSurface.C
@@ -185,7 +185,7 @@ void Foam::orientedSurface::walkSurface
     // List of edges that were changed in the last iteration.
     labelList changedEdges;
 
-    while(true)
+    while (true)
     {
         changedEdges = faceToEdge(s, changedFaces);
 
diff --git a/src/meshTools/triSurface/surfaceFeatures/surfaceFeatures.C b/src/meshTools/triSurface/surfaceFeatures/surfaceFeatures.C
index 1a1f2baf1d7c016dc040ef653a34f888f45b7966..6f5bf0eac266b5545c65b4bdf8f2f4a01d8c0943 100644
--- a/src/meshTools/triSurface/surfaceFeatures/surfaceFeatures.C
+++ b/src/meshTools/triSurface/surfaceFeatures/surfaceFeatures.C
@@ -757,9 +757,13 @@ Foam::Map<Foam::label> Foam::surfaceFeatures::nearestSamples
 ) const
 {
     // Build tree out of all samples.
+
+    //Note: cannot be done one the fly - gcc4.4 compiler bug.
+    treeBoundBox bb(samples);
+
     octree<octreeDataPoint> ppTree
     (
-        treeBoundBox(samples),      // overall search domain
+        bb,                         // overall search domain
         octreeDataPoint(samples),   // all information needed to do checks
         1,          // min levels
         20.0,       // maximum ratio of cubes v.s. cells
@@ -857,10 +861,12 @@ Foam::Map<Foam::label> Foam::surfaceFeatures::nearestSamples
     scalar maxSearch = max(maxDist);
     vector span(maxSearch, maxSearch, maxSearch);
 
-    // octree.shapes holds reference!
+    //Note: cannot be done one the fly - gcc4.4 compiler bug.
+    treeBoundBox bb(samples);
+
     octree<octreeDataPoint> ppTree
     (
-        treeBoundBox(samples),      // overall search domain
+        bb,                         // overall search domain
         octreeDataPoint(samples),   // all information needed to do checks
         1,          // min levels
         20.0,       // maximum ratio of cubes v.s. cells
diff --git a/src/meshTools/triSurface/triSurfaceTools/triSurfaceTools.C b/src/meshTools/triSurface/triSurfaceTools/triSurfaceTools.C
index 0e97a6331659fc31ba6bd78977e6e40a6cc66911..773c423419002942d5d7c29bd2d146d028b57eb3 100644
--- a/src/meshTools/triSurface/triSurfaceTools/triSurfaceTools.C
+++ b/src/meshTools/triSurface/triSurfaceTools/triSurfaceTools.C
@@ -2702,7 +2702,7 @@ void Foam::triSurfaceTools::calcInterpolationWeights
 
     // calculate edge normal (pointing inwards)
     FixedList<vector, 3> normal;
-    for(label i=0; i<3; i++)
+    for (label i=0; i<3; i++)
     {
         normal[i] = triangleFaceNormal ^ edge[i];
         normal[i] /= mag(normal[i]) + VSMALL;
diff --git a/src/decompositionMethods/Allwmake b/src/parallel/Allwmake
similarity index 70%
rename from src/decompositionMethods/Allwmake
rename to src/parallel/Allwmake
index f71ea71b867935edc49b4529681def9fe7cfde95..34d323251aadcde80683ac1b8609faba82fc936d 100755
--- a/src/decompositionMethods/Allwmake
+++ b/src/parallel/Allwmake
@@ -3,10 +3,11 @@ cd ${0%/*} || exit 1    # run from this directory
 set -x
 
 wmake libso decompositionMethods
+wmake libso reconstruct
 
 if [ -d "$FOAM_MPI_LIBBIN" ]
 then
-    (WM_OPTIONS=${WM_OPTIONS}$WM_MPLIB; wmake libso parMetisDecomp)
+    ( WM_OPTIONS=${WM_OPTIONS}$WM_MPLIB; wmake libso parMetisDecomp )
 fi
 
 # ----------------------------------------------------------------- end-of-file
diff --git a/src/decompositionMethods/decompositionMethods/Make/files b/src/parallel/decompositionMethods/Make/files
similarity index 100%
rename from src/decompositionMethods/decompositionMethods/Make/files
rename to src/parallel/decompositionMethods/Make/files
diff --git a/src/decompositionMethods/decompositionMethods/Make/options b/src/parallel/decompositionMethods/Make/options
similarity index 100%
rename from src/decompositionMethods/decompositionMethods/Make/options
rename to src/parallel/decompositionMethods/Make/options
diff --git a/src/decompositionMethods/decompositionMethods/decompositionMethod/decompositionMethod.C b/src/parallel/decompositionMethods/decompositionMethod/decompositionMethod.C
similarity index 100%
rename from src/decompositionMethods/decompositionMethods/decompositionMethod/decompositionMethod.C
rename to src/parallel/decompositionMethods/decompositionMethod/decompositionMethod.C
diff --git a/src/decompositionMethods/decompositionMethods/decompositionMethod/decompositionMethod.H b/src/parallel/decompositionMethods/decompositionMethod/decompositionMethod.H
similarity index 100%
rename from src/decompositionMethods/decompositionMethods/decompositionMethod/decompositionMethod.H
rename to src/parallel/decompositionMethods/decompositionMethod/decompositionMethod.H
diff --git a/src/decompositionMethods/decompositionMethods/geomDecomp/geomDecomp.C b/src/parallel/decompositionMethods/geomDecomp/geomDecomp.C
similarity index 100%
rename from src/decompositionMethods/decompositionMethods/geomDecomp/geomDecomp.C
rename to src/parallel/decompositionMethods/geomDecomp/geomDecomp.C
diff --git a/src/decompositionMethods/decompositionMethods/geomDecomp/geomDecomp.H b/src/parallel/decompositionMethods/geomDecomp/geomDecomp.H
similarity index 100%
rename from src/decompositionMethods/decompositionMethods/geomDecomp/geomDecomp.H
rename to src/parallel/decompositionMethods/geomDecomp/geomDecomp.H
diff --git a/src/decompositionMethods/decompositionMethods/hierarchGeomDecomp/hierarchGeomDecomp.C b/src/parallel/decompositionMethods/hierarchGeomDecomp/hierarchGeomDecomp.C
similarity index 98%
rename from src/decompositionMethods/decompositionMethods/hierarchGeomDecomp/hierarchGeomDecomp.C
rename to src/parallel/decompositionMethods/hierarchGeomDecomp/hierarchGeomDecomp.C
index 4ee04a7cdfca385dbcb6f154d2096d9112bd6f10..5fa638649d42825ceb0b861cfff432e22778890d 100644
--- a/src/decompositionMethods/decompositionMethods/hierarchGeomDecomp/hierarchGeomDecomp.C
+++ b/src/parallel/decompositionMethods/hierarchGeomDecomp/hierarchGeomDecomp.C
@@ -165,7 +165,7 @@ void Foam::hierarchGeomDecomp::calculateSortedWeightedSizes
     // Non-dimensionalise and multiply by size.
     scalar globalCurrentLength = returnReduce
     (
-        sortedWeightedSizes[current.size()], 
+        sortedWeightedSizes[current.size()],
         sumOp<scalar>()
     );
     // Normalise weights by global sum of weights and multiply through
@@ -238,7 +238,7 @@ void Foam::hierarchGeomDecomp::findBinary
         if (returnReduce(hasNotChanged, andOp<bool>()))
         {
             WarningIn("hierarchGeomDecomp::findBinary(..)")
-                << "unable to find desired deomposition split, making do!" 
+                << "unable to find desired deomposition split, making do!"
                 << endl;
             break;
         }
@@ -288,7 +288,7 @@ void Foam::hierarchGeomDecomp::findBinary
             Pout<< "    low:" << low << " lowValue:" << lowValue
                 << " high:" << high << " highValue:" << highValue
                 << " mid:" << mid << " midValue:" << midValue << endl
-                << "    globalSize:" << weightedSize 
+                << "    globalSize:" << weightedSize
                 << " wantedSize:" << wantedSize
                 << " sizeTol:" << sizeTol << endl;
         }
@@ -318,7 +318,7 @@ void Foam::hierarchGeomDecomp::findBinary
         if (returnReduce(hasNotChanged, andOp<bool>()))
         {
             WarningIn("hierarchGeomDecomp::findBinary(..)")
-                << "unable to find desired deomposition split, making do!" 
+                << "unable to find desired deomposition split, making do!"
                 << endl;
             break;
         }
@@ -375,7 +375,7 @@ void Foam::hierarchGeomDecomp::sortComponent
     (
         (
             sortedCoord.size()
-          ? sortedCoord[sortedCoord.size()-1]
+          ? sortedCoord.last()
           : -GREAT
         ),
         maxOp<scalar>()
@@ -562,14 +562,14 @@ void Foam::hierarchGeomDecomp::sortComponent
     (
         (
             sortedCoord.size()
-          ? sortedCoord[sortedCoord.size()-1]
+          ? sortedCoord.last()
           : -GREAT
         ),
         maxOp<scalar>()
     );
 
     if (debug)
-    {   
+    {
         Pout<< "sortComponent : minCoord:" << minCoord
             << " maxCoord:" << maxCoord << endl;
     }
@@ -592,7 +592,7 @@ void Foam::hierarchGeomDecomp::sortComponent
 
         // Value at right of bin (leftIndex+localSize-1)
         scalar rightCoord = -GREAT;
-        
+
         if (bin == n_[compI]-1)
         {
             // Last bin. Copy all.
@@ -602,7 +602,7 @@ void Foam::hierarchGeomDecomp::sortComponent
         else
         {
             // For the current bin (starting at leftCoord) we want a rightCoord
-            // such that the sum of all weighted sizes are 
+            // such that the sum of all weighted sizes are
             // globalCurrentLength/n_[compI].
             // We have to iterate to obtain this.
 
diff --git a/src/decompositionMethods/decompositionMethods/hierarchGeomDecomp/hierarchGeomDecomp.H b/src/parallel/decompositionMethods/hierarchGeomDecomp/hierarchGeomDecomp.H
similarity index 100%
rename from src/decompositionMethods/decompositionMethods/hierarchGeomDecomp/hierarchGeomDecomp.H
rename to src/parallel/decompositionMethods/hierarchGeomDecomp/hierarchGeomDecomp.H
diff --git a/src/decompositionMethods/decompositionMethods/manualDecomp/manualDecomp.C b/src/parallel/decompositionMethods/manualDecomp/manualDecomp.C
similarity index 100%
rename from src/decompositionMethods/decompositionMethods/manualDecomp/manualDecomp.C
rename to src/parallel/decompositionMethods/manualDecomp/manualDecomp.C
diff --git a/src/decompositionMethods/decompositionMethods/manualDecomp/manualDecomp.H b/src/parallel/decompositionMethods/manualDecomp/manualDecomp.H
similarity index 100%
rename from src/decompositionMethods/decompositionMethods/manualDecomp/manualDecomp.H
rename to src/parallel/decompositionMethods/manualDecomp/manualDecomp.H
diff --git a/src/decompositionMethods/decompositionMethods/metisDecomp/metisDecomp.C b/src/parallel/decompositionMethods/metisDecomp/metisDecomp.C
similarity index 100%
rename from src/decompositionMethods/decompositionMethods/metisDecomp/metisDecomp.C
rename to src/parallel/decompositionMethods/metisDecomp/metisDecomp.C
diff --git a/src/decompositionMethods/decompositionMethods/metisDecomp/metisDecomp.H b/src/parallel/decompositionMethods/metisDecomp/metisDecomp.H
similarity index 100%
rename from src/decompositionMethods/decompositionMethods/metisDecomp/metisDecomp.H
rename to src/parallel/decompositionMethods/metisDecomp/metisDecomp.H
diff --git a/src/decompositionMethods/decompositionMethods/scotchDecomp/scotchDecomp.C b/src/parallel/decompositionMethods/scotchDecomp/scotchDecomp.C
similarity index 100%
rename from src/decompositionMethods/decompositionMethods/scotchDecomp/scotchDecomp.C
rename to src/parallel/decompositionMethods/scotchDecomp/scotchDecomp.C
diff --git a/src/decompositionMethods/decompositionMethods/scotchDecomp/scotchDecomp.H b/src/parallel/decompositionMethods/scotchDecomp/scotchDecomp.H
similarity index 100%
rename from src/decompositionMethods/decompositionMethods/scotchDecomp/scotchDecomp.H
rename to src/parallel/decompositionMethods/scotchDecomp/scotchDecomp.H
diff --git a/src/decompositionMethods/decompositionMethods/simpleGeomDecomp/simpleGeomDecomp.C b/src/parallel/decompositionMethods/simpleGeomDecomp/simpleGeomDecomp.C
similarity index 100%
rename from src/decompositionMethods/decompositionMethods/simpleGeomDecomp/simpleGeomDecomp.C
rename to src/parallel/decompositionMethods/simpleGeomDecomp/simpleGeomDecomp.C
diff --git a/src/decompositionMethods/decompositionMethods/simpleGeomDecomp/simpleGeomDecomp.H b/src/parallel/decompositionMethods/simpleGeomDecomp/simpleGeomDecomp.H
similarity index 100%
rename from src/decompositionMethods/decompositionMethods/simpleGeomDecomp/simpleGeomDecomp.H
rename to src/parallel/decompositionMethods/simpleGeomDecomp/simpleGeomDecomp.H
diff --git a/src/decompositionMethods/parMetisDecomp/Make/files b/src/parallel/parMetisDecomp/Make/files
similarity index 100%
rename from src/decompositionMethods/parMetisDecomp/Make/files
rename to src/parallel/parMetisDecomp/Make/files
diff --git a/src/decompositionMethods/parMetisDecomp/Make/options b/src/parallel/parMetisDecomp/Make/options
similarity index 100%
rename from src/decompositionMethods/parMetisDecomp/Make/options
rename to src/parallel/parMetisDecomp/Make/options
diff --git a/src/decompositionMethods/parMetisDecomp/parMetisDecomp.C b/src/parallel/parMetisDecomp/parMetisDecomp.C
similarity index 100%
rename from src/decompositionMethods/parMetisDecomp/parMetisDecomp.C
rename to src/parallel/parMetisDecomp/parMetisDecomp.C
diff --git a/src/decompositionMethods/parMetisDecomp/parMetisDecomp.H b/src/parallel/parMetisDecomp/parMetisDecomp.H
similarity index 100%
rename from src/decompositionMethods/parMetisDecomp/parMetisDecomp.H
rename to src/parallel/parMetisDecomp/parMetisDecomp.H
diff --git a/src/decompositionMethods/parMetisDecomp/parMetisDecompTemplates.C b/src/parallel/parMetisDecomp/parMetisDecompTemplates.C
similarity index 100%
rename from src/decompositionMethods/parMetisDecomp/parMetisDecompTemplates.C
rename to src/parallel/parMetisDecomp/parMetisDecompTemplates.C
diff --git a/src/parallel/reconstruct/Make/files b/src/parallel/reconstruct/Make/files
new file mode 100644
index 0000000000000000000000000000000000000000..64023e9573ba96525acca6a464dc0000b858361c
--- /dev/null
+++ b/src/parallel/reconstruct/Make/files
@@ -0,0 +1,6 @@
+processorMeshes.C
+fvFieldReconstructor.C
+pointFieldReconstructor.C
+reconstructLagrangianPositions.C
+
+LIB = $(FOAM_LIBBIN)/libreconstruct
diff --git a/src/parallel/reconstruct/Make/options b/src/parallel/reconstruct/Make/options
new file mode 100644
index 0000000000000000000000000000000000000000..71546225cf549de3ffb95105271396bf163a8dfc
--- /dev/null
+++ b/src/parallel/reconstruct/Make/options
@@ -0,0 +1,7 @@
+EXE_INC = \
+    -I$(LIB_SRC)/finiteVolume/lnInclude \
+    -I$(LIB_SRC)/lagrangian/basic/lnInclude
+
+LIB_LIBS = \
+    -lfiniteVolume \
+    -llagrangian
diff --git a/applications/utilities/parallelProcessing/reconstructPar/fvFieldReconstructor.C b/src/parallel/reconstruct/fvFieldReconstructor.C
similarity index 100%
rename from applications/utilities/parallelProcessing/reconstructPar/fvFieldReconstructor.C
rename to src/parallel/reconstruct/fvFieldReconstructor.C
diff --git a/applications/utilities/parallelProcessing/reconstructPar/fvFieldReconstructor.H b/src/parallel/reconstruct/fvFieldReconstructor.H
similarity index 97%
rename from applications/utilities/parallelProcessing/reconstructPar/fvFieldReconstructor.H
rename to src/parallel/reconstruct/fvFieldReconstructor.H
index b9f2fb4bf6af487877b31361acf66b74edd4268b..0e3758cafc8885f6f258288f90fe9675d21ce427 100644
--- a/applications/utilities/parallelProcessing/reconstructPar/fvFieldReconstructor.H
+++ b/src/parallel/reconstruct/fvFieldReconstructor.H
@@ -26,7 +26,7 @@ Class
     Foam::fvFieldReconstructor
 
 Description
-    FV volume and surface field reconstructor.
+    Finite volume reconstructor for volume and surface fields.
 
 SourceFiles
     fvFieldReconstructor.C
@@ -50,7 +50,7 @@ namespace Foam
 
 
 /*---------------------------------------------------------------------------*\
-                 Class fvFieldReconstructor Declaration
+                    Class fvFieldReconstructor Declaration
 \*---------------------------------------------------------------------------*/
 
 class fvFieldReconstructor
diff --git a/applications/utilities/parallelProcessing/reconstructPar/fvFieldReconstructorReconstructFields.C b/src/parallel/reconstruct/fvFieldReconstructorReconstructFields.C
similarity index 100%
rename from applications/utilities/parallelProcessing/reconstructPar/fvFieldReconstructorReconstructFields.C
rename to src/parallel/reconstruct/fvFieldReconstructorReconstructFields.C
diff --git a/applications/utilities/parallelProcessing/reconstructPar/pointFieldReconstructor.C b/src/parallel/reconstruct/pointFieldReconstructor.C
similarity index 100%
rename from applications/utilities/parallelProcessing/reconstructPar/pointFieldReconstructor.C
rename to src/parallel/reconstruct/pointFieldReconstructor.C
diff --git a/applications/utilities/parallelProcessing/reconstructPar/pointFieldReconstructor.H b/src/parallel/reconstruct/pointFieldReconstructor.H
similarity index 96%
rename from applications/utilities/parallelProcessing/reconstructPar/pointFieldReconstructor.H
rename to src/parallel/reconstruct/pointFieldReconstructor.H
index 34b458913c43cb73e94c369c373ef71d80e9caf6..7ab04c3d41d69cafc49df1016a397cda2019e0cb 100644
--- a/applications/utilities/parallelProcessing/reconstructPar/pointFieldReconstructor.H
+++ b/src/parallel/reconstruct/pointFieldReconstructor.H
@@ -47,7 +47,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-              Class pointFieldReconstructor Declaration
+                   Class pointFieldReconstructor Declaration
 \*---------------------------------------------------------------------------*/
 
 class pointFieldReconstructor
@@ -73,10 +73,7 @@ class pointFieldReconstructor
     // Private Member Functions
 
         //- Disallow default bitwise copy construct
-        pointFieldReconstructor
-        (
-            const pointFieldReconstructor&
-        );
+        pointFieldReconstructor(const pointFieldReconstructor&);
 
         //- Disallow default bitwise assignment
         void operator=(const pointFieldReconstructor&);
diff --git a/applications/utilities/parallelProcessing/reconstructPar/pointFieldReconstructorReconstructFields.C b/src/parallel/reconstruct/pointFieldReconstructorReconstructFields.C
similarity index 100%
rename from applications/utilities/parallelProcessing/reconstructPar/pointFieldReconstructorReconstructFields.C
rename to src/parallel/reconstruct/pointFieldReconstructorReconstructFields.C
diff --git a/applications/utilities/parallelProcessing/reconstructPar/processorMeshes.C b/src/parallel/reconstruct/processorMeshes.C
similarity index 91%
rename from applications/utilities/parallelProcessing/reconstructPar/processorMeshes.C
rename to src/parallel/reconstruct/processorMeshes.C
index 8c77b9f85562f15912fc72d340206ab92643834c..fb6ccbed5eb438f60ba2bd80e75527e3e18a5fa4 100644
--- a/applications/utilities/parallelProcessing/reconstructPar/processorMeshes.C
+++ b/src/parallel/reconstruct/processorMeshes.C
@@ -127,8 +127,8 @@ Foam::processorMeshes::processorMeshes
     const word& meshName
 )
 :
-    databases_(databases),
     meshName_(meshName),
+    databases_(databases),
     meshes_(databases.size()),
     pointProcAddressing_(databases.size()),
     faceProcAddressing_(databases.size()),
@@ -165,20 +165,17 @@ Foam::fvMesh::readUpdateState Foam::processorMeshes::readUpdate()
         {
             stat = procStat;
         }
-        else
+        else if (stat != procStat)
         {
-            if (stat != procStat)
-            {
-                FatalErrorIn("processorMeshes::readUpdate()")
-                    << "Processor " << procI
-                    << " has a different polyMesh at time "
-                    << databases_[procI].timeName()
-                    << " compared to any previous processors." << nl
-                    << "Please check time " << databases_[procI].timeName()
-                    << " directories on all processors for consistent"
-                    << " mesh files."
-                    << exit(FatalError);
-            }
+            FatalErrorIn("processorMeshes::readUpdate()")
+                << "Processor " << procI
+                << " has a different polyMesh at time "
+                << databases_[procI].timeName()
+                << " compared to any previous processors." << nl
+                << "Please check time " << databases_[procI].timeName()
+                << " directories on all processors for consistent"
+                << " mesh files."
+                << exit(FatalError);
         }
     }
 
diff --git a/applications/utilities/parallelProcessing/reconstructPar/processorMeshes.H b/src/parallel/reconstruct/processorMeshes.H
similarity index 96%
rename from applications/utilities/parallelProcessing/reconstructPar/processorMeshes.H
rename to src/parallel/reconstruct/processorMeshes.H
index d83c3d6216c1824a11da1d66ac330bf2649ce5e0..ab39bc7a3ce0b8e1df27713891b5b5688096143d 100644
--- a/applications/utilities/parallelProcessing/reconstructPar/processorMeshes.H
+++ b/src/parallel/reconstruct/processorMeshes.H
@@ -55,11 +55,11 @@ class processorMeshes
 {
     // Private data
 
+        const word meshName_;
+
         //- Processor databases
         PtrList<Time>& databases_;
 
-        const word meshName_;
-
         //- List of processor meshes
         PtrList<fvMesh> meshes_;
 
@@ -98,29 +98,32 @@ public:
 
     // Member Functions
 
-        //- Update the meshes based on the mesh files saved in
-        //  time directories
+        //- Update the meshes based on the mesh files saved in time directories
         fvMesh::readUpdateState readUpdate();
 
         //- Reconstruct point position after motion in parallel
-        void reconstructPoints(fvMesh& mesh);
+        void reconstructPoints(fvMesh&);
 
         PtrList<fvMesh>& meshes()
         {
             return meshes_;
         }
+
         const PtrList<labelIOList>& pointProcAddressing() const
         {
             return pointProcAddressing_;
         }
+
         PtrList<labelIOList>& faceProcAddressing()
         {
             return faceProcAddressing_;
         }
+
         const PtrList<labelIOList>& cellProcAddressing() const
         {
             return cellProcAddressing_;
         }
+
         const PtrList<labelIOList>& boundaryProcAddressing() const
         {
             return boundaryProcAddressing_;
diff --git a/applications/utilities/parallelProcessing/reconstructPar/reconstructLagrangian.H b/src/parallel/reconstruct/reconstructLagrangian.H
similarity index 100%
rename from applications/utilities/parallelProcessing/reconstructPar/reconstructLagrangian.H
rename to src/parallel/reconstruct/reconstructLagrangian.H
diff --git a/applications/utilities/parallelProcessing/reconstructPar/reconstructLagrangianFields.C b/src/parallel/reconstruct/reconstructLagrangianFields.C
similarity index 100%
rename from applications/utilities/parallelProcessing/reconstructPar/reconstructLagrangianFields.C
rename to src/parallel/reconstruct/reconstructLagrangianFields.C
diff --git a/applications/utilities/parallelProcessing/reconstructPar/reconstructLagrangianPositions.C b/src/parallel/reconstruct/reconstructLagrangianPositions.C
similarity index 100%
rename from applications/utilities/parallelProcessing/reconstructPar/reconstructLagrangianPositions.C
rename to src/parallel/reconstruct/reconstructLagrangianPositions.C
diff --git a/src/postProcessing/functionObjects/IO/writeRegisteredObject/writeRegisteredObjectFunctionObject.H b/src/postProcessing/functionObjects/IO/writeRegisteredObject/writeRegisteredObjectFunctionObject.H
index 284aa6c17a77ad26a05c9af0c06d6117f6520fe4..6581cc6e5bf0704dd6f7f8caee421478173a63c8 100644
--- a/src/postProcessing/functionObjects/IO/writeRegisteredObject/writeRegisteredObjectFunctionObject.H
+++ b/src/postProcessing/functionObjects/IO/writeRegisteredObject/writeRegisteredObjectFunctionObject.H
@@ -27,7 +27,7 @@ Typedef
 
 Description
     FunctionObject wrapper around writeRegisteredObject to allow them to be
-    created via the functions list within controlDict.
+    created via the functions entry within controlDict.
 
 SourceFiles
     writeRegisteredObjectFunctionObject.C
diff --git a/src/postProcessing/functionObjects/field/fieldAverage/fieldAverageFunctionObject/fieldAverageFunctionObject.H b/src/postProcessing/functionObjects/field/fieldAverage/fieldAverageFunctionObject/fieldAverageFunctionObject.H
index 743768ffce8a2c485b4a55516216c2319bbac58f..61cff6515b76bd26bfaee0c53e93403857ad9d3b 100644
--- a/src/postProcessing/functionObjects/field/fieldAverage/fieldAverageFunctionObject/fieldAverageFunctionObject.H
+++ b/src/postProcessing/functionObjects/field/fieldAverage/fieldAverageFunctionObject/fieldAverageFunctionObject.H
@@ -27,7 +27,7 @@ Typedef
 
 Description
     FunctionObject wrapper around fieldAverage to allow them to be created
-    via the functions list within controlDict.
+    via the functions entry within controlDict.
 
 SourceFiles
     fieldAverageFunctionObject.C
diff --git a/src/postProcessing/functionObjects/field/fieldMinMax/fieldMinMaxFunctionObject.H b/src/postProcessing/functionObjects/field/fieldMinMax/fieldMinMaxFunctionObject.H
index a5af27af513d1a0de44cd25052b0aae687ece873..a619fb94da6d6ded7e2524d467859d798f9f92de 100644
--- a/src/postProcessing/functionObjects/field/fieldMinMax/fieldMinMaxFunctionObject.H
+++ b/src/postProcessing/functionObjects/field/fieldMinMax/fieldMinMaxFunctionObject.H
@@ -27,7 +27,7 @@ Typedef
 
 Description
     FunctionObject wrapper around fieldMinMax to allow them to be created via
-    the functions list within controlDict.
+    the functions entry within controlDict.
 
 SourceFiles
     fieldMinMaxFunctionObject.C
diff --git a/src/postProcessing/functionObjects/field/fieldValues/cellSource/cellSource.C b/src/postProcessing/functionObjects/field/fieldValues/cellSource/cellSource.C
index 5e63d1287a557a1e74a2644bcd503981f83b1f43..b94b687ba13ca8bad30ccfcd924eb404ee5b67ba 100644
--- a/src/postProcessing/functionObjects/field/fieldValues/cellSource/cellSource.C
+++ b/src/postProcessing/functionObjects/field/fieldValues/cellSource/cellSource.C
@@ -117,45 +117,6 @@ void Foam::fieldValues::cellSource::initialise()
 }
 
 
-void Foam::fieldValues::cellSource::makeFile()
-{
-    // Create the forces file if not already created
-    if (outputFilePtr_.empty())
-    {
-        if (debug)
-        {
-            Info<< "Creating output file." << endl;
-        }
-
-        // File update
-        if (Pstream::master())
-        {
-            fileName outputDir;
-            if (Pstream::parRun())
-            {
-                // Put in undecomposed case (Note: gives problems for
-                // distributed data running)
-                outputDir =
-                    obr_.time().path()/".."/name_/obr_.time().timeName();
-            }
-            else
-            {
-                outputDir = obr_.time().path()/name_/obr_.time().timeName();
-            }
-
-            // Create directory if does not exist
-            mkDir(outputDir);
-
-            // Open new file at start up
-            outputFilePtr_.reset(new OFstream(outputDir/(type() + ".dat")));
-
-            // Add headers to output data
-            writeFileHeader();
-        }
-    }
-}
-
-
 void Foam::fieldValues::cellSource::writeFileHeader()
 {
     if (outputFilePtr_.valid())
@@ -190,16 +151,9 @@ Foam::fieldValues::cellSource::cellSource
     fieldValue(name, obr, dict, loadFromFiles),
     source_(sourceTypeNames_.read(dict.lookup("source"))),
     operation_(operationTypeNames_.read(dict.lookup("operation"))),
-    cellId_(),
-    outputFilePtr_(NULL)
+    cellId_()
 {
-    initialise();
-
-    if (active_)
-    {
-        // Create the output file if not already created
-        makeFile();
-    }
+    read(dict);
 }
 
 
@@ -213,9 +167,11 @@ Foam::fieldValues::cellSource::~cellSource()
 
 void Foam::fieldValues::cellSource::read(const dictionary& dict)
 {
+    fieldValue::read(dict);
+
     if (active_)
     {
-        fieldValue::read(dict);
+        // no additional info to read
         initialise();
     }
 }
@@ -223,13 +179,10 @@ void Foam::fieldValues::cellSource::read(const dictionary& dict)
 
 void Foam::fieldValues::cellSource::write()
 {
+    fieldValue::write();
+
     if (active_)
     {
-        if (log_)
-        {
-            Info<< type() << " " << name_ << " output:" << nl;
-        }
-
         outputFilePtr_()
             << obr_.time().value() << tab
             << sum(filterField(mesh().V()));
diff --git a/src/postProcessing/functionObjects/field/fieldValues/cellSource/cellSource.H b/src/postProcessing/functionObjects/field/fieldValues/cellSource/cellSource.H
index d1d08cdbd998ca59fca7a525ec3bbd62ab134554..89cc9ad0103807883d0d8ab396f19c2c81b4fc79 100644
--- a/src/postProcessing/functionObjects/field/fieldValues/cellSource/cellSource.H
+++ b/src/postProcessing/functionObjects/field/fieldValues/cellSource/cellSource.H
@@ -58,7 +58,6 @@ SourceFiles
 #include "NamedEnum.H"
 #include "fieldValue.H"
 #include "labelList.H"
-#include "OFstream.H"
 #include "volFieldsFwd.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@@ -114,9 +113,6 @@ private:
         //- Set cells to evaluate based on a patch
         void setPatchCells();
 
-        //- Create the output file if not already created
-        void makeFile();
-
 
 protected:
 
@@ -131,9 +127,6 @@ protected:
         //- Local list of cell IDs
         labelList cellId_;
 
-        //- Output file pointer
-        autoPtr<OFstream> outputFilePtr_;
-
 
     // Protected member functions
 
diff --git a/src/postProcessing/functionObjects/field/fieldValues/cellSource/cellSourceFunctionObject.H b/src/postProcessing/functionObjects/field/fieldValues/cellSource/cellSourceFunctionObject.H
index eca172a58d4e23b30ff4275835c2edabd4c7980f..e37938663b5fa7aad3dfaf60e349a9751f321d64 100644
--- a/src/postProcessing/functionObjects/field/fieldValues/cellSource/cellSourceFunctionObject.H
+++ b/src/postProcessing/functionObjects/field/fieldValues/cellSource/cellSourceFunctionObject.H
@@ -27,7 +27,7 @@ Typedef
 
 Description
     FunctionObject wrapper around cellSource to allow it to be
-    created via the functions list within controlDict.
+    created via the functions entry within controlDict.
 
 SourceFiles
     cellSourceFunctionObject.C
diff --git a/src/postProcessing/functionObjects/field/fieldValues/faceSource/faceSource.C b/src/postProcessing/functionObjects/field/fieldValues/faceSource/faceSource.C
index 710e346ed5dc236baba9ab65fb11a6df968bd94e..b609f4310ab9c711d44b19dbf48bb67419146e0e 100644
--- a/src/postProcessing/functionObjects/field/fieldValues/faceSource/faceSource.C
+++ b/src/postProcessing/functionObjects/field/fieldValues/faceSource/faceSource.C
@@ -258,45 +258,6 @@ void Foam::fieldValues::faceSource::initialise(const dictionary& dict)
 }
 
 
-void Foam::fieldValues::faceSource::makeFile()
-{
-    // Create the forces file if not already created
-    if (outputFilePtr_.empty())
-    {
-        if (debug)
-        {
-            Info<< "Creating output file." << endl;
-        }
-
-        // File update
-        if (Pstream::master())
-        {
-            fileName outputDir;
-            if (Pstream::parRun())
-            {
-                // Put in undecomposed case (Note: gives problems for
-                // distributed data running)
-                outputDir =
-                    obr_.time().path()/".."/name_/obr_.time().timeName();
-            }
-            else
-            {
-                outputDir = obr_.time().path()/name_/obr_.time().timeName();
-            }
-
-            // Create directory if does not exist
-            mkDir(outputDir);
-
-            // Open new file at start up
-            outputFilePtr_.reset(new OFstream(outputDir/(type() + ".dat")));
-
-            // Add headers to output data
-            writeFileHeader();
-        }
-    }
-}
-
-
 void Foam::fieldValues::faceSource::writeFileHeader()
 {
     if (outputFilePtr_.valid())
@@ -334,16 +295,9 @@ Foam::fieldValues::faceSource::faceSource
     faceId_(),
     facePatchId_(),
     flipMap_(),
-    outputFilePtr_(NULL),
     weightFieldName_("undefinedWeightedFieldName")
 {
-    if (active_)
-    {
-        initialise(dict);
-
-        // Create the output file if not already created
-        makeFile();
-    }
+    read(dict);
 }
 
 
@@ -357,9 +311,10 @@ Foam::fieldValues::faceSource::~faceSource()
 
 void Foam::fieldValues::faceSource::read(const dictionary& dict)
 {
+    fieldValue::read(dict);
+
     if (active_)
     {
-        fieldValue::read(dict);
         initialise(dict);
     }
 }
@@ -367,13 +322,10 @@ void Foam::fieldValues::faceSource::read(const dictionary& dict)
 
 void Foam::fieldValues::faceSource::write()
 {
+    fieldValue::write();
+
     if (active_)
     {
-        if (log_)
-        {
-            Info<< type() << " " << name_ << " output:" << nl;
-        }
-
         outputFilePtr_()
             << obr_.time().value() << tab
             << sum(filterField(mesh().magSf()));
diff --git a/src/postProcessing/functionObjects/field/fieldValues/faceSource/faceSource.H b/src/postProcessing/functionObjects/field/fieldValues/faceSource/faceSource.H
index 3509d733cd0f61388dfb649f0c5de68735fc32c4..e8e2634b12855625003e8d27454aa16ccd0a836d 100644
--- a/src/postProcessing/functionObjects/field/fieldValues/faceSource/faceSource.H
+++ b/src/postProcessing/functionObjects/field/fieldValues/faceSource/faceSource.H
@@ -66,7 +66,6 @@ SourceFiles
 #include "NamedEnum.H"
 #include "fieldValue.H"
 #include "labelList.H"
-#include "OFstream.H"
 #include "surfaceFieldsFwd.H"
 #include "volFieldsFwd.H"
 
@@ -125,9 +124,6 @@ private:
         //- Set faces to evaluate based on a patch
         void setPatchFaces();
 
-        //- Create the output file if not already created
-        void makeFile();
-
 
 protected:
 
@@ -148,9 +144,6 @@ protected:
         //- List of +1/-1 representing face flip map
         labelList flipMap_;
 
-        //- Output file pointer
-        autoPtr<OFstream> outputFilePtr_;
-
         //- Weight field name - only used for opWeightedAverage mode
         word weightFieldName_;
 
diff --git a/src/postProcessing/functionObjects/field/fieldValues/faceSource/faceSourceFunctionObject.H b/src/postProcessing/functionObjects/field/fieldValues/faceSource/faceSourceFunctionObject.H
index 54d717f870f1f6332e2f5e4ec0ab9ec09e916145..4810469b3c1ce011b7e55215de36aeea771c8100 100644
--- a/src/postProcessing/functionObjects/field/fieldValues/faceSource/faceSourceFunctionObject.H
+++ b/src/postProcessing/functionObjects/field/fieldValues/faceSource/faceSourceFunctionObject.H
@@ -27,7 +27,7 @@ Typedef
 
 Description
     FunctionObject wrapper around faceSource to allow it to be
-    created via the functions list within controlDict.
+    created via the functions entry within controlDict.
 
 SourceFiles
     faceSourceFunctionObject.C
diff --git a/src/postProcessing/functionObjects/field/fieldValues/fieldValue/fieldValue.C b/src/postProcessing/functionObjects/field/fieldValues/fieldValue/fieldValue.C
index 36b88d5e811ed12c58358ac405ebf222c3a440a3..325f14f3aa77dda87c820369d5fd42df99872deb 100644
--- a/src/postProcessing/functionObjects/field/fieldValues/fieldValue/fieldValue.C
+++ b/src/postProcessing/functionObjects/field/fieldValues/fieldValue/fieldValue.C
@@ -26,6 +26,7 @@ License
 
 #include "fieldValue.H"
 #include "fvMesh.H"
+#include "Time.H"
 
 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
 
@@ -54,6 +55,73 @@ void Foam::fieldValue::movePoints(const Field<point>&)
 }
 
 
+void Foam::fieldValue::makeFile()
+{
+    // Create the forces file if not already created
+    if (outputFilePtr_.empty())
+    {
+        if (debug)
+        {
+            Info<< "Creating output file." << endl;
+        }
+
+        // File update
+        if (Pstream::master())
+        {
+            fileName outputDir;
+            word startTimeName =
+                obr_.time().timeName(obr_.time().startTime().value());
+
+            if (Pstream::parRun())
+            {
+                // Put in undecomposed case (Note: gives problems for
+                // distributed data running)
+                outputDir =
+                    obr_.time().path()/".."/name_/startTimeName;
+            }
+            else
+            {
+                outputDir = obr_.time().path()/name_/startTimeName;
+            }
+
+            // Create directory if does not exist
+            mkDir(outputDir);
+
+            // Open new file at start up
+            outputFilePtr_.reset(new OFstream(outputDir/(type() + ".dat")));
+
+            // Add headers to output data
+            writeFileHeader();
+        }
+    }
+}
+
+
+void Foam::fieldValue::read(const dictionary& dict)
+{
+    if (active_)
+    {
+        log_ = dict.lookupOrDefault<Switch>("log", false);
+        dict.lookup("fields") >> fields_;
+        dict.lookup("valueOutput") >> valueOutput_;
+    }
+}
+
+
+void Foam::fieldValue::write()
+{
+    if (active_)
+    {
+        if (log_)
+        {
+            Info<< type() << " " << name_ << " output:" << nl;
+        }
+
+        makeFile();
+    }
+}
+
+
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
 Foam::fieldValue::fieldValue
@@ -70,7 +138,8 @@ Foam::fieldValue::fieldValue
     log_(false),
     sourceName_(dict.lookup("sourceName")),
     fields_(dict.lookup("fields")),
-    valueOutput_(dict.lookup("valueOutput"))
+    valueOutput_(dict.lookup("valueOutput")),
+    outputFilePtr_(NULL)
 {
     // Only active if obr is an fvMesh
     if (isA<fvMesh>(obr_))
@@ -103,65 +172,6 @@ Foam::fieldValue::~fieldValue()
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
-const Foam::word& Foam::fieldValue::name() const
-{
-    return name_;
-}
-
-
-const Foam::objectRegistry& Foam::fieldValue::obr() const
-{
-    return obr_;
-}
-
-
-bool Foam::fieldValue::active() const
-{
-    return active_;
-}
-
-
-const Foam::Switch& Foam::fieldValue::log() const
-{
-    return log_;
-}
-
-
-const Foam::word& Foam::fieldValue::sourceName() const
-{
-    return sourceName_;
-}
-
-
-const Foam::wordList& Foam::fieldValue::fields() const
-{
-    return fields_;
-}
-
-
-const Foam::Switch& Foam::fieldValue::valueOutput() const
-{
-    return valueOutput_;
-}
-
-
-const Foam::fvMesh& Foam::fieldValue::mesh() const
-{
-    return refCast<const fvMesh>(obr_);
-}
-
-
-void Foam::fieldValue::read(const dictionary& dict)
-{
-    if (active_)
-    {
-        log_ = dict.lookupOrDefault<Switch>("log", false);
-        dict.lookup("fields") >> fields_;
-        dict.lookup("valueOutput") >> valueOutput_;
-    }
-}
-
-
 void Foam::fieldValue::execute()
 {
     // Do nothing
diff --git a/src/postProcessing/functionObjects/field/fieldValues/fieldValue/fieldValue.H b/src/postProcessing/functionObjects/field/fieldValues/fieldValue/fieldValue.H
index 3d862b1f6be9303ec7ba21fb5d524943ad93ba04..1b96bb8e41c6171c50ab7b6ee60f093e6e98b9f7 100644
--- a/src/postProcessing/functionObjects/field/fieldValues/fieldValue/fieldValue.H
+++ b/src/postProcessing/functionObjects/field/fieldValues/fieldValue/fieldValue.H
@@ -38,6 +38,7 @@ SourceFiles
 
 #include "Switch.H"
 #include "pointFieldFwd.H"
+#include "OFstream.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -82,9 +83,18 @@ protected:
         //- Output field values flag
         Switch valueOutput_;
 
+        //- Output file pointer
+        autoPtr<OFstream> outputFilePtr_;
+
 
         // Functions to be over-ridden from IOoutputFilter class
 
+            //- Make the output file
+            virtual void makeFile();
+
+            //- Write the output file header
+            virtual void writeFileHeader() = 0;
+
             //- Update mesh
             virtual void updateMesh(const mapPolyMesh&);
 
@@ -117,28 +127,28 @@ public:
         // Access
 
             //- Return the name of the geometric source
-            const word& name() const;
+            inline const word& name() const;
 
             //- Return the reference to the object registry
-            const objectRegistry& obr() const;
+            inline const objectRegistry& obr() const;
 
             //- Return the active flag
-            bool active() const;
+            inline bool active() const;
 
             //- Return the switch to send output to Info as well as to file
-            const Switch& log() const;
+            inline const Switch& log() const;
 
             //- Return the source name
-            const word& sourceName() const;
+            inline const word& sourceName() const;
 
             //- Return the list of field names
-            const wordList& fields() const;
+            inline const wordList& fields() const;
 
             //- Return the output field values flag
-            const Switch& valueOutput() const;
+            inline const Switch& valueOutput() const;
 
             //- Helper function to return the reference to the mesh
-            const fvMesh& mesh() const;
+            inline const fvMesh& mesh() const;
 
 
         // Function object functions
@@ -146,6 +156,9 @@ public:
             //- Read from dictionary
             virtual void read(const dictionary& dict);
 
+            //- Write to screen/file
+            virtual void write();
+
             //- Execute
             virtual void execute();
 
@@ -160,6 +173,10 @@ public:
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
+#include "fieldValueI.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
 #endif
 
 // ************************************************************************* //
diff --git a/src/postProcessing/functionObjects/field/fieldValues/fieldValue/fieldValueI.H b/src/postProcessing/functionObjects/field/fieldValues/fieldValue/fieldValueI.H
new file mode 100644
index 0000000000000000000000000000000000000000..b5aed9ffdf362c4c15e21e4b787dcb618121c58a
--- /dev/null
+++ b/src/postProcessing/functionObjects/field/fieldValues/fieldValue/fieldValueI.H
@@ -0,0 +1,79 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2009-2009 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 2 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, write to the Free Software Foundation,
+    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+\*---------------------------------------------------------------------------*/
+
+#include "fieldValue.H"
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+inline const Foam::word& Foam::fieldValue::name() const
+{
+    return name_;
+}
+
+
+inline const Foam::objectRegistry& Foam::fieldValue::obr() const
+{
+    return obr_;
+}
+
+
+inline bool Foam::fieldValue::active() const
+{
+    return active_;
+}
+
+
+inline const Foam::Switch& Foam::fieldValue::log() const
+{
+    return log_;
+}
+
+
+inline const Foam::word& Foam::fieldValue::sourceName() const
+{
+    return sourceName_;
+}
+
+
+inline const Foam::wordList& Foam::fieldValue::fields() const
+{
+    return fields_;
+}
+
+
+inline const Foam::Switch& Foam::fieldValue::valueOutput() const
+{
+    return valueOutput_;
+}
+
+
+inline const Foam::fvMesh& Foam::fieldValue::mesh() const
+{
+    return refCast<const fvMesh>(obr_);
+}
+
+
+// ************************************************************************* //
diff --git a/src/postProcessing/functionObjects/field/streamLine/streamLineFunctionObject.H b/src/postProcessing/functionObjects/field/streamLine/streamLineFunctionObject.H
index 051299d8755a55384f2b6e575d5172cee05e1002..6905aa0c570b3d61483820e1373f1f4440382abe 100644
--- a/src/postProcessing/functionObjects/field/streamLine/streamLineFunctionObject.H
+++ b/src/postProcessing/functionObjects/field/streamLine/streamLineFunctionObject.H
@@ -27,7 +27,7 @@ Typedef
 
 Description
     FunctionObject wrapper around streamLines to allow them to be created via
-    the functions list within controlDict.
+    the functions entry within controlDict.
 
 SourceFiles
     streamLineFunctionObject.C
diff --git a/src/postProcessing/functionObjects/field/streamLine/streamLineParticle.C b/src/postProcessing/functionObjects/field/streamLine/streamLineParticle.C
index f344fa870f151adba1bf62357491b574815b3dc8..c39b6188871026ece1c9cf16b83da7a5d934210b 100644
--- a/src/postProcessing/functionObjects/field/streamLine/streamLineParticle.C
+++ b/src/postProcessing/functionObjects/field/streamLine/streamLineParticle.C
@@ -84,7 +84,7 @@ Foam::vector Foam::streamLineParticle::interpolateFields
 
     const DynamicList<vector>& U = sampledVectors_[td.UIndex_];
 
-    return U[U.size()-1];
+    return U.last();
 }
 
 
@@ -226,21 +226,21 @@ bool Foam::streamLineParticle::move(streamLineParticle::trackData& td)
         // Transfer particle data into trackData.
         //td.allPositions_.append(sampledPositions_);
         td.allPositions_.append(vectorList());
-        vectorList& top = td.allPositions_[td.allPositions_.size()-1];
+        vectorList& top = td.allPositions_.last();
         top.transfer(sampledPositions_);
 
         forAll(sampledScalars_, i)
         {
             //td.allScalars_[i].append(sampledScalars_[i]);
             td.allScalars_[i].append(scalarList());
-            scalarList& top = td.allScalars_[i][td.allScalars_[i].size()-1];
+            scalarList& top = td.allScalars_[i].last();
             top.transfer(sampledScalars_[i]);
         }
         forAll(sampledVectors_, i)
         {
             //td.allVectors_[i].append(sampledVectors_[i]);
             td.allVectors_[i].append(vectorList());
-            vectorList& top = td.allVectors_[i][td.allVectors_[i].size()-1];
+            vectorList& top = td.allVectors_[i].last();
             top.transfer(sampledVectors_[i]);
         }
     }
diff --git a/src/postProcessing/functionObjects/forces/forceCoeffs/forceCoeffsFunctionObject.H b/src/postProcessing/functionObjects/forces/forceCoeffs/forceCoeffsFunctionObject.H
index 155e1b4537031efd0087273e9e441b39423c1cd8..5d0370a09b6a387924500d051ed3e3f509fecade 100644
--- a/src/postProcessing/functionObjects/forces/forceCoeffs/forceCoeffsFunctionObject.H
+++ b/src/postProcessing/functionObjects/forces/forceCoeffs/forceCoeffsFunctionObject.H
@@ -27,7 +27,7 @@ Typedef
 
 Description
     FunctionObject wrapper around forceCoeffs to allow them to be created via
-    the functions list within controlDict.
+    the functions entry within controlDict.
 
 SourceFiles
     forceCoeffsFunctionObject.C
diff --git a/src/postProcessing/functionObjects/forces/forces/forces.H b/src/postProcessing/functionObjects/forces/forces/forces.H
index 42bb67c23bb699b3a38bdef018e5b9e206ff8214..e3f7cf03fbbbd153bbb2ad1d3eb3411d87387699 100644
--- a/src/postProcessing/functionObjects/forces/forces/forces.H
+++ b/src/postProcessing/functionObjects/forces/forces/forces.H
@@ -160,6 +160,9 @@ protected:
         //- If the forces file has not been created create it
         void makeFile();
 
+        //- Output file header information
+        virtual void writeFileHeader();
+
         //- Return the effective viscous stress (laminar + turbulent).
         tmp<volSymmTensorField> devRhoReff() const;
 
@@ -176,9 +179,6 @@ protected:
         //- Disallow default bitwise assignment
         void operator=(const forces&);
 
-        //- Output file header information
-        virtual void writeFileHeader();
-
 
 public:
 
diff --git a/src/postProcessing/functionObjects/forces/forces/forcesFunctionObject.H b/src/postProcessing/functionObjects/forces/forces/forcesFunctionObject.H
index 6cf8bb9a37222c9d009f3f0d05f8e80ba23056ab..5afaf46bed3014a1406d130258524d88d11856d9 100644
--- a/src/postProcessing/functionObjects/forces/forces/forcesFunctionObject.H
+++ b/src/postProcessing/functionObjects/forces/forces/forcesFunctionObject.H
@@ -27,7 +27,7 @@ Typedef
 
 Description
     FunctionObject wrapper around forces to allow them to be created via the
-    functions list within controlDict.
+    functions entry within controlDict.
 
 SourceFiles
     forcesFunctionObject.C
diff --git a/src/postProcessing/functionObjects/systemCall/systemCallFunctionObject.H b/src/postProcessing/functionObjects/systemCall/systemCallFunctionObject.H
index ad4f429cabd8feb81cfca8de8748e99b04dd2fd6..2b8feb0f52af8b6e49d4f5c1cb12d332e9bfc824 100644
--- a/src/postProcessing/functionObjects/systemCall/systemCallFunctionObject.H
+++ b/src/postProcessing/functionObjects/systemCall/systemCallFunctionObject.H
@@ -27,7 +27,7 @@ Typedef
 
 Description
     FunctionObject wrapper around systemCall to allow them to be created via
-    the functions list within controlDict.
+    the functions entry within controlDict.
 
 SourceFiles
     systemCallFunctionObject.C
diff --git a/src/postProcessing/functionObjects/utilities/Make/files b/src/postProcessing/functionObjects/utilities/Make/files
index 40a33c238ddd3983b7817bd096632f1920e2ba60..1812a0b448a534162e144935be7751103339c772 100644
--- a/src/postProcessing/functionObjects/utilities/Make/files
+++ b/src/postProcessing/functionObjects/utilities/Make/files
@@ -1,7 +1,13 @@
+abortCalculation/abortCalculation.C
+abortCalculation/abortCalculationFunctionObject.C
+
 staticPressure/staticPressure.C
 staticPressure/staticPressureFunctionObject.C
 
 dsmcFields/dsmcFields.C
 dsmcFields/dsmcFieldsFunctionObject.C
 
+timeActivatedFileUpdate/timeActivatedFileUpdate.C
+timeActivatedFileUpdate/timeActivatedFileUpdateFunctionObject.C
+
 LIB = $(FOAM_LIBBIN)/libutilityFunctionObjects
diff --git a/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/vtkFoam/vtkFoamInsertNextPoint.H b/src/postProcessing/functionObjects/utilities/abortCalculation/IOabortCalculation.H
similarity index 79%
rename from applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/vtkFoam/vtkFoamInsertNextPoint.H
rename to src/postProcessing/functionObjects/utilities/abortCalculation/IOabortCalculation.H
index 70f18986845348aeb011c3731ced173bcfc6ddbc..5e4fe444e734f8ed7a17a7734743a4c125ed725e 100644
--- a/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/vtkFoam/vtkFoamInsertNextPoint.H
+++ b/src/postProcessing/functionObjects/utilities/abortCalculation/IOabortCalculation.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 2009-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -22,26 +22,27 @@ License
     along with OpenFOAM; if not, write to the Free Software Foundation,
     Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
 
-InClass
-    Foam::vtkFoam
+Typedef
+    Foam::IOabortCalculation
+
+Description
+    Instance of the generic IOOutputFilter for abortCalculation.
 
 \*---------------------------------------------------------------------------*/
 
-#ifndef vtkFoamInsertNextPoint_H
-#define vtkFoamInsertNextPoint_H
+#ifndef IOabortCalculation_H
+#define IOabortCalculation_H
+
+#include "abortCalculation.H"
+#include "IOOutputFilter.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-inline void vtkFoamInsertNextPoint
-(
-    vtkPoints *points,
-    const Foam::point& p
-)
+namespace Foam
 {
-    points->InsertNextPoint(p.x(), p.y(), p.z());
+    typedef IOOutputFilter<abortCalculation> IOabortCalculation;
 }
 
-
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 #endif
diff --git a/src/postProcessing/functionObjects/utilities/abortCalculation/abortCalculation.C b/src/postProcessing/functionObjects/utilities/abortCalculation/abortCalculation.C
new file mode 100644
index 0000000000000000000000000000000000000000..980c41e02f34faa8505a3840ee947eb583ea6e8b
--- /dev/null
+++ b/src/postProcessing/functionObjects/utilities/abortCalculation/abortCalculation.C
@@ -0,0 +1,159 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2009-2009 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 2 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, write to the Free Software Foundation,
+    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+\*---------------------------------------------------------------------------*/
+
+#include "abortCalculation.H"
+#include "dictionary.H"
+#include "error.H"
+#include "Time.H"
+#include "OSspecific.H"
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+namespace Foam
+{
+    defineTypeNameAndDebug(abortCalculation, 0);
+}
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+template<>
+const char* Foam::NamedEnum<Foam::abortCalculation::actionType, 3>::names[] =
+{
+    "noWriteNow",
+    "writeNow",
+    "nextWrite"
+};
+
+const Foam::NamedEnum<Foam::abortCalculation::actionType, 3>
+    Foam::abortCalculation::actionTypeNames_;
+
+
+// * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
+
+void Foam::abortCalculation::removeFile() const
+{
+    if (isFile(abortFile_))
+    {
+        rm(abortFile_);
+    }
+}
+
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+Foam::abortCalculation::abortCalculation
+(
+    const word& name,
+    const objectRegistry& obr,
+    const dictionary& dict,
+    const bool loadFromFiles
+)
+:
+    name_(name),
+    obr_(obr),
+    abortFile_("$FOAM_CASE/" + name),
+    action_(nextWrite)
+{
+    abortFile_.expand();
+    read(dict);
+
+    // remove any old files from previous runs
+    removeFile();
+}
+
+
+// * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
+
+Foam::abortCalculation::~abortCalculation()
+{}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+void Foam::abortCalculation::read(const dictionary& dict)
+{
+    word actionName;
+
+    if (dict.found("action"))
+    {
+        action_ = actionTypeNames_.read
+        (
+            dict.lookup("action")
+        );
+    }
+    else
+    {
+        action_ = nextWrite;
+    }
+
+    if (dict.readIfPresent("fileName", abortFile_))
+    {
+        abortFile_.expand();
+    }
+}
+
+
+void Foam::abortCalculation::execute()
+{
+    if (isFile(abortFile_))
+    {
+        switch (action_)
+        {
+            case noWriteNow :
+                obr_.time().stopAt(Time::saNoWriteNow);
+                Info<< "user requested abort - "
+                       "stop immediately without writing data" << endl;
+                break;
+
+            case writeNow :
+                obr_.time().stopAt(Time::saWriteNow);
+                Info<< "user requested abort - "
+                       "stop immediately with writing data" << endl;
+                break;
+
+            case nextWrite :
+                obr_.time().stopAt(Time::saNextWrite);
+                Info<< "user requested abort - "
+                       "stop after next data write" << endl;
+                break;
+        }
+    }
+}
+
+
+void Foam::abortCalculation::end()
+{
+    removeFile();
+}
+
+
+void Foam::abortCalculation::write()
+{
+    execute();
+}
+
+
+// ************************************************************************* //
diff --git a/src/postProcessing/functionObjects/utilities/abortCalculation/abortCalculation.H b/src/postProcessing/functionObjects/utilities/abortCalculation/abortCalculation.H
new file mode 100644
index 0000000000000000000000000000000000000000..0bec3530d7343d1caad2226f6c0aa0ccf175d73e
--- /dev/null
+++ b/src/postProcessing/functionObjects/utilities/abortCalculation/abortCalculation.H
@@ -0,0 +1,168 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2009-2009 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 2 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, write to the Free Software Foundation,
+    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+Class
+    Foam::abortCalculation
+
+Description
+    Watches for presence of the named file in the $FOAM_CASE directory
+    and aborts the calculation if it is present.
+
+    Currently the following action types are supported:
+    - noWriteNow
+    - writeNow
+    - nextWrite
+
+SourceFiles
+    abortCalculation.C
+    IOabortCalculation.H
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef abortCalculation_H
+#define abortCalculation_H
+
+#include "pointFieldFwd.H"
+#include "NamedEnum.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+// Forward declaration of classes
+class objectRegistry;
+class dictionary;
+class mapPolyMesh;
+
+/*---------------------------------------------------------------------------*\
+                      Class abortCalculation Declaration
+\*---------------------------------------------------------------------------*/
+
+class abortCalculation
+{
+public:
+
+    // Public data
+
+        //- Enumeration defining the type of action
+        enum actionType
+        {
+            noWriteNow,    /*!< stop immediately without writing data */
+            writeNow,      /*!< write data and stop immediately */
+            nextWrite      /*!< stop the next time data are written */
+        };
+
+private:
+
+    // Private data
+
+        //- Name of the abort file unless otherwise specified
+        word name_;
+
+        const objectRegistry& obr_;
+
+        //- The fully-qualified name of the abort file
+        fileName abortFile_;
+
+        //- Action type names
+        static const NamedEnum<actionType, 3> actionTypeNames_;
+
+        //- The type of action
+        actionType action_;
+
+
+    // Private Member Functions
+
+        //- Remove abort file.
+        void removeFile() const;
+
+        //- Disallow default bitwise copy construct
+        abortCalculation(const abortCalculation&);
+
+        //- Disallow default bitwise assignment
+        void operator=(const abortCalculation&);
+
+
+public:
+
+    //- Runtime type information
+    TypeName("abort");
+
+
+    // Constructors
+
+        //- Construct for given objectRegistry and dictionary.
+        abortCalculation
+        (
+            const word& name,
+            const objectRegistry&,
+            const dictionary&,
+            const bool loadFromFilesUnused = false
+        );
+
+
+    //- Destructor
+    virtual ~abortCalculation();
+
+
+    // Member Functions
+
+        //- Return name of the abort file
+        virtual const word& name() const
+        {
+            return name_;
+        }
+
+        //- Read the dictionary settings
+        virtual void read(const dictionary&);
+
+        //- Execute, check existence of abort file and take action
+        virtual void execute();
+
+        //- Execute at the final time-loop, used for cleanup
+        virtual void end();
+
+        //- Execute, check existence of abort file and take action
+        virtual void write();
+
+        //- Update for changes of mesh - does nothing
+        virtual void updateMesh(const mapPolyMesh&)
+        {}
+
+        //- Update for changes of mesh - does nothing
+        virtual void movePoints(const pointField&)
+        {}
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/lagrangian/dsmc/clouds/derived/dsmcCloud/dsmcCloud.C b/src/postProcessing/functionObjects/utilities/abortCalculation/abortCalculationFunctionObject.C
similarity index 69%
rename from src/lagrangian/dsmc/clouds/derived/dsmcCloud/dsmcCloud.C
rename to src/postProcessing/functionObjects/utilities/abortCalculation/abortCalculationFunctionObject.C
index 2f819e826bac49ca1cdf1a7cd803608b4d77435e..e67d1f97fb8effd2dd4f4c75d9d7a1a50666ae6c 100644
--- a/src/lagrangian/dsmc/clouds/derived/dsmcCloud/dsmcCloud.C
+++ b/src/postProcessing/functionObjects/utilities/abortCalculation/abortCalculationFunctionObject.C
@@ -24,45 +24,20 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "dsmcCloud.H"
+#include "abortCalculationFunctionObject.H"
 
 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
 
 namespace Foam
 {
-    defineTypeNameAndDebug(dsmcCloud, 0);
-};
-
-
-// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
-
-Foam::dsmcCloud::dsmcCloud
-(
-    const word& cloudName,
-    const fvMesh& mesh
-)
-:
-    DsmcCloud<dsmcParcel>(cloudName, mesh)
-{
-    dsmcParcel::readFields(*this);
+    defineNamedTemplateTypeNameAndDebug(abortCalculationFunctionObject, 0);
+
+    addToRunTimeSelectionTable
+    (
+        functionObject,
+        abortCalculationFunctionObject,
+        dictionary
+    );
 }
 
-
-Foam::dsmcCloud::dsmcCloud
-(
-    const word& cloudName,
-    const fvMesh& mesh,
-    const IOdictionary& dsmcInitialiseDict
-)
-:
-    DsmcCloud<dsmcParcel>(cloudName, mesh, dsmcInitialiseDict)
-{}
-
-
-// * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
-
-Foam::dsmcCloud::~dsmcCloud()
-{}
-
-
 // ************************************************************************* //
diff --git a/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/PVFoamReader/vtkFoamData.h b/src/postProcessing/functionObjects/utilities/abortCalculation/abortCalculationFunctionObject.H
similarity index 66%
rename from applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/PVFoamReader/vtkFoamData.h
rename to src/postProcessing/functionObjects/utilities/abortCalculation/abortCalculationFunctionObject.H
index ebb0a7ad810dd03a74ecbbfde812ebad3eafdeff..eadedcc29656c9f113445d75b10aafc3f3b8d480 100644
--- a/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/PVFoamReader/vtkFoamData.h
+++ b/src/postProcessing/functionObjects/utilities/abortCalculation/abortCalculationFunctionObject.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 2009-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -22,46 +22,31 @@ License
     along with OpenFOAM; if not, write to the Free Software Foundation,
     Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
 
-Class
-    vtkFoamData
+Typedef
+    Foam::abortCalculationFunctionObject
 
 Description
+    FunctionObject wrapper around abortCalculation to allow it to be created via
+    the functions entry within controlDict.
 
 SourceFiles
-    vtkFoamData.cxx
+    abortCalculationFunctionObject.C
 
 \*---------------------------------------------------------------------------*/
 
-#ifndef vtkFoamData_h
-#define vtkFoamData_h
+#ifndef abortCalculationFunctionObject_H
+#define abortCalculationFunctionObject_H
 
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-#include "vtkDataSetSource.h"
+#include "abortCalculation.H"
+#include "OutputFilterFunctionObject.H"
 
-/*---------------------------------------------------------------------------*\
-                         Class vtkFoamData Declaration
-\*---------------------------------------------------------------------------*/
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-class VTK_IO_EXPORT vtkFoamData
-: 
-    public vtkDataSetSource
+namespace Foam
 {
-
-public:
-
-    static vtkFoamData *New();
-    vtkTypeRevisionMacro(vtkFoamData,vtkDataSetSource);
-
-    vtkFoamData();
-    ~vtkFoamData();
-
-    void SetNthOutput(int num, vtkDataObject *output)
-    {
-        vtkDataSetSource::SetNthOutput(num, output);
-    }
-};
-
+    typedef OutputFilterFunctionObject<abortCalculation>
+        abortCalculationFunctionObject;
+}
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
diff --git a/src/postProcessing/functionObjects/utilities/dsmcFields/dsmcFields.C b/src/postProcessing/functionObjects/utilities/dsmcFields/dsmcFields.C
index 4544afdc459e53f955710bf11c770f2381cb682a..7d72ddd265ddf6e332eacf9ce70083fc11e51daf 100644
--- a/src/postProcessing/functionObjects/utilities/dsmcFields/dsmcFields.C
+++ b/src/postProcessing/functionObjects/utilities/dsmcFields/dsmcFields.C
@@ -62,7 +62,12 @@ Foam::dsmcFields::dsmcFields
         WarningIn
         (
             "dsmcFields::dsmcFields"
-            "(const objectRegistry&, const dictionary&)"
+            "("
+                "const word&, "
+                "const objectRegistry&, "
+                "const dictionary&, "
+                "const bool"
+            ")"
         )   << "No fvMesh available, deactivating." << nl
             << endl;
     }
diff --git a/src/postProcessing/functionObjects/utilities/dsmcFields/dsmcFieldsFunctionObject.H b/src/postProcessing/functionObjects/utilities/dsmcFields/dsmcFieldsFunctionObject.H
index 758626798c8563a706959d890368ba74f44e9dd3..a6b3db2e53078d4ebbd6b19c1ab36478b14dd304 100644
--- a/src/postProcessing/functionObjects/utilities/dsmcFields/dsmcFieldsFunctionObject.H
+++ b/src/postProcessing/functionObjects/utilities/dsmcFields/dsmcFieldsFunctionObject.H
@@ -27,7 +27,7 @@ Typedef
 
 Description
     FunctionObject wrapper around dsmcFields to allow it to be created via
-    the functions list within controlDict.
+    the functions entry within controlDict.
 
 SourceFiles
     dsmcFieldsFunctionObject.C
diff --git a/src/postProcessing/functionObjects/utilities/staticPressure/staticPressure.C b/src/postProcessing/functionObjects/utilities/staticPressure/staticPressure.C
index b746987f3c17ed9ad2789622cc0ea2c56c29fd0b..3f082410a5a2247674f48ee880558fe044f4629d 100644
--- a/src/postProcessing/functionObjects/utilities/staticPressure/staticPressure.C
+++ b/src/postProcessing/functionObjects/utilities/staticPressure/staticPressure.C
@@ -68,7 +68,12 @@ Foam::staticPressure::staticPressure
         WarningIn
         (
             "staticPressure::staticPressure"
-            "(const objectRegistry&, const dictionary&)"
+            "("
+                "const word&, "
+                "const objectRegistry&, "
+                "const dictionary&, "
+                "const bool"
+            ")"
         )   << "No fvMesh available, deactivating." << nl
             << endl;
     }
@@ -81,7 +86,12 @@ Foam::staticPressure::staticPressure
             WarningIn
             (
                 "staticPressure::staticPressure"
-                "(const objectRegistry&, const dictionary&)"
+                "("
+                    "const word&, "
+                    "const objectRegistry&, "
+                    "const dictionary&, "
+                    "const bool"
+                ")"
             )   << "Pressure is not kinematic pressure, deactivating." << nl
                 << endl;
         }
diff --git a/src/postProcessing/functionObjects/utilities/staticPressure/staticPressureFunctionObject.H b/src/postProcessing/functionObjects/utilities/staticPressure/staticPressureFunctionObject.H
index 0ddb184d22edc949f28fb4cdcc79c02d1bfc3364..71c1049ef007b90e1fe7ede3e35406cdb181d265 100644
--- a/src/postProcessing/functionObjects/utilities/staticPressure/staticPressureFunctionObject.H
+++ b/src/postProcessing/functionObjects/utilities/staticPressure/staticPressureFunctionObject.H
@@ -27,7 +27,7 @@ Typedef
 
 Description
     FunctionObject wrapper around staticPressure to allow it to be created via
-    the functions list within controlDict.
+    the functions entry within controlDict.
 
 SourceFiles
     staticPressureFunctionObject.C
diff --git a/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/vtkFoam/vtkFoamAddFields.H b/src/postProcessing/functionObjects/utilities/timeActivatedFileUpdate/IOtimeActivatedFileUpdate.H
similarity index 71%
rename from applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/vtkFoam/vtkFoamAddFields.H
rename to src/postProcessing/functionObjects/utilities/timeActivatedFileUpdate/IOtimeActivatedFileUpdate.H
index 3136edd5fee3a16ee467440779a2a05540257fce..e0e197f74c9134ba8baab89df769cec62821e750 100644
--- a/applications/utilities/postProcessing/graphics/PV2Readers/PVFoamReader/vtkFoam/vtkFoamAddFields.H
+++ b/src/postProcessing/functionObjects/utilities/timeActivatedFileUpdate/IOtimeActivatedFileUpdate.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 2009-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -22,37 +22,27 @@ License
     along with OpenFOAM; if not, write to the Free Software Foundation,
     Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
 
-InClass
-    Foam::vtkFoam
+Typedef
+    Foam::IOtimeActivatedFileUpdate
+
+Description
+    Instance of the generic IOOutputFilter for timeActivatedFileUpdate.
 
 \*---------------------------------------------------------------------------*/
 
-#ifndef vtkFoamAddFields_H
-#define vtkFoamAddFields_H
+#ifndef IOtimeActivatedFileUpdate_H
+#define IOtimeActivatedFileUpdate_H
+
+#include "timeActivatedFileUpdate.H"
+#include "IOOutputFilter.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-template<class GeoField>
-void Foam::vtkFoam::addFields
-(
-    vtkDataArraySelection *fieldSelection,
-    const IOobjectList& objects
-)
+namespace Foam
 {
-    IOobjectList fieldObjects(objects.lookupClass(GeoField::typeName));
-
-    for
-    (
-        IOobjectList::iterator iter = fieldObjects.begin();
-        iter != fieldObjects.end();
-        ++iter
-    )
-    {
-        fieldSelection->AddArray(iter()->name().c_str());
-    }
+    typedef IOOutputFilter<timeActivatedFileUpdate> IOtimeActivatedFileUpdate;
 }
 
-
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 #endif
diff --git a/src/postProcessing/functionObjects/utilities/timeActivatedFileUpdate/controlDict b/src/postProcessing/functionObjects/utilities/timeActivatedFileUpdate/controlDict
new file mode 100644
index 0000000000000000000000000000000000000000..635cefc4e8fd4366f2dc341e7213e05a8ffff09d
--- /dev/null
+++ b/src/postProcessing/functionObjects/utilities/timeActivatedFileUpdate/controlDict
@@ -0,0 +1,67 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  1.6                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     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 uncompressed;
+
+timeFormat      general;
+
+timePrecision   6;
+
+runTimeModifiable yes;
+
+functions
+{
+    fileUpdate1
+    {
+        type              timeActivatedFileUpdate;
+        functionObjectLibs ("libutilityFunctionObjects.so");
+        outputControl     timeStep;
+        outputInterval    1;
+        fileToUpdate      "$FOAM_CASE/system/fvSolution";
+        timeVsFile
+        (
+            (-1 "$FOAM_CASE/system/fvSolution.0")
+            (0.10 "$FOAM_CASE/system/fvSolution.10")
+            (0.20 "$FOAM_CASE/system/fvSolution.20")
+            (0.35 "$FOAM_CASE/system/fvSolution.35")
+        );
+    }
+}
+
+// ************************************************************************* //
diff --git a/src/postProcessing/functionObjects/utilities/timeActivatedFileUpdate/timeActivatedFileUpdate.C b/src/postProcessing/functionObjects/utilities/timeActivatedFileUpdate/timeActivatedFileUpdate.C
new file mode 100644
index 0000000000000000000000000000000000000000..7504fb5bfa58fb8bf8b1011d51da2f504aec3777
--- /dev/null
+++ b/src/postProcessing/functionObjects/utilities/timeActivatedFileUpdate/timeActivatedFileUpdate.C
@@ -0,0 +1,146 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2009-2009 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 2 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, write to the Free Software Foundation,
+    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+\*---------------------------------------------------------------------------*/
+
+#include "timeActivatedFileUpdate.H"
+#include "objectRegistry.H"
+#include "Time.H"
+#include "dictionary.H"
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+namespace Foam
+{
+    defineTypeNameAndDebug(timeActivatedFileUpdate, 0);
+}
+
+
+// * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
+
+void Foam::timeActivatedFileUpdate::updateFile()
+{
+    label i = lastIndex_;
+    while
+    (
+        i < timeVsFile_.size()-1
+     && timeVsFile_[i+1].first() < obr_.time().value()
+    )
+    {
+        i++;
+    }
+
+    if (i > lastIndex_)
+    {
+        Info<< nl << type() << ": copying file" << nl << timeVsFile_[i].second()
+            << nl << "to:" << nl << fileToUpdate_ << nl << endl;
+
+        cp(timeVsFile_[i].second(), fileToUpdate_);
+        lastIndex_ = i;
+    }
+}
+
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+Foam::timeActivatedFileUpdate::timeActivatedFileUpdate
+(
+    const word& name,
+    const objectRegistry& obr,
+    const dictionary& dict,
+    const bool loadFromFiles
+)
+:
+    name_(name),
+    obr_(obr),
+    active_(true),
+    fileToUpdate_(dict.lookup("fileToUpdate")),
+    timeVsFile_(),
+    lastIndex_(-1)
+{
+    read(dict);
+}
+
+
+// * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
+
+Foam::timeActivatedFileUpdate::~timeActivatedFileUpdate()
+{}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+void Foam::timeActivatedFileUpdate::read(const dictionary& dict)
+{
+    if (active_)
+    {
+        dict.lookup("fileToUpdate") >> fileToUpdate_;
+        dict.lookup("timeVsFile") >> timeVsFile_;
+
+        lastIndex_ = -1;
+        fileToUpdate_.expand();
+
+        Info<< type() << ": time vs file list:" << nl;
+        forAll(timeVsFile_, i)
+        {
+            timeVsFile_[i].second() = timeVsFile_[i].second().expand();
+            if (!isFile(timeVsFile_[i].second()))
+            {
+                FatalErrorIn("timeActivatedFileUpdate::read(const dictionary&)")
+                    << "File: " << timeVsFile_[i].second() << " not found"
+                    << nl << exit(FatalError);
+            }
+
+            Info<< "    " << timeVsFile_[i].first() << tab
+                << timeVsFile_[i].second() << endl;
+        }
+        Info<< endl;
+
+        updateFile();
+    }
+}
+
+
+void Foam::timeActivatedFileUpdate::execute()
+{
+    if (active_)
+    {
+        updateFile();
+    }
+}
+
+
+void Foam::timeActivatedFileUpdate::end()
+{
+    // Do nothing
+}
+
+
+void Foam::timeActivatedFileUpdate::write()
+{
+    // Do nothing
+}
+
+
+// ************************************************************************* //
diff --git a/src/postProcessing/functionObjects/utilities/timeActivatedFileUpdate/timeActivatedFileUpdate.H b/src/postProcessing/functionObjects/utilities/timeActivatedFileUpdate/timeActivatedFileUpdate.H
new file mode 100644
index 0000000000000000000000000000000000000000..c304c483bd457a3b2fb1a31fb2cb1e4f9cabc747
--- /dev/null
+++ b/src/postProcessing/functionObjects/utilities/timeActivatedFileUpdate/timeActivatedFileUpdate.H
@@ -0,0 +1,173 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2009-2009 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 2 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, write to the Free Software Foundation,
+    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+Class
+    Foam::timeActivatedFileUpdate
+
+Description
+    Performs a file copy/replacement once a specified time has been reached.
+
+    Example usage to update the fvSolution dictionary at various times
+    throughout the calculation:
+
+        fileUpdate1
+        {
+            type              timeActivatedFileUpdate;
+            functionObjectLibs ("libutilityFunctionObjects.so");
+            outputControl     timeStep;
+            outputInterval    1;
+            fileToUpdate      "$FOAM_CASE/system/fvSolution";
+            timeVsFile
+            (
+                (-1 "$FOAM_CASE/system/fvSolution.0")
+                (0.10 "$FOAM_CASE/system/fvSolution.10")
+                (0.20 "$FOAM_CASE/system/fvSolution.20")
+                (0.35 "$FOAM_CASE/system/fvSolution.35")
+            );
+        }
+
+
+SourceFiles
+    timeActivatedFileUpdate.C
+    IOtimeActivatedFileUpdate.H
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef timeActivatedFileUpdate_H
+#define timeActivatedFileUpdate_H
+
+#include "pointFieldFwd.H"
+#include "Tuple2.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+// Forward declaration of classes
+class objectRegistry;
+class dictionary;
+class mapPolyMesh;
+
+/*---------------------------------------------------------------------------*\
+                  Class timeActivatedFileUpdate Declaration
+\*---------------------------------------------------------------------------*/
+
+class timeActivatedFileUpdate
+{
+    // Private data
+
+        //- Name of this set of timeActivatedFileUpdate objects
+        word name_;
+
+        //- Owner database
+        const objectRegistry& obr_;
+
+        //- On/off switch
+        bool active_;
+
+        //- Name of file to update
+        fileName fileToUpdate_;
+
+        //- List of times vs filenames
+        List<Tuple2<scalar, fileName> > timeVsFile_;
+
+        //- Index of last file copied
+        label lastIndex_;
+
+
+    // Private Member Functions
+
+        //- Update file
+        void updateFile();
+
+        //- Disallow default bitwise copy construct
+        timeActivatedFileUpdate(const timeActivatedFileUpdate&);
+
+        //- Disallow default bitwise assignment
+        void operator=(const timeActivatedFileUpdate&);
+
+
+public:
+
+    //- Runtime type information
+    TypeName("timeActivatedFileUpdate");
+
+
+    // Constructors
+
+        //- Construct for given objectRegistry and dictionary.
+        //  Allow the possibility to load fields from files
+        timeActivatedFileUpdate
+        (
+            const word& name,
+            const objectRegistry&,
+            const dictionary&,
+            const bool loadFromFiles = false
+        );
+
+
+    //- Destructor
+    virtual ~timeActivatedFileUpdate();
+
+
+    // Member Functions
+
+        //- Return name of the set of timeActivatedFileUpdate
+        virtual const word& name() const
+        {
+            return name_;
+        }
+
+        //- Read the timeActivatedFileUpdate data
+        virtual void read(const dictionary&);
+
+        //- Execute, currently does nothing
+        virtual void execute();
+
+        //- Execute at the final time-loop, currently does nothing
+        virtual void end();
+
+        //- Calculate the timeActivatedFileUpdate and write
+        virtual void write();
+
+        //- Update for changes of mesh
+        virtual void updateMesh(const mapPolyMesh&)
+        {}
+
+        //- Update for changes of mesh
+        virtual void movePoints(const pointField&)
+        {}
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/postProcessing/functionObjects/utilities/timeActivatedFileUpdate/timeActivatedFileUpdateFunctionObject.C b/src/postProcessing/functionObjects/utilities/timeActivatedFileUpdate/timeActivatedFileUpdateFunctionObject.C
new file mode 100644
index 0000000000000000000000000000000000000000..29a26be3d4bfcef606d8149ecf77867ccf43e3f8
--- /dev/null
+++ b/src/postProcessing/functionObjects/utilities/timeActivatedFileUpdate/timeActivatedFileUpdateFunctionObject.C
@@ -0,0 +1,47 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2009-2009 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 2 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, write to the Free Software Foundation,
+    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+\*---------------------------------------------------------------------------*/
+
+#include "timeActivatedFileUpdateFunctionObject.H"
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+namespace Foam
+{
+    defineNamedTemplateTypeNameAndDebug
+    (
+        timeActivatedFileUpdateFunctionObject,
+        0
+    );
+
+    addToRunTimeSelectionTable
+    (
+        functionObject,
+        timeActivatedFileUpdateFunctionObject,
+        dictionary
+    );
+}
+
+// ************************************************************************* //
diff --git a/src/postProcessing/functionObjects/utilities/timeActivatedFileUpdate/timeActivatedFileUpdateFunctionObject.H b/src/postProcessing/functionObjects/utilities/timeActivatedFileUpdate/timeActivatedFileUpdateFunctionObject.H
new file mode 100644
index 0000000000000000000000000000000000000000..c0dd16ab9876ec596d505e0d163dffabdc845bec
--- /dev/null
+++ b/src/postProcessing/functionObjects/utilities/timeActivatedFileUpdate/timeActivatedFileUpdateFunctionObject.H
@@ -0,0 +1,55 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2009-2009 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 2 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, write to the Free Software Foundation,
+    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+Typedef
+    Foam::timeActivatedFileUpdateFunctionObject
+
+Description
+    FunctionObject wrapper around timeActivatedFileUpdate to allow it to be
+    created via the functions list within controlDict.
+
+SourceFiles
+    timeActivatedFileUpdateFunctionObject.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef timeActivatedFileUpdateFunctionObject_H
+#define timeActivatedFileUpdateFunctionObject_H
+
+#include "timeActivatedFileUpdate.H"
+#include "OutputFilterFunctionObject.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+    typedef OutputFilterFunctionObject<timeActivatedFileUpdate>
+        timeActivatedFileUpdateFunctionObject;
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/sampling/Make/files b/src/sampling/Make/files
index 3442889069920a5cbc37654598d20e839a85450d..e9d78df7a07c94f20ec4625723c94e0fd9e75811 100644
--- a/src/sampling/Make/files
+++ b/src/sampling/Make/files
@@ -1,5 +1,6 @@
 probes/probes.C
-probes/probesFunctionObject.C
+probes/probesGrouping.C
+probes/probesFunctionObject/probesFunctionObject.C
 
 sampledSet/cloud/cloudSet.C
 sampledSet/coordSet/coordSet.C
@@ -9,6 +10,7 @@ sampledSet/midPoint/midPointSet.C
 sampledSet/midPointAndFace/midPointAndFaceSet.C
 sampledSet/sampledSet/sampledSet.C
 sampledSet/sampledSets/sampledSets.C
+sampledSet/sampledSets/sampledSetsGrouping.C
 sampledSet/sampledSetsFunctionObject/sampledSetsFunctionObject.C
 sampledSet/triSurfaceMeshPointSet/triSurfaceMeshPointSet.C
 sampledSet/uniform/uniformSet.C
@@ -34,6 +36,7 @@ sampledSurface/distanceSurface/distanceSurface.C
 sampledSurface/sampledCuttingPlane/sampledCuttingPlane.C
 sampledSurface/sampledSurface/sampledSurface.C
 sampledSurface/sampledSurfaces/sampledSurfaces.C
+sampledSurface/sampledSurfaces/sampledSurfacesGrouping.C
 sampledSurface/sampledSurfacesFunctionObject/sampledSurfacesFunctionObject.C
 sampledSurface/thresholdCellFaces/thresholdCellFaces.C
 sampledSurface/thresholdCellFaces/sampledThresholdCellFaces.C
diff --git a/src/sampling/cuttingPlane/cuttingPlane.C b/src/sampling/cuttingPlane/cuttingPlane.C
index 09585ec5e7c658b440a4df58f9d7c2f20913a30c..80a4e72bd5dbb7be4a45ef14b84a65e537ff31c2 100644
--- a/src/sampling/cuttingPlane/cuttingPlane.C
+++ b/src/sampling/cuttingPlane/cuttingPlane.C
@@ -258,6 +258,7 @@ bool Foam::cuttingPlane::walkCell
 void Foam::cuttingPlane::walkCellCuts
 (
     const primitiveMesh& mesh,
+    const bool triangulate,
     const UList<label>& edgePoint
 )
 {
@@ -293,7 +294,7 @@ void Foam::cuttingPlane::walkCellCuts
         // Check for the unexpected ...
         if (startEdgeI == -1)
         {
-            FatalErrorIn("Foam::cuttingPlane::walkCellCuts")
+            FatalErrorIn("Foam::cuttingPlane::walkCellCuts(..)")
                 << "Cannot find cut edge for cut cell " << cellI
                 << abort(FatalError);
         }
@@ -318,10 +319,18 @@ void Foam::cuttingPlane::walkCellCuts
                 f = f.reverseFace();
             }
 
-            // the cut faces are usually quite ugly, so always triangulate
-            label nTri = f.triangles(cutPoints, dynCutFaces);
-            while (nTri--)
+            // the cut faces are usually quite ugly, so optionally triangulate
+            if (triangulate)
             {
+                label nTri = f.triangles(cutPoints, dynCutFaces);
+                while (nTri--)
+                {
+                    dynCutCells.append(cellI);
+                }
+            }
+            else
+            {
+                dynCutFaces.append(f);
                 dynCutCells.append(cellI);
             }
         }
@@ -346,12 +355,13 @@ Foam::cuttingPlane::cuttingPlane
 (
     const plane& pln,
     const primitiveMesh& mesh,
+    const bool triangulate,
     const UList<label>& cellIdLabels
 )
 :
     plane(pln)
 {
-    reCut(mesh, cellIdLabels);
+    reCut(mesh, triangulate, cellIdLabels);
 }
 
 
@@ -362,6 +372,7 @@ Foam::cuttingPlane::cuttingPlane
 void Foam::cuttingPlane::reCut
 (
     const primitiveMesh& mesh,
+    const bool triangulate,
     const UList<label>& cellIdLabels
 )
 {
@@ -379,7 +390,7 @@ void Foam::cuttingPlane::reCut
     intersectEdges(mesh, dotProducts, edgePoint);
 
     // Do topological walk around cell to find closed loop.
-    walkCellCuts(mesh, edgePoint);
+    walkCellCuts(mesh, triangulate, edgePoint);
 }
 
 
diff --git a/src/sampling/cuttingPlane/cuttingPlane.H b/src/sampling/cuttingPlane/cuttingPlane.H
index 6804a9ab18197c687bbb9f84a311cd3662751e0a..aba51a78edf6cb84796f8fc49c9947acf01ddb1f 100644
--- a/src/sampling/cuttingPlane/cuttingPlane.H
+++ b/src/sampling/cuttingPlane/cuttingPlane.H
@@ -105,6 +105,7 @@ class cuttingPlane
         void walkCellCuts
         (
             const primitiveMesh& mesh,
+            const bool triangulate,
             const UList<label>& edgePoint
         );
 
@@ -122,6 +123,7 @@ protected:
         void reCut
         (
             const primitiveMesh&,
+            const bool triangulate,
             const UList<label>& cellIdLabels = UList<label>::null()
         );
 
@@ -138,6 +140,7 @@ public:
         (
             const plane&,
             const primitiveMesh&,
+            const bool triangulate,
             const UList<label>& cellIdLabels = UList<label>::null()
         );
 
diff --git a/src/sampling/include/mapPatch.H b/src/sampling/include/mapPatch.H
index aabec554a8d904fb599f71d3ca2e69acbf0ef540..371317a0ab2a5747a95817610ee5110e48de3556 100644
--- a/src/sampling/include/mapPatch.H
+++ b/src/sampling/include/mapPatch.H
@@ -1,8 +1,8 @@
-    if(planeMapping && targetPatchNamePresent && cut.cut())
+    if (planeMapping && targetPatchNamePresent && cut.cut())
     {
         //Map variables U, phi & k
-        //Info << typeInfo("isoLESmodel") << endl;
-        //Info << "SGS model" << sgsModel.type() << endl;
+        //Info<< typeInfo("isoLESmodel") << endl;
+        //Info<< "SGS model" << sgsModel.type() << endl;
 
         scalarField planek(cutCells.size());
         scalarField planeNuTilda(cutCells.size());
@@ -10,7 +10,7 @@
 
         forAll(cutCells, cCellsI)
         {
-            if(sgsModel.type() == "SpalartAllmaras")
+            if (sgsModel.type() == "SpalartAllmaras")
             {
                 planeNuTilda[cCellsI] = sgsModel.nuTilda()()[cutCells[cCellsI]];
             }
@@ -21,23 +21,23 @@
             planeU[cCellsI] = U[cutCells[cCellsI]];
         }
 
-        if(sgsModel.type() == "SpalartAllmaras")
+        if (sgsModel.type() == "SpalartAllmaras")
         {
-            Info << "Mapping NuTilda." << endl;
+            Info<< "Mapping NuTilda." << endl;
             sgsModel.nuTilda()().boundaryField()[targetPatchNumber] ==
             interPatch.faceInterpolate(planeNuTilda)();
         }
         else
         {
-            Info << "Mapping k." << endl;
+            Info<< "Mapping k." << endl;
             sgsModel.k()().boundaryField()[targetPatchNumber] ==
             interPatch.faceInterpolate(planek)();
         }
-        
+
         U.boundaryField()[targetPatchNumber] ==
             interPatch.faceInterpolate(planeU)();
 
-/*         sgsModel.k()().boundaryField()[targetPatchNumber] == 
+/*         sgsModel.k()().boundaryField()[targetPatchNumber] ==
          toPatchInter.pointToFaceInterpolate
          (
              interPatch.pointInterpolate
@@ -49,7 +49,7 @@
              )
          );
 
-         U.boundaryField()[targetPatchNumber] == 
+         U.boundaryField()[targetPatchNumber] ==
          toPatchInter.pointToFaceInterpolate
          (
              interPatch.pointInterpolate
@@ -62,7 +62,7 @@
          );
 
 */
-          
+
         scalar Q = sum
         (
             mesh.Sf().boundaryField()[targetPatchNumber]
@@ -74,11 +74,11 @@
             mesh.Sf().boundaryField()[targetPatchNumber] &
             Ubar.value()
         );
-                
+
         U.boundaryField()[targetPatchNumber] ==
             U.boundaryField()[targetPatchNumber] * (Qbar/Q);
-        
-        Info << "Mass flux correction factor: " << (Qbar/Q) << endl; 
+
+        Info<< "Mass flux correction factor: " << (Qbar/Q) << endl;
 
         phi.boundaryField()[targetPatchNumber] ==
         (
diff --git a/src/sampling/meshToMeshInterpolation/meshToMesh/calculateMeshToMeshAddressing.C b/src/sampling/meshToMeshInterpolation/meshToMesh/calculateMeshToMeshAddressing.C
index 8233d24ea58b74af1e8161628959f68d0c83488d..0015c5618ecb0537e80fbc8fa175310c042cd9a3 100644
--- a/src/sampling/meshToMeshInterpolation/meshToMesh/calculateMeshToMeshAddressing.C
+++ b/src/sampling/meshToMeshInterpolation/meshToMesh/calculateMeshToMeshAddressing.C
@@ -36,14 +36,9 @@ Description
 #include "octreeDataCell.H"
 #include "octreeDataFace.H"
 
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-namespace Foam
-{
-
 // * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
 
-void meshToMesh::calcAddressing()
+void Foam::meshToMesh::calcAddressing()
 {
     if (debug)
     {
@@ -225,7 +220,7 @@ void meshToMesh::calcAddressing()
 }
 
 
-void meshToMesh::cellAddresses
+void Foam::meshToMesh::cellAddresses
 (
     labelList& cellAddressing_,
     const pointField& points,
@@ -356,8 +351,4 @@ void meshToMesh::cellAddresses
 }
 
 
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-} // End namespace Foam
-
 // ************************************************************************* //
diff --git a/src/sampling/meshToMeshInterpolation/meshToMesh/calculateMeshToMeshWeights.C b/src/sampling/meshToMeshInterpolation/meshToMesh/calculateMeshToMeshWeights.C
index 0133dee52b0cb2e07450a9a96e83c7169c10e03f..be2900f50b543ff53870afc18c54f5f364c05376 100644
--- a/src/sampling/meshToMeshInterpolation/meshToMesh/calculateMeshToMeshWeights.C
+++ b/src/sampling/meshToMeshInterpolation/meshToMesh/calculateMeshToMeshWeights.C
@@ -26,14 +26,9 @@ License
 
 #include "meshToMesh.H"
 
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-namespace Foam
-{
-
 // * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
 
-void meshToMesh::calculateInverseDistanceWeights() const
+void Foam::meshToMesh::calculateInverseDistanceWeights() const
 {
     if (debug)
     {
@@ -93,7 +88,7 @@ void meshToMesh::calculateInverseDistanceWeights() const
                     invDistCoeffs[celli][ni + 1] = invDist;
                     sumInvDist += invDist;
                 }
-                
+
                 // divide by the total inverse-distance
                 forAll (invDistCoeffs[celli], i)
                 {
@@ -107,19 +102,15 @@ void meshToMesh::calculateInverseDistanceWeights() const
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-const scalarListList& meshToMesh::inverseDistanceWeights() const
+const Foam::scalarListList& Foam::meshToMesh::inverseDistanceWeights() const
 {
     if (!inverseDistanceWeightsPtr_)
     {
         calculateInverseDistanceWeights();
     }
-    
+
     return *inverseDistanceWeightsPtr_;
 }
 
 
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-} // End namespace Foam
-
 // ************************************************************************* //
diff --git a/src/sampling/meshToMeshInterpolation/meshToMesh/meshToMesh.C b/src/sampling/meshToMeshInterpolation/meshToMesh/meshToMesh.C
index 2046bd1a3ad95e63ecf86a9d16efbb6134067563..07bff4786eeef4e18d15e00452e27c7b7c0342c9 100644
--- a/src/sampling/meshToMeshInterpolation/meshToMesh/meshToMesh.C
+++ b/src/sampling/meshToMeshInterpolation/meshToMesh/meshToMesh.C
@@ -28,20 +28,15 @@ License
 #include "processorFvPatch.H"
 #include "demandDrivenData.H"
 
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-namespace Foam
-{
 
 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
 
-defineTypeNameAndDebug(meshToMesh, 0);
-
-const scalar meshToMesh::directHitTol = 1e-5;
+defineTypeNameAndDebug(Foam::meshToMesh, 0);
+const Foam::scalar Foam::meshToMesh::directHitTol = 1e-5;
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-meshToMesh::meshToMesh
+Foam::meshToMesh::meshToMesh
 (
     const fvMesh& meshFrom,
     const fvMesh& meshTo,
@@ -114,7 +109,7 @@ meshToMesh::meshToMesh
 }
 
 
-meshToMesh::meshToMesh
+Foam::meshToMesh::meshToMesh
 (
     const fvMesh& meshFrom,
     const fvMesh& meshTo
@@ -159,7 +154,7 @@ meshToMesh::meshToMesh
                 << exit(FatalError);
         }
 
-        if 
+        if
         (
             fromMesh_.boundaryMesh()[patchi].type()
          != toMesh_.boundaryMesh()[patchi].type()
@@ -201,14 +196,10 @@ meshToMesh::meshToMesh
 
 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
 
-meshToMesh::~meshToMesh()
+Foam::meshToMesh::~meshToMesh()
 {
     deleteDemandDrivenData(inverseDistanceWeightsPtr_);
 }
 
 
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-} // End namespace Foam
-
 // ************************************************************************* //
diff --git a/src/sampling/meshToMeshInterpolation/meshToMesh/meshToMesh.H b/src/sampling/meshToMeshInterpolation/meshToMesh/meshToMesh.H
index 83b0e2de234576ee7664d45cf506d71d4931a88d..fe1dc68b05111684e5eaeef6ce9789ba3348474a 100644
--- a/src/sampling/meshToMeshInterpolation/meshToMesh/meshToMesh.H
+++ b/src/sampling/meshToMeshInterpolation/meshToMesh/meshToMesh.H
@@ -56,7 +56,7 @@ class octree;
 class octreeDataCell;
 
 /*---------------------------------------------------------------------------*\
-                           Class meshToMesh Declaration
+                         Class meshToMesh Declaration
 \*---------------------------------------------------------------------------*/
 
 class meshToMesh
@@ -207,7 +207,7 @@ public:
             {
                 return fromMesh_;
             }
- 
+
             const fvMesh& toMesh() const
             {
                 return toMesh_;
diff --git a/src/sampling/meshToMeshInterpolation/meshToMesh/meshToMeshInterpolate.C b/src/sampling/meshToMeshInterpolation/meshToMesh/meshToMeshInterpolate.C
index f63f2dea835d2fe8fd245f5464f36cb1c5cc18a0..0bc573de88bfbdcf9e269f4a409adfb678f80f97 100644
--- a/src/sampling/meshToMeshInterpolation/meshToMesh/meshToMeshInterpolate.C
+++ b/src/sampling/meshToMeshInterpolation/meshToMesh/meshToMeshInterpolate.C
@@ -30,15 +30,10 @@ License
 #include "SubField.H"
 #include "mixedFvPatchField.H"
 
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-namespace Foam
-{
-
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
 template<class Type>
-void meshToMesh::mapField
+void Foam::meshToMesh::mapField
 (
     Field<Type>& toF,
     const Field<Type>& fromVf,
@@ -60,7 +55,7 @@ void meshToMesh::mapField
 
 
 template<class Type>
-void meshToMesh::interpolateField
+void Foam::meshToMesh::interpolateField
 (
     Field<Type>& toF,
     const GeometricField<Type, fvPatchField, volMesh>& fromVf,
@@ -79,7 +74,7 @@ void meshToMesh::interpolateField
         {
             const labelList& neighbours = cc[adr[celli]];
             const scalarList& w = weights[celli];
-            
+
             toF[celli] = fromVf[adr[celli]]*w[0];
 
             for (label ni = 1; ni < w.size(); ni++)
@@ -92,7 +87,7 @@ void meshToMesh::interpolateField
 
 
 template<class Type>
-void meshToMesh::interpolateField
+void Foam::meshToMesh::interpolateField
 (
     Field<Type>& toF,
     const GeometricField<Type, fvPatchField, volMesh>& fromVf,
@@ -118,7 +113,7 @@ void meshToMesh::interpolateField
 
 
 template<class Type>
-void meshToMesh::interpolateInternalField
+void Foam::meshToMesh::interpolateInternalField
 (
     Field<Type>& toF,
     const GeometricField<Type, fvPatchField, volMesh>& fromVf,
@@ -160,7 +155,7 @@ void meshToMesh::interpolateInternalField
         case INTERPOLATE:
             interpolateField
             (
-                toF, 
+                toF,
                 fromVf,
                 cellAddressing_,
                 inverseDistanceWeights()
@@ -170,7 +165,7 @@ void meshToMesh::interpolateInternalField
         case CELL_POINT_INTERPOLATE:
             interpolateField
             (
-                toF, 
+                toF,
                 fromVf,
                 cellAddressing_,
                 toMesh_.cellCentres()
@@ -190,7 +185,7 @@ void meshToMesh::interpolateInternalField
 
 
 template<class Type>
-void meshToMesh::interpolateInternalField
+void Foam::meshToMesh::interpolateInternalField
 (
     Field<Type>& toF,
     const tmp<GeometricField<Type, fvPatchField, volMesh> >& tfromVf,
@@ -203,7 +198,7 @@ void meshToMesh::interpolateInternalField
 
 
 template<class Type>
-void meshToMesh::interpolate
+void Foam::meshToMesh::interpolate
 (
     GeometricField<Type, fvPatchField, volMesh>& toVf,
     const GeometricField<Type, fvPatchField, volMesh>& fromVf,
@@ -268,7 +263,7 @@ void meshToMesh::interpolate
                 ).refValue() = toVf.boundaryField()[patchi];
             }
         }
-        else if 
+        else if
         (
             patchMap_.found(toPatch.name())
          && fromMeshPatches_.found(patchMap_.find(toPatch.name())())
@@ -300,7 +295,7 @@ void meshToMesh::interpolate
 
 
 template<class Type>
-void meshToMesh::interpolate
+void Foam::meshToMesh::interpolate
 (
     GeometricField<Type, fvPatchField, volMesh>& toVf,
     const tmp<GeometricField<Type, fvPatchField, volMesh> >& tfromVf,
@@ -313,7 +308,8 @@ void meshToMesh::interpolate
 
 
 template<class Type>
-tmp<GeometricField<Type, fvPatchField, volMesh> > meshToMesh::interpolate
+Foam::tmp< Foam::GeometricField<Type, Foam::fvPatchField, Foam::volMesh> >
+Foam::meshToMesh::interpolate
 (
     const GeometricField<Type, fvPatchField, volMesh>& fromVf,
     meshToMesh::order ord
@@ -387,7 +383,8 @@ tmp<GeometricField<Type, fvPatchField, volMesh> > meshToMesh::interpolate
 
 
 template<class Type>
-tmp<GeometricField<Type, fvPatchField, volMesh> > meshToMesh::interpolate
+Foam::tmp< Foam::GeometricField<Type, Foam::fvPatchField, Foam::volMesh> >
+Foam::meshToMesh::interpolate
 (
     const tmp<GeometricField<Type, fvPatchField, volMesh> >& tfromVf,
     meshToMesh::order ord
@@ -401,8 +398,4 @@ tmp<GeometricField<Type, fvPatchField, volMesh> > meshToMesh::interpolate
 }
 
 
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-} // End namespace Foam
-
 // ************************************************************************* //
diff --git a/src/sampling/probes/probes.C b/src/sampling/probes/probes.C
index 5a6686aad04b6c7a5e17169f42bdcd91a92e3360..8eee0048ca86bbb9047b71d16ab850db35a080f9 100644
--- a/src/sampling/probes/probes.C
+++ b/src/sampling/probes/probes.C
@@ -32,243 +32,163 @@ License
 
 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
 
-namespace Foam
-{
-    defineTypeNameAndDebug(probes, 0);
-}
+defineTypeNameAndDebug(Foam::probes, 0);
+
 
 // * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
 
 void Foam::probes::findCells(const fvMesh& mesh)
 {
-    if (cellList_.empty())
+    cellList_.clear();
+    cellList_.setSize(size());
+
+    forAll(*this, probeI)
     {
-        cellList_.setSize(probeLocations_.size());
+        const vector& location = operator[](probeI);
 
-        forAll(probeLocations_, probeI)
-        {
-            cellList_[probeI] = mesh.findCell(probeLocations_[probeI]);
+        cellList_[probeI] = mesh.findCell(location);
 
-            if (debug && cellList_[probeI] != -1)
-            {
-                Pout<< "probes : found point " << probeLocations_[probeI]
-                    << " in cell " << cellList_[probeI] << endl;
-            }
+        if (debug && cellList_[probeI] != -1)
+        {
+            Pout<< "probes : found point " << location
+                << " in cell " << cellList_[probeI] << endl;
         }
+    }
 
 
-        // Check if all probes have been found.
-        forAll(cellList_, probeI)
-        {
-            label cellI = cellList_[probeI];
+    // Check if all probes have been found.
+    forAll(cellList_, probeI)
+    {
+        const vector& location = operator[](probeI);
+        label cellI = cellList_[probeI];
 
-            // Check at least one processor with cell.
-            reduce(cellI, maxOp<label>());
+        // Check at least one processor with cell.
+        reduce(cellI, maxOp<label>());
 
-            if (cellI == -1)
+        if (cellI == -1)
+        {
+            if (Pstream::master())
             {
-                if (Pstream::master())
-                {
-                    WarningIn("probes::read()")
-                        << "Did not find location " << probeLocations_[probeI]
-                        << " in any cell. Skipping location." << endl;
-                }
+                WarningIn("probes::read()")
+                    << "Did not find location " << location
+                    << " in any cell. Skipping location." << endl;
             }
-            else
+        }
+        else
+        {
+            // Make sure location not on two domains.
+            if (cellList_[probeI] != -1 && cellList_[probeI] != cellI)
             {
-                // Make sure location not on two domains.
-                if (cellList_[probeI] != -1 && cellList_[probeI] != cellI)
-                {
-                    WarningIn("probes::read()")
-                        << "Location " << probeLocations_[probeI]
-                        << " seems to be on multiple domains:"
-                        << " cell " << cellList_[probeI]
-                        << " on my domain " << Pstream::myProcNo()
+                WarningIn("probes::read()")
+                    << "Location " << location
+                    << " seems to be on multiple domains:"
+                    << " cell " << cellList_[probeI]
+                    << " on my domain " << Pstream::myProcNo()
                         << " and cell " << cellI << " on some other domain."
-                        << endl
-                        << "This might happen if the probe location is on"
-                        << " a processor patch. Change the location slightly"
-                        << " to prevent this." << endl;
-                }
+                    << endl
+                    << "This might happen if the probe location is on"
+                    << " a processor patch. Change the location slightly"
+                    << " to prevent this." << endl;
             }
         }
     }
 }
 
 
-bool Foam::probes::checkFieldTypes()
+Foam::label Foam::probes::prepare()
 {
-    wordList fieldTypes(fieldNames_.size());
+    const label nFields = classifyFields();
 
-    // check files for a particular time
-    if (loadFromFiles_)
-    {
-        forAll(fieldNames_, fieldI)
-        {
-            IOobject io
-            (
-                fieldNames_[fieldI],
-                obr_.time().timeName(),
-                refCast<const polyMesh>(obr_),
-                IOobject::MUST_READ,
-                IOobject::NO_WRITE,
-                false
-            );
-
-            if (io.headerOk())
-            {
-                fieldTypes[fieldI] = io.headerClassName();
-            }
-            else
-            {
-                fieldTypes[fieldI] = "(notFound)";
-            }
-        }
-    }
-    else
+    // adjust file streams
+    if (Pstream::master())
     {
-        // check objectRegistry
-        forAll(fieldNames_, fieldI)
-        {
-            objectRegistry::const_iterator iter =
-                obr_.find(fieldNames_[fieldI]);
-
-            if (iter != obr_.end())
-            {
-                fieldTypes[fieldI] = iter()->type();
-            }
-            else
-            {
-                fieldTypes[fieldI] = "(notFound)";
-            }
-        }
-    }
+        wordHashSet currentFields;
 
+        currentFields.insert(scalarFields_);
+        currentFields.insert(vectorFields_);
+        currentFields.insert(sphericalTensorFields_);
+        currentFields.insert(symmTensorFields_);
+        currentFields.insert(tensorFields_);
 
-    label nFields = 0;
-
-    // classify fieldTypes
-    nFields += countFields(scalarFields_, fieldTypes);
-    nFields += countFields(vectorFields_, fieldTypes);
-    nFields += countFields(sphericalTensorFields_, fieldTypes);
-    nFields += countFields(symmTensorFields_, fieldTypes);
-    nFields += countFields(tensorFields_, fieldTypes);
+        if (debug)
+        {
+            Info<< "Probing fields:" << currentFields << nl
+                << "Probing locations:" << *this << nl
+                << endl;
+        }
 
-    // concatenate all the lists into foundFields
-    wordList foundFields(nFields);
 
-    label fieldI = 0;
-    forAll(scalarFields_, i)
-    {
-        foundFields[fieldI++] = scalarFields_[i];
-    }
-    forAll(vectorFields_, i)
-    {
-        foundFields[fieldI++] = vectorFields_[i];
-    }
-    forAll(sphericalTensorFields_, i)
-    {
-        foundFields[fieldI++] = sphericalTensorFields_[i];
-    }
-    forAll(symmTensorFields_, i)
-    {
-        foundFields[fieldI++] = symmTensorFields_[i];
-    }
-    forAll(tensorFields_, i)
-    {
-        foundFields[fieldI++] = tensorFields_[i];
-    }
-
-    if (Pstream::master())
-    {
         fileName probeDir;
-
         fileName probeSubDir = name_;
 
-        if (obr_.name() != polyMesh::defaultRegion)
+        if (mesh_.name() != polyMesh::defaultRegion)
         {
-            probeSubDir = probeSubDir/obr_.name();
+            probeSubDir = probeSubDir/mesh_.name();
         }
-        probeSubDir = probeSubDir/obr_.time().timeName();
+        probeSubDir = probeSubDir/mesh_.time().timeName();
 
         if (Pstream::parRun())
         {
             // Put in undecomposed case
             // (Note: gives problems for distributed data running)
-            probeDir = obr_.time().path()/".."/probeSubDir;
+            probeDir = mesh_.time().path()/".."/probeSubDir;
         }
         else
         {
-            probeDir = obr_.time().path()/probeSubDir;
+            probeDir = mesh_.time().path()/probeSubDir;
         }
 
-        // Close the file if any fields have been removed.
+        // ignore known fields, close streams for fields that no longer exist
         forAllIter(HashPtrTable<OFstream>, probeFilePtrs_, iter)
         {
-            if (findIndex(foundFields, iter.key()) == -1)
+            if (!currentFields.erase(iter.key()))
             {
                 if (debug)
                 {
-                    Pout<< "close stream: " << iter()->name() << endl;
+                    Info<< "close probe stream: " << iter()->name() << endl;
                 }
 
                 delete probeFilePtrs_.remove(iter);
             }
         }
 
-        // Open new files for new fields. Keep existing files.
-
-        probeFilePtrs_.resize(2*foundFields.size());
-
-        forAll(foundFields, fieldI)
+        // currentFields now just has the new fields - open streams for them
+        forAllConstIter(wordHashSet, currentFields, iter)
         {
-            const word& fldName = foundFields[fieldI];
+            const word& fieldName = iter.key();
+
+            // Create directory if does not exist.
+            mkDir(probeDir);
 
-            // Check if added field. If so open a stream for it.
+            OFstream* sPtr = new OFstream(probeDir/fieldName);
 
-            if (!probeFilePtrs_.found(fldName))
+            if (debug)
             {
-                // Create directory if does not exist.
-                mkDir(probeDir);
+                Info<< "open  probe stream: " << sPtr->name() << endl;
+            }
 
-                OFstream* sPtr = new OFstream(probeDir/fldName);
+            probeFilePtrs_.insert(fieldName, sPtr);
 
-                if (debug)
-                {
-                    Pout<< "open  stream: " << sPtr->name() << endl;
-                }
+            unsigned int w = IOstream::defaultPrecision() + 7;
 
-                probeFilePtrs_.insert(fldName, sPtr);
-
-                unsigned int w = IOstream::defaultPrecision() + 7;
+            for (direction cmpt=0; cmpt<vector::nComponents; cmpt++)
+            {
+                *sPtr<< '#' << setw(IOstream::defaultPrecision() + 6)
+                    << vector::componentNames[cmpt];
 
-                for (direction cmpt=0; cmpt<vector::nComponents; cmpt++)
+                forAll(*this, probeI)
                 {
-                    *sPtr<< '#' << setw(IOstream::defaultPrecision() + 6)
-                        << vector::componentNames[cmpt];
-
-                    forAll(probeLocations_, probeI)
-                    {
-                        *sPtr<< ' ' << setw(w) << probeLocations_[probeI][cmpt];
-                    }
-                    *sPtr << endl;
+                    *sPtr<< ' ' << setw(w) << operator[](probeI)[cmpt];
                 }
-
-                *sPtr<< '#' << setw(IOstream::defaultPrecision() + 6)
-                    << "Time" << endl;
+                *sPtr << endl;
             }
-        }
 
-        if (debug)
-        {
-            Pout<< "Probing fields:" << foundFields << nl
-                << "Probing locations:" << probeLocations_ << nl
-                << endl;
+            *sPtr<< '#' << setw(IOstream::defaultPrecision() + 6)
+                << "Time" << endl;
         }
     }
 
-
-    return nFields > 0;
+    return nFields;
 }
 
 
@@ -282,18 +202,10 @@ Foam::probes::probes
     const bool loadFromFiles
 )
 :
+    pointField(0),
     name_(name),
-    obr_(obr),
-    loadFromFiles_(loadFromFiles),
-    fieldNames_(0),
-    probeLocations_(0),
-    scalarFields_(),
-    vectorFields_(),
-    sphericalTensorFields_(),
-    symmTensorFields_(),
-    tensorFields_(),
-    cellList_(0),
-    probeFilePtrs_(0)
+    mesh_(refCast<const fvMesh>(obr)),
+    loadFromFiles_(loadFromFiles)
 {
     read(dict);
 }
@@ -321,7 +233,7 @@ void Foam::probes::end()
 
 void Foam::probes::write()
 {
-    if (probeLocations_.size() && checkFieldTypes())
+    if (size() && prepare())
     {
         sampleAndWrite(scalarFields_);
         sampleAndWrite(vectorFields_);
@@ -334,13 +246,12 @@ void Foam::probes::write()
 
 void Foam::probes::read(const dictionary& dict)
 {
-    dict.lookup("fields") >> fieldNames_;
-    dict.lookup("probeLocations") >> probeLocations_;
+    dict.lookup("probeLocations") >> *this;
+    dict.lookup("fields") >> fieldSelection_;
 
-    // Force all cell locations to be redetermined
-    cellList_.clear();
-    findCells(refCast<const fvMesh>(obr_));
-    checkFieldTypes();
+    // redetermined all cell locations
+    findCells(mesh_);
+    prepare();
 }
 
 
diff --git a/src/sampling/probes/probes.H b/src/sampling/probes/probes.H
index 11a7f581c16215cc4f7fe448163c368af9240c7c..8fd31b889d8bdd7af18a897492f5208bbfee5cd8 100644
--- a/src/sampling/probes/probes.H
+++ b/src/sampling/probes/probes.H
@@ -44,6 +44,8 @@ SourceFiles
 #include "pointField.H"
 #include "volFieldsFwd.H"
 
+#include "wordReList.H"
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 namespace Foam
@@ -60,6 +62,8 @@ class mapPolyMesh;
 \*---------------------------------------------------------------------------*/
 
 class probes
+:
+    public pointField
 {
     // Private classes
 
@@ -67,20 +71,15 @@ class probes
         template<class Type>
         class fieldGroup
         :
-            public wordList
+            public DynamicList<word>
         {
         public:
             //- Construct null
             fieldGroup()
             :
-                wordList()
+                DynamicList<word>(0)
             {}
 
-            //- Construct for a list of field names
-            fieldGroup(const wordList& fieldNames)
-            :
-                wordList(fieldNames)
-            {}
         };
 
 
@@ -90,8 +89,8 @@ class probes
         //  Also used as the name of the probes directory.
         word name_;
 
-        //- Const reference to objectRegistry
-        const objectRegistry& obr_;
+        //- Const reference to fvMesh
+        const fvMesh& mesh_;
 
         //- Load fields from files (not from objectRegistry)
         bool loadFromFiles_;
@@ -100,11 +99,7 @@ class probes
         // Read from dictonary
 
             //- Names of fields to probe
-            wordList fieldNames_;
-
-            //- Locations to probe
-            vectorField probeLocations_;
-
+            wordReList fieldSelection_;
 
         // Calculated
 
@@ -124,19 +119,21 @@ class probes
 
     // Private Member Functions
 
+        //- Clear old field groups
+        void clearFieldGroups();
+
+        //- Append fieldName to the appropriate group
+        label appendFieldGroup(const word& fieldName, const word& fieldType);
+
+        //- Classify field types, returns the number of fields
+        label classifyFields();
+
         //- Find cells containing probes
         void findCells(const fvMesh&);
 
-        //- classify field types, return true if nFields > 0
-        bool checkFieldTypes();
-
-        //- Find the fields in the list of the given type, return count
-        template<class Type>
-        label countFields
-        (
-            fieldGroup<Type>& fieldList,
-            const wordList& fieldTypes
-        ) const;
+        //- Classify field type and Open/close file streams,
+        //  returns number of fields
+        label prepare();
 
         //- Sample and write a particular volume field
         template<class Type>
@@ -146,7 +143,7 @@ class probes
         );
 
         //- Sample and write all the fields of the given type
-        template <class Type>
+        template<class Type>
         void sampleAndWrite(const fieldGroup<Type>&);
 
         //- Disallow default bitwise copy construct
@@ -188,15 +185,21 @@ public:
         }
 
         //- Return names of fields to probe
-        virtual const wordList& fieldNames() const
+        virtual const wordReList& fieldNames() const
         {
-            return fieldNames_;
+            return fieldSelection_;
         }
 
         //- Return locations to probe
-        virtual const vectorField& probeLocations() const
+        virtual const pointField& probeLocations() const
+        {
+            return *this;
+        }
+
+        //- Return location for probe i
+        virtual const point& probe(const label i) const
         {
-            return probeLocations_;
+            return operator[](i);
         }
 
         //- Cells to be probed (obtained from the locations)
diff --git a/src/sampling/probes/probesFunctionObject.C b/src/sampling/probes/probesFunctionObject/probesFunctionObject.C
similarity index 100%
rename from src/sampling/probes/probesFunctionObject.C
rename to src/sampling/probes/probesFunctionObject/probesFunctionObject.C
diff --git a/src/sampling/probes/probesFunctionObject.H b/src/sampling/probes/probesFunctionObject/probesFunctionObject.H
similarity index 97%
rename from src/sampling/probes/probesFunctionObject.H
rename to src/sampling/probes/probesFunctionObject/probesFunctionObject.H
index 63f52327c8a7d93e8c652c8d878311bae19930cb..9bedf137f21fd04c481bec0e795711faa07ae47d 100644
--- a/src/sampling/probes/probesFunctionObject.H
+++ b/src/sampling/probes/probesFunctionObject/probesFunctionObject.H
@@ -27,7 +27,7 @@ Typedef
 
 Description
     FunctionObject wrapper around probes to allow them to be created via the
-    functions list within controlDict.
+    functions entry within controlDict.
 
 SourceFiles
     probesFunctionObject.C
diff --git a/src/sampling/probes/probesGrouping.C b/src/sampling/probes/probesGrouping.C
new file mode 100644
index 0000000000000000000000000000000000000000..f3f6bae494c9db63c113263d0531687c160f86fd
--- /dev/null
+++ b/src/sampling/probes/probesGrouping.C
@@ -0,0 +1,125 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 1991-2009 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 2 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, write to the Free Software Foundation,
+    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+\*---------------------------------------------------------------------------*/
+
+#include "probes.H"
+#include "volFields.H"
+#include "IOobjectList.H"
+#include "stringListOps.H"
+
+// * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
+
+void Foam::probes::clearFieldGroups()
+{
+    scalarFields_.clear();
+    vectorFields_.clear();
+    sphericalTensorFields_.clear();
+    symmTensorFields_.clear();
+    tensorFields_.clear();
+}
+
+
+Foam::label Foam::probes::appendFieldGroup
+(
+    const word& fieldName,
+    const word& fieldType
+)
+{
+    if (fieldType == volScalarField::typeName)
+    {
+        scalarFields_.append(fieldName);
+        return 1;
+    }
+    else if (fieldType == volVectorField::typeName)
+    {
+        vectorFields_.append(fieldName);
+        return 1;
+    }
+    else if (fieldType == volSphericalTensorField::typeName)
+    {
+        sphericalTensorFields_.append(fieldName);
+        return 1;
+    }
+    else if (fieldType == volSymmTensorField::typeName)
+    {
+        symmTensorFields_.append(fieldName);
+        return 1;
+    }
+    else if (fieldType == volTensorField::typeName)
+    {
+        tensorFields_.append(fieldName);
+        return 1;
+    }
+
+    return 0;
+}
+
+
+Foam::label Foam::probes::classifyFields()
+{
+    label nFields = 0;
+    clearFieldGroups();
+
+    if (loadFromFiles_)
+    {
+        // check files for a particular time
+        IOobjectList objects(mesh_, mesh_.time().timeName());
+        wordList allFields = objects.sortedNames();
+
+        labelList indices = findStrings(fieldSelection_, allFields);
+
+        forAll(indices, fieldI)
+        {
+            const word& fieldName = allFields[indices[fieldI]];
+
+            nFields += appendFieldGroup
+            (
+                fieldName,
+                objects.find(fieldName)()->headerClassName()
+            );
+        }
+    }
+    else
+    {
+        // check currently available fields
+        wordList allFields = mesh_.sortedNames();
+        labelList indices = findStrings(fieldSelection_, allFields);
+
+        forAll(indices, fieldI)
+        {
+            const word& fieldName = allFields[indices[fieldI]];
+
+            nFields += appendFieldGroup
+            (
+                fieldName,
+                mesh_.find(fieldName)()->type()
+            );
+        }
+    }
+
+    return nFields;
+}
+
+// ************************************************************************* //
diff --git a/src/sampling/probes/probesTemplates.C b/src/sampling/probes/probesTemplates.C
index 0d6f52a1cd28d546ec5f5f3961779b623d214924..450d41663a801bd229cb78147a927e5b2fbb50d8 100644
--- a/src/sampling/probes/probesTemplates.C
+++ b/src/sampling/probes/probesTemplates.C
@@ -63,35 +63,6 @@ public:
 
 // * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
 
-template<class Type>
-Foam::label Foam::probes::countFields
-(
-    fieldGroup<Type>& fieldList,
-    const wordList& fieldTypes
-) const
-{
-    fieldList.setSize(fieldNames_.size());
-    label nFields = 0;
-
-    forAll(fieldNames_, fieldI)
-    {
-        if
-        (
-            fieldTypes[fieldI]
-         == GeometricField<Type, fvPatchField, volMesh>::typeName
-        )
-        {
-            fieldList[nFields] = fieldNames_[fieldI];
-            nFields++;
-        }
-    }
-
-    fieldList.setSize(nFields);
-
-    return nFields;
-}
-
-
 template<class Type>
 void Foam::probes::sampleAndWrite
 (
@@ -103,15 +74,15 @@ void Foam::probes::sampleAndWrite
     if (Pstream::master())
     {
         unsigned int w = IOstream::defaultPrecision() + 7;
-        OFstream& probeStream = *probeFilePtrs_[vField.name()];
+        OFstream& os = *probeFilePtrs_[vField.name()];
 
-        probeStream << setw(w) << vField.time().value();
+        os  << setw(w) << vField.time().value();
 
         forAll(values, probeI)
         {
-            probeStream << ' ' << setw(w) << values[probeI];
+            os  << ' ' << setw(w) << values[probeI];
         }
-        probeStream << endl;
+        os  << endl;
     }
 }
 
@@ -133,30 +104,30 @@ void Foam::probes::sampleAndWrite
                     IOobject
                     (
                         fields[fieldI],
-                        obr_.time().timeName(),
-                        refCast<const polyMesh>(obr_),
+                        mesh_.time().timeName(),
+                        mesh_,
                         IOobject::MUST_READ,
                         IOobject::NO_WRITE,
                         false
                     ),
-                    refCast<const fvMesh>(obr_)
+                    mesh_
                 )
             );
         }
         else
         {
-            objectRegistry::const_iterator iter = obr_.find(fields[fieldI]);
+            objectRegistry::const_iterator iter = mesh_.find(fields[fieldI]);
 
             if
             (
-                iter != obr_.end()
+                iter != objectRegistry::end()
              && iter()->type()
              == GeometricField<Type, fvPatchField, volMesh>::typeName
             )
             {
                 sampleAndWrite
                 (
-                    obr_.lookupObject
+                    mesh_.lookupObject
                     <GeometricField<Type, fvPatchField, volMesh> >
                     (
                         fields[fieldI]
@@ -181,12 +152,12 @@ Foam::probes::sample
 
     tmp<Field<Type> > tValues
     (
-        new Field<Type>(probeLocations_.size(), unsetVal)
+        new Field<Type>(this->size(), unsetVal)
     );
 
     Field<Type>& values = tValues();
 
-    forAll(probeLocations_, probeI)
+    forAll(*this, probeI)
     {
         if (cellList_[probeI] >= 0)
         {
@@ -207,7 +178,7 @@ Foam::probes::sample(const word& fieldName) const
 {
     return sample
     (
-        obr_.lookupObject<GeometricField<Type, fvPatchField, volMesh> >
+        mesh_.lookupObject<GeometricField<Type, fvPatchField, volMesh> >
         (
             fieldName
         )
diff --git a/src/sampling/sampledSet/curve/curveSet.C b/src/sampling/sampledSet/curve/curveSet.C
index 7b0a0b8e0350641344626e3cf5692ec0c5155c74..b294ab360008372043b6c3482198d4919d226e51 100644
--- a/src/sampling/sampledSet/curve/curveSet.C
+++ b/src/sampling/sampledSet/curve/curveSet.C
@@ -60,7 +60,7 @@ bool Foam::curveSet::trackToBoundary
     // Alias
     const point& trackPt = singleParticle.position();
 
-    while(true)
+    while (true)
     {
         // Local geometry info
         const vector offset = sampleCoords_[sampleI+1] - sampleCoords_[sampleI];
@@ -145,7 +145,7 @@ void Foam::curveSet::calcSamples
             << sampleCoords_ << exit(FatalError);
     }
     point oldPoint = sampleCoords_[0];
-    for(label sampleI = 1; sampleI < sampleCoords_.size(); sampleI++)
+    for (label sampleI = 1; sampleI < sampleCoords_.size(); sampleI++)
     {
         if (mag(sampleCoords_[sampleI] - oldPoint) < SMALL)
         {
@@ -169,7 +169,7 @@ void Foam::curveSet::calcSamples
     label sampleI = 0;
 
     point lastSample(GREAT, GREAT, GREAT);
-    while(true)
+    while (true)
     {
         // Get boundary intersection
         point trackPt;
@@ -243,7 +243,7 @@ void Foam::curveSet::calcSamples
                 // No intersection found. Go to next point
                 sampleI++;
             }
-        } while((trackCellI == -1) && (sampleI < sampleCoords_.size() - 1));
+        } while ((trackCellI == -1) && (sampleI < sampleCoords_.size() - 1));
 
         if (sampleI == sampleCoords_.size() - 1)
         {
@@ -278,7 +278,7 @@ void Foam::curveSet::calcSamples
         );
 
         // fill sampleSegments
-        for(label i = samplingPts.size() - 1; i >= startSegmentI; --i)
+        for (label i = samplingPts.size() - 1; i >= startSegmentI; --i)
         {
             samplingSegments.append(segmentI);
         }
diff --git a/src/sampling/sampledSet/face/faceOnlySet.C b/src/sampling/sampledSet/face/faceOnlySet.C
index fba774f802159abdb6eb7f326b5981fa9284420f..e66d05884b5ddc59809d7a4d74536eb11505bd40 100644
--- a/src/sampling/sampledSet/face/faceOnlySet.C
+++ b/src/sampling/sampledSet/face/faceOnlySet.C
@@ -65,7 +65,7 @@ bool Foam::faceOnlySet::trackToBoundary
     // Alias
     const point& trackPt = singleParticle.position();
 
-    while(true)
+    while (true)
     {
         point oldPoint = trackPt;
 
@@ -199,7 +199,7 @@ void Foam::faceOnlySet::calcSamples
     // index in bHits; current boundary intersection
     label bHitI = 1;
 
-    while(true)
+    while (true)
     {
         if (trackFaceI != -1)
         {
@@ -230,7 +230,7 @@ void Foam::faceOnlySet::calcSamples
         );
 
         // fill sampleSegments
-        for(label i = samplingPts.size() - 1; i >= startSegmentI; --i)
+        for (label i = samplingPts.size() - 1; i >= startSegmentI; --i)
         {
             samplingSegments.append(segmentI);
         }
diff --git a/src/sampling/sampledSet/midPoint/midPointSet.C b/src/sampling/sampledSet/midPoint/midPointSet.C
index 0ec01f6571bc5e614b298d4c74f9408ad6b4c1a7..ffe75103426d13902535d360f17298e7c512b985 100644
--- a/src/sampling/sampledSet/midPoint/midPointSet.C
+++ b/src/sampling/sampledSet/midPoint/midPointSet.C
@@ -54,7 +54,7 @@ void Foam::midPointSet::genSamples()
 
     label sampleI = 0;
 
-    while(true)
+    while (true)
     {
         // calculate midpoint between sampleI and sampleI+1 (if in same segment)
         while
diff --git a/src/sampling/sampledSet/midPointAndFace/midPointAndFaceSet.C b/src/sampling/sampledSet/midPointAndFace/midPointAndFaceSet.C
index 7e110ef9018ea74f28d8eca539965cd0533c40ff..e5a2a9caea21fcaeff78013fb01c99a502f437ca 100644
--- a/src/sampling/sampledSet/midPointAndFace/midPointAndFaceSet.C
+++ b/src/sampling/sampledSet/midPointAndFace/midPointAndFaceSet.C
@@ -56,7 +56,7 @@ void Foam::midPointAndFaceSet::genSamples()
 
     label sampleI = 0;
 
-    while(true)
+    while (true)
     {
         // sampleI is start of segment
 
diff --git a/src/sampling/sampledSet/sampledSets/sampledSets.C b/src/sampling/sampledSet/sampledSets/sampledSets.C
index a964cab15293f9e5ccbf107391496604eccee903..9131b0196ed7ce5758d6c52250beb8bba91286fe 100644
--- a/src/sampling/sampledSet/sampledSets/sampledSets.C
+++ b/src/sampling/sampledSet/sampledSets/sampledSets.C
@@ -34,103 +34,12 @@ License
 
 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
 
-namespace Foam
-{
-    defineTypeNameAndDebug(sampledSets, 0);
-}
-
+defineTypeNameAndDebug(Foam::sampledSets, 0);
 bool Foam::sampledSets::verbose_ = false;
 
 
 // * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
 
-bool Foam::sampledSets::checkFieldTypes()
-{
-    wordList fieldTypes(fieldNames_.size());
-
-    // check files for a particular time
-    if (loadFromFiles_)
-    {
-        forAll(fieldNames_, fieldi)
-        {
-            IOobject io
-            (
-                fieldNames_[fieldi],
-                mesh_.time().timeName(),
-                mesh_,
-                IOobject::MUST_READ,
-                IOobject::NO_WRITE,
-                false
-            );
-
-            if (io.headerOk())
-            {
-                fieldTypes[fieldi] = io.headerClassName();
-            }
-            else
-            {
-                fieldTypes[fieldi] = "(notFound)";
-            }
-        }
-    }
-    else
-    {
-        // check objectRegistry
-        forAll(fieldNames_, fieldi)
-        {
-            objectRegistry::const_iterator iter =
-                mesh_.find(fieldNames_[fieldi]);
-
-            if (iter != mesh_.objectRegistry::end())
-            {
-                fieldTypes[fieldi] = iter()->type();
-            }
-            else
-            {
-                fieldTypes[fieldi] = "(notFound)";
-            }
-        }
-    }
-
-
-    label nFields = 0;
-
-    // classify fieldTypes
-    nFields += grep(scalarFields_, fieldTypes);
-    nFields += grep(vectorFields_, fieldTypes);
-    nFields += grep(sphericalTensorFields_, fieldTypes);
-    nFields += grep(symmTensorFields_, fieldTypes);
-    nFields += grep(tensorFields_, fieldTypes);
-
-    if (Pstream::master())
-    {
-        if (debug)
-        {
-            Pout<< "timeName = " << mesh_.time().timeName() << nl
-                << "scalarFields    " << scalarFields_ << nl
-                << "vectorFields    " << vectorFields_ << nl
-                << "sphTensorFields " << sphericalTensorFields_ << nl
-                << "symTensorFields " << symmTensorFields_ <<nl
-                << "tensorFields    " << tensorFields_ <<nl;
-        }
-
-        if (nFields > 0)
-        {
-            if (debug)
-            {
-                Pout<< "Creating directory "
-                    << outputPath_/mesh_.time().timeName()
-                    << nl << endl;
-            }
-
-            mkDir(outputPath_/mesh_.time().timeName());
-        }
-    }
-
-    return nFields > 0;
-}
-
-
 void Foam::sampledSets::combineSampledSets
 (
     PtrList<coordSet>& masterSampledSets,
@@ -147,9 +56,9 @@ void Foam::sampledSets::combineSampledSets
 
     const PtrList<sampledSet>& sampledSets = *this;
 
-    forAll(sampledSets, seti)
+    forAll(sampledSets, setI)
     {
-        const sampledSet& samplePts = sampledSets[seti];
+        const sampledSet& samplePts = sampledSets[setI];
 
         // Collect data from all processors
         List<List<point> > gatheredPts(Pstream::nProcs());
@@ -190,7 +99,7 @@ void Foam::sampledSets::combineSampledSets
 
         // Sort curveDist and use to fill masterSamplePts
         SortableList<scalar> sortedDist(allCurveDist);
-        indexSets[seti] = sortedDist.indices();
+        indexSets[setI] = sortedDist.indices();
 
         // Get reference point (note: only master has all points)
         point refPt;
@@ -207,12 +116,12 @@ void Foam::sampledSets::combineSampledSets
 
         masterSampledSets.set
         (
-            seti,
+            setI,
             new coordSet
             (
                 samplePts.name(),
                 samplePts.axis(),
-                List<point>(UIndirectList<point>(allPts, indexSets[seti])),
+                List<point>(UIndirectList<point>(allPts, indexSets[setI])),
                 refPt
             )
         );
@@ -236,7 +145,6 @@ Foam::sampledSets::sampledSets
     loadFromFiles_(loadFromFiles),
     outputPath_(fileName::null),
     searchEngine_(mesh_, true),
-    fieldNames_(),
     interpolationScheme_(word::null),
     writeFormat_(word::null)
 {
@@ -285,13 +193,43 @@ void Foam::sampledSets::end()
 
 void Foam::sampledSets::write()
 {
-    if (size() && checkFieldTypes())
+    if (size())
     {
-        sampleAndWrite(scalarFields_);
-        sampleAndWrite(vectorFields_);
-        sampleAndWrite(sphericalTensorFields_);
-        sampleAndWrite(symmTensorFields_);
-        sampleAndWrite(tensorFields_);
+        const label nFields = classifyFields();
+
+        if (Pstream::master())
+        {
+            if (debug)
+            {
+                Pout<< "timeName = " << mesh_.time().timeName() << nl
+                    << "scalarFields    " << scalarFields_ << nl
+                    << "vectorFields    " << vectorFields_ << nl
+                    << "sphTensorFields " << sphericalTensorFields_ << nl
+                    << "symTensorFields " << symmTensorFields_ <<nl
+                    << "tensorFields    " << tensorFields_ <<nl;
+            }
+
+            if (nFields)
+            {
+                if (debug)
+                {
+                    Pout<< "Creating directory "
+                        << outputPath_/mesh_.time().timeName()
+                            << nl << endl;
+                }
+
+                mkDir(outputPath_/mesh_.time().timeName());
+            }
+        }
+
+        if (nFields)
+        {
+            sampleAndWrite(scalarFields_);
+            sampleAndWrite(vectorFields_);
+            sampleAndWrite(sphericalTensorFields_);
+            sampleAndWrite(symmTensorFields_);
+            sampleAndWrite(tensorFields_);
+        }
     }
 }
 
@@ -299,20 +237,20 @@ void Foam::sampledSets::write()
 void Foam::sampledSets::read(const dictionary& dict)
 {
     dict_ = dict;
+    dict_.lookup("fields") >> fieldSelection_;
+    clearFieldGroups();
 
-    fieldNames_ = wordList(dict_.lookup("fields"));
-
-    interpolationScheme_ = "cell";
-    dict_.readIfPresent("interpolationScheme", interpolationScheme_);
-
-    writeFormat_ = "null";
-    dict_.readIfPresent("setFormat", writeFormat_);
+    interpolationScheme_ = dict.lookupOrDefault<word>
+    (
+        "interpolationScheme",
+        "cell"
+    );
+    writeFormat_ = dict.lookupOrDefault<word>
+    (
+        "setFormat",
+        "null"
+    );
 
-    scalarFields_.clear();
-    vectorFields_.clear();
-    sphericalTensorFields_.clear();
-    symmTensorFields_.clear();
-    tensorFields_.clear();
 
     PtrList<sampledSet> newList
     (
@@ -324,7 +262,7 @@ void Foam::sampledSets::read(const dictionary& dict)
 
     if (Pstream::master() && debug)
     {
-        Pout<< "sample fields:" << fieldNames_ << nl
+        Pout<< "sample fields:" << fieldSelection_ << nl
             << "sample sets:" << nl << "(" << nl;
 
         forAll(*this, si)
diff --git a/src/sampling/sampledSet/sampledSets/sampledSets.H b/src/sampling/sampledSet/sampledSets/sampledSets.H
index da38f9e1c50ef5d43adf9426fb0517dbadd94a9a..7302d26deb9f6119a5072dbada454c7e2c1dd3d4 100644
--- a/src/sampling/sampledSet/sampledSets/sampledSets.H
+++ b/src/sampling/sampledSet/sampledSets/sampledSets.H
@@ -43,6 +43,7 @@ SourceFiles
 #include "interpolation.H"
 #include "coordSet.H"
 #include "writer.H"
+#include "wordReList.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -54,7 +55,7 @@ class dictionary;
 class fvMesh;
 
 /*---------------------------------------------------------------------------*\
-                      Class sampledSets Declaration
+                         Class sampledSets Declaration
 \*---------------------------------------------------------------------------*/
 
 class sampledSets
@@ -67,25 +68,40 @@ class sampledSets
         template<class Type>
         class fieldGroup
         :
-            public wordList
+            public DynamicList<word>
         {
         public:
 
-            //- Set formatter
-            autoPtr<writer<Type> > formatter;
+            //- The set formatter
+            autoPtr< writer<Type> > formatter;
 
             //- Construct null
             fieldGroup()
             :
-                wordList(0),
+                DynamicList<word>(0),
                 formatter(NULL)
             {}
 
+            //- Construct for a particular format
+            fieldGroup(const word& writeFormat)
+            :
+                DynamicList<word>(0),
+                formatter(writer<Type>::New(writeFormat))
+            {}
+
+            //- Reset format and field list
             void clear()
             {
-                wordList::clear();
+                DynamicList<word>::clear();
                 formatter.clear();
             }
+
+            //- Assign a new formatter
+            void operator=(const word& writeFormat)
+            {
+                formatter = writer<Type>::New(writeFormat);
+            }
+
         };
 
 
@@ -161,7 +177,7 @@ class sampledSets
         // Read from dictonary
 
             //- Names of fields to sample
-            wordList fieldNames_;
+            wordReList fieldSelection_;
 
             //- Interpolation scheme to use
             word interpolationScheme_;
@@ -187,16 +203,14 @@ class sampledSets
 
     // Private Member Functions
 
-        //- Classify field types, return true if nFields > 0
-        bool checkFieldTypes();
+        //- Clear old field groups
+        void clearFieldGroups();
 
-        //- Find the fields in the list of the given type, return count
-        template<class Type>
-        label grep
-        (
-            fieldGroup<Type>& fieldList,
-            const wordList& fieldTypes
-        ) const;
+        //- Append fieldName to the appropriate group
+        label appendFieldGroup(const word& fieldName, const word& fieldType);
+
+        //- Classify field types, returns the number of fields
+        label classifyFields();
 
         //- Combine points from all processors. Sort by curveDist and produce
         //  index list. Valid result only on master processor.
diff --git a/src/sampling/sampledSet/sampledSets/sampledSetsGrouping.C b/src/sampling/sampledSet/sampledSets/sampledSetsGrouping.C
new file mode 100644
index 0000000000000000000000000000000000000000..6e9fb68f0ec1a1c938a0fafe5f04838689a6430e
--- /dev/null
+++ b/src/sampling/sampledSet/sampledSets/sampledSetsGrouping.C
@@ -0,0 +1,125 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 1991-2009 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 2 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, write to the Free Software Foundation,
+    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+\*---------------------------------------------------------------------------*/
+
+#include "sampledSets.H"
+#include "volFields.H"
+#include "IOobjectList.H"
+#include "stringListOps.H"
+
+// * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
+
+void Foam::sampledSets::clearFieldGroups()
+{
+    scalarFields_.clear();
+    vectorFields_.clear();
+    sphericalTensorFields_.clear();
+    symmTensorFields_.clear();
+    tensorFields_.clear();
+}
+
+
+Foam::label Foam::sampledSets::appendFieldGroup
+(
+    const word& fieldName,
+    const word& fieldType
+)
+{
+    if (fieldType == volScalarField::typeName)
+    {
+        scalarFields_.append(fieldName);
+        return 1;
+    }
+    else if (fieldType == volVectorField::typeName)
+    {
+        vectorFields_.append(fieldName);
+        return 1;
+    }
+    else if (fieldType == volSphericalTensorField::typeName)
+    {
+        sphericalTensorFields_.append(fieldName);
+        return 1;
+    }
+    else if (fieldType == volSymmTensorField::typeName)
+    {
+        symmTensorFields_.append(fieldName);
+        return 1;
+    }
+    else if (fieldType == volTensorField::typeName)
+    {
+        tensorFields_.append(fieldName);
+        return 1;
+    }
+
+    return 0;
+}
+
+
+Foam::label Foam::sampledSets::classifyFields()
+{
+    label nFields = 0;
+    clearFieldGroups();
+
+    if (loadFromFiles_)
+    {
+        // check files for a particular time
+        IOobjectList objects(mesh_, mesh_.time().timeName());
+        wordList allFields = objects.sortedNames();
+
+        labelList indices = findStrings(fieldSelection_, allFields);
+
+        forAll(indices, fieldI)
+        {
+            const word& fieldName = allFields[indices[fieldI]];
+
+            nFields += appendFieldGroup
+            (
+                fieldName,
+                objects.find(fieldName)()->headerClassName()
+            );
+        }
+    }
+    else
+    {
+        // check currently available fields
+        wordList allFields = mesh_.sortedNames();
+        labelList indices = findStrings(fieldSelection_, allFields);
+
+        forAll(indices, fieldI)
+        {
+            const word& fieldName = allFields[indices[fieldI]];
+
+            nFields += appendFieldGroup
+            (
+                fieldName,
+                mesh_.find(fieldName)()->type()
+            );
+        }
+    }
+
+    return nFields;
+}
+
+// ************************************************************************* //
diff --git a/src/sampling/sampledSet/sampledSets/sampledSetsTemplates.C b/src/sampling/sampledSet/sampledSets/sampledSetsTemplates.C
index c5cfecb8a8fb6c850e638676ca6f6fd255a81cb7..1450c8c7bf3fedfcff568906ccc8bebf4046c84f 100644
--- a/src/sampling/sampledSet/sampledSets/sampledSetsTemplates.C
+++ b/src/sampling/sampledSet/sampledSets/sampledSetsTemplates.C
@@ -46,10 +46,10 @@ Foam::sampledSets::volFieldSampler<Type>::volFieldSampler
         interpolation<Type>::New(interpolationScheme, field)
     );
 
-    forAll(samplers, seti)
+    forAll(samplers, setI)
     {
-        Field<Type>& values = this->operator[](seti);
-        const sampledSet& samples = samplers[seti];
+        Field<Type>& values = this->operator[](setI);
+        const sampledSet& samples = samplers[setI];
 
         values.setSize(samples.size());
         forAll(samples, samplei)
@@ -79,10 +79,10 @@ Foam::sampledSets::volFieldSampler<Type>::volFieldSampler
     List<Field<Type> >(samplers.size()),
     name_(field.name())
 {
-    forAll(samplers, seti)
+    forAll(samplers, setI)
     {
-        Field<Type>& values = this->operator[](seti);
-        const sampledSet& samples = samplers[seti];
+        Field<Type>& values = this->operator[](setI);
+        const sampledSet& samples = samplers[setI];
 
         values.setSize(samples.size());
         forAll(samples, samplei)
@@ -105,41 +105,12 @@ Foam::sampledSets::volFieldSampler<Type>::volFieldSampler
 {}
 
 
-template<class Type>
-Foam::label Foam::sampledSets::grep
-(
-    fieldGroup<Type>& fieldList,
-    const wordList& fieldTypes
-) const
-{
-    fieldList.setSize(fieldNames_.size());
-    label nFields = 0;
-
-    forAll(fieldNames_, fieldi)
-    {
-        if
-        (
-            fieldTypes[fieldi]
-         == GeometricField<Type, fvPatchField, volMesh>::typeName
-        )
-        {
-            fieldList[nFields] = fieldNames_[fieldi];
-            nFields++;
-        }
-    }
-
-    fieldList.setSize(nFields);
-
-    return nFields;
-}
-
-
 template<class Type>
 void Foam::sampledSets::writeSampleFile
 (
     const coordSet& masterSampleSet,
     const PtrList<volFieldSampler<Type> >& masterFields,
-    const label seti,
+    const label setI,
     const fileName& timeDir,
     const writer<Type>& formatter
 )
@@ -150,7 +121,7 @@ void Foam::sampledSets::writeSampleFile
     forAll(masterFields, fieldi)
     {
         valueSetNames[fieldi] = masterFields[fieldi].name();
-        valueSets[fieldi] = &masterFields[fieldi][seti];
+        valueSets[fieldi] = &masterFields[fieldi][setI];
     }
 
     fileName fName
@@ -180,11 +151,11 @@ void Foam::sampledSets::combineSampledValues
     {
         List<Field<T> > masterValues(indexSets.size());
 
-        forAll(indexSets, seti)
+        forAll(indexSets, setI)
         {
             // Collect data from all processors
             List<Field<T> > gatheredData(Pstream::nProcs());
-            gatheredData[Pstream::myProcNo()] = sampledFields[fieldi][seti];
+            gatheredData[Pstream::myProcNo()] = sampledFields[fieldi][setI];
             Pstream::gatherList(gatheredData);
 
             if (Pstream::master())
@@ -198,10 +169,10 @@ void Foam::sampledSets::combineSampledValues
                     )
                 );
 
-                masterValues[seti] = UIndirectList<T>
+                masterValues[setI] = UIndirectList<T>
                 (
                     allData,
-                    indexSets[seti]
+                    indexSets[setI]
                 )();
             }
         }
@@ -232,7 +203,7 @@ void Foam::sampledSets::sampleAndWrite
         // Create or use existing writer
         if (fields.formatter.empty())
         {
-            fields.formatter = writer<Type>::New(writeFormat_);
+            fields = writeFormat_;
         }
 
         // Storage for interpolated values
@@ -326,13 +297,13 @@ void Foam::sampledSets::sampleAndWrite
 
         if (Pstream::master())
         {
-            forAll(masterSampledSets_, seti)
+            forAll(masterSampledSets_, setI)
             {
                 writeSampleFile
                 (
-                    masterSampledSets_[seti],
+                    masterSampledSets_[setI],
                     masterFields,
-                    seti,
+                    setI,
                     outputPath_/mesh_.time().timeName(),
                     fields.formatter()
                 );
diff --git a/src/sampling/sampledSet/sampledSetsFunctionObject/sampledSetsFunctionObject.H b/src/sampling/sampledSet/sampledSetsFunctionObject/sampledSetsFunctionObject.H
index b2111ceb6154bc74077d2aca0992e2175f6291a6..c021bce3f68336217669413e10c053a19cad03ed 100644
--- a/src/sampling/sampledSet/sampledSetsFunctionObject/sampledSetsFunctionObject.H
+++ b/src/sampling/sampledSet/sampledSetsFunctionObject/sampledSetsFunctionObject.H
@@ -27,7 +27,7 @@ Typedef
 
 Description
     FunctionObject wrapper around sets to allow them to be created via the
-    functions list within controlDict.
+    functions entry within controlDict.
 
 SourceFiles
     sampledSetsFunctionObject.C
diff --git a/src/sampling/sampledSet/uniform/uniformSet.C b/src/sampling/sampledSet/uniform/uniformSet.C
index 9b25ba42345fec8675b38487d194cf3d82286c00..ee293d6588ec8690993459ba0e4084bd5388973d 100644
--- a/src/sampling/sampledSet/uniform/uniformSet.C
+++ b/src/sampling/sampledSet/uniform/uniformSet.C
@@ -65,7 +65,7 @@ bool Foam::uniformSet::nextSample
     samplePt += offset;
     sampleI++;
 
-    for(; sampleI < nPoints_; sampleI++)
+    for (; sampleI < nPoints_; sampleI++)
     {
         scalar s = (samplePt - currentPt) & normOffset;
 
@@ -103,7 +103,7 @@ bool Foam::uniformSet::trackToBoundary
     // Alias
     const point& trackPt = singleParticle.position();
 
-    while(true)
+    while (true)
     {
         // Find next samplePt on/after trackPt. Update samplePt, sampleI
         if (!nextSample(trackPt, offset, smallDist, samplePt, sampleI))
@@ -305,7 +305,7 @@ void Foam::uniformSet::calcSamples
     // index in bHits; current boundary intersection
     label bHitI = 1;
 
-    while(true)
+    while (true)
     {
         // Initialize tracking starting from trackPt
         Cloud<passiveParticle> particles(mesh(), IDLList<passiveParticle>());
@@ -329,7 +329,7 @@ void Foam::uniformSet::calcSamples
         );
 
         // fill sampleSegments
-        for(label i = samplingPts.size() - 1; i >= startSegmentI; --i)
+        for (label i = samplingPts.size() - 1; i >= startSegmentI; --i)
         {
             samplingSegments.append(segmentI);
         }
diff --git a/src/sampling/sampledSet/writers/vtk/vtkSetWriter.C b/src/sampling/sampledSet/writers/vtk/vtkSetWriter.C
index f8172ea5b3bc3446bb376f3102dcee3aa6715fd2..54d7e96a40f5287efbb9dd20e39481228e882927 100644
--- a/src/sampling/sampledSet/writers/vtk/vtkSetWriter.C
+++ b/src/sampling/sampledSet/writers/vtk/vtkSetWriter.C
@@ -153,7 +153,7 @@ void Foam::vtkSetWriter<Type>::write
         label globalPtI = 0;
         forAll(tracks, trackI)
         {
-            const coordSet& points = tracks[trackI]; 
+            const coordSet& points = tracks[trackI];
 
             os  << points.size();
             forAll(points, i)
@@ -164,7 +164,7 @@ void Foam::vtkSetWriter<Type>::write
             os << nl;
         }
     }
-    
+
     os  << "POINT_DATA " << nPoints << nl
         << " FIELD attributes " << valueSetNames.size() << nl;
 
diff --git a/src/sampling/sampledSurface/isoSurface/sampledIsoSurfaceCell.C b/src/sampling/sampledSurface/isoSurface/sampledIsoSurfaceCell.C
index b9e3eaf7b5a54e146a42e2a0590f784453b582a9..3193ca6414b2b333289d0b60facb7a700ef70b0c 100644
--- a/src/sampling/sampledSurface/isoSurface/sampledIsoSurfaceCell.C
+++ b/src/sampling/sampledSurface/isoSurface/sampledIsoSurfaceCell.C
@@ -243,7 +243,7 @@ bool Foam::sampledIsoSurfaceCell::expire()
     {
         return false;
     }
-    
+
     // force update
     prevTimeIndex_ = -1;
     return true;
diff --git a/src/sampling/sampledSurface/sampledPlane/sampledPlane.C b/src/sampling/sampledSurface/sampledPlane/sampledPlane.C
index c5ce93f1d09e8752f87f69bf67493dc0e5e7bb0b..1f03cdcf36c6b603171961f57c18bf426a8a8a95 100644
--- a/src/sampling/sampledSurface/sampledPlane/sampledPlane.C
+++ b/src/sampling/sampledSurface/sampledPlane/sampledPlane.C
@@ -150,11 +150,11 @@ bool Foam::sampledPlane::update()
 
     if (zoneId < 0)
     {
-        reCut(mesh());
+        reCut(mesh(), true);    // always triangulate. Note:Make option?
     }
     else
     {
-        reCut(mesh(), mesh().cellZones()[zoneId]);
+        reCut(mesh(), true, mesh().cellZones()[zoneId]);
     }
 
     if (debug)
diff --git a/src/sampling/sampledSurface/sampledSurfaces/sampledSurfaces.C b/src/sampling/sampledSurface/sampledSurfaces/sampledSurfaces.C
index d6b9613f6f15db7b091654e5d0bffded16ced5a1..a5155a9f49f24eef79aafc8e2d988adf5aa47405 100644
--- a/src/sampling/sampledSurface/sampledSurfaces/sampledSurfaces.C
+++ b/src/sampling/sampledSurface/sampledSurfaces/sampledSurfaces.C
@@ -35,6 +35,10 @@ License
 
 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
 
+defineTypeNameAndDebug(Foam::sampledSurfaces, 0);
+bool Foam::sampledSurfaces::verbose_ = false;
+Foam::scalar Foam::sampledSurfaces::mergeTol_ = 1e-10;
+
 namespace Foam
 {
     //- Used to offset faces in Pstream::combineOffset
@@ -60,101 +64,11 @@ namespace Foam
         }
     };
 
-
-    defineTypeNameAndDebug(sampledSurfaces, 0);
 }
 
 
-bool Foam::sampledSurfaces::verbose_(false);
-Foam::scalar Foam::sampledSurfaces::mergeTol_(1e-10);
-
 // * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
 
-Foam::label Foam::sampledSurfaces::classifyFieldTypes()
-{
-    label nFields = 0;
-
-    scalarFields_.clear();
-    vectorFields_.clear();
-    sphericalTensorFields_.clear();
-    symmTensorFields_.clear();
-    tensorFields_.clear();
-
-    forAll(fieldNames_, fieldI)
-    {
-        const word& fieldName = fieldNames_[fieldI];
-        word fieldType = "";
-
-        // check files for a particular time
-        if (loadFromFiles_)
-        {
-            IOobject io
-            (
-                fieldName,
-                mesh_.time().timeName(),
-                mesh_,
-                IOobject::MUST_READ,
-                IOobject::NO_WRITE,
-                false
-            );
-
-            if (io.headerOk())
-            {
-                fieldType = io.headerClassName();
-            }
-            else
-            {
-                continue;
-            }
-        }
-        else
-        {
-            // check objectRegistry
-            objectRegistry::const_iterator iter = mesh_.find(fieldName);
-
-            if (iter != mesh_.objectRegistry::end())
-            {
-                fieldType = iter()->type();
-            }
-            else
-            {
-                continue;
-            }
-        }
-
-
-        if (fieldType == volScalarField::typeName)
-        {
-            scalarFields_.append(fieldName);
-            nFields++;
-        }
-        else if (fieldType == volVectorField::typeName)
-        {
-            vectorFields_.append(fieldName);
-            nFields++;
-        }
-        else if (fieldType == volSphericalTensorField::typeName)
-        {
-            sphericalTensorFields_.append(fieldName);
-            nFields++;
-        }
-        else if (fieldType == volSymmTensorField::typeName)
-        {
-            symmTensorFields_.append(fieldName);
-            nFields++;
-        }
-        else if (fieldType == volTensorField::typeName)
-        {
-            tensorFields_.append(fieldName);
-            nFields++;
-        }
-
-    }
-
-    return nFields;
-}
-
-
 void Foam::sampledSurfaces::writeGeometry() const
 {
     // Write to time directory under outputPath_
@@ -208,7 +122,7 @@ Foam::sampledSurfaces::sampledSurfaces
     mesh_(refCast<const fvMesh>(obr)),
     loadFromFiles_(loadFromFiles),
     outputPath_(fileName::null),
-    fieldNames_(),
+    fieldSelection_(),
     interpolationScheme_(word::null),
     writeFormat_(word::null),
     mergeList_(),
@@ -265,7 +179,7 @@ void Foam::sampledSurfaces::write()
         // finalize surfaces, merge points etc.
         update();
 
-        const label nFields = classifyFieldTypes();
+        const label nFields = classifyFields();
 
         if (Pstream::master())
         {
@@ -286,8 +200,8 @@ void Foam::sampledSurfaces::write()
             mkDir(outputPath_/mesh_.time().timeName());
         }
 
-        // write geometry first if required, or when no fields would otherwise
-        // be written
+        // write geometry first if required,
+        // or when no fields would otherwise be written
         if (nFields == 0 || genericFormatter_->separateFiles())
         {
             writeGeometry();
@@ -304,15 +218,8 @@ void Foam::sampledSurfaces::write()
 
 void Foam::sampledSurfaces::read(const dictionary& dict)
 {
-    fieldNames_ = wordList(dict.lookup("fields"));
-
-    const label nFields = fieldNames_.size();
-
-    scalarFields_.reset(nFields);
-    vectorFields_.reset(nFields);
-    sphericalTensorFields_.reset(nFields);
-    symmTensorFields_.reset(nFields);
-    tensorFields_.reset(nFields);
+    dict.lookup("fields") >> fieldSelection_;
+    clearFieldGroups();
 
     interpolationScheme_ = dict.lookupOrDefault<word>
     (
@@ -335,7 +242,6 @@ void Foam::sampledSurfaces::read(const dictionary& dict)
         dict.lookup("surfaces"),
         sampledSurface::iNew(mesh_)
     );
-
     transfer(newList);
 
     if (Pstream::parRun())
@@ -348,7 +254,7 @@ void Foam::sampledSurfaces::read(const dictionary& dict)
 
     if (Pstream::master() && debug)
     {
-        Pout<< "sample fields:" << fieldNames_ << nl
+        Pout<< "sample fields:" << fieldSelection_ << nl
             << "sample surfaces:" << nl << "(" << nl;
 
         forAll(*this, surfI)
diff --git a/src/sampling/sampledSurface/sampledSurfaces/sampledSurfaces.H b/src/sampling/sampledSurface/sampledSurfaces/sampledSurfaces.H
index 4ad59c486f70e1fb8271fddee07bdc03eaf54a47..66b6472ff923f2ceee9f255c7555133bd005e7c1 100644
--- a/src/sampling/sampledSurface/sampledSurfaces/sampledSurfaces.H
+++ b/src/sampling/sampledSurface/sampledSurfaces/sampledSurfaces.H
@@ -41,6 +41,7 @@ SourceFiles
 #include "sampledSurface.H"
 #include "surfaceWriter.H"
 #include "volFieldsFwd.H"
+#include "wordReList.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -51,7 +52,7 @@ class fvMesh;
 class dictionary;
 
 /*---------------------------------------------------------------------------*\
-                      Class sampledSurfaces Declaration
+                       Class sampledSurfaces Declaration
 \*---------------------------------------------------------------------------*/
 
 class sampledSurfaces
@@ -68,7 +69,7 @@ class sampledSurfaces
         {
         public:
 
-            //- Surface formatter
+            //- The surface formatter
             autoPtr< surfaceWriter<Type> > formatter;
 
             //- Construct null
@@ -85,34 +86,19 @@ class sampledSurfaces
                 formatter(surfaceWriter<Type>::New(writeFormat))
             {}
 
-            //- Construct for a particular surface format and a list of field
-            //  names
-            fieldGroup
-            (
-                const word& writeFormat,
-                const wordList& fieldNames
-            )
-            :
-                DynamicList<word>(fieldNames),
-                formatter(surfaceWriter<Type>::New(writeFormat))
-            {}
-
-            void reset(const label nElem)
+            //- Reset format and field list
+            void clear()
             {
+                DynamicList<word>::clear();
                 formatter.clear();
-                DynamicList<word>::setCapacity(nElem);
-                DynamicList<word>::clear(); 
             }
 
+            //- Assign a new formatter
             void operator=(const word& writeFormat)
             {
                 formatter = surfaceWriter<Type>::New(writeFormat);
             }
 
-            void operator=(const wordList& fieldNames)
-            {
-                DynamicList<word>::operator=(fieldNames);
-            }
         };
 
 
@@ -161,7 +147,7 @@ class sampledSurfaces
         // Read from dictonary
 
             //- Names of fields to sample
-            wordList fieldNames_;
+            wordReList fieldSelection_;
 
             //- Interpolation scheme to use
             word interpolationScheme_;
@@ -191,8 +177,14 @@ class sampledSurfaces
 
     // Private Member Functions
 
+        //- Clear old field groups
+        void clearFieldGroups();
+
+        //- Append fieldName to the appropriate group
+        label appendFieldGroup(const word& fieldName, const word& fieldType);
+
         //- Classify field types, returns the number of fields
-        label classifyFieldTypes();
+        label classifyFields();
 
         //- Write geometry only
         void writeGeometry() const;
diff --git a/src/sampling/sampledSurface/sampledSurfaces/sampledSurfacesGrouping.C b/src/sampling/sampledSurface/sampledSurfaces/sampledSurfacesGrouping.C
new file mode 100644
index 0000000000000000000000000000000000000000..497c36f8423b386bdbbc601a8fdd4f5973cec45e
--- /dev/null
+++ b/src/sampling/sampledSurface/sampledSurfaces/sampledSurfacesGrouping.C
@@ -0,0 +1,125 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 1991-2009 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 2 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, write to the Free Software Foundation,
+    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+\*---------------------------------------------------------------------------*/
+
+#include "sampledSurfaces.H"
+#include "volFields.H"
+#include "IOobjectList.H"
+#include "stringListOps.H"
+
+// * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
+
+void Foam::sampledSurfaces::clearFieldGroups()
+{
+    scalarFields_.clear();
+    vectorFields_.clear();
+    sphericalTensorFields_.clear();
+    symmTensorFields_.clear();
+    tensorFields_.clear();
+}
+
+
+Foam::label Foam::sampledSurfaces::appendFieldGroup
+(
+    const word& fieldName,
+    const word& fieldType
+)
+{
+    if (fieldType == volScalarField::typeName)
+    {
+        scalarFields_.append(fieldName);
+        return 1;
+    }
+    else if (fieldType == volVectorField::typeName)
+    {
+        vectorFields_.append(fieldName);
+        return 1;
+    }
+    else if (fieldType == volSphericalTensorField::typeName)
+    {
+        sphericalTensorFields_.append(fieldName);
+        return 1;
+    }
+    else if (fieldType == volSymmTensorField::typeName)
+    {
+        symmTensorFields_.append(fieldName);
+        return 1;
+    }
+    else if (fieldType == volTensorField::typeName)
+    {
+        tensorFields_.append(fieldName);
+        return 1;
+    }
+
+    return 0;
+}
+
+
+Foam::label Foam::sampledSurfaces::classifyFields()
+{
+    label nFields = 0;
+    clearFieldGroups();
+
+    // check files for a particular time
+    if (loadFromFiles_)
+    {
+        IOobjectList objects(mesh_, mesh_.time().timeName());
+        wordList allFields = objects.sortedNames();
+
+        labelList indices = findStrings(fieldSelection_, allFields);
+
+        forAll(indices, fieldI)
+        {
+            const word& fieldName = allFields[indices[fieldI]];
+
+            nFields += appendFieldGroup
+            (
+                fieldName,
+                objects.find(fieldName)()->headerClassName()
+            );
+        }
+    }
+    else
+    {
+        wordList allFields = mesh_.sortedNames();
+        labelList indices = findStrings(fieldSelection_, allFields);
+
+        forAll(indices, fieldI)
+        {
+            const word& fieldName = allFields[indices[fieldI]];
+
+            nFields += appendFieldGroup
+            (
+                fieldName,
+                mesh_.find(fieldName)()->type()
+            );
+        }
+    }
+
+    return nFields;
+}
+
+
+// ************************************************************************* //
diff --git a/src/sampling/sampledSurface/sampledSurfaces/sampledSurfacesTemplates.C b/src/sampling/sampledSurface/sampledSurfaces/sampledSurfacesTemplates.C
index 6da55cfe8736220134b921afdef9403ea9f3fb6e..b5dc2d418ce45f63e8ac49e5470eb0d8dca65dd2 100644
--- a/src/sampling/sampledSurface/sampledSurfaces/sampledSurfacesTemplates.C
+++ b/src/sampling/sampledSurface/sampledSurfaces/sampledSurfacesTemplates.C
@@ -178,7 +178,7 @@ void Foam::sampledSurfaces::sampleAndWrite
 
                 if
                 (
-                    iter != mesh_.objectRegistry::end()
+                    iter != objectRegistry::end()
                  && iter()->type()
                  == GeometricField<Type, fvPatchField, volMesh>::typeName
                 )
diff --git a/src/sampling/sampledSurface/sampledSurfacesFunctionObject/sampledSurfacesFunctionObject.H b/src/sampling/sampledSurface/sampledSurfacesFunctionObject/sampledSurfacesFunctionObject.H
index 44229e414f1d7b8e33c73ae50bf9a34ebcf83618..8e318a6e9536991f28c4c16648762ba6e2709ec9 100644
--- a/src/sampling/sampledSurface/sampledSurfacesFunctionObject/sampledSurfacesFunctionObject.H
+++ b/src/sampling/sampledSurface/sampledSurfacesFunctionObject/sampledSurfacesFunctionObject.H
@@ -27,7 +27,7 @@ Typedef
 
 Description
     FunctionObject wrapper around surfaces to allow them to be created via the
-    functions list within controlDict.
+    functions entry within controlDict.
 
 SourceFiles
     sampledSurfacesFunctionObject.C
diff --git a/src/sampling/sampledSurface/thresholdCellFaces/thresholdCellFaces.H b/src/sampling/sampledSurface/thresholdCellFaces/thresholdCellFaces.H
index a8428cdd089982f21bacbb4f45c1263b60e2bb94..dd7ea408d599b1582c1bea94efe0df76c1b5f607 100644
--- a/src/sampling/sampledSurface/thresholdCellFaces/thresholdCellFaces.H
+++ b/src/sampling/sampledSurface/thresholdCellFaces/thresholdCellFaces.H
@@ -67,7 +67,7 @@ class thresholdCellFaces
 
         void calculate
         (
-            const scalarField&, 
+            const scalarField&,
             const scalar lowerThreshold,
             const scalar upperThreshold,
             const bool triangulate
diff --git a/src/sampling/sampledSurface/writers/raw/rawSurfaceWriter.C b/src/sampling/sampledSurface/writers/raw/rawSurfaceWriter.C
index c916fe16c3c11d1892b805a9886be0840d0a4fe3..4ebdbb976b01bd122055e83671444190b666eede 100644
--- a/src/sampling/sampledSurface/writers/raw/rawSurfaceWriter.C
+++ b/src/sampling/sampledSurface/writers/raw/rawSurfaceWriter.C
@@ -192,7 +192,7 @@ void Foam::rawSurfaceWriter<Type>::writeData
 {
     // header
     os  << "#  xx  xy  xz  yy  yz ";
-    for(int i=0; i<6; i++)
+    for (int i=0; i<6; i++)
     {
         os << fieldName << "_" << i << "  ";
     }
diff --git a/src/surfMesh/MeshedSurface/MeshedSurface.C b/src/surfMesh/MeshedSurface/MeshedSurface.C
index 1c1622c0ebb13898bb5e6d34a6ed6c5b5f446d1e..3cf72dbcbc518d06479bc12a370f211fd186f84b 100644
--- a/src/surfMesh/MeshedSurface/MeshedSurface.C
+++ b/src/surfMesh/MeshedSurface/MeshedSurface.C
@@ -918,7 +918,7 @@ Foam::label Foam::MeshedSurface<Face>::triangulate
             // 'face' not '<Face>'
             const face& f = faceLst[faceI];
 
-            label nTmp;
+            label nTmp = 0;
             f.triangles(this->points(), nTmp, tmpTri);
             for (label triI = 0; triI < nTmp; triI++)
             {
diff --git a/src/surfMesh/MeshedSurface/MeshedSurface.H b/src/surfMesh/MeshedSurface/MeshedSurface.H
index ea7125fa833b780b6634b4ecd3b56854fccf26ff..459329bed3b87d3bb4c8eef4298943f5edddf78c 100644
--- a/src/surfMesh/MeshedSurface/MeshedSurface.H
+++ b/src/surfMesh/MeshedSurface/MeshedSurface.H
@@ -396,10 +396,10 @@ public:
             const labelHashSet& include
         ) const;
 
-        //- Transfer the contents of the argument and annull the argument
+        //- Transfer the contents of the argument and annul the argument
         void transfer(MeshedSurface<Face>&);
 
-        //- Transfer the contents of the argument and annull the argument
+        //- Transfer the contents of the argument and annul the argument
         void transfer(UnsortedMeshedSurface<Face>&);
 
         //- Transfer contents to the Xfer container
diff --git a/src/surfMesh/MeshedSurface/MeshedSurfaceZones.C b/src/surfMesh/MeshedSurface/MeshedSurfaceZones.C
index a31e8d6314ee75d921e8a340a04a0836b8596fc8..8e837e6f8572bffd61b4082b5abf012fe425b9d4 100644
--- a/src/surfMesh/MeshedSurface/MeshedSurfaceZones.C
+++ b/src/surfMesh/MeshedSurface/MeshedSurfaceZones.C
@@ -53,7 +53,7 @@ void Foam::MeshedSurface<Face>::checkZones()
                 << " ... extending final zone"
                 << endl;
 
-            zones[zones.size()-1].size() += count - this->size();
+            zones.last().size() += count - this->size();
         }
         else if (count > this->size())
         {
diff --git a/src/surfMesh/UnsortedMeshedSurface/UnsortedMeshedSurface.H b/src/surfMesh/UnsortedMeshedSurface/UnsortedMeshedSurface.H
index bb4fa01b379a3080bb8a75459a7eb569073ce6bc..7e16cc909dbd675735184554d4d2948cf0f25f17 100644
--- a/src/surfMesh/UnsortedMeshedSurface/UnsortedMeshedSurface.H
+++ b/src/surfMesh/UnsortedMeshedSurface/UnsortedMeshedSurface.H
@@ -334,10 +334,10 @@ public:
                 const Xfer< List<label> >& zoneIds
             );
 
-            //- Transfer the contents of the argument and annull the argument
+            //- Transfer the contents of the argument and annul the argument
             void transfer(UnsortedMeshedSurface<Face>&);
 
-            //- Transfer the contents of the argument and annull the argument
+            //- Transfer the contents of the argument and annul the argument
             void transfer(MeshedSurface<Face>&);
 
             //- Transfer contents to the Xfer container
diff --git a/src/surfMesh/surfMesh/surfMesh.C b/src/surfMesh/surfMesh/surfMesh.C
index 71f6fd82c463d81f3b92f72afd200d015fbeab10..686271da9af8bf43c34efd1d08a3e40738976147 100644
--- a/src/surfMesh/surfMesh/surfMesh.C
+++ b/src/surfMesh/surfMesh/surfMesh.C
@@ -377,7 +377,7 @@ void Foam::surfMesh::checkZones()
                 << " ... extending final zone"
                 << endl;
 
-            zones[zones.size()-1].size() += count - nFaces();
+            zones.last().size() += count - nFaces();
         }
         else if (count > size())
         {
diff --git a/src/surfMesh/surfMesh/surfMesh.H b/src/surfMesh/surfMesh/surfMesh.H
index 3215bfd345ae767a0a81d96a8128972f1bd40e98..48879918a0dca4dec76dcba5705d3c1e753dcfbd 100644
--- a/src/surfMesh/surfMesh/surfMesh.H
+++ b/src/surfMesh/surfMesh/surfMesh.H
@@ -257,7 +257,7 @@ public:
             );
 
 
-            //- Transfer the contents of the argument and annull the argument
+            //- Transfer the contents of the argument and annul the argument
             void transfer(MeshedSurface<face>&);
 
 
diff --git a/src/surfMesh/surfMesh/surfMeshIO.C b/src/surfMesh/surfMesh/surfMeshIO.C
index c74b1c693eb5ae9fae13f00ca9948801da540707..ca2d840d072bba27dded473d547622421ca08116 100644
--- a/src/surfMesh/surfMesh/surfMeshIO.C
+++ b/src/surfMesh/surfMesh/surfMeshIO.C
@@ -75,7 +75,7 @@ Foam::surfMesh::readUpdateState Foam::surfMesh::readUpdate()
         // Topological change
         if (debug)
         {
-            Info << "Topological change" << endl;
+            Info<< "Topological change" << endl;
         }
 
         clearOut();
@@ -169,7 +169,7 @@ Foam::surfMesh::readUpdateState Foam::surfMesh::readUpdate()
         // Points moved
         if (debug)
         {
-            Info << "Point motion" << endl;
+            Info<< "Point motion" << endl;
         }
 
         clearGeom();
@@ -195,7 +195,7 @@ Foam::surfMesh::readUpdateState Foam::surfMesh::readUpdate()
     {
         if (debug)
         {
-            Info << "No change" << endl;
+            Info<< "No change" << endl;
         }
     }
 
diff --git a/src/thermophysicalModels/chemistryModel/chemistryModel/ODEChemistryModel/ODEChemistryModel.C b/src/thermophysicalModels/chemistryModel/chemistryModel/ODEChemistryModel/ODEChemistryModel.C
index 7153826609d66271404f693e633450c9cc2ca06c..3e204e65b1dea330e3840ebc99c12d172c9e1ddb 100644
--- a/src/thermophysicalModels/chemistryModel/chemistryModel/ODEChemistryModel/ODEChemistryModel.C
+++ b/src/thermophysicalModels/chemistryModel/chemistryModel/ODEChemistryModel/ODEChemistryModel.C
@@ -707,7 +707,7 @@ Foam::scalar Foam::ODEChemistryModel<CompType, ThermoType>::solve
         // calculate the chemical source terms
         scalar cTot = 0.0;
 
-        while(timeLeft > SMALL)
+        while (timeLeft > SMALL)
         {
             tauC = solver().solve(c, Ti, pi, t, dt);
             t += dt;
diff --git a/src/thermophysicalModels/pdfs/RosinRammler/RosinRammler.C b/src/thermophysicalModels/pdfs/RosinRammler/RosinRammler.C
index f157c2645f6cda4aea9f2901e255ac3c9193078b..becfd94db21e0b202d4a937617f0457641dc2d11 100644
--- a/src/thermophysicalModels/pdfs/RosinRammler/RosinRammler.C
+++ b/src/thermophysicalModels/pdfs/RosinRammler/RosinRammler.C
@@ -118,7 +118,7 @@ Foam::scalar Foam::RosinRammler::sample() const
             scalar xx = pow(x/d_[i], n_[i]);
             p += ls_[i]*xx*exp(-xx);
         }
-    } while(y>p);
+    } while (y>p);
 
     return x;
 }
diff --git a/src/thermophysicalModels/pdfs/exponential/exponential.C b/src/thermophysicalModels/pdfs/exponential/exponential.C
index 6ebe918fe892ea464091365e82ee57bc57618952..8498c2c9e2a234475ffbdb318d98f12f79443818 100644
--- a/src/thermophysicalModels/pdfs/exponential/exponential.C
+++ b/src/thermophysicalModels/pdfs/exponential/exponential.C
@@ -105,7 +105,7 @@ Foam::scalar Foam::exponential::sample() const
         {
             p += ls_[i]*exp(-lambda_[i]*x);
         }
-    } while(p>y);
+    } while (p>y);
 
     return x;
 }
diff --git a/src/thermophysicalModels/pdfs/general/general.C b/src/thermophysicalModels/pdfs/general/general.C
index 59b1a75953f14b344856ea8ec2b27ae4ec931e34..33d3e3f57d4cd5a7708ecb8e9a8a397a08882c89 100644
--- a/src/thermophysicalModels/pdfs/general/general.C
+++ b/src/thermophysicalModels/pdfs/general/general.C
@@ -96,7 +96,7 @@ Foam::scalar Foam::general::sample() const
           + (x - xy_[i][0])
            *(xy_[i+1][1] - xy_[i][1])
            /(xy_[i+1][0] - xy_[i][0]);
-    } while(p>y);
+    } while (p>y);
 
     return x;
 }
diff --git a/src/thermophysicalModels/radiation/radiationModel/fvDOM/fvDOM/fvDOM.C b/src/thermophysicalModels/radiation/radiationModel/fvDOM/fvDOM/fvDOM.C
index d57b13866abe422a195317116896fe86512b86a6..7821fb7d58034eaa6869694f05c72fe673600759 100644
--- a/src/thermophysicalModels/radiation/radiationModel/fvDOM/fvDOM/fvDOM.C
+++ b/src/thermophysicalModels/radiation/radiationModel/fvDOM/fvDOM/fvDOM.C
@@ -307,9 +307,9 @@ void Foam::radiation::fvDOM::calculate()
             maxResidual = max(maxBandResidual, maxResidual);
         }
 
-        Info << "Radiation solver iter: " << radIter << endl;
+        Info<< "Radiation solver iter: " << radIter << endl;
 
-    } while(maxResidual > convergence_ && radIter < maxIter_);
+    } while (maxResidual > convergence_ && radIter < maxIter_);
 
     updateG();
 }
diff --git a/src/thermophysicalModels/reactionThermo/chemistryReaders/chemkinReader/chemkinLexer.L b/src/thermophysicalModels/reactionThermo/chemistryReaders/chemkinReader/chemkinLexer.L
index 17529cdb6499b27dbad781bc01fc2555c6b8201c..dc2d0e7830c801fa6eb90043b6b61d80d34cb79c 100644
--- a/src/thermophysicalModels/reactionThermo/chemistryReaders/chemkinReader/chemkinLexer.L
+++ b/src/thermophysicalModels/reactionThermo/chemistryReaders/chemkinReader/chemkinLexer.L
@@ -32,6 +32,8 @@ License
 
 #include "error.H"
 #include "IStringStream.H"
+// For EOF only
+#include <cstdio>
 
 // flex input buffer size
 int Foam::chemkinReader::yyBufSize = YY_BUF_SIZE;
diff --git a/src/thermophysicalModels/reactionThermo/chemistryReaders/chemkinReader/chemkinReader.C b/src/thermophysicalModels/reactionThermo/chemistryReaders/chemkinReader/chemkinReader.C
index a6841241225ab9ced70ca0466d3c6fcb0d34347a..9302e1665947a3e8147f9649839e70232d671b49 100644
--- a/src/thermophysicalModels/reactionThermo/chemistryReaders/chemkinReader/chemkinReader.C
+++ b/src/thermophysicalModels/reactionThermo/chemistryReaders/chemkinReader/chemkinReader.C
@@ -813,7 +813,7 @@ void Foam::chemkinReader::read
         yy_buffer_state* bufferPtr(yy_create_buffer(&thermoStream, yyBufSize));
         yy_switch_to_buffer(bufferPtr);
 
-        while(lex() != 0)
+        while (lex() != 0)
         {}
 
         yy_delete_buffer(bufferPtr);
@@ -838,7 +838,7 @@ void Foam::chemkinReader::read
 
     initReactionKeywordTable();
 
-    while(lex() != 0)
+    while (lex() != 0)
     {}
 
     yy_delete_buffer(bufferPtr);
diff --git a/src/thermophysicalModels/reactionThermo/chemistryReaders/chemkinReader/chemkinReader.H b/src/thermophysicalModels/reactionThermo/chemistryReaders/chemkinReader/chemkinReader.H
index de679103806b55e96a6a8a9faad1edd41bca973a..0afbc9a457d7fed92793fe1cd4d88db35c87b664 100644
--- a/src/thermophysicalModels/reactionThermo/chemistryReaders/chemkinReader/chemkinReader.H
+++ b/src/thermophysicalModels/reactionThermo/chemistryReaders/chemkinReader/chemkinReader.H
@@ -234,7 +234,7 @@ private:
             {
                 elementName[1] = tolower(elementName[1]);
             }
-            else if(elementName[0] == 'E')
+            else if (elementName[0] == 'E')
             {
                 elementName = 'e';
             }
diff --git a/src/thermophysicalModels/specie/reaction/reactions/makeReactionThermo.H b/src/thermophysicalModels/specie/reaction/reactions/makeReactionThermo.H
index 6d982155c7d48f30f671585112e5d1ecc105430a..c4e079796f6e7e32a3b53c31aa126105f17edcf9 100644
--- a/src/thermophysicalModels/specie/reaction/reactions/makeReactionThermo.H
+++ b/src/thermophysicalModels/specie/reaction/reactions/makeReactionThermo.H
@@ -30,7 +30,7 @@ Description
 
 \*---------------------------------------------------------------------------*/
 
-#ifndef makeReactionTherno_H
+#ifndef makeReactionThermo_H
 #define makeReactionThermo_H
 
 #include "Reaction.H"
diff --git a/src/topoChangerFvMesh/linearValveFvMesh/linearValveFvMesh.C b/src/topoChangerFvMesh/linearValveFvMesh/linearValveFvMesh.C
index 3953db92fea4257197488e55fde383070acb4aa8..d90a7ad0a43fd729e5e18416d21fc35f5c1124bc 100644
--- a/src/topoChangerFvMesh/linearValveFvMesh/linearValveFvMesh.C
+++ b/src/topoChangerFvMesh/linearValveFvMesh/linearValveFvMesh.C
@@ -137,11 +137,11 @@ void Foam::linearValveFvMesh::addZonesAndModifiers()
 
     List<cellZone*> cz(0);
 
-    Info << "Adding point, face and cell zones" << endl;
+    Info<< "Adding point, face and cell zones" << endl;
     addZones(pz, fz, cz);
 
     // Add a topology modifier
-    Info << "Adding topology modifiers" << endl;
+    Info<< "Adding topology modifiers" << endl;
     topoChanger_.setSize(1);
     topoChanger_.set
     (
@@ -249,11 +249,11 @@ bool Foam::linearValveFvMesh::attached() const
 
     if (result)
     {
-        Info << "linearValveFvMesh: attached!" << endl;
+        Info<< "linearValveFvMesh: attached!" << endl;
     }
     else
     {
-        Info << "linearValveFvMesh: detached!" << endl;
+        Info<< "linearValveFvMesh: detached!" << endl;
     }
 
     return result;
@@ -299,7 +299,7 @@ void Foam::linearValveFvMesh::update()
     // Detaching the interface
     if (attached())
     {
-        Info << "Decoupling sliding interfaces" << endl;
+        Info<< "Decoupling sliding interfaces" << endl;
         makeSlidersLive();
 
         // Changing topology by hand
@@ -311,7 +311,7 @@ void Foam::linearValveFvMesh::update()
     }
     else
     {
-        Info << "Sliding interfaces decoupled" << endl;
+        Info<< "Sliding interfaces decoupled" << endl;
     }
 
     // Perform mesh motion
@@ -328,7 +328,7 @@ void Foam::linearValveFvMesh::update()
     {
         if (topoChangeMap().hasMotionPoints())
         {
-            Info << "Topology change; executing pre-motion" << endl;
+            Info<< "Topology change; executing pre-motion" << endl;
             movePoints(topoChangeMap().preMotionPoints());
         }
     }
@@ -339,17 +339,17 @@ void Foam::linearValveFvMesh::update()
     movePoints(msPtr_->curPoints());
 
     // Attach the interface
-    Info << "Coupling sliding interfaces" << endl;
+    Info<< "Coupling sliding interfaces" << endl;
     makeSlidersLive();
     resetMorph();
     setMorphTimeIndex(3*time().timeIndex() + 2);
     updateMesh();
 
-    Info << "Moving points post slider attach" << endl;
+    Info<< "Moving points post slider attach" << endl;
 
     msPtr_->updateMesh();
 
-    Info << "Sliding interfaces coupled: " << attached() << endl;
+    Info<< "Sliding interfaces coupled: " << attached() << endl;
 }
 
 
diff --git a/src/topoChangerFvMesh/linearValveLayersFvMesh/linearValveLayersFvMesh.C b/src/topoChangerFvMesh/linearValveLayersFvMesh/linearValveLayersFvMesh.C
index 8b5ca8a90d2e3b069c3a31d85e06b03c978b4cde..46119de94487c1389d56f7c1957a90ce88f171e8 100644
--- a/src/topoChangerFvMesh/linearValveLayersFvMesh/linearValveLayersFvMesh.C
+++ b/src/topoChangerFvMesh/linearValveLayersFvMesh/linearValveLayersFvMesh.C
@@ -164,7 +164,7 @@ void Foam::linearValveLayersFvMesh::addZonesAndModifiers()
     );
 
 
-    Info << "Adding point and face zones" << endl;
+    Info<< "Adding point and face zones" << endl;
     addZones(pz, fz, cz);
 
     // Add a topology modifier
@@ -204,7 +204,7 @@ void Foam::linearValveLayersFvMesh::addZonesAndModifiers()
         );
 
 
-    Info << "Adding topology modifiers" << endl;
+    Info<< "Adding topology modifiers" << endl;
     addTopologyModifiers(tm);
 
     // Write mesh
@@ -375,7 +375,7 @@ void Foam::linearValveLayersFvMesh::update()
     // Detaching the interface
     if (attached())
     {
-        Info << "Decoupling sliding interfaces" << endl;
+        Info<< "Decoupling sliding interfaces" << endl;
         makeSlidersLive();
 
         // Changing topology
@@ -385,7 +385,7 @@ void Foam::linearValveLayersFvMesh::update()
     }
     else
     {
-        Info << "Sliding interfaces decoupled" << endl;
+        Info<< "Sliding interfaces decoupled" << endl;
     }
 
     // Perform layer action and mesh motion
@@ -400,7 +400,7 @@ void Foam::linearValveLayersFvMesh::update()
     {
         if (topoChangeMap().hasMotionPoints())
         {
-            Info << "Topology change; executing pre-motion" << endl;
+            Info<< "Topology change; executing pre-motion" << endl;
             movePoints(topoChangeMap().preMotionPoints());
         }
     }
@@ -409,7 +409,7 @@ void Foam::linearValveLayersFvMesh::update()
     movePoints(newPoints());
 
     // Attach the interface
-    Info << "Coupling sliding interfaces" << endl;
+    Info<< "Coupling sliding interfaces" << endl;
     makeSlidersLive();
 
     // Changing topology
@@ -417,11 +417,11 @@ void Foam::linearValveLayersFvMesh::update()
     setMorphTimeIndex(3*time().timeIndex() + 2);
     updateMesh();
 
-    Info << "Moving points post slider attach" << endl;
+    Info<< "Moving points post slider attach" << endl;
 //     const pointField p = allPoints();
 //     movePoints(p);
 
-    Info << "Sliding interfaces coupled: " << attached() << endl;
+    Info<< "Sliding interfaces coupled: " << attached() << endl;
 }
 
 
diff --git a/src/topoChangerFvMesh/mixerFvMesh/mixerFvMesh.C b/src/topoChangerFvMesh/mixerFvMesh/mixerFvMesh.C
index a080a156a53c481a68068e50a9fc8cba61ce861d..33d8cffd8d7e75fe36d8162fe62464d4264d3b17 100644
--- a/src/topoChangerFvMesh/mixerFvMesh/mixerFvMesh.C
+++ b/src/topoChangerFvMesh/mixerFvMesh/mixerFvMesh.C
@@ -156,7 +156,7 @@ void Foam::mixerFvMesh::addZonesAndModifiers()
     }
 
     movingCells.setSize(nMovingCells);
-    Info << "Number of cells in the moving region: " << nMovingCells << endl;
+    Info<< "Number of cells in the moving region: " << nMovingCells << endl;
 
     cz[0] = new cellZone
     (
@@ -166,11 +166,11 @@ void Foam::mixerFvMesh::addZonesAndModifiers()
         cellZones()
     );
 
-    Info << "Adding point, face and cell zones" << endl;
+    Info<< "Adding point, face and cell zones" << endl;
     addZones(pz, fz, cz);
 
     // Add a topology modifier
-    Info << "Adding topology modifiers" << endl;
+    Info<< "Adding topology modifiers" << endl;
     topoChanger_.setSize(1);
     topoChanger_.set
     (
@@ -361,7 +361,7 @@ bool Foam::mixerFvMesh::update()
     {
         if (debug)
         {
-            Info << "Mesh topology is changing" << endl;
+            Info<< "Mesh topology is changing" << endl;
         }
 
         deleteDemandDrivenData(movingPointsMaskPtr_);
diff --git a/src/topoChangerFvMesh/movingConeTopoFvMesh/movingConeTopoFvMesh.C b/src/topoChangerFvMesh/movingConeTopoFvMesh/movingConeTopoFvMesh.C
index 959c4540a56fa64eb039bee701b72701343ac570..5e4a1bbde241d8f3fd86af8d183e18dfca07a30f 100644
--- a/src/topoChangerFvMesh/movingConeTopoFvMesh/movingConeTopoFvMesh.C
+++ b/src/topoChangerFvMesh/movingConeTopoFvMesh/movingConeTopoFvMesh.C
@@ -146,7 +146,7 @@ void Foam::movingConeTopoFvMesh::addZonesAndModifiers()
                 flipZone2[nZoneFaces2] = true;
             }
 
-            Info << "face " << faceI << " for zone 2.  Flip: "
+            Info<< "face " << faceI << " for zone 2.  Flip: "
                 << flipZone2[nZoneFaces2] << endl;
             nZoneFaces2++;
         }
@@ -158,8 +158,8 @@ void Foam::movingConeTopoFvMesh::addZonesAndModifiers()
     zone2.setSize(nZoneFaces2);
     flipZone2.setSize(nZoneFaces2);
 
-    Info << "zone: " << zone1 << endl;
-    Info << "zone: " << zone2 << endl;
+    Info<< "zone: " << zone1 << endl;
+    Info<< "zone: " << zone2 << endl;
 
     List<pointZone*> pz(0);
     List<faceZone*> fz(2);
@@ -191,7 +191,7 @@ void Foam::movingConeTopoFvMesh::addZonesAndModifiers()
 
     fz.setSize(nFz);
 
-    Info << "Adding mesh zones." << endl;
+    Info<< "Adding mesh zones." << endl;
     addZones(pz, fz, cz);
 
 
@@ -236,7 +236,7 @@ void Foam::movingConeTopoFvMesh::addZonesAndModifiers()
     nMods++;
     tm.setSize(nMods);
 
-    Info << "Adding " << nMods << " mesh modifiers" << endl;
+    Info<< "Adding " << nMods << " mesh modifiers" << endl;
     topoChanger_.addTopologyModifiers(tm);
 
     write();
@@ -334,11 +334,11 @@ bool Foam::movingConeTopoFvMesh::update()
 
     if (topoChangeMap.valid())
     {
-        Info << "Topology change. Calculating motion points" << endl;
+        Info<< "Topology change. Calculating motion points" << endl;
 
         if (topoChangeMap().hasMotionPoints())
         {
-            Info << "Topology change. Has premotion points" << endl;
+            Info<< "Topology change. Has premotion points" << endl;
             //Info<< "preMotionPoints:" << topoChangeMap().preMotionPoints()
             //    << endl;
 
@@ -390,7 +390,7 @@ bool Foam::movingConeTopoFvMesh::update()
         }
         else
         {
-            Info << "Topology change. Already set mesh points" << endl;
+            Info<< "Topology change. Already set mesh points" << endl;
 
             motionMask_ =
                 vertexMarkup
@@ -424,7 +424,7 @@ bool Foam::movingConeTopoFvMesh::update()
     }
     else
     {
-        Info << "No topology change" << endl;
+        Info<< "No topology change" << endl;
         // Set the mesh motion
         newPoints =
             points()
@@ -466,7 +466,7 @@ bool Foam::movingConeTopoFvMesh::update()
 
     // The mesh now contains the cells with zero volume
 
-    Info << "Executing mesh motion" << endl;
+    Info<< "Executing mesh motion" << endl;
     movePoints(newPoints);
 
     //  The mesh now has got non-zero volume cells
diff --git a/src/triSurface/triSurface/interfaces/OBJ/readOBJ.C b/src/triSurface/triSurface/interfaces/OBJ/readOBJ.C
index 20c3d9cc65d4ebda88b31578e000283efac832c0..d98a504bc4c2bd8e3ae3f467fb2c6946408a7bdb 100644
--- a/src/triSurface/triSurface/interfaces/OBJ/readOBJ.C
+++ b/src/triSurface/triSurface/interfaces/OBJ/readOBJ.C
@@ -107,7 +107,7 @@ bool triSurface::readOBJ(const fileName& OBJfileName)
             // Assume 'f' is followed by space.
             string::size_type endNum = 1;
 
-            while(true)
+            while (true)
             {
                 string::size_type startNum =
                     line.find_first_not_of(' ', endNum);
diff --git a/src/triSurface/triSurface/interfaces/STL/readSTLASCII.L b/src/triSurface/triSurface/interfaces/STL/readSTLASCII.L
index 208aa13d1619dc85175233845aa14dbd46a85eed..2d04d3640757359bd2514d7c93a6f475323ce17a 100644
--- a/src/triSurface/triSurface/interfaces/STL/readSTLASCII.L
+++ b/src/triSurface/triSurface/interfaces/STL/readSTLASCII.L
@@ -399,7 +399,7 @@ bool triSurface::readSTLASCII(const fileName& STLfileName)
     // Create the lexer obtaining the approximate number of vertices in the STL
     // from the file size
     STLLexer lexer(&STLstream.stdStream(), Foam::fileSize(STLfileName)/400);
-    while(lexer.lex() != 0)
+    while (lexer.lex() != 0)
     {}
 
     DynamicList<STLpoint>& STLpoints = lexer.STLpoints();
diff --git a/src/triSurface/triSurface/interfaces/TRI/readTRI.C b/src/triSurface/triSurface/interfaces/TRI/readTRI.C
index c0452e46aafe3e058e0f30f8dede8a28c3e1170f..d0dc0b3c314db2fab3277dee08bf46a15dd89d80 100644
--- a/src/triSurface/triSurface/interfaces/TRI/readTRI.C
+++ b/src/triSurface/triSurface/interfaces/TRI/readTRI.C
@@ -63,7 +63,7 @@ bool triSurface::readTRI(const fileName& TRIfileName)
     // Max region number so far
     label maxRegion = 0;
 
-    while(TRIfile)
+    while (TRIfile)
     {
         string line = getLineNoComment(TRIfile);
 
diff --git a/src/triSurface/triSurface/stitchTriangles.C b/src/triSurface/triSurface/stitchTriangles.C
index 463eb41ba9a3619ecf0eb23402e5523406484c79..7a441ac6795fe268c4518873aada3872217cb1fb 100644
--- a/src/triSurface/triSurface/stitchTriangles.C
+++ b/src/triSurface/triSurface/stitchTriangles.C
@@ -46,10 +46,7 @@ bool triSurface::stitchTriangles
     pointField newPoints;
     bool hasMerged = mergePoints(rawPoints, tol, verbose, pointMap, newPoints);
 
-    pointField& ps = storedPoints();
 
-    // Set the coordinates to the merged ones
-    ps = newPoints;
 
     if (hasMerged)
     {
@@ -59,6 +56,11 @@ bool triSurface::stitchTriangles
                 << " points down to " << newPoints.size() << endl;
         }
 
+        pointField& ps = storedPoints();
+
+        // Set the coordinates to the merged ones
+        ps = newPoints;
+
         // Reset the triangle point labels to the unique points array
         label newTriangleI = 0;
         forAll(*this, i)
diff --git a/src/triSurface/triSurface/triSurface.C b/src/triSurface/triSurface/triSurface.C
index 65258557e88735c759ecbb66d550994bfae5d2d5..96ca3d78a363a59d1e18cc5aa600e9c929f17317 100644
--- a/src/triSurface/triSurface/triSurface.C
+++ b/src/triSurface/triSurface/triSurface.C
@@ -814,7 +814,7 @@ void Foam::triSurface::scalePoints(const scalar scaleFactor)
 void Foam::triSurface::cleanup(const bool verbose)
 {
     // Merge points (already done for STL, TRI)
-    stitchTriangles(pointField(points()), SMALL, verbose);
+    stitchTriangles(points(), SMALL, verbose);
 
     // Merging points might have changed geometric factors
     clearOut();
@@ -838,7 +838,7 @@ void Foam::triSurface::markZone
     // List of faces whose faceZone has been set.
     labelList changedFaces(1, faceI);
 
-    while(true)
+    while (true)
     {
         // Pick up neighbours of changedFaces
         DynamicList<label> newChangedFaces(2*changedFaces.size());
diff --git a/src/triSurface/triSurface/triSurfaceAddressing.C b/src/triSurface/triSurface/triSurfaceAddressing.C
index ce2e5608f47e413b4af1d82968af72769767b839..14a383c9fc3507d5226e6cb4b7dc728908667f3e 100644
--- a/src/triSurface/triSurface/triSurfaceAddressing.C
+++ b/src/triSurface/triSurface/triSurfaceAddressing.C
@@ -91,7 +91,7 @@ void triSurface::calcSortedEdgeFaces() const
             // e0 is reference so angle is 0
             faceAngles[0] = 0;
 
-            for(label nbI = 1; nbI < myFaceNbs.size(); nbI++)
+            for (label nbI = 1; nbI < myFaceNbs.size(); nbI++)
             {
                 // Get opposite vertex
                 const labelledTri& f = localFaces()[myFaceNbs[nbI]];
diff --git a/src/turbulenceModels/compressible/LES/LESModel/LESModel.C b/src/turbulenceModels/compressible/LES/LESModel/LESModel.C
index c32cb077d8a82a5425ec70060bd6dfb371187e32..6ac295dea68c6bcf8ec213714e6fee2f40b45ed1 100644
--- a/src/turbulenceModels/compressible/LES/LESModel/LESModel.C
+++ b/src/turbulenceModels/compressible/LES/LESModel/LESModel.C
@@ -77,7 +77,7 @@ LESModel::LESModel
     ),
 
     printCoeffs_(lookupOrDefault<Switch>("printCoeffs", false)),
-    coeffDict_(subDictPtr(type + "Coeffs")),
+    coeffDict_(subOrEmptyDict(type + "Coeffs")),
 
     k0_("k0", dimVelocity*dimVelocity, SMALL),
 
diff --git a/src/turbulenceModels/compressible/RAS/Make/files b/src/turbulenceModels/compressible/RAS/Make/files
index 6fa7d7e9634651106073bad239bcbd4b14e086ca..def806534ab52e722648072d881ea925b7fcb51b 100644
--- a/src/turbulenceModels/compressible/RAS/Make/files
+++ b/src/turbulenceModels/compressible/RAS/Make/files
@@ -38,8 +38,8 @@ derivedFvPatchFields/turbulentHeatFluxTemperature/turbulentHeatFluxTemperatureFv
 derivedFvPatchFields/turbulentMixingLengthDissipationRateInlet/turbulentMixingLengthDissipationRateInletFvPatchScalarField.C
 derivedFvPatchFields/turbulentMixingLengthFrequencyInlet/turbulentMixingLengthFrequencyInletFvPatchScalarField.C
 derivedFvPatchFields/turbulentTemperatureCoupledBaffle/turbulentTemperatureCoupledBaffleFvPatchScalarField.C
+derivedFvPatchFields/turbulentTemperatureCoupledBaffleMixed/turbulentTemperatureCoupledBaffleMixedFvPatchScalarField.C
 derivedFvPatchFields/turbulentTemperatureCoupledBaffle/regionProperties.C
-
 backwardsCompatibility/wallFunctions/backwardsCompatibilityWallFunctions.C
 
 LIB = $(FOAM_LIBBIN)/libcompressibleRASModels
diff --git a/src/turbulenceModels/compressible/RAS/RASModel/RASModel.C b/src/turbulenceModels/compressible/RAS/RASModel/RASModel.C
index 642fc686d695e583ef83fe4b3ea0bbada5c986c8..ffab28703b52976b621b8dd3506ded787962e2e6 100644
--- a/src/turbulenceModels/compressible/RAS/RASModel/RASModel.C
+++ b/src/turbulenceModels/compressible/RAS/RASModel/RASModel.C
@@ -79,7 +79,7 @@ RASModel::RASModel
 
     turbulence_(lookup("turbulence")),
     printCoeffs_(lookupOrDefault<Switch>("printCoeffs", false)),
-    coeffDict_(subDictPtr(type + "Coeffs")),
+    coeffDict_(subOrEmptyDict(type + "Coeffs")),
 
     k0_("k0", dimVelocity*dimVelocity, SMALL),
     epsilon0_("epsilon", k0_.dimensions()/dimTime, SMALL),
diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/turbulentTemperatureCoupledBaffle/turbulentTemperatureCoupledBaffleFvPatchScalarField.C b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/turbulentTemperatureCoupledBaffle/turbulentTemperatureCoupledBaffleFvPatchScalarField.C
index 52a358f53207abe4be4db19a38d70155ae314a4a..bc3c56c2f052d8ed69bec67a0e02b60789d333d2 100644
--- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/turbulentTemperatureCoupledBaffle/turbulentTemperatureCoupledBaffleFvPatchScalarField.C
+++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/turbulentTemperatureCoupledBaffle/turbulentTemperatureCoupledBaffleFvPatchScalarField.C
@@ -33,16 +33,9 @@ License
 #include "basicThermo.H"
 #include "RASModel.H"
 
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-namespace Foam
-{
-namespace compressible
-{
-
 // * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
 
-bool turbulentTemperatureCoupledBaffleFvPatchScalarField::interfaceOwner
+bool Foam::turbulentTemperatureCoupledBaffleFvPatchScalarField::interfaceOwner
 (
     const polyMesh& nbrRegion,
     const polyPatch& nbrPatch
@@ -103,6 +96,7 @@ bool turbulentTemperatureCoupledBaffleFvPatchScalarField::interfaceOwner
             }
             nbrIndex = props.fluidRegionNames().size() + i;
         }
+
         return myIndex < nbrIndex;
     }
 }
@@ -110,25 +104,20 @@ bool turbulentTemperatureCoupledBaffleFvPatchScalarField::interfaceOwner
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-turbulentTemperatureCoupledBaffleFvPatchScalarField::
+Foam::turbulentTemperatureCoupledBaffleFvPatchScalarField::
 turbulentTemperatureCoupledBaffleFvPatchScalarField
 (
     const fvPatch& p,
     const DimensionedField<scalar, volMesh>& iF
 )
 :
-    mixedFvPatchScalarField(p, iF),
+    fixedValueFvPatchScalarField(p, iF),
     neighbourFieldName_("undefined-neighbourFieldName"),
     KName_("undefined-K")
-{
-    this->refValue() = 0.0;
-    this->refGrad() = 0.0;
-    this->valueFraction() = 1.0;
-    this->fixesValue_ = true;
-}
+{}
 
 
-turbulentTemperatureCoupledBaffleFvPatchScalarField::
+Foam::turbulentTemperatureCoupledBaffleFvPatchScalarField::
 turbulentTemperatureCoupledBaffleFvPatchScalarField
 (
     const turbulentTemperatureCoupledBaffleFvPatchScalarField& ptf,
@@ -137,14 +126,13 @@ turbulentTemperatureCoupledBaffleFvPatchScalarField
     const fvPatchFieldMapper& mapper
 )
 :
-    mixedFvPatchScalarField(ptf, p, iF, mapper),
+    fixedValueFvPatchScalarField(ptf, p, iF, mapper),
     neighbourFieldName_(ptf.neighbourFieldName_),
-    KName_(ptf.KName_),
-    fixesValue_(ptf.fixesValue_)
+    KName_(ptf.KName_)
 {}
 
 
-turbulentTemperatureCoupledBaffleFvPatchScalarField::
+Foam::turbulentTemperatureCoupledBaffleFvPatchScalarField::
 turbulentTemperatureCoupledBaffleFvPatchScalarField
 (
     const fvPatch& p,
@@ -152,7 +140,7 @@ turbulentTemperatureCoupledBaffleFvPatchScalarField
     const dictionary& dict
 )
 :
-    mixedFvPatchScalarField(p, iF),
+    fixedValueFvPatchScalarField(p, iF, dict),
     neighbourFieldName_(dict.lookup("neighbourFieldName")),
     KName_(dict.lookup("K"))
 {
@@ -174,46 +162,26 @@ turbulentTemperatureCoupledBaffleFvPatchScalarField
             << " in file " << dimensionedInternalField().objectPath()
             << exit(FatalError);
     }
-
-    fvPatchScalarField::operator=(scalarField("value", dict, p.size()));
-
-    if (dict.found("refValue"))
-    {
-        // Full restart
-        refValue() = scalarField("refValue", dict, p.size());
-        refGrad() = scalarField("refGradient", dict, p.size());
-        valueFraction() = scalarField("valueFraction", dict, p.size());
-        fixesValue_ = readBool(dict.lookup("fixesValue"));
-    }
-    else
-    {
-        // Start from user entered data. Assume fixedValue.
-        refValue() = *this;
-        refGrad() = 0.0;
-        valueFraction() = 1.0;
-        fixesValue_ = true;
-    }
 }
 
 
-turbulentTemperatureCoupledBaffleFvPatchScalarField::
+Foam::turbulentTemperatureCoupledBaffleFvPatchScalarField::
 turbulentTemperatureCoupledBaffleFvPatchScalarField
 (
     const turbulentTemperatureCoupledBaffleFvPatchScalarField& wtcsf,
     const DimensionedField<scalar, volMesh>& iF
 )
 :
-    mixedFvPatchScalarField(wtcsf, iF),
+    fixedValueFvPatchScalarField(wtcsf, iF),
     neighbourFieldName_(wtcsf.neighbourFieldName_),
-    KName_(wtcsf.KName_),
-    fixesValue_(wtcsf.fixesValue_)
+    KName_(wtcsf.KName_)
 {}
 
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
-tmp<scalarField>
-turbulentTemperatureCoupledBaffleFvPatchScalarField::K() const
+Foam::tmp<Foam::scalarField>
+Foam::turbulentTemperatureCoupledBaffleFvPatchScalarField::K() const
 {
     const fvMesh& mesh = patch().boundaryMesh().mesh();
 
@@ -260,7 +228,7 @@ turbulentTemperatureCoupledBaffleFvPatchScalarField::K() const
 }
 
 
-void turbulentTemperatureCoupledBaffleFvPatchScalarField::updateCoeffs()
+void Foam::turbulentTemperatureCoupledBaffleFvPatchScalarField::updateCoeffs()
 {
     if (updated())
     {
@@ -353,18 +321,13 @@ void turbulentTemperatureCoupledBaffleFvPatchScalarField::updateCoeffs()
         ).fvPatchScalarField::operator=(Twall);
     }
 
-
-    // Switch between fixed value (of harmonic avg) or gradient
-    // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-    label nFixed = 0;
-
-    // Like snGrad but bypass switching on refValue/refGrad.
-    tmp<scalarField> normalGradient = (*this-intFld())*patch().deltaCoeffs();
-
     if (debug)
     {
-        scalar Q = gSum(K()*patch().magSf()*normalGradient());
+        //tmp<scalarField> normalGradient =
+        //    (*this-intFld())
+        //  * patch().deltaCoeffs();
+
+        scalar Q = gSum(K()*patch().magSf()*snGrad());
 
         Info<< patch().boundaryMesh().mesh().name() << ':'
             << patch().name() << ':'
@@ -380,74 +343,33 @@ void turbulentTemperatureCoupledBaffleFvPatchScalarField::updateCoeffs()
             << endl;
     }
 
-    forAll(*this, i)
-    {
-        // if outgoing flux use fixed value.
-        if (normalGradient()[i] < 0.0)
-        {
-            this->refValue()[i] = operator[](i);
-            this->refGrad()[i] = 0.0;   // not used
-            this->valueFraction()[i] = 1.0;
-            nFixed++;
-        }
-        else
-        {
-            this->refValue()[i] = 0.0;  // not used
-            this->refGrad()[i] = normalGradient()[i];
-            this->valueFraction()[i] = 0.0;
-        }
-    }
-
-    reduce(nFixed, sumOp<label>());
-
-    fixesValue_ = (nFixed > 0);
-
-    if (debug)
-    {
-        label nTotSize = returnReduce(this->size(), sumOp<label>());
-
-        Info<< patch().boundaryMesh().mesh().name() << ':'
-            << patch().name() << ':'
-            << this->dimensionedInternalField().name() << " -> "
-            << nbrMesh.name() << ':'
-            << nbrPatch.name() << ':'
-            << this->dimensionedInternalField().name() << " :"
-            << " patch:" << patch().name()
-            << " out of:" << nTotSize
-            << " fixedBC:" << nFixed
-            << " gradient:" << nTotSize-nFixed << endl;
-    }
-
-    mixedFvPatchScalarField::updateCoeffs();
+    fixedValueFvPatchScalarField::updateCoeffs();
 }
 
 
-void turbulentTemperatureCoupledBaffleFvPatchScalarField::write
+void Foam::turbulentTemperatureCoupledBaffleFvPatchScalarField::write
 (
     Ostream& os
 ) const
 {
-    mixedFvPatchScalarField::write(os);
+    fixedValueFvPatchScalarField::write(os);
     os.writeKeyword("neighbourFieldName")<< neighbourFieldName_
         << token::END_STATEMENT << nl;
     os.writeKeyword("K") << KName_ << token::END_STATEMENT << nl;
-    os.writeKeyword("fixesValue") << fixesValue_ << token::END_STATEMENT << nl;
 }
 
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
+namespace Foam
+{
+
 makePatchTypeField
 (
     fvPatchScalarField,
     turbulentTemperatureCoupledBaffleFvPatchScalarField
 );
 
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-} // End namespace compressible
 } // End namespace Foam
 
-
 // ************************************************************************* //
diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/turbulentTemperatureCoupledBaffle/turbulentTemperatureCoupledBaffleFvPatchScalarField.H b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/turbulentTemperatureCoupledBaffle/turbulentTemperatureCoupledBaffleFvPatchScalarField.H
index 9e13167a62743756c5eba979e544c4ddffa026e7..c5e57745d794e32cda1e304f6c9cd32143892f45 100644
--- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/turbulentTemperatureCoupledBaffle/turbulentTemperatureCoupledBaffleFvPatchScalarField.H
+++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/turbulentTemperatureCoupledBaffle/turbulentTemperatureCoupledBaffleFvPatchScalarField.H
@@ -23,16 +23,15 @@ License
     Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
 
 Class
-    Foam::compressible::turbulentTemperatureCoupledBaffleFvPatchScalarField
+    turbulentTemperatureCoupledBaffleFvPatchScalarField
 
 Description
-    Mixed boundary condition for temperature, to be used for heat-transfer
-    on back-to-back baffles.
+    Harmonic fixed value boundary condition for temperature, to be used
+    for heat-transfer on back-to-back baffles.
 
-    If my temperature is T1, neighbour is T2:
+    If my temperature is T1, heat conductivity K1 and neighbour is T2,K2
 
-    T1 > T2: my side becomes fixedValue T2 bc, other side becomes fixedGradient.
-    
+    both sides get fixedValue (K1/dx1*T1 + K2/dx2*T2)/(K1/dx1+K2/dx2)
 
     Example usage:
         myInterfacePatchName
@@ -65,16 +64,12 @@ SourceFiles
 #ifndef turbulentTemperatureCoupledBaffleFvPatchScalarField_H
 #define turbulentTemperatureCoupledBaffleFvPatchScalarField_H
 
-//#include "fvPatchFields.H"
-#include "mixedFvPatchFields.H"
-//#include "fvPatch.H"
+#include "fixedValueFvPatchFields.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 namespace Foam
 {
-namespace compressible
-{
 
 /*---------------------------------------------------------------------------*\
         Class turbulentTemperatureCoupledBaffleFvPatchScalarField Declaration
@@ -82,7 +77,7 @@ namespace compressible
 
 class turbulentTemperatureCoupledBaffleFvPatchScalarField
 :
-    public mixedFvPatchScalarField
+    public fixedValueFvPatchScalarField
 {
     // Private data
 
@@ -92,8 +87,6 @@ class turbulentTemperatureCoupledBaffleFvPatchScalarField
         //- Name of thermal conductivity field
         const word KName_;
 
-        bool fixesValue_;
-
 
     // Private Member Functions
 
@@ -172,14 +165,6 @@ public:
         //- Get corresponding K field
         tmp<scalarField> K() const;
 
-        //- Return true if this patch field fixes a value.
-        //  Needed to check if a level has to be specified while solving
-        //  Poissons equations.
-        virtual bool fixesValue() const
-        {
-            return fixesValue_;
-        }
-
         //- Update the coefficients associated with the patch field
         virtual void updateCoeffs();
 
@@ -190,7 +175,6 @@ public:
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-} // End namespace compressible
 } // End namespace Foam
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/turbulentTemperatureCoupledBaffleMixed/turbulentTemperatureCoupledBaffleMixedFvPatchScalarField.C b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/turbulentTemperatureCoupledBaffleMixed/turbulentTemperatureCoupledBaffleMixedFvPatchScalarField.C
new file mode 100644
index 0000000000000000000000000000000000000000..c44ec7656c15571ac5e23b0d07cb5578c19c6a5e
--- /dev/null
+++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/turbulentTemperatureCoupledBaffleMixed/turbulentTemperatureCoupledBaffleMixedFvPatchScalarField.C
@@ -0,0 +1,458 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 1991-2009 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 2 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, write to the Free Software Foundation,
+    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+\*---------------------------------------------------------------------------*/
+
+#include "turbulentTemperatureCoupledBaffleMixedFvPatchScalarField.H"
+#include "addToRunTimeSelectionTable.H"
+#include "fvPatchFieldMapper.H"
+#include "volFields.H"
+#include "directMappedPatchBase.H"
+#include "regionProperties.H"
+#include "basicThermo.H"
+#include "RASModel.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace compressible
+{
+
+// * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
+
+bool turbulentTemperatureCoupledBaffleMixedFvPatchScalarField::interfaceOwner
+(
+    const polyMesh& nbrRegion,
+    const polyPatch& nbrPatch
+) const
+{
+    const fvMesh& myRegion = patch().boundaryMesh().mesh();
+
+    if (nbrRegion.name() == myRegion.name())
+    {
+        return patch().index() < nbrPatch.index();
+    }
+    else
+    {
+        const regionProperties& props =
+            myRegion.objectRegistry::parent().lookupObject<regionProperties>
+            (
+                "regionProperties"
+            );
+
+        label myIndex = findIndex(props.fluidRegionNames(), myRegion.name());
+        if (myIndex == -1)
+        {
+            label i = findIndex(props.solidRegionNames(), myRegion.name());
+
+            if (i == -1)
+            {
+                FatalErrorIn
+                (
+                    "turbulentTemperatureCoupledBaffleMixedFvPatchScalarField"
+                    "::interfaceOwner(const polyMesh&"
+                    ", const polyPatch&)const"
+                )   << "Cannot find region " << myRegion.name()
+                    << " neither in fluids " << props.fluidRegionNames()
+                    << " nor in solids " << props.solidRegionNames()
+                    << exit(FatalError);
+            }
+            myIndex = props.fluidRegionNames().size() + i;
+        }
+        label nbrIndex = findIndex
+        (
+            props.fluidRegionNames(),
+            nbrRegion.name()
+        );
+        if (nbrIndex == -1)
+        {
+            label i = findIndex(props.solidRegionNames(), nbrRegion.name());
+
+            if (i == -1)
+            {
+                FatalErrorIn
+                (
+                    "coupleManager::interfaceOwner"
+                    "(const polyMesh&, const polyPatch&) const"
+                )   << "Cannot find region " << nbrRegion.name()
+                    << " neither in fluids " << props.fluidRegionNames()
+                    << " nor in solids " << props.solidRegionNames()
+                    << exit(FatalError);
+            }
+            nbrIndex = props.fluidRegionNames().size() + i;
+        }
+        return myIndex < nbrIndex;
+    }
+}
+
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+turbulentTemperatureCoupledBaffleMixedFvPatchScalarField::
+turbulentTemperatureCoupledBaffleMixedFvPatchScalarField
+(
+    const fvPatch& p,
+    const DimensionedField<scalar, volMesh>& iF
+)
+:
+    mixedFvPatchScalarField(p, iF),
+    neighbourFieldName_("undefined-neighbourFieldName"),
+    KName_("undefined-K")
+{
+    this->refValue() = 0.0;
+    this->refGrad() = 0.0;
+    this->valueFraction() = 1.0;
+    this->fixesValue_ = true;
+}
+
+
+turbulentTemperatureCoupledBaffleMixedFvPatchScalarField::
+turbulentTemperatureCoupledBaffleMixedFvPatchScalarField
+(
+    const turbulentTemperatureCoupledBaffleMixedFvPatchScalarField& ptf,
+    const fvPatch& p,
+    const DimensionedField<scalar, volMesh>& iF,
+    const fvPatchFieldMapper& mapper
+)
+:
+    mixedFvPatchScalarField(ptf, p, iF, mapper),
+    neighbourFieldName_(ptf.neighbourFieldName_),
+    KName_(ptf.KName_),
+    fixesValue_(ptf.fixesValue_)
+{}
+
+
+turbulentTemperatureCoupledBaffleMixedFvPatchScalarField::
+turbulentTemperatureCoupledBaffleMixedFvPatchScalarField
+(
+    const fvPatch& p,
+    const DimensionedField<scalar, volMesh>& iF,
+    const dictionary& dict
+)
+:
+    mixedFvPatchScalarField(p, iF),
+    neighbourFieldName_(dict.lookup("neighbourFieldName")),
+    KName_(dict.lookup("K"))
+{
+    if (!isA<directMappedPatchBase>(this->patch().patch()))
+    {
+        FatalErrorIn
+        (
+            "turbulentTemperatureCoupledBaffleMixedFvPatchScalarField::"
+            "turbulentTemperatureCoupledBaffleMixedFvPatchScalarField\n"
+            "(\n"
+            "    const fvPatch& p,\n"
+            "    const DimensionedField<scalar, volMesh>& iF,\n"
+            "    const dictionary& dict\n"
+            ")\n"
+        )   << "\n    patch type '" << p.type()
+            << "' not type '" << directMappedPatchBase::typeName << "'"
+            << "\n    for patch " << p.name()
+            << " of field " << dimensionedInternalField().name()
+            << " in file " << dimensionedInternalField().objectPath()
+            << exit(FatalError);
+    }
+
+    fvPatchScalarField::operator=(scalarField("value", dict, p.size()));
+
+    if (dict.found("refValue"))
+    {
+        // Full restart
+        refValue() = scalarField("refValue", dict, p.size());
+        refGrad() = scalarField("refGradient", dict, p.size());
+        valueFraction() = scalarField("valueFraction", dict, p.size());
+        fixesValue_ = readBool(dict.lookup("fixesValue"));
+    }
+    else
+    {
+        // Start from user entered data. Assume fixedValue.
+        refValue() = *this;
+        refGrad() = 0.0;
+        valueFraction() = 1.0;
+        fixesValue_ = true;
+    }
+}
+
+
+turbulentTemperatureCoupledBaffleMixedFvPatchScalarField::
+turbulentTemperatureCoupledBaffleMixedFvPatchScalarField
+(
+    const turbulentTemperatureCoupledBaffleMixedFvPatchScalarField& wtcsf,
+    const DimensionedField<scalar, volMesh>& iF
+)
+:
+    mixedFvPatchScalarField(wtcsf, iF),
+    neighbourFieldName_(wtcsf.neighbourFieldName_),
+    KName_(wtcsf.KName_),
+    fixesValue_(wtcsf.fixesValue_)
+{}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+tmp<scalarField>
+turbulentTemperatureCoupledBaffleMixedFvPatchScalarField::K() const
+{
+    const fvMesh& mesh = patch().boundaryMesh().mesh();
+
+    if (KName_ == "none")
+    {
+        const compressible::RASModel& model =
+            db().lookupObject<compressible::RASModel>("RASProperties");
+
+        tmp<volScalarField> talpha = model.alphaEff();
+
+        const basicThermo& thermo =
+            db().lookupObject<basicThermo>("thermophysicalProperties");
+
+        return
+            talpha().boundaryField()[patch().index()]
+           *thermo.Cp()().boundaryField()[patch().index()];
+    }
+    else if (mesh.objectRegistry::foundObject<volScalarField>(KName_))
+    {
+        return patch().lookupPatchField<volScalarField, scalar>(KName_);
+    }
+    else if (mesh.objectRegistry::foundObject<volSymmTensorField>(KName_))
+    {
+        const symmTensorField& KWall =
+            patch().lookupPatchField<volSymmTensorField, scalar>(KName_);
+
+        vectorField n = patch().nf();
+
+        return n & KWall & n;
+    }
+    else
+    {
+        FatalErrorIn
+        (
+            "turbulentTemperatureCoupledBaffleMixedFvPatchScalarField::K()"
+            " const"
+        )   << "Did not find field " << KName_
+            << " on mesh " << mesh.name() << " patch " << patch().name()
+            << endl
+            << "Please set 'K' to 'none', a valid volScalarField"
+            << " or a valid volSymmTensorField." << exit(FatalError);
+
+        return scalarField(0);
+    }
+}
+
+
+void turbulentTemperatureCoupledBaffleMixedFvPatchScalarField::updateCoeffs()
+{
+    if (updated())
+    {
+        return;
+    }
+
+    // Get the coupling information from the directMappedPatchBase
+    const directMappedPatchBase& mpp = refCast<const directMappedPatchBase>
+    (
+        patch().patch()
+    );
+    const polyMesh& nbrMesh = mpp.sampleMesh();
+    const fvPatch& nbrPatch = refCast<const fvMesh>
+    (
+        nbrMesh
+    ).boundary()[mpp.samplePolyPatch().index()];
+
+    // Force recalculation of mapping and schedule
+    const mapDistribute& distMap = mpp.map();
+    (void)distMap.schedule();
+
+    tmp<scalarField> intFld = patchInternalField();
+
+    if (interfaceOwner(nbrMesh, nbrPatch.patch()))
+    {
+        // Note: other side information could be cached - it only needs
+        // to be updated the first time round the iteration (i.e. when
+        // switching regions) but unfortunately we don't have this information.
+
+
+        // Calculate the temperature by harmonic averaging
+        // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+        const turbulentTemperatureCoupledBaffleMixedFvPatchScalarField&
+        nbrField =
+        refCast
+        <
+            const turbulentTemperatureCoupledBaffleMixedFvPatchScalarField
+        >
+        (
+            nbrPatch.lookupPatchField<volScalarField, scalar>
+            (
+                neighbourFieldName_
+            )
+        );
+
+        // Swap to obtain full local values of neighbour internal field
+        scalarField nbrIntFld = nbrField.patchInternalField();
+        mapDistribute::distribute
+        (
+            Pstream::defaultCommsType,
+            distMap.schedule(),
+            distMap.constructSize(),
+            distMap.subMap(),           // what to send
+            distMap.constructMap(),     // what to receive
+            nbrIntFld
+        );
+
+        // Swap to obtain full local values of neighbour K*delta
+        scalarField nbrKDelta = nbrField.K()*nbrPatch.deltaCoeffs();
+        mapDistribute::distribute
+        (
+            Pstream::defaultCommsType,
+            distMap.schedule(),
+            distMap.constructSize(),
+            distMap.subMap(),           // what to send
+            distMap.constructMap(),     // what to receive
+            nbrKDelta
+        );
+
+        tmp<scalarField> myKDelta = K()*patch().deltaCoeffs();
+
+        // Calculate common wall temperature. Reuse *this to store common value.
+        scalarField Twall
+        (
+            (myKDelta()*intFld() + nbrKDelta*nbrIntFld)
+          / (myKDelta() + nbrKDelta)
+        );
+        // Assign to me
+        fvPatchScalarField::operator=(Twall);
+        // Distribute back and assign to neighbour
+        mapDistribute::distribute
+        (
+            Pstream::defaultCommsType,
+            distMap.schedule(),
+            nbrField.size(),
+            distMap.constructMap(),     // reverse : what to send
+            distMap.subMap(),
+            Twall
+        );
+        const_cast<turbulentTemperatureCoupledBaffleMixedFvPatchScalarField&>
+        (
+            nbrField
+        ).fvPatchScalarField::operator=(Twall);
+    }
+
+
+    // Switch between fixed value (of harmonic avg) or gradient
+    // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+    label nFixed = 0;
+
+    // Like snGrad but bypass switching on refValue/refGrad.
+    tmp<scalarField> normalGradient = (*this-intFld())*patch().deltaCoeffs();
+
+    if (debug)
+    {
+        scalar Q = gSum(K()*patch().magSf()*normalGradient());
+
+        Info<< patch().boundaryMesh().mesh().name() << ':'
+            << patch().name() << ':'
+            << this->dimensionedInternalField().name() << " -> "
+            << nbrMesh.name() << ':'
+            << nbrPatch.name() << ':'
+            << this->dimensionedInternalField().name() << " :"
+            << " heatFlux:" << Q
+            << " walltemperature "
+            << " min:" << gMin(*this)
+            << " max:" << gMax(*this)
+            << " avg:" << gAverage(*this)
+            << endl;
+    }
+
+    forAll(*this, i)
+    {
+        // if outgoing flux use fixed value.
+        if (normalGradient()[i] < 0.0)
+        {
+            this->refValue()[i] = operator[](i);
+            this->refGrad()[i] = 0.0;   // not used
+            this->valueFraction()[i] = 1.0;
+            nFixed++;
+        }
+        else
+        {
+            this->refValue()[i] = 0.0;  // not used
+            this->refGrad()[i] = normalGradient()[i];
+            this->valueFraction()[i] = 0.0;
+        }
+    }
+
+    reduce(nFixed, sumOp<label>());
+
+    fixesValue_ = (nFixed > 0);
+
+    if (debug)
+    {
+        label nTotSize = returnReduce(this->size(), sumOp<label>());
+
+        Info<< patch().boundaryMesh().mesh().name() << ':'
+            << patch().name() << ':'
+            << this->dimensionedInternalField().name() << " -> "
+            << nbrMesh.name() << ':'
+            << nbrPatch.name() << ':'
+            << this->dimensionedInternalField().name() << " :"
+            << " patch:" << patch().name()
+            << " out of:" << nTotSize
+            << " fixedBC:" << nFixed
+            << " gradient:" << nTotSize-nFixed << endl;
+    }
+
+    mixedFvPatchScalarField::updateCoeffs();
+}
+
+
+void turbulentTemperatureCoupledBaffleMixedFvPatchScalarField::write
+(
+    Ostream& os
+) const
+{
+    mixedFvPatchScalarField::write(os);
+    os.writeKeyword("neighbourFieldName")<< neighbourFieldName_
+        << token::END_STATEMENT << nl;
+    os.writeKeyword("K") << KName_ << token::END_STATEMENT << nl;
+    os.writeKeyword("fixesValue") << fixesValue_ << token::END_STATEMENT << nl;
+}
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+makePatchTypeField
+(
+    fvPatchScalarField,
+    turbulentTemperatureCoupledBaffleMixedFvPatchScalarField
+);
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace compressible
+} // End namespace Foam
+
+
+// ************************************************************************* //
diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/turbulentTemperatureCoupledBaffleMixed/turbulentTemperatureCoupledBaffleMixedFvPatchScalarField.H b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/turbulentTemperatureCoupledBaffleMixed/turbulentTemperatureCoupledBaffleMixedFvPatchScalarField.H
new file mode 100644
index 0000000000000000000000000000000000000000..d4fe1d06fd16c09b74405c288fe42871cf61eaa8
--- /dev/null
+++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/turbulentTemperatureCoupledBaffleMixed/turbulentTemperatureCoupledBaffleMixedFvPatchScalarField.H
@@ -0,0 +1,204 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 1991-2009 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 2 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, write to the Free Software Foundation,
+    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+Class
+    Foam::compressible::turbulentTemperatureCoupledBaffleMixedFvPatchScalarField
+
+Description
+    Mixed boundary condition for temperature, to be used for heat-transfer
+    on back-to-back baffles.
+
+    If my temperature is T1, neighbour is T2:
+
+    T1 > T2: my side becomes fixedValue T2 bc, other side becomes fixedGradient.
+    
+
+    Example usage:
+        myInterfacePatchName
+        {
+            type                turbulentTemperatureCoupledBaffleMixed;
+            neighbourFieldName  T;
+            K                   K; // or none 
+            value               uniform 300;
+        }
+
+    Needs to be on underlying directMapped(Wall)FvPatch.
+
+    Note: if K is "none" looks up RASModel and basicThermo, otherwise expects
+    the solver to calculate a 'K' field.
+
+    Note: runs in parallel with arbitrary decomposition. Uses directMapped
+    functionality to calculate exchange.
+
+    Note: lags interface data so both sides use same data.
+    - problem: schedule to calculate average would interfere
+    with standard processor swaps.
+    - so: updateCoeffs sets both to same Twall. Only need to do
+    this for last outer iteration but don't have access to this.
+
+SourceFiles
+    turbulentTemperatureCoupledBaffleMixedFvPatchScalarField.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef turbulentTemperatureCoupledBaffleMixedFvPatchScalarField_H
+#define turbulentTemperatureCoupledBaffleMixedFvPatchScalarField_H
+
+//#include "fvPatchFields.H"
+#include "mixedFvPatchFields.H"
+//#include "fvPatch.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace compressible
+{
+
+/*---------------------------------------------------------------------------*\
+   Class turbulentTemperatureCoupledBaffleMixedFvPatchScalarField Declaration
+\*---------------------------------------------------------------------------*/
+
+class turbulentTemperatureCoupledBaffleMixedFvPatchScalarField
+:
+    public mixedFvPatchScalarField
+{
+    // Private data
+
+        //- Name of field on the neighbour region
+        const word neighbourFieldName_;
+        
+        //- Name of thermal conductivity field
+        const word KName_;
+
+        bool fixesValue_;
+
+
+    // Private Member Functions
+
+        //- Am I or neighbour owner of interface
+        bool interfaceOwner(const polyMesh&, const polyPatch&) const;
+
+
+public:
+
+    //- Runtime type information
+    TypeName("compressible::turbulentTemperatureCoupledBaffleMixed");
+
+
+    // Constructors
+
+        //- Construct from patch and internal field
+        turbulentTemperatureCoupledBaffleMixedFvPatchScalarField
+        (
+            const fvPatch&,
+            const DimensionedField<scalar, volMesh>&
+        );
+
+        //- Construct from patch, internal field and dictionary
+        turbulentTemperatureCoupledBaffleMixedFvPatchScalarField
+        (
+            const fvPatch&,
+            const DimensionedField<scalar, volMesh>&,
+            const dictionary&
+        );
+
+        //- Construct by mapping given
+        //  turbulentTemperatureCoupledBaffleMixedFvPatchScalarField onto a
+        //  new patch
+        turbulentTemperatureCoupledBaffleMixedFvPatchScalarField
+        (
+            const turbulentTemperatureCoupledBaffleMixedFvPatchScalarField&,
+            const fvPatch&,
+            const DimensionedField<scalar, volMesh>&,
+            const fvPatchFieldMapper&
+        );
+
+        //- Construct and return a clone
+        virtual tmp<fvPatchScalarField> clone() const
+        {
+            return tmp<fvPatchScalarField>
+            (
+                new turbulentTemperatureCoupledBaffleMixedFvPatchScalarField
+                (
+                    *this
+                )
+            );
+        }
+
+        //- Construct as copy setting internal field reference
+        turbulentTemperatureCoupledBaffleMixedFvPatchScalarField
+        (
+            const turbulentTemperatureCoupledBaffleMixedFvPatchScalarField&,
+            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 turbulentTemperatureCoupledBaffleMixedFvPatchScalarField
+                (
+                    *this,
+                    iF
+                )
+            );
+        }
+
+
+    // Member functions
+
+        //- Get corresponding K field
+        tmp<scalarField> K() const;
+
+        //- Return true if this patch field fixes a value.
+        //  Needed to check if a level has to be specified while solving
+        //  Poissons equations.
+        virtual bool fixesValue() const
+        {
+            return fixesValue_;
+        }
+
+        //- Update the coefficients associated with the patch field
+        virtual void updateCoeffs();
+
+        //- Write
+        virtual void write(Ostream&) const;
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace compressible
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatJayatillekeWallFunction/alphatJayatillekeWallFunctionFvPatchScalarField.C b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatJayatillekeWallFunction/alphatJayatillekeWallFunctionFvPatchScalarField.C
index b5022e2756469fcb0b70eea08ae1be15633cb0fd..5c73b8b146f80447c58e1142000b931d6f839d58 100644
--- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatJayatillekeWallFunction/alphatJayatillekeWallFunctionFvPatchScalarField.C
+++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatJayatillekeWallFunction/alphatJayatillekeWallFunctionFvPatchScalarField.C
@@ -239,7 +239,7 @@ void alphatJayatillekeWallFunctionFvPatchScalarField::updateCoeffs()
         // Molecular Prandtl number
         scalar Pr = muw[faceI]/alphaw[faceI];
 
-        // Molecular-to-turbulenbt Prandtl number ratio
+        // Molecular-to-turbulent Prandtl number ratio
         scalar Prat = Pr/Prt_;
 
         // Thermal sublayer thickness
diff --git a/src/turbulenceModels/incompressible/LES/LESModel/LESModel.C b/src/turbulenceModels/incompressible/LES/LESModel/LESModel.C
index 76c2ef0ba475c0ba25be0728c787087a2bff2db4..fd7791d9f322cfae4c5ba3bd81335d714fe00903 100644
--- a/src/turbulenceModels/incompressible/LES/LESModel/LESModel.C
+++ b/src/turbulenceModels/incompressible/LES/LESModel/LESModel.C
@@ -76,7 +76,7 @@ LESModel::LESModel
     ),
 
     printCoeffs_(lookupOrDefault<Switch>("printCoeffs", false)),
-    coeffDict_(subDictPtr(type + "Coeffs")),
+    coeffDict_(subOrEmptyDict(type + "Coeffs")),
 
     k0_("k0", dimVelocity*dimVelocity, SMALL),
     delta_(LESdelta::New("delta", U.mesh(), *this))
diff --git a/src/turbulenceModels/incompressible/LES/Smagorinsky/Smagorinsky.C b/src/turbulenceModels/incompressible/LES/Smagorinsky/Smagorinsky.C
index 53a07734571ec0a2a16b45557ebbf236b563d0c1..60bbb41ef1776c67eb43e1f3a2273a249225adc6 100644
--- a/src/turbulenceModels/incompressible/LES/Smagorinsky/Smagorinsky.C
+++ b/src/turbulenceModels/incompressible/LES/Smagorinsky/Smagorinsky.C
@@ -73,6 +73,8 @@ Smagorinsky::Smagorinsky
     )
 {
     updateSubGridScaleFields(fvc::grad(U));
+
+    printCoeffs();
 }
 
 
diff --git a/src/turbulenceModels/incompressible/RAS/RASModel/RASModel.C b/src/turbulenceModels/incompressible/RAS/RASModel/RASModel.C
index 9a6a447166bac7a3616a7092fc9ccf28b197afd8..1803075428c9e1ac2a8b9b0317fe9f9ef6f49b79 100644
--- a/src/turbulenceModels/incompressible/RAS/RASModel/RASModel.C
+++ b/src/turbulenceModels/incompressible/RAS/RASModel/RASModel.C
@@ -78,7 +78,7 @@ RASModel::RASModel
 
     turbulence_(lookup("turbulence")),
     printCoeffs_(lookupOrDefault<Switch>("printCoeffs", false)),
-    coeffDict_(subDictPtr(type + "Coeffs")),
+    coeffDict_(subOrEmptyDict(type + "Coeffs")),
 
     k0_("k0", dimVelocity*dimVelocity, SMALL),
     epsilon0_("epsilon", k0_.dimensions()/dimTime, SMALL),
diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutURoughWallFunction/nutURoughWallFunctionFvPatchScalarField.C b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutURoughWallFunction/nutURoughWallFunctionFvPatchScalarField.C
index c202ac479c8e3c71f3a9d2fb744cd853e6e4975e..a857b587e30ddcd462560efc8fa1bc9774e8ae41 100644
--- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutURoughWallFunction/nutURoughWallFunctionFvPatchScalarField.C
+++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutURoughWallFunction/nutURoughWallFunctionFvPatchScalarField.C
@@ -186,7 +186,7 @@ tmp<scalarField> nutURoughWallFunctionFvPatchScalarField::calcYPlus
                 yPlusLast = yp;
                 yp = (kappaRe + yp)/(1.0 + log(E_*yp));
 
-            } while(mag(ryPlusLam*(yp - yPlusLast)) > 0.0001 && ++iter < 10);
+            } while (mag(ryPlusLam*(yp - yPlusLast)) > 0.0001 && ++iter < 10);
 
             yPlus[facei] = max(0.0, yp);
         }
diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutUWallFunction/nutUWallFunctionFvPatchScalarField.C b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutUWallFunction/nutUWallFunctionFvPatchScalarField.C
index bccc07672ff826a4f6d5a84e5748d2133e5a7e23..ba5f0e79c5a473e4b976ca5da1e6689afb848166 100644
--- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutUWallFunction/nutUWallFunctionFvPatchScalarField.C
+++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutUWallFunction/nutUWallFunctionFvPatchScalarField.C
@@ -98,7 +98,7 @@ tmp<scalarField> nutUWallFunctionFvPatchScalarField::calcYPlus
             yPlusLast = yp;
             yp = (kappaRe + yp)/(1.0 + log(E_*yp));
 
-        } while(mag(ryPlusLam*(yp - yPlusLast)) > 0.01 && ++iter < 10 );
+        } while (mag(ryPlusLam*(yp - yPlusLast)) > 0.01 && ++iter < 10 );
 
         yPlus[facei] = max(0.0, yp);
     }
diff --git a/tutorials/basic/potentialFoam/cylinder/analyticalCylinder/analyticalCylinder.C b/tutorials/basic/potentialFoam/cylinder/analyticalCylinder/analyticalCylinder.C
index 5c3b671271f41f36e8c0091c32a7a2e8d88efc3c..044a9fb6096699e6758bf35e6ee9b8179d7068b5 100644
--- a/tutorials/basic/potentialFoam/cylinder/analyticalCylinder/analyticalCylinder.C
+++ b/tutorials/basic/potentialFoam/cylinder/analyticalCylinder/analyticalCylinder.C
@@ -26,7 +26,7 @@ Application
     analyticalCylinder
 
 Description
-    Generates an analytical solution for potential flow around a cylinder.  
+    Generates an analytical solution for potential flow around a cylinder.
     Can be compared with the solution from the potentialFlow/cylinder example.
 
 \*---------------------------------------------------------------------------*/
@@ -47,19 +47,19 @@ int main(int argc, char *argv[])
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-    Info << "\nEvaluating analytical solution" << endl;
+    Info<< "\nEvaluating analytical solution" << endl;
 
     volVectorField centres = UA.mesh().C();
     volScalarField magCentres = mag(centres);
     volScalarField theta = acos((centres & vector(1,0,0))/magCentres);
 
     volVectorField cs2theta =
-        cos(2*theta)*vector(1,0,0) 
+        cos(2*theta)*vector(1,0,0)
       + sin(2*theta)*vector(0,1,0);
 
     UA = uInfX*(dimensionedVector(vector(1,0,0))
       - pow((radius/magCentres),2)*cs2theta);
-    
+
     runTime.write();
 
     Info<< "end" << endl;
diff --git a/tutorials/compressible/rhoCentralFoam/biconic25-55Run35/datToFoam/datToFoam.C b/tutorials/compressible/rhoCentralFoam/biconic25-55Run35/datToFoam/datToFoam.C
index 09c2a247f316e18bd37a76dd1b0507eaba1a66eb..c4f266376a9ce43f16b78d600347191223a0873b 100644
--- a/tutorials/compressible/rhoCentralFoam/biconic25-55Run35/datToFoam/datToFoam.C
+++ b/tutorials/compressible/rhoCentralFoam/biconic25-55Run35/datToFoam/datToFoam.C
@@ -106,7 +106,7 @@ int main(int argc, char *argv[])
                 plot3dFile >> coord;
 
                 // if statement ignores the first layer in i and j
-                if(i>0 && j>0)
+                if (i>0 && j>0)
                 {
                     points[p++][comp] = coord;
                 }
@@ -117,7 +117,7 @@ int main(int argc, char *argv[])
     // correct error in biconic meshes
     forAll(points, i)
     {
-        if(points[i][1] < 1e-07)
+        if (points[i][1] < 1e-07)
         {
             points[i][1] = 0.0;
         }
@@ -143,11 +143,11 @@ int main(int argc, char *argv[])
         pointsWedge[i+nPointsij] = cmptMultiply(vector(1.0, 1.0, -1.0), pointsWedge[i]);
     }
 
-    Info << "Writing points to: " << nl
+    Info<< "Writing points to: " << nl
          << "    " << pointsFile << endl;
     pFile << pointsWedge;
 
-    Info << "End" << endl;
+    Info<< "End" << endl;
 
     return 0;
 }
diff --git a/tutorials/compressible/rhoSimplecFoam/squareBend/0/T b/tutorials/compressible/rhoSimplecFoam/squareBend/0/T
new file mode 100644
index 0000000000000000000000000000000000000000..c8a138aa58790f15280607c4f5efcbb6af718458
--- /dev/null
+++ b/tutorials/compressible/rhoSimplecFoam/squareBend/0/T
@@ -0,0 +1,43 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  1.6                                   |
+|   \\  /    A nd           | Web:      http://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 1000;
+
+boundaryField
+{
+    Default_Boundary_Region
+    {
+        type            zeroGradient;
+    }
+
+    inlet
+    {
+        type		fixedValue;
+        value		uniform 1000;
+    }
+
+    outlet
+    {
+        type            inletOutlet;
+        //type            zeroGradient;
+        value           uniform 1000;
+        inletValue      uniform 1000;
+    }
+}
+
+// ************************************************************************* //
diff --git a/tutorials/compressible/rhoSimplecFoam/squareBend/0/U b/tutorials/compressible/rhoSimplecFoam/squareBend/0/U
new file mode 100644
index 0000000000000000000000000000000000000000..971e760d3de41121061402f49b9b5f48606e05df
--- /dev/null
+++ b/tutorials/compressible/rhoSimplecFoam/squareBend/0/U
@@ -0,0 +1,43 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  1.6                                   |
+|   \\  /    A nd           | Web:      http://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            fixedValue;
+        value           uniform (0 0 0);
+    }
+    inlet
+    {
+        type            flowRateInletVelocity;
+        flowRate        0.5; //0.75;
+        value           uniform (0 0 0);
+    }
+    outlet
+    {
+        type            inletOutlet;
+        value           uniform (0 0 0);
+        inletValue      uniform (0 0 0);
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/compressible/rhoSimplecFoam/squareBend/0/alphat b/tutorials/compressible/rhoSimplecFoam/squareBend/0/alphat
new file mode 100644
index 0000000000000000000000000000000000000000..7b530fa40d6ca9703e0e6ff00cbdfb508d6cb886
--- /dev/null
+++ b/tutorials/compressible/rhoSimplecFoam/squareBend/0/alphat
@@ -0,0 +1,43 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  1.6                                   |
+|   \\  /    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            alphatWallFunction;
+        Prt             0.85;
+        value           uniform 0;
+    }
+    inlet
+    {
+        type            calculated;
+        value           uniform 0;
+    }
+    outlet
+    {
+        type            calculated;
+        value           uniform 0;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/compressible/rhoSimplecFoam/squareBend/0/epsilon b/tutorials/compressible/rhoSimplecFoam/squareBend/0/epsilon
new file mode 100644
index 0000000000000000000000000000000000000000..c63316a51f187fbad536b6cdc759d7dc26038820
--- /dev/null
+++ b/tutorials/compressible/rhoSimplecFoam/squareBend/0/epsilon
@@ -0,0 +1,47 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  1.6                                   |
+|   \\  /    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            compressible::epsilonWallFunction;
+        Cmu             0.09;
+        kappa           0.41;
+        E               9.8;
+        value           uniform 200;
+    }
+    inlet
+    {
+        type            compressible::turbulentMixingLengthDissipationRateInlet;
+        mixingLength    0.005;
+        value           uniform 200;
+    }
+    outlet
+    {
+        type            inletOutlet;
+        inletValue      uniform 200;
+        value           uniform 200;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/compressible/rhoSimplecFoam/squareBend/0/k b/tutorials/compressible/rhoSimplecFoam/squareBend/0/k
new file mode 100644
index 0000000000000000000000000000000000000000..b885efd902903cfab3886b5ddd5a3398c1c6fb03
--- /dev/null
+++ b/tutorials/compressible/rhoSimplecFoam/squareBend/0/k
@@ -0,0 +1,44 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  1.6                                   |
+|   \\  /    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            compressible::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/rhoSimplecFoam/squareBend/0/mut b/tutorials/compressible/rhoSimplecFoam/squareBend/0/mut
new file mode 100644
index 0000000000000000000000000000000000000000..4d70cca517befb6df33d9cab5de6b92ef93054c2
--- /dev/null
+++ b/tutorials/compressible/rhoSimplecFoam/squareBend/0/mut
@@ -0,0 +1,45 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  1.6                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    location    "0";
+    object      mut;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [1 -1 -1 0 0 0 0];
+
+internalField   uniform 0;
+
+boundaryField
+{
+    Default_Boundary_Region
+    {
+        type            mutkWallFunction;
+        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/rhoSimplecFoam/squareBend/0/p b/tutorials/compressible/rhoSimplecFoam/squareBend/0/p
new file mode 100644
index 0000000000000000000000000000000000000000..fa45b63e2ce0c795081c3adcd857d0ec8ff1ba3b
--- /dev/null
+++ b/tutorials/compressible/rhoSimplecFoam/squareBend/0/p
@@ -0,0 +1,54 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  1.6                                   |
+|   \\  /    A nd           | Web:      http://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 110000;
+
+boundaryField
+{
+    Default_Boundary_Region
+    {
+        type            zeroGradient;
+    }
+    inlet
+    {
+        //type            zeroGradient;
+        type            mixed;
+        refValue        uniform 110000;
+        refGradient     uniform 0;
+        valueFraction   uniform 0.3;
+    }
+    outlet
+    {
+        type            fixedValue;
+        value           uniform 110000;
+
+        //type            mixed;
+        //refValue        uniform 110000;
+        //refGradient     uniform 0;
+        //valueFraction   uniform 1;
+        //type            transonicOutletPressure;
+        //U               U;
+        //phi             phi;
+        //gamma           1.4;
+        //psi             psi;
+        //pInf            uniform 110000;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/compressible/rhoSimplecFoam/squareBend/constant/RASProperties b/tutorials/compressible/rhoSimplecFoam/squareBend/constant/RASProperties
new file mode 100644
index 0000000000000000000000000000000000000000..81b1ec9115226882e6e980b8e5f4e19cabb886d9
--- /dev/null
+++ b/tutorials/compressible/rhoSimplecFoam/squareBend/constant/RASProperties
@@ -0,0 +1,25 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  1.6                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "constant";
+    object      RASProperties;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+RASModel        kEpsilon;
+
+turbulence      on;
+
+printCoeffs     on;
+
+
+// ************************************************************************* //
diff --git a/tutorials/compressible/rhoSimplecFoam/squareBend/constant/polyMesh/blockMeshDict b/tutorials/compressible/rhoSimplecFoam/squareBend/constant/polyMesh/blockMeshDict
new file mode 100644
index 0000000000000000000000000000000000000000..f8b06e3446c6677dfb854db4183fb39cb55b4a9d
--- /dev/null
+++ b/tutorials/compressible/rhoSimplecFoam/squareBend/constant/polyMesh/blockMeshDict
@@ -0,0 +1,115 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  1.6                                   |
+|   \\  /    A nd           | Web:      http://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)
+);
+
+patches
+(
+    // is there no way of defining all my 'defaultFaces' to be 'wall'?
+    wall Default_Boundary_Region
+    (
+        // 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 )
+    )
+    patch inlet
+    (
+        (0 2 12 10)
+    )
+
+    patch outlet
+    (
+        (4 6 16 14)
+    )
+);
+
+mergePatchPairs
+(
+);
+
+// ************************************************************************* //
diff --git a/tutorials/compressible/rhoSimplecFoam/squareBend/constant/polyMesh/boundary b/tutorials/compressible/rhoSimplecFoam/squareBend/constant/polyMesh/boundary
new file mode 100644
index 0000000000000000000000000000000000000000..ae1e146725bc8086594a16afae82bc7ac774dfe9
--- /dev/null
+++ b/tutorials/compressible/rhoSimplecFoam/squareBend/constant/polyMesh/boundary
@@ -0,0 +1,40 @@
+/*--------------------------------*- 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       polyBoundaryMesh;
+    location    "constant/polyMesh";
+    object      boundary;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+3
+(
+    Default_Boundary_Region
+    {
+        type            wall;
+        nFaces          22400;
+        startFace       324400;
+    }
+    inlet
+    {
+        type            patch;
+        nFaces          400;
+        startFace       346800;
+    }
+    outlet
+    {
+        type            patch;
+        nFaces          400;
+        startFace       347200;
+    }
+)
+
+// ************************************************************************* //
diff --git a/tutorials/compressible/rhoSimplecFoam/squareBend/constant/thermophysicalProperties b/tutorials/compressible/rhoSimplecFoam/squareBend/constant/thermophysicalProperties
new file mode 100644
index 0000000000000000000000000000000000000000..a2c84a89d38005a697cd9d8b3bcce3ada3e0db44
--- /dev/null
+++ b/tutorials/compressible/rhoSimplecFoam/squareBend/constant/thermophysicalProperties
@@ -0,0 +1,23 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  1.6                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "constant";
+    object      thermophysicalProperties;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+thermoType      hPsiThermo<pureMixture<sutherlandTransport<specieThermo<hConstThermo<perfectGas>>>>>;
+
+mixture         air 1 28.9 1007 0 1.4792e-06 116;
+
+
+// ************************************************************************* //
diff --git a/tutorials/compressible/rhoSimplecFoam/squareBend/constant/turbulenceProperties b/tutorials/compressible/rhoSimplecFoam/squareBend/constant/turbulenceProperties
new file mode 100644
index 0000000000000000000000000000000000000000..f6753662e27e414f4bfb666745b7888fef8510bb
--- /dev/null
+++ b/tutorials/compressible/rhoSimplecFoam/squareBend/constant/turbulenceProperties
@@ -0,0 +1,21 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  1.6                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "constant";
+    object      turbulenceProperties;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+simulationType  RASModel;
+
+
+// ************************************************************************* //
diff --git a/tutorials/compressible/rhoSimplecFoam/squareBend/system/controlDict b/tutorials/compressible/rhoSimplecFoam/squareBend/system/controlDict
new file mode 100644
index 0000000000000000000000000000000000000000..49ae3f8a17dea10fc4665f7df8c730bc95e82b1a
--- /dev/null
+++ b/tutorials/compressible/rhoSimplecFoam/squareBend/system/controlDict
@@ -0,0 +1,51 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  1.6                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      controlDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+application     rhoSimplecFoam;
+
+startFrom       startTime;
+
+startTime       0;
+
+stopAt          endTime;
+
+endTime         500;
+
+deltaT          1;
+
+writeControl    timeStep;
+
+writeInterval   100;
+
+purgeWrite      0;
+
+writeFormat     ascii;
+
+writePrecision  6;
+
+writeCompression uncompressed;
+
+timeFormat      general;
+
+timePrecision   6;
+
+graphFormat     raw;
+
+runTimeModifiable yes;
+
+
+// ************************************************************************* //
diff --git a/tutorials/compressible/rhoSimplecFoam/squareBend/system/fvSchemes b/tutorials/compressible/rhoSimplecFoam/squareBend/system/fvSchemes
new file mode 100644
index 0000000000000000000000000000000000000000..e84e32f437fe54f051abfe715b3e6998909352da
--- /dev/null
+++ b/tutorials/compressible/rhoSimplecFoam/squareBend/system/fvSchemes
@@ -0,0 +1,71 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  1.6                                   |
+|   \\  /    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;
+}
+
+divSchemes
+{
+    default             none;
+
+    div(phi,U)          Gauss upwind; //limitedLinearV 1; //upwind;
+    div((muEff*dev2(grad(U).T())))      Gauss linear;
+    div(phi,h)          Gauss upwind; //limitedLinear 1; //upwind;
+    div(phi,epsilon)    Gauss upwind;
+    div(phi,k)          Gauss upwind;
+
+    div(phid,p)         Gauss upwind;
+    div(U,p)            Gauss linear;
+}
+
+laplacianSchemes
+{
+    default         Gauss linear corrected;
+}
+
+interpolationSchemes
+{
+    default                 none;
+    interpolate(rho)        linear;
+    div(U,p)                upwind phi;
+    interpolate((psi*U))    linear;
+    interpolate(U)          linear;
+    UD                      upwind phid;
+    interpolate(p)          linear;
+    interpolate(((rho|(A(U)-H(1)))-(rho|A(U)))) linear;
+}
+
+snGradSchemes
+{
+    default                 corrected;
+}
+
+fluxRequired
+{
+    default                 no;
+    p;
+    pCorr;
+}
+
+// ************************************************************************* //
diff --git a/tutorials/compressible/rhoSimplecFoam/squareBend/system/fvSolution b/tutorials/compressible/rhoSimplecFoam/squareBend/system/fvSolution
new file mode 100644
index 0000000000000000000000000000000000000000..d114a8557125247771c9dcdf6309b19a6b62035c
--- /dev/null
+++ b/tutorials/compressible/rhoSimplecFoam/squareBend/system/fvSolution
@@ -0,0 +1,199 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  1.6                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    location    "system";
+    object      fvSolution;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+solvers
+{
+    p0
+    {
+        solver          PBiCG;
+        preconditioner  DILU;
+        tolerance       1e-08;
+        relTol          0.01;
+    }
+
+    p
+    {
+        solver          GAMG;
+        tolerance       1e-08;
+        relTol          0.1;
+        smoother        GaussSeidel;
+        nPreSweeps      0;
+        nPostSweeps     2;
+        nFinestSweeps   2;
+        cacheAgglomeration true;
+        nCellsInCoarsestLevel 20;
+        agglomerator    faceAreaPair;
+        mergeLevels     1;
+    }
+
+    U0
+    {
+        solver          PBiCG;
+        preconditioner  DILU;
+        tolerance       1e-08;
+        relTol          0.1;
+    }
+
+    U1
+    {
+        solver          smoothSolver;
+        smoother        GaussSeidel;
+        nSweeps         1;
+        tolerance       1e-08;
+        relTol          0.1;
+    }
+
+    U
+    {
+        solver          GAMG;
+        tolerance       1e-08;
+        relTol          0.1;
+        smoother        GaussSeidel;
+        nPreSweeps      0;
+        nPostSweeps     2;
+        nFinestSweeps   2;
+        cacheAgglomeration true;
+        nCellsInCoarsestLevel 20;
+        agglomerator    faceAreaPair;
+        mergeLevels     1;
+    }
+
+    h0
+    {
+        solver          PBiCG;
+        preconditioner  DILU;
+        tolerance       1e-08;
+        relTol          0.1;
+    }
+
+    h1
+    {
+        solver          smoothSolver;
+        smoother        GaussSeidel;
+        nSweeps         1;
+        tolerance       1e-08;
+        relTol          0.1;
+    }
+
+    h
+    {
+        solver          GAMG;
+        tolerance       1e-08;
+        relTol          0.1;
+        smoother        GaussSeidel;
+        nPreSweeps      0;
+        nPostSweeps     2;
+        nFinestSweeps   2;
+        cacheAgglomeration true;
+        nCellsInCoarsestLevel 20;
+        agglomerator    faceAreaPair;
+        mergeLevels     1;
+    }
+
+    k0
+    {
+        solver          PBiCG;
+        preconditioner  DILU;
+        tolerance       1e-08;
+        relTol          0.1;
+    }
+
+    k1
+    {
+        solver          smoothSolver;
+        smoother        GaussSeidel;
+        nSweeps         1;
+        tolerance       1e-08;
+        relTol          0.1;
+    }
+
+    k
+    {
+        solver          GAMG;
+        tolerance       1e-08;
+        relTol          0.1;
+        smoother        GaussSeidel;
+        nPreSweeps      0;
+        nPostSweeps     2;
+        nFinestSweeps   2;
+        cacheAgglomeration true;
+        nCellsInCoarsestLevel 20;
+        agglomerator    faceAreaPair;
+        mergeLevels     1;
+    }
+
+    epsilon0
+    {
+        solver          PBiCG;
+        preconditioner  DILU;
+        tolerance       1e-08;
+        relTol          0.1;
+    }
+
+    epsilon1
+    {
+        solver          smoothSolver;
+        smoother        GaussSeidel;
+        nSweeps         1;
+        tolerance       1e-08;
+        relTol          0.1;
+    }
+
+    epsilon
+    {
+        solver          GAMG;
+        tolerance       1e-08;
+        relTol          0.1;
+        smoother        GaussSeidel;
+        nPreSweeps      0;
+        nPostSweeps     2;
+        nFinestSweeps   2;
+        cacheAgglomeration true;
+        nCellsInCoarsestLevel 20;
+        agglomerator    faceAreaPair;
+        mergeLevels     1;
+    }
+}
+
+SIMPLE
+{
+    nNonOrthogonalCorrectors        0;
+    pMin                            pMin [1 -1 -2 0 0 0 0] 10000;
+    transonic                       yes;
+}
+
+relaxationFactors
+{
+    p           1;
+    rho         1; //0.1;
+    U           0.9;
+    h           0.95;
+    k           0.9;
+    epsilon     0.9;
+}
+
+relaxationFactors0
+{
+    p           0.3;
+    rho         0.1;
+    U           0.7;
+    h           0.7;
+    k           0.7;
+    epsilon     0.7;
+}
+
+// ************************************************************************* //
diff --git a/tutorials/discreteMethods/dsmcFoam/supersonicCorner/0/iDof b/tutorials/discreteMethods/dsmcFoam/supersonicCorner/0/iDof
index 4f081fa179a0422cd94a93f612b19642f8a65a30..1e13af9370f63157d67336a43f8506b935b100bd 100644
--- a/tutorials/discreteMethods/dsmcFoam/supersonicCorner/0/iDof
+++ b/tutorials/discreteMethods/dsmcFoam/supersonicCorner/0/iDof
@@ -32,7 +32,8 @@ boundaryField
 
     walls
     {
-        type            zeroGradient;
+        type            calculated;
+        value           uniform 0;
     }
 
 }
diff --git a/tutorials/discreteMethods/dsmcFoam/supersonicCorner/0/internalE b/tutorials/discreteMethods/dsmcFoam/supersonicCorner/0/internalE
index 8bf198ceaef2722f8ffc0ec035134eacb1b811fe..976ec30e748377cdf28804e7eafffd9678af758d 100644
--- a/tutorials/discreteMethods/dsmcFoam/supersonicCorner/0/internalE
+++ b/tutorials/discreteMethods/dsmcFoam/supersonicCorner/0/internalE
@@ -32,7 +32,8 @@ boundaryField
 
     walls
     {
-        type            zeroGradient;
+        type            calculated;
+        value           uniform 0;
     }
 }
 
diff --git a/tutorials/discreteMethods/dsmcFoam/supersonicCorner/0/linearKE b/tutorials/discreteMethods/dsmcFoam/supersonicCorner/0/linearKE
index f05be3b1c8420ccf544949ddcfa974b65d97bda9..b26e99313c337f33fdd5fb3a6014ddfc4be6bf1f 100644
--- a/tutorials/discreteMethods/dsmcFoam/supersonicCorner/0/linearKE
+++ b/tutorials/discreteMethods/dsmcFoam/supersonicCorner/0/linearKE
@@ -32,7 +32,8 @@ boundaryField
 
     walls
     {
-        type            zeroGradient;
+        type            calculated;
+        value           uniform 0;
     }
 }
 
diff --git a/tutorials/discreteMethods/dsmcFoam/supersonicCorner/0/momentum b/tutorials/discreteMethods/dsmcFoam/supersonicCorner/0/momentum
index 244901de0c415b351cdeebe51ea07045411219a6..05d234bd2a9faeea9e3be9f3704f6c70332adf85 100644
--- a/tutorials/discreteMethods/dsmcFoam/supersonicCorner/0/momentum
+++ b/tutorials/discreteMethods/dsmcFoam/supersonicCorner/0/momentum
@@ -32,7 +32,8 @@ boundaryField
 
     walls
     {
-        type            zeroGradient;
+        type            calculated;
+        value           uniform (0 0 0);
     }
 
 }
diff --git a/tutorials/discreteMethods/dsmcFoam/supersonicCorner/0/rhoM b/tutorials/discreteMethods/dsmcFoam/supersonicCorner/0/rhoM
index fa4dec993be1da096d12025ec261540e90be66dc..7ec6f3368f6ffb0e880a51f0cf7caf0d5fe7dd08 100644
--- a/tutorials/discreteMethods/dsmcFoam/supersonicCorner/0/rhoM
+++ b/tutorials/discreteMethods/dsmcFoam/supersonicCorner/0/rhoM
@@ -32,7 +32,8 @@ boundaryField
 
     walls
     {
-        type            zeroGradient;
+        type            calculated;
+        value           uniform 0;
     }
 }
 
diff --git a/tutorials/discreteMethods/dsmcFoam/supersonicCorner/0/rhoN b/tutorials/discreteMethods/dsmcFoam/supersonicCorner/0/rhoN
index cd16296be931f3e54ad743e68165113548372821..f847c22cd09bcd571c103f2dd0ccb8512cf97fbc 100644
--- a/tutorials/discreteMethods/dsmcFoam/supersonicCorner/0/rhoN
+++ b/tutorials/discreteMethods/dsmcFoam/supersonicCorner/0/rhoN
@@ -32,7 +32,8 @@ boundaryField
 
     walls
     {
-        type            zeroGradient;
+        type            calculated;
+        value           uniform 0;
     }
 }
 
diff --git a/tutorials/discreteMethods/dsmcFoam/wedge15Ma5/0/iDof b/tutorials/discreteMethods/dsmcFoam/wedge15Ma5/0/iDof
index 3e8f63f7c3bcea350c645b1f3100243a2cd32d67..b31b782ef050c24772f71c89a2de1167f746c923 100644
--- a/tutorials/discreteMethods/dsmcFoam/wedge15Ma5/0/iDof
+++ b/tutorials/discreteMethods/dsmcFoam/wedge15Ma5/0/iDof
@@ -27,7 +27,8 @@ boundaryField
 
     obstacle
     {
-        type            zeroGradient;
+        type            calculated;
+        value           uniform 0;
     }
 
     periodic
diff --git a/tutorials/discreteMethods/dsmcFoam/wedge15Ma5/0/internalE b/tutorials/discreteMethods/dsmcFoam/wedge15Ma5/0/internalE
index 4cb241119786cd855db3ef548cb70bbad5853d58..61e30470b9791854b94c86ca60de0db6ebf9d7c4 100644
--- a/tutorials/discreteMethods/dsmcFoam/wedge15Ma5/0/internalE
+++ b/tutorials/discreteMethods/dsmcFoam/wedge15Ma5/0/internalE
@@ -27,7 +27,8 @@ boundaryField
 
     obstacle
     {
-        type            zeroGradient;
+        type            calculated;
+        value           uniform 0;
     }
 
     periodic
diff --git a/tutorials/discreteMethods/dsmcFoam/wedge15Ma5/0/linearKE b/tutorials/discreteMethods/dsmcFoam/wedge15Ma5/0/linearKE
index 72f2c152c5c29dbc7ddeddbc33b4fa50ff626203..b3f5a50d70da3a3fa0ef3389bfffced201ce155c 100644
--- a/tutorials/discreteMethods/dsmcFoam/wedge15Ma5/0/linearKE
+++ b/tutorials/discreteMethods/dsmcFoam/wedge15Ma5/0/linearKE
@@ -27,7 +27,8 @@ boundaryField
 
     obstacle
     {
-        type            zeroGradient;
+        type            calculated;
+        value           uniform 0;
     }
 
     periodic
diff --git a/tutorials/discreteMethods/dsmcFoam/wedge15Ma5/0/momentum b/tutorials/discreteMethods/dsmcFoam/wedge15Ma5/0/momentum
index f0e6facaef53db8cd1aeba1bc2cb3b5c232ce68b..424e0310cc4070392cd1708231e7ab87e4360d2f 100644
--- a/tutorials/discreteMethods/dsmcFoam/wedge15Ma5/0/momentum
+++ b/tutorials/discreteMethods/dsmcFoam/wedge15Ma5/0/momentum
@@ -27,7 +27,8 @@ boundaryField
 
     obstacle
     {
-        type            zeroGradient;
+        type            calculated;
+        value           uniform (0 0 0);
     }
 
     periodic
diff --git a/tutorials/discreteMethods/dsmcFoam/wedge15Ma5/0/rhoM b/tutorials/discreteMethods/dsmcFoam/wedge15Ma5/0/rhoM
index 9a84df6fa04f1055614e23361c93d23080fd87a8..224aae627a1e17ebdbc52bce9e1220805b83b23b 100644
--- a/tutorials/discreteMethods/dsmcFoam/wedge15Ma5/0/rhoM
+++ b/tutorials/discreteMethods/dsmcFoam/wedge15Ma5/0/rhoM
@@ -27,7 +27,8 @@ boundaryField
 
     obstacle
     {
-        type            zeroGradient;
+        type            calculated;
+        value           uniform 0;
     }
 
     periodic
diff --git a/tutorials/discreteMethods/dsmcFoam/wedge15Ma5/0/rhoN b/tutorials/discreteMethods/dsmcFoam/wedge15Ma5/0/rhoN
index 4f948784aef625e893f24c88fc72321bbf760da6..275417c99567a6157034da5570056d96538eb489 100644
--- a/tutorials/discreteMethods/dsmcFoam/wedge15Ma5/0/rhoN
+++ b/tutorials/discreteMethods/dsmcFoam/wedge15Ma5/0/rhoN
@@ -27,7 +27,8 @@ boundaryField
 
     obstacle
     {
-        type            zeroGradient;
+        type            calculated;
+        value           uniform 0;
     }
 
     periodic
diff --git a/tutorials/incompressible/MRFSimpleFoam/MRFSimpleFoam/createFields.H b/tutorials/incompressible/MRFSimpleFoam/MRFSimpleFoam/createFields.H
index 43242a6e377c03d6c71f0ee37612f82a3fa42435..869a5899ccb89c9cdb961916c95be4d2953b9bae 100644
--- a/tutorials/incompressible/MRFSimpleFoam/MRFSimpleFoam/createFields.H
+++ b/tutorials/incompressible/MRFSimpleFoam/MRFSimpleFoam/createFields.H
@@ -1,4 +1,4 @@
-    Info << "Reading field p\n" << endl;
+    Info<< "Reading field p\n" << endl;
     volScalarField p
     (
         IOobject
@@ -12,7 +12,7 @@
         mesh
     );
 
-    Info << "Reading field U\n" << endl;
+    Info<< "Reading field U\n" << endl;
     volVectorField U
     (
         IOobject
diff --git a/tutorials/incompressible/simpleFoam/pitzDaily/0/U b/tutorials/incompressible/simpleFoam/pitzDaily/0/U
index ec085adb4f59eb5cc3f97b7e0d9c0d100e1ccfc4..030418e9b5ccae776bd60c448468af292feab2bb 100644
--- a/tutorials/incompressible/simpleFoam/pitzDaily/0/U
+++ b/tutorials/incompressible/simpleFoam/pitzDaily/0/U
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  1.6                                   |
-|   \\  /    A nd           | Web:      http://www.OpenFOAM.org               |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
@@ -10,43 +10,12270 @@ 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);
+internalField   nonuniform List<vector> 
+12225
+(
+(5.97149 0 0)
+(5.97149 0 0)
+(5.97149 0 0)
+(5.97149 0 0)
+(5.97149 0 0)
+(5.97149 0 0)
+(5.97149 0 0)
+(5.97149 0 0)
+(5.97149 0 0)
+(5.97149 0 0)
+(5.97149 0 0)
+(5.97149 0 0)
+(5.97149 0 0)
+(5.97149 0 0)
+(5.97149 0 0)
+(5.97149 0 0)
+(5.97149 0 0)
+(5.97149 0 0)
+(7.01997 0 0)
+(7.01997 0 0)
+(7.01997 0 0)
+(7.01997 0 0)
+(7.01997 0 0)
+(7.01997 0 0)
+(7.01997 0 0)
+(7.01997 0 0)
+(7.01997 0 0)
+(7.01997 0 0)
+(7.01997 0 0)
+(7.01997 0 0)
+(7.01997 0 0)
+(7.01997 0 0)
+(7.01997 0 0)
+(7.01997 0 0)
+(7.01997 0 0)
+(7.01997 0 0)
+(7.60266 0 0)
+(7.60266 0 0)
+(7.60266 0 0)
+(7.60266 0 0)
+(7.60266 0 0)
+(7.60266 0 0)
+(7.60266 0 0)
+(7.60266 0 0)
+(7.60266 0 0)
+(7.60266 0 0)
+(7.60266 0 0)
+(7.60266 0 0)
+(7.60266 0 0)
+(7.60266 0 0)
+(7.60266 0 0)
+(7.60266 0 0)
+(7.60266 0 0)
+(7.60266 0 0)
+(8.0342 0 0)
+(8.0342 0 0)
+(8.0342 0 0)
+(8.0342 0 0)
+(8.0342 0 0)
+(8.0342 0 0)
+(8.0342 0 0)
+(8.0342 0 0)
+(8.0342 0 0)
+(8.0342 0 0)
+(8.0342 0 0)
+(8.0342 0 0)
+(8.0342 0 0)
+(8.0342 0 0)
+(8.0342 0 0)
+(8.0342 0 0)
+(8.0342 0 0)
+(8.0342 0 0)
+(8.38927 0 0)
+(8.38927 0 0)
+(8.38927 0 0)
+(8.38927 0 0)
+(8.38927 0 0)
+(8.38927 0 0)
+(8.38927 0 0)
+(8.38927 0 0)
+(8.38927 0 0)
+(8.38927 0 0)
+(8.38927 0 0)
+(8.38927 0 0)
+(8.38927 0 0)
+(8.38927 0 0)
+(8.38927 0 0)
+(8.38927 0 0)
+(8.38927 0 0)
+(8.38927 0 0)
+(8.69822 0 0)
+(8.69822 0 0)
+(8.69822 0 0)
+(8.69822 0 0)
+(8.69822 0 0)
+(8.69822 0 0)
+(8.69822 0 0)
+(8.69822 0 0)
+(8.69822 0 0)
+(8.69822 0 0)
+(8.69822 0 0)
+(8.69822 0 0)
+(8.69822 0 0)
+(8.69822 0 0)
+(8.69822 0 0)
+(8.69822 0 0)
+(8.69822 0 0)
+(8.69822 0 0)
+(8.97654 0 0)
+(8.97654 0 0)
+(8.97654 0 0)
+(8.97654 0 0)
+(8.97654 0 0)
+(8.97654 0 0)
+(8.97654 0 0)
+(8.97654 0 0)
+(8.97654 0 0)
+(8.97654 0 0)
+(8.97654 0 0)
+(8.97654 0 0)
+(8.97654 0 0)
+(8.97654 0 0)
+(8.97654 0 0)
+(8.97654 0 0)
+(8.97654 0 0)
+(8.97654 0 0)
+(9.19669 0 0)
+(9.19669 0 0)
+(9.19669 0 0)
+(9.19669 0 0)
+(9.19669 0 0)
+(9.19669 0 0)
+(9.19669 0 0)
+(9.19669 0 0)
+(9.19669 0 0)
+(9.19669 0 0)
+(9.19669 0 0)
+(9.19669 0 0)
+(9.19669 0 0)
+(9.19669 0 0)
+(9.19669 0 0)
+(9.19669 0 0)
+(9.19669 0 0)
+(9.19669 0 0)
+(9.38007 0 0)
+(9.38007 0 0)
+(9.38007 0 0)
+(9.38007 0 0)
+(9.38007 0 0)
+(9.38007 0 0)
+(9.38007 0 0)
+(9.38007 0 0)
+(9.38007 0 0)
+(9.38007 0 0)
+(9.38007 0 0)
+(9.38007 0 0)
+(9.38007 0 0)
+(9.38007 0 0)
+(9.38007 0 0)
+(9.38007 0 0)
+(9.38007 0 0)
+(9.38007 0 0)
+(9.56993 0 0)
+(9.56993 0 0)
+(9.56993 0 0)
+(9.56993 0 0)
+(9.56993 0 0)
+(9.56993 0 0)
+(9.56993 0 0)
+(9.56993 0 0)
+(9.56993 0 0)
+(9.56993 0 0)
+(9.56993 0 0)
+(9.56993 0 0)
+(9.56993 0 0)
+(9.56993 0 0)
+(9.56993 0 0)
+(9.56993 0 0)
+(9.56993 0 0)
+(9.56993 0 0)
+(9.76615 0 0)
+(9.76615 0 0)
+(9.76615 0 0)
+(9.76615 0 0)
+(9.76615 0 0)
+(9.76615 0 0)
+(9.76615 0 0)
+(9.76615 0 0)
+(9.76615 0 0)
+(9.76615 0 0)
+(9.76615 0 0)
+(9.76615 0 0)
+(9.76615 0 0)
+(9.76615 0 0)
+(9.76615 0 0)
+(9.76615 0 0)
+(9.76615 0 0)
+(9.76615 0 0)
+(9.96866 0 0)
+(9.96866 0 0)
+(9.96866 0 0)
+(9.96866 0 0)
+(9.96866 0 0)
+(9.96866 0 0)
+(9.96866 0 0)
+(9.96866 0 0)
+(9.96866 0 0)
+(9.96866 0 0)
+(9.96866 0 0)
+(9.96866 0 0)
+(9.96866 0 0)
+(9.96866 0 0)
+(9.96866 0 0)
+(9.96866 0 0)
+(9.96866 0 0)
+(9.96866 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(9.80182 0 0)
+(9.80182 0 0)
+(9.80182 0 0)
+(9.80182 0 0)
+(9.80182 0 0)
+(9.80182 0 0)
+(9.80182 0 0)
+(9.80182 0 0)
+(9.80182 0 0)
+(9.80182 0 0)
+(9.80182 0 0)
+(9.80182 0 0)
+(9.80182 0 0)
+(9.80182 0 0)
+(9.80182 0 0)
+(9.80182 0 0)
+(9.80182 0 0)
+(9.80182 0 0)
+(9.51447 0 0)
+(9.51447 0 0)
+(9.51447 0 0)
+(9.51447 0 0)
+(9.51447 0 0)
+(9.51447 0 0)
+(9.51447 0 0)
+(9.51447 0 0)
+(9.51447 0 0)
+(9.51447 0 0)
+(9.51447 0 0)
+(9.51447 0 0)
+(9.51447 0 0)
+(9.51447 0 0)
+(9.51447 0 0)
+(9.51447 0 0)
+(9.51447 0 0)
+(9.51447 0 0)
+(9.20555 0 0)
+(9.20555 0 0)
+(9.20555 0 0)
+(9.20555 0 0)
+(9.20555 0 0)
+(9.20555 0 0)
+(9.20555 0 0)
+(9.20555 0 0)
+(9.20555 0 0)
+(9.20555 0 0)
+(9.20555 0 0)
+(9.20555 0 0)
+(9.20555 0 0)
+(9.20555 0 0)
+(9.20555 0 0)
+(9.20555 0 0)
+(9.20555 0 0)
+(9.20555 0 0)
+(8.8656 0 0)
+(8.8656 0 0)
+(8.8656 0 0)
+(8.8656 0 0)
+(8.8656 0 0)
+(8.8656 0 0)
+(8.8656 0 0)
+(8.8656 0 0)
+(8.8656 0 0)
+(8.8656 0 0)
+(8.8656 0 0)
+(8.8656 0 0)
+(8.8656 0 0)
+(8.8656 0 0)
+(8.8656 0 0)
+(8.8656 0 0)
+(8.8656 0 0)
+(8.8656 0 0)
+(8.47838 0 0)
+(8.47838 0 0)
+(8.47838 0 0)
+(8.47838 0 0)
+(8.47838 0 0)
+(8.47838 0 0)
+(8.47838 0 0)
+(8.47838 0 0)
+(8.47838 0 0)
+(8.47838 0 0)
+(8.47838 0 0)
+(8.47838 0 0)
+(8.47838 0 0)
+(8.47838 0 0)
+(8.47838 0 0)
+(8.47838 0 0)
+(8.47838 0 0)
+(8.47838 0 0)
+(8.01213 0 0)
+(8.01213 0 0)
+(8.01213 0 0)
+(8.01213 0 0)
+(8.01213 0 0)
+(8.01213 0 0)
+(8.01213 0 0)
+(8.01213 0 0)
+(8.01213 0 0)
+(8.01213 0 0)
+(8.01213 0 0)
+(8.01213 0 0)
+(8.01213 0 0)
+(8.01213 0 0)
+(8.01213 0 0)
+(8.01213 0 0)
+(8.01213 0 0)
+(8.01213 0 0)
+(7.38873 0 0)
+(7.38873 0 0)
+(7.38873 0 0)
+(7.38873 0 0)
+(7.38873 0 0)
+(7.38873 0 0)
+(7.38873 0 0)
+(7.38873 0 0)
+(7.38873 0 0)
+(7.38873 0 0)
+(7.38873 0 0)
+(7.38873 0 0)
+(7.38873 0 0)
+(7.38873 0 0)
+(7.38873 0 0)
+(7.38873 0 0)
+(7.38873 0 0)
+(7.38873 0 0)
+(6.27953 0 0)
+(6.27953 0 0)
+(6.27953 0 0)
+(6.27953 0 0)
+(6.27953 0 0)
+(6.27953 0 0)
+(6.27953 0 0)
+(6.27953 0 0)
+(6.27953 0 0)
+(6.27953 0 0)
+(6.27953 0 0)
+(6.27953 0 0)
+(6.27953 0 0)
+(6.27953 0 0)
+(6.27953 0 0)
+(6.27953 0 0)
+(6.27953 0 0)
+(6.27953 0 0)
+(6.4341 0 0)
+(7.17455 0 0)
+(7.17409 0 0)
+(7.17363 0 0)
+(7.17317 0 0)
+(7.1727 0 0)
+(7.17223 0 0)
+(7.17175 0 0)
+(7.17127 0 0)
+(7.17079 0 0)
+(7.1703 0 0)
+(7.16981 0 0)
+(7.16932 0 0)
+(7.16882 0 0)
+(7.16831 0 0)
+(7.16781 0 0)
+(7.16729 0 0)
+(7.16678 0 0)
+(7.16626 0 0)
+(7.16573 0 0)
+(7.1652 0 0)
+(7.16467 0 0)
+(7.16413 0 0)
+(7.16359 0 0)
+(7.16304 0 0)
+(7.16249 0 0)
+(7.16194 0 0)
+(7.16138 0 0)
+(7.16081 0 0)
+(7.16024 0 0)
+(7.15967 0 0)
+(7.15909 0 0)
+(7.15851 0 0)
+(7.15792 0 0)
+(7.15732 0 0)
+(7.15673 0 0)
+(7.15612 0 0)
+(7.15551 0 0)
+(7.1549 0 0)
+(7.15428 0 0)
+(7.15366 0 0)
+(7.15303 0 0)
+(7.1524 0 0)
+(7.15176 0 0)
+(7.15111 0 0)
+(7.15046 0 0)
+(7.14981 0 0)
+(7.14915 0 0)
+(7.14848 0 0)
+(7.14781 0 0)
+(7.14713 0 0)
+(7.14645 0 0)
+(7.14576 0 0)
+(7.14507 0 0)
+(7.14436 0 0)
+(7.14366 0 0)
+(7.14295 0 0)
+(7.14223 0 0)
+(7.1415 0 0)
+(7.14077 0 0)
+(7.14004 0 0)
+(7.1393 0 0)
+(7.13855 0 0)
+(7.13779 0 0)
+(7.13703 0 0)
+(7.13626 0 0)
+(7.13549 0 0)
+(7.13471 0 0)
+(7.13392 0 0)
+(7.13313 0 0)
+(7.13233 0 0)
+(7.13152 0 0)
+(7.1307 0 0)
+(7.12988 0 0)
+(7.12905 0 0)
+(7.12822 0 0)
+(7.12738 0 0)
+(7.12653 0 0)
+(7.12567 0 0)
+(7.12481 0 0)
+(7.12393 0 0)
+(7.12306 0 0)
+(7.12217 0 0)
+(7.12128 0 0)
+(7.12037 0 0)
+(7.11947 0 0)
+(7.11855 0 0)
+(7.11762 0 0)
+(7.11669 0 0)
+(7.11575 0 0)
+(7.1148 0 0)
+(7.11384 0 0)
+(7.11288 0 0)
+(7.11191 0 0)
+(7.11092 0 0)
+(7.10993 0 0)
+(7.10893 0 0)
+(7.10793 0 0)
+(7.10691 0 0)
+(7.10589 0 0)
+(7.10485 0 0)
+(7.10381 0 0)
+(7.10276 0 0)
+(7.1017 0 0)
+(7.10063 0 0)
+(7.09955 0 0)
+(7.09846 0 0)
+(7.09736 0 0)
+(7.09625 0 0)
+(7.09514 0 0)
+(7.09401 0 0)
+(7.09287 0 0)
+(7.09172 0 0)
+(7.09057 0 0)
+(7.0894 0 0)
+(7.08822 0 0)
+(7.08703 0 0)
+(7.08584 0 0)
+(7.08463 0 0)
+(7.08341 0 0)
+(7.08218 0 0)
+(7.08094 0 0)
+(7.07968 0 0)
+(7.07842 0 0)
+(7.07715 0 0)
+(7.07586 0 0)
+(7.07456 0 0)
+(7.07326 0 0)
+(7.07194 0 0)
+(7.0706 0 0)
+(7.06926 0 0)
+(7.0679 0 0)
+(7.06654 0 0)
+(7.06516 0 0)
+(7.06376 0 0)
+(7.06236 0 0)
+(7.06094 0 0)
+(7.05951 0 0)
+(7.05807 0 0)
+(7.05661 0 0)
+(7.05514 0 0)
+(7.05366 0 0)
+(7.05216 0 0)
+(7.05065 0 0)
+(7.04913 0 0)
+(7.04759 0 0)
+(7.04604 0 0)
+(7.04447 0 0)
+(7.04289 0 0)
+(7.0413 0 0)
+(7.03969 0 0)
+(7.03807 0 0)
+(7.03643 0 0)
+(7.03478 0 0)
+(7.03311 0 0)
+(7.03142 0 0)
+(7.02972 0 0)
+(7.02801 0 0)
+(7.02628 0 0)
+(7.02453 0 0)
+(7.02277 0 0)
+(7.02099 0 0)
+(7.01919 0 0)
+(7.01738 0 0)
+(7.01555 0 0)
+(7.0137 0 0)
+(7.01183 0 0)
+(7.00995 0 0)
+(7.00805 0 0)
+(7.00613 0 0)
+(7.0042 0 0)
+(7.00224 0 0)
+(7.00027 0 0)
+(6.99828 0 0)
+(6.99627 0 0)
+(6.99424 0 0)
+(6.99219 0 0)
+(6.99012 0 0)
+(6.98804 0 0)
+(6.98593 0 0)
+(6.4341 0 0)
+(7.53029 0 0)
+(8.10456 0 0)
+(8.39266 0 0)
+(8.39211 0 0)
+(8.39156 0 0)
+(8.39101 0 0)
+(8.39046 0 0)
+(8.38989 0 0)
+(8.38933 0 0)
+(8.38876 0 0)
+(8.38818 0 0)
+(8.3876 0 0)
+(8.38702 0 0)
+(8.38643 0 0)
+(8.38584 0 0)
+(8.38524 0 0)
+(8.38463 0 0)
+(8.38403 0 0)
+(8.38341 0 0)
+(8.38279 0 0)
+(8.38217 0 0)
+(8.38154 0 0)
+(8.38091 0 0)
+(8.38027 0 0)
+(8.37962 0 0)
+(8.37897 0 0)
+(8.37832 0 0)
+(8.37766 0 0)
+(8.37699 0 0)
+(8.37632 0 0)
+(8.37564 0 0)
+(8.37496 0 0)
+(8.37427 0 0)
+(8.37357 0 0)
+(8.37287 0 0)
+(8.37217 0 0)
+(8.37146 0 0)
+(8.37074 0 0)
+(8.37002 0 0)
+(8.36929 0 0)
+(8.36855 0 0)
+(8.36781 0 0)
+(8.36706 0 0)
+(8.36631 0 0)
+(8.36555 0 0)
+(8.36478 0 0)
+(8.36401 0 0)
+(8.36323 0 0)
+(8.36244 0 0)
+(8.36165 0 0)
+(8.36085 0 0)
+(8.36004 0 0)
+(8.35923 0 0)
+(8.35841 0 0)
+(8.35759 0 0)
+(8.35675 0 0)
+(8.35591 0 0)
+(8.35507 0 0)
+(8.35421 0 0)
+(8.35335 0 0)
+(8.35248 0 0)
+(8.35161 0 0)
+(8.35072 0 0)
+(8.34983 0 0)
+(8.34893 0 0)
+(8.34803 0 0)
+(8.34711 0 0)
+(8.34619 0 0)
+(8.34526 0 0)
+(8.34433 0 0)
+(8.34338 0 0)
+(8.34243 0 0)
+(8.34147 0 0)
+(8.3405 0 0)
+(8.33952 0 0)
+(8.33854 0 0)
+(8.33754 0 0)
+(8.33654 0 0)
+(8.33553 0 0)
+(8.33451 0 0)
+(8.33348 0 0)
+(8.33245 0 0)
+(8.3314 0 0)
+(8.33035 0 0)
+(8.32928 0 0)
+(8.32821 0 0)
+(8.32713 0 0)
+(8.32604 0 0)
+(8.32494 0 0)
+(8.32383 0 0)
+(8.32271 0 0)
+(8.32158 0 0)
+(8.32044 0 0)
+(8.31929 0 0)
+(8.31813 0 0)
+(8.31696 0 0)
+(8.31578 0 0)
+(8.31459 0 0)
+(8.3134 0 0)
+(8.31219 0 0)
+(8.31097 0 0)
+(8.30974 0 0)
+(8.30849 0 0)
+(8.30724 0 0)
+(8.30598 0 0)
+(8.30471 0 0)
+(8.30342 0 0)
+(8.30212 0 0)
+(8.30082 0 0)
+(8.2995 0 0)
+(8.29817 0 0)
+(8.29683 0 0)
+(8.29547 0 0)
+(8.29411 0 0)
+(8.29273 0 0)
+(8.29134 0 0)
+(8.28994 0 0)
+(8.28852 0 0)
+(8.2871 0 0)
+(8.28566 0 0)
+(8.28421 0 0)
+(8.28274 0 0)
+(8.28126 0 0)
+(8.27977 0 0)
+(8.27827 0 0)
+(8.27675 0 0)
+(8.27522 0 0)
+(8.27368 0 0)
+(8.27212 0 0)
+(8.27054 0 0)
+(8.26896 0 0)
+(8.26736 0 0)
+(8.26574 0 0)
+(8.26411 0 0)
+(8.26247 0 0)
+(8.26081 0 0)
+(8.25914 0 0)
+(8.25745 0 0)
+(8.25575 0 0)
+(8.25403 0 0)
+(8.25229 0 0)
+(8.25054 0 0)
+(8.24877 0 0)
+(8.24699 0 0)
+(8.24519 0 0)
+(8.24338 0 0)
+(8.24155 0 0)
+(8.2397 0 0)
+(8.23783 0 0)
+(8.23595 0 0)
+(8.23405 0 0)
+(8.23214 0 0)
+(8.2302 0 0)
+(8.22825 0 0)
+(8.22628 0 0)
+(8.22429 0 0)
+(8.22228 0 0)
+(8.22026 0 0)
+(8.21821 0 0)
+(8.21615 0 0)
+(8.21407 0 0)
+(8.21197 0 0)
+(8.20985 0 0)
+(8.2077 0 0)
+(8.20554 0 0)
+(8.20336 0 0)
+(8.20116 0 0)
+(8.19894 0 0)
+(8.19669 0 0)
+(8.19443 0 0)
+(8.19214 0 0)
+(8.18983 0 0)
+(8.1875 0 0)
+(8.18515 0 0)
+(8.18278 0 0)
+(8.18038 0 0)
+(8.17796 0 0)
+(8.17552 0 0)
+(8.17305 0 0)
+(6.4341 0 0)
+(7.53029 0 0)
+(8.10456 0 0)
+(8.50824 0 0)
+(8.82408 0 0)
+(9.02684 0 0)
+(9.02624 0 0)
+(9.02564 0 0)
+(9.02504 0 0)
+(9.02443 0 0)
+(9.02382 0 0)
+(9.0232 0 0)
+(9.02258 0 0)
+(9.02195 0 0)
+(9.02132 0 0)
+(9.02068 0 0)
+(9.02003 0 0)
+(9.01938 0 0)
+(9.01873 0 0)
+(9.01807 0 0)
+(9.0174 0 0)
+(9.01673 0 0)
+(9.01605 0 0)
+(9.01537 0 0)
+(9.01468 0 0)
+(9.01399 0 0)
+(9.01329 0 0)
+(9.01259 0 0)
+(9.01188 0 0)
+(9.01116 0 0)
+(9.01044 0 0)
+(9.00971 0 0)
+(9.00897 0 0)
+(9.00823 0 0)
+(9.00749 0 0)
+(9.00673 0 0)
+(9.00597 0 0)
+(9.00521 0 0)
+(9.00444 0 0)
+(9.00366 0 0)
+(9.00287 0 0)
+(9.00208 0 0)
+(9.00128 0 0)
+(9.00048 0 0)
+(8.99967 0 0)
+(8.99885 0 0)
+(8.99803 0 0)
+(8.99719 0 0)
+(8.99636 0 0)
+(8.99551 0 0)
+(8.99466 0 0)
+(8.9938 0 0)
+(8.99293 0 0)
+(8.99206 0 0)
+(8.99118 0 0)
+(8.99029 0 0)
+(8.98939 0 0)
+(8.98849 0 0)
+(8.98758 0 0)
+(8.98666 0 0)
+(8.98573 0 0)
+(8.9848 0 0)
+(8.98385 0 0)
+(8.9829 0 0)
+(8.98195 0 0)
+(8.98098 0 0)
+(8.98 0 0)
+(8.97902 0 0)
+(8.97803 0 0)
+(8.97703 0 0)
+(8.97602 0 0)
+(8.97501 0 0)
+(8.97398 0 0)
+(8.97295 0 0)
+(8.97191 0 0)
+(8.97086 0 0)
+(8.9698 0 0)
+(8.96873 0 0)
+(8.96765 0 0)
+(8.96656 0 0)
+(8.96546 0 0)
+(8.96436 0 0)
+(8.96324 0 0)
+(8.96212 0 0)
+(8.96098 0 0)
+(8.95984 0 0)
+(8.95869 0 0)
+(8.95752 0 0)
+(8.95635 0 0)
+(8.95516 0 0)
+(8.95397 0 0)
+(8.95277 0 0)
+(8.95155 0 0)
+(8.95033 0 0)
+(8.94909 0 0)
+(8.94784 0 0)
+(8.94659 0 0)
+(8.94532 0 0)
+(8.94404 0 0)
+(8.94275 0 0)
+(8.94145 0 0)
+(8.94014 0 0)
+(8.93881 0 0)
+(8.93748 0 0)
+(8.93613 0 0)
+(8.93477 0 0)
+(8.9334 0 0)
+(8.93202 0 0)
+(8.93063 0 0)
+(8.92922 0 0)
+(8.9278 0 0)
+(8.92637 0 0)
+(8.92493 0 0)
+(8.92347 0 0)
+(8.922 0 0)
+(8.92052 0 0)
+(8.91903 0 0)
+(8.91752 0 0)
+(8.916 0 0)
+(8.91446 0 0)
+(8.91291 0 0)
+(8.91135 0 0)
+(8.90978 0 0)
+(8.90819 0 0)
+(8.90658 0 0)
+(8.90496 0 0)
+(8.90333 0 0)
+(8.90168 0 0)
+(8.90002 0 0)
+(8.89835 0 0)
+(8.89666 0 0)
+(8.89495 0 0)
+(8.89323 0 0)
+(8.89149 0 0)
+(8.88974 0 0)
+(8.88797 0 0)
+(8.88619 0 0)
+(8.88439 0 0)
+(8.88257 0 0)
+(8.88074 0 0)
+(8.87889 0 0)
+(8.87702 0 0)
+(8.87514 0 0)
+(8.87324 0 0)
+(8.87132 0 0)
+(8.86939 0 0)
+(8.86743 0 0)
+(8.86546 0 0)
+(8.86348 0 0)
+(8.86147 0 0)
+(8.85944 0 0)
+(8.8574 0 0)
+(8.85534 0 0)
+(8.85326 0 0)
+(8.85116 0 0)
+(8.84904 0 0)
+(8.8469 0 0)
+(8.84474 0 0)
+(8.84256 0 0)
+(8.84036 0 0)
+(8.83814 0 0)
+(8.8359 0 0)
+(8.83364 0 0)
+(8.83136 0 0)
+(8.82906 0 0)
+(8.82673 0 0)
+(8.82439 0 0)
+(8.82202 0 0)
+(8.81963 0 0)
+(8.81721 0 0)
+(8.81478 0 0)
+(8.81232 0 0)
+(8.80983 0 0)
+(8.80733 0 0)
+(8.8048 0 0)
+(8.80224 0 0)
+(8.79967 0 0)
+(8.79706 0 0)
+(8.79444 0 0)
+(8.79178 0 0)
+(6.4341 0 0)
+(7.53029 0 0)
+(8.10457 0 0)
+(8.50824 0 0)
+(8.82409 0 0)
+(9.08572 0 0)
+(9.31031 0 0)
+(9.47008 0 0)
+(9.46945 0 0)
+(9.46881 0 0)
+(9.46817 0 0)
+(9.46752 0 0)
+(9.46686 0 0)
+(9.4662 0 0)
+(9.46554 0 0)
+(9.46487 0 0)
+(9.46419 0 0)
+(9.46351 0 0)
+(9.46282 0 0)
+(9.46213 0 0)
+(9.46143 0 0)
+(9.46073 0 0)
+(9.46002 0 0)
+(9.4593 0 0)
+(9.45858 0 0)
+(9.45785 0 0)
+(9.45712 0 0)
+(9.45638 0 0)
+(9.45563 0 0)
+(9.45488 0 0)
+(9.45412 0 0)
+(9.45336 0 0)
+(9.45259 0 0)
+(9.45181 0 0)
+(9.45103 0 0)
+(9.45024 0 0)
+(9.44944 0 0)
+(9.44864 0 0)
+(9.44783 0 0)
+(9.44701 0 0)
+(9.44619 0 0)
+(9.44536 0 0)
+(9.44452 0 0)
+(9.44368 0 0)
+(9.44282 0 0)
+(9.44197 0 0)
+(9.4411 0 0)
+(9.44023 0 0)
+(9.43935 0 0)
+(9.43846 0 0)
+(9.43757 0 0)
+(9.43667 0 0)
+(9.43576 0 0)
+(9.43484 0 0)
+(9.43391 0 0)
+(9.43298 0 0)
+(9.43204 0 0)
+(9.43109 0 0)
+(9.43014 0 0)
+(9.42917 0 0)
+(9.4282 0 0)
+(9.42722 0 0)
+(9.42623 0 0)
+(9.42523 0 0)
+(9.42423 0 0)
+(9.42322 0 0)
+(9.42219 0 0)
+(9.42116 0 0)
+(9.42012 0 0)
+(9.41907 0 0)
+(9.41802 0 0)
+(9.41695 0 0)
+(9.41587 0 0)
+(9.41479 0 0)
+(9.4137 0 0)
+(9.41259 0 0)
+(9.41148 0 0)
+(9.41036 0 0)
+(9.40923 0 0)
+(9.40809 0 0)
+(9.40694 0 0)
+(9.40578 0 0)
+(9.40461 0 0)
+(9.40343 0 0)
+(9.40224 0 0)
+(9.40103 0 0)
+(9.39982 0 0)
+(9.3986 0 0)
+(9.39737 0 0)
+(9.39613 0 0)
+(9.39488 0 0)
+(9.39361 0 0)
+(9.39234 0 0)
+(9.39105 0 0)
+(9.38976 0 0)
+(9.38845 0 0)
+(9.38713 0 0)
+(9.3858 0 0)
+(9.38446 0 0)
+(9.3831 0 0)
+(9.38174 0 0)
+(9.38036 0 0)
+(9.37897 0 0)
+(9.37757 0 0)
+(9.37616 0 0)
+(9.37473 0 0)
+(9.3733 0 0)
+(9.37185 0 0)
+(9.37038 0 0)
+(9.36891 0 0)
+(9.36742 0 0)
+(9.36592 0 0)
+(9.3644 0 0)
+(9.36288 0 0)
+(9.36133 0 0)
+(9.35978 0 0)
+(9.35821 0 0)
+(9.35663 0 0)
+(9.35503 0 0)
+(9.35342 0 0)
+(9.3518 0 0)
+(9.35016 0 0)
+(9.34851 0 0)
+(9.34684 0 0)
+(9.34515 0 0)
+(9.34346 0 0)
+(9.34174 0 0)
+(9.34002 0 0)
+(9.33827 0 0)
+(9.33651 0 0)
+(9.33474 0 0)
+(9.33295 0 0)
+(9.33114 0 0)
+(9.32932 0 0)
+(9.32748 0 0)
+(9.32563 0 0)
+(9.32375 0 0)
+(9.32187 0 0)
+(9.31996 0 0)
+(9.31804 0 0)
+(9.3161 0 0)
+(9.31414 0 0)
+(9.31216 0 0)
+(9.31017 0 0)
+(9.30816 0 0)
+(9.30613 0 0)
+(9.30408 0 0)
+(9.30201 0 0)
+(9.29993 0 0)
+(9.29782 0 0)
+(9.2957 0 0)
+(9.29355 0 0)
+(9.29139 0 0)
+(9.28921 0 0)
+(9.287 0 0)
+(9.28478 0 0)
+(9.28253 0 0)
+(9.28027 0 0)
+(9.27798 0 0)
+(9.27568 0 0)
+(9.27335 0 0)
+(9.271 0 0)
+(9.26862 0 0)
+(9.26623 0 0)
+(9.26381 0 0)
+(9.26137 0 0)
+(9.25891 0 0)
+(9.25643 0 0)
+(9.25392 0 0)
+(9.25139 0 0)
+(9.24883 0 0)
+(9.24625 0 0)
+(9.24364 0 0)
+(9.24101 0 0)
+(9.23836 0 0)
+(9.23568 0 0)
+(9.23297 0 0)
+(9.23024 0 0)
+(9.22749 0 0)
+(9.2247 0 0)
+(6.4341 0 0)
+(7.53029 0 0)
+(8.10457 0 0)
+(8.50825 0 0)
+(8.82409 0 0)
+(9.08572 0 0)
+(9.31031 0 0)
+(9.50788 0 0)
+(9.68481 0 0)
+(9.81493 0 0)
+(9.81427 0 0)
+(9.8136 0 0)
+(9.81292 0 0)
+(9.81223 0 0)
+(9.81154 0 0)
+(9.81085 0 0)
+(9.81015 0 0)
+(9.80944 0 0)
+(9.80873 0 0)
+(9.80801 0 0)
+(9.80729 0 0)
+(9.80656 0 0)
+(9.80582 0 0)
+(9.80508 0 0)
+(9.80433 0 0)
+(9.80358 0 0)
+(9.80282 0 0)
+(9.80205 0 0)
+(9.80128 0 0)
+(9.8005 0 0)
+(9.79971 0 0)
+(9.79892 0 0)
+(9.79812 0 0)
+(9.79731 0 0)
+(9.7965 0 0)
+(9.79568 0 0)
+(9.79486 0 0)
+(9.79403 0 0)
+(9.79319 0 0)
+(9.79234 0 0)
+(9.79149 0 0)
+(9.79063 0 0)
+(9.78976 0 0)
+(9.78888 0 0)
+(9.788 0 0)
+(9.78711 0 0)
+(9.78621 0 0)
+(9.78531 0 0)
+(9.7844 0 0)
+(9.78348 0 0)
+(9.78255 0 0)
+(9.78162 0 0)
+(9.78067 0 0)
+(9.77972 0 0)
+(9.77876 0 0)
+(9.7778 0 0)
+(9.77682 0 0)
+(9.77584 0 0)
+(9.77485 0 0)
+(9.77385 0 0)
+(9.77284 0 0)
+(9.77183 0 0)
+(9.7708 0 0)
+(9.76977 0 0)
+(9.76873 0 0)
+(9.76767 0 0)
+(9.76661 0 0)
+(9.76555 0 0)
+(9.76447 0 0)
+(9.76338 0 0)
+(9.76229 0 0)
+(9.76118 0 0)
+(9.76007 0 0)
+(9.75894 0 0)
+(9.75781 0 0)
+(9.75666 0 0)
+(9.75551 0 0)
+(9.75435 0 0)
+(9.75318 0 0)
+(9.75199 0 0)
+(9.7508 0 0)
+(9.7496 0 0)
+(9.74838 0 0)
+(9.74716 0 0)
+(9.74593 0 0)
+(9.74468 0 0)
+(9.74343 0 0)
+(9.74216 0 0)
+(9.74089 0 0)
+(9.7396 0 0)
+(9.7383 0 0)
+(9.73699 0 0)
+(9.73567 0 0)
+(9.73434 0 0)
+(9.73299 0 0)
+(9.73164 0 0)
+(9.73027 0 0)
+(9.72889 0 0)
+(9.7275 0 0)
+(9.7261 0 0)
+(9.72468 0 0)
+(9.72326 0 0)
+(9.72182 0 0)
+(9.72036 0 0)
+(9.7189 0 0)
+(9.71742 0 0)
+(9.71593 0 0)
+(9.71443 0 0)
+(9.71291 0 0)
+(9.71138 0 0)
+(9.70984 0 0)
+(9.70828 0 0)
+(9.70671 0 0)
+(9.70513 0 0)
+(9.70353 0 0)
+(9.70192 0 0)
+(9.70029 0 0)
+(9.69865 0 0)
+(9.697 0 0)
+(9.69533 0 0)
+(9.69365 0 0)
+(9.69195 0 0)
+(9.69023 0 0)
+(9.68851 0 0)
+(9.68676 0 0)
+(9.685 0 0)
+(9.68323 0 0)
+(9.68143 0 0)
+(9.67963 0 0)
+(9.6778 0 0)
+(9.67597 0 0)
+(9.67411 0 0)
+(9.67224 0 0)
+(9.67035 0 0)
+(9.66844 0 0)
+(9.66652 0 0)
+(9.66458 0 0)
+(9.66262 0 0)
+(9.66064 0 0)
+(9.65865 0 0)
+(9.65664 0 0)
+(9.65461 0 0)
+(9.65256 0 0)
+(9.6505 0 0)
+(9.64841 0 0)
+(9.64631 0 0)
+(9.64418 0 0)
+(9.64204 0 0)
+(9.63988 0 0)
+(9.6377 0 0)
+(9.63549 0 0)
+(9.63327 0 0)
+(9.63103 0 0)
+(9.62877 0 0)
+(9.62648 0 0)
+(9.62418 0 0)
+(9.62185 0 0)
+(9.6195 0 0)
+(9.61713 0 0)
+(9.61474 0 0)
+(9.61233 0 0)
+(9.60989 0 0)
+(9.60743 0 0)
+(9.60495 0 0)
+(9.60245 0 0)
+(9.59992 0 0)
+(9.59736 0 0)
+(9.59479 0 0)
+(9.59219 0 0)
+(9.58956 0 0)
+(9.58691 0 0)
+(9.58424 0 0)
+(9.58154 0 0)
+(9.57881 0 0)
+(9.57606 0 0)
+(9.57328 0 0)
+(9.57048 0 0)
+(9.56765 0 0)
+(9.56479 0 0)
+(9.5619 0 0)
+(6.4341 0 0)
+(7.5303 0 0)
+(8.10458 0 0)
+(8.50825 0 0)
+(8.8241 0 0)
+(9.08573 0 0)
+(9.31032 0 0)
+(9.50789 0 0)
+(9.68482 0 0)
+(9.84542 0 0)
+(9.99278 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(9.99849 0 0)
+(9.99694 0 0)
+(9.99538 0 0)
+(9.99381 0 0)
+(9.99222 0 0)
+(9.99062 0 0)
+(9.989 0 0)
+(9.98737 0 0)
+(9.98573 0 0)
+(9.98407 0 0)
+(9.9824 0 0)
+(9.98071 0 0)
+(9.97901 0 0)
+(9.97729 0 0)
+(9.97556 0 0)
+(9.97381 0 0)
+(9.97205 0 0)
+(9.97027 0 0)
+(9.96847 0 0)
+(9.96666 0 0)
+(9.96483 0 0)
+(9.96299 0 0)
+(9.96113 0 0)
+(9.95926 0 0)
+(9.95736 0 0)
+(9.95545 0 0)
+(9.95353 0 0)
+(9.95158 0 0)
+(9.94962 0 0)
+(9.94764 0 0)
+(9.94564 0 0)
+(9.94363 0 0)
+(9.9416 0 0)
+(9.93954 0 0)
+(9.93747 0 0)
+(9.93539 0 0)
+(9.93328 0 0)
+(9.93115 0 0)
+(9.92901 0 0)
+(9.92684 0 0)
+(9.92466 0 0)
+(9.92245 0 0)
+(9.92023 0 0)
+(9.91798 0 0)
+(9.91571 0 0)
+(9.91343 0 0)
+(9.91112 0 0)
+(9.90879 0 0)
+(9.90644 0 0)
+(9.90407 0 0)
+(9.90167 0 0)
+(9.89926 0 0)
+(9.89682 0 0)
+(9.89436 0 0)
+(9.89187 0 0)
+(9.88937 0 0)
+(9.88684 0 0)
+(9.88428 0 0)
+(9.8817 0 0)
+(9.8791 0 0)
+(9.87648 0 0)
+(9.87383 0 0)
+(9.87115 0 0)
+(9.86845 0 0)
+(9.86572 0 0)
+(9.86297 0 0)
+(9.86019 0 0)
+(9.85739 0 0)
+(9.85455 0 0)
+(9.8517 0 0)
+(9.84881 0 0)
+(9.8459 0 0)
+(9.84295 0 0)
+(9.83998 0 0)
+(6.4341 0 0)
+(7.5303 0 0)
+(8.10458 0 0)
+(8.50826 0 0)
+(8.8241 0 0)
+(9.08574 0 0)
+(9.31033 0 0)
+(9.5079 0 0)
+(9.68482 0 0)
+(9.84543 0 0)
+(9.99279 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(6.4341 0 0)
+(7.53031 0 0)
+(8.10459 0 0)
+(8.50827 0 0)
+(8.82411 0 0)
+(9.08574 0 0)
+(9.31034 0 0)
+(9.50791 0 0)
+(9.68483 0 0)
+(9.84544 0 0)
+(9.9928 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(6.4341 0 0)
+(7.53032 0 0)
+(8.1046 0 0)
+(8.50828 0 0)
+(8.82412 0 0)
+(9.08575 0 0)
+(9.31035 0 0)
+(9.50792 0 0)
+(9.68484 0 0)
+(9.84545 0 0)
+(9.99281 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(6.4341 0 0)
+(7.53033 0 0)
+(8.10461 0 0)
+(8.50829 0 0)
+(8.82413 0 0)
+(9.08576 0 0)
+(9.31036 0 0)
+(9.50793 0 0)
+(9.68485 0 0)
+(9.84546 0 0)
+(9.99282 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(6.4341 0 0)
+(7.53034 0 0)
+(8.10462 0 0)
+(8.5083 0 0)
+(8.82414 0 0)
+(9.08577 0 0)
+(9.31037 0 0)
+(9.50794 0 0)
+(9.68486 0 0)
+(9.84547 0 0)
+(9.99283 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(6.4341 0 0)
+(7.53035 0 0)
+(8.10463 0 0)
+(8.50831 0 0)
+(8.82415 0 0)
+(9.08579 0 0)
+(9.31038 0 0)
+(9.50795 0 0)
+(9.68488 0 0)
+(9.84549 0 0)
+(9.99285 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(6.4341 0 0)
+(7.53036 0 0)
+(8.10464 0 0)
+(8.50832 0 0)
+(8.82417 0 0)
+(9.0858 0 0)
+(9.3104 0 0)
+(9.50797 0 0)
+(9.68489 0 0)
+(9.8455 0 0)
+(9.99286 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(6.4341 0 0)
+(7.53037 0 0)
+(8.10466 0 0)
+(8.50833 0 0)
+(8.82418 0 0)
+(9.08582 0 0)
+(9.31041 0 0)
+(9.50798 0 0)
+(9.68491 0 0)
+(9.84552 0 0)
+(9.99288 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(6.4341 0 0)
+(7.53039 0 0)
+(8.10467 0 0)
+(8.50835 0 0)
+(8.8242 0 0)
+(9.08583 0 0)
+(9.31043 0 0)
+(9.508 0 0)
+(9.68493 0 0)
+(9.84553 0 0)
+(9.9929 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(6.4341 0 0)
+(7.5304 0 0)
+(8.10469 0 0)
+(8.50837 0 0)
+(8.82421 0 0)
+(9.08585 0 0)
+(9.31044 0 0)
+(9.50802 0 0)
+(9.68494 0 0)
+(9.84555 0 0)
+(9.99292 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(6.4341 0 0)
+(7.53042 0 0)
+(8.1047 0 0)
+(8.50838 0 0)
+(8.82423 0 0)
+(9.08587 0 0)
+(9.31046 0 0)
+(9.50804 0 0)
+(9.68496 0 0)
+(9.84557 0 0)
+(9.99294 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(6.4341 0 0)
+(7.53043 0 0)
+(8.10472 0 0)
+(8.5084 0 0)
+(8.82425 0 0)
+(9.08589 0 0)
+(9.31048 0 0)
+(9.50806 0 0)
+(9.68499 0 0)
+(9.84559 0 0)
+(9.99296 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(6.43428 0 0)
+(7.5305 0 0)
+(8.10477 0 0)
+(8.50844 0 0)
+(8.82428 0 0)
+(9.08591 0 0)
+(9.3105 0 0)
+(9.50807 0 0)
+(9.685 0 0)
+(9.84561 0 0)
+(9.99297 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(6.43432 0 0)
+(7.5305 0 0)
+(8.10475 0 0)
+(8.50842 0 0)
+(8.82426 0 0)
+(9.08589 0 0)
+(9.31048 0 0)
+(9.50805 0 0)
+(9.68498 0 0)
+(9.84559 0 0)
+(9.99295 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(6.43436 0 0)
+(7.53049 0 0)
+(8.10474 0 0)
+(8.5084 0 0)
+(8.82424 0 0)
+(9.08587 0 0)
+(9.31046 0 0)
+(9.50803 0 0)
+(9.68495 0 0)
+(9.84556 0 0)
+(9.99292 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(6.4344 0 0)
+(7.53049 0 0)
+(8.10473 0 0)
+(8.50839 0 0)
+(8.82422 0 0)
+(9.08585 0 0)
+(9.31044 0 0)
+(9.508 0 0)
+(9.68493 0 0)
+(9.84553 0 0)
+(9.99289 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(6.43445 0 0)
+(7.53048 0 0)
+(8.10471 0 0)
+(8.50837 0 0)
+(8.8242 0 0)
+(9.08583 0 0)
+(9.31041 0 0)
+(9.50798 0 0)
+(9.6849 0 0)
+(9.84551 0 0)
+(9.99287 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(6.43451 0 0)
+(7.53048 0 0)
+(8.10471 0 0)
+(8.50836 0 0)
+(8.82419 0 0)
+(9.08581 0 0)
+(9.3104 0 0)
+(9.50796 0 0)
+(9.68488 0 0)
+(9.84549 0 0)
+(9.99285 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(6.43457 0 0)
+(7.53049 0 0)
+(8.1047 0 0)
+(8.50835 0 0)
+(8.82418 0 0)
+(9.0858 0 0)
+(9.31038 0 0)
+(9.50795 0 0)
+(9.68487 0 0)
+(9.84547 0 0)
+(9.99283 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(6.43463 0 0)
+(7.5305 0 0)
+(8.10471 0 0)
+(8.50835 0 0)
+(8.82417 0 0)
+(9.08579 0 0)
+(9.31037 0 0)
+(9.50794 0 0)
+(9.68486 0 0)
+(9.84546 0 0)
+(9.99282 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(6.4347 0 0)
+(7.53052 0 0)
+(8.10472 0 0)
+(8.50835 0 0)
+(8.82418 0 0)
+(9.08579 0 0)
+(9.31037 0 0)
+(9.50794 0 0)
+(9.68485 0 0)
+(9.84546 0 0)
+(9.99281 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(6.5753 0 0)
+(7.62622 0 0)
+(8.14368 0 0)
+(8.52948 0 0)
+(8.83748 0 0)
+(9.09496 0 0)
+(9.3171 0 0)
+(9.51308 0 0)
+(9.68893 0 0)
+(9.84876 0 0)
+(9.99555 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(7.43748 0 0)
+(7.83261 0 0)
+(8.24158 0 0)
+(8.58549 0 0)
+(8.87363 0 0)
+(9.12025 0 0)
+(9.3358 0 0)
+(9.5275 0 0)
+(9.7004 0 0)
+(9.85812 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(7.86493 0 0)
+(8.09142 0 0)
+(8.39037 0 0)
+(8.67793 0 0)
+(8.93577 0 0)
+(9.16469 0 0)
+(9.36913 0 0)
+(9.55342 0 0)
+(9.72115 0 0)
+(9.87511 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(8.17827 0 0)
+(8.36098 0 0)
+(8.57338 0 0)
+(8.80285 0 0)
+(9.02432 0 0)
+(9.23004 0 0)
+(9.41911 0 0)
+(9.5928 0 0)
+(9.75294 0 0)
+(9.90132 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(8.47643 0 0)
+(8.62412 0 0)
+(8.77502 0 0)
+(8.95313 0 0)
+(9.13716 0 0)
+(9.31653 0 0)
+(9.48693 0 0)
+(9.64717 0 0)
+(9.79739 0 0)
+(9.93827 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(8.7548 0 0)
+(8.86679 0 0)
+(8.98456 0 0)
+(9.12107 0 0)
+(9.27046 0 0)
+(9.42286 0 0)
+(9.57276 0 0)
+(9.71741 0 0)
+(9.85569 0 0)
+(9.98731 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(9.01524 0 0)
+(9.09486 0 0)
+(9.19581 0 0)
+(9.30019 0 0)
+(9.4197 0 0)
+(9.54663 0 0)
+(9.6757 0 0)
+(9.80362 0 0)
+(9.92852 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(9.22567 0 0)
+(9.28652 0 0)
+(9.37181 0 0)
+(9.45869 0 0)
+(9.55695 0 0)
+(9.66434 0 0)
+(9.77638 0 0)
+(9.88989 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(9.40308 0 0)
+(9.45194 0 0)
+(9.52141 0 0)
+(9.60642 0 0)
+(9.68309 0 0)
+(9.77533 0 0)
+(9.87349 0 0)
+(9.97473 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(9.58814 0 0)
+(9.62718 0 0)
+(9.68323 0 0)
+(9.75302 0 0)
+(9.82306 0 0)
+(9.90103 0 0)
+(9.98557 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(9.78055 0 0)
+(9.81161 0 0)
+(9.85646 0 0)
+(9.91308 0 0)
+(9.97917 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(9.98003 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(9.99746 0 0)
+(9.99013 0 0)
+(9.9827 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(9.99671 0 0)
+(9.99224 0 0)
+(9.98772 0 0)
+(9.98315 0 0)
+(9.97853 0 0)
+(9.97386 0 0)
+(9.96915 0 0)
+(9.96438 0 0)
+(9.95957 0 0)
+(9.9547 0 0)
+(9.94978 0 0)
+(9.9448 0 0)
+(9.93977 0 0)
+(9.93469 0 0)
+(9.92955 0 0)
+(9.92436 0 0)
+(9.91911 0 0)
+(9.9138 0 0)
+(9.90843 0 0)
+(9.90301 0 0)
+(9.89752 0 0)
+(9.89197 0 0)
+(9.88636 0 0)
+(9.88069 0 0)
+(9.87495 0 0)
+(9.86915 0 0)
+(9.86328 0 0)
+(9.85735 0 0)
+(9.85134 0 0)
+(9.84527 0 0)
+(9.83913 0 0)
+(9.83292 0 0)
+(9.82663 0 0)
+(9.82027 0 0)
+(9.81384 0 0)
+(9.80733 0 0)
+(9.80075 0 0)
+(9.79408 0 0)
+(9.78734 0 0)
+(9.78052 0 0)
+(9.77361 0 0)
+(9.76662 0 0)
+(9.75955 0 0)
+(9.75239 0 0)
+(9.74514 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(9.99872 0 0)
+(9.99682 0 0)
+(9.9949 0 0)
+(9.99296 0 0)
+(9.991 0 0)
+(9.98903 0 0)
+(9.98704 0 0)
+(9.98503 0 0)
+(9.983 0 0)
+(9.98096 0 0)
+(9.97889 0 0)
+(9.97681 0 0)
+(9.97471 0 0)
+(9.97259 0 0)
+(9.97045 0 0)
+(9.96829 0 0)
+(9.96611 0 0)
+(9.96392 0 0)
+(9.9617 0 0)
+(9.95946 0 0)
+(9.9572 0 0)
+(9.95492 0 0)
+(9.95262 0 0)
+(9.9503 0 0)
+(9.94796 0 0)
+(9.94559 0 0)
+(9.94321 0 0)
+(9.9408 0 0)
+(9.93837 0 0)
+(9.93591 0 0)
+(9.93344 0 0)
+(9.93094 0 0)
+(9.92842 0 0)
+(9.92587 0 0)
+(9.9233 0 0)
+(9.92071 0 0)
+(9.91809 0 0)
+(9.91545 0 0)
+(9.91278 0 0)
+(9.91009 0 0)
+(9.90737 0 0)
+(9.90463 0 0)
+(9.90186 0 0)
+(9.89907 0 0)
+(9.89624 0 0)
+(9.8934 0 0)
+(9.89052 0 0)
+(9.88762 0 0)
+(9.88469 0 0)
+(9.88173 0 0)
+(9.87874 0 0)
+(9.87572 0 0)
+(9.87268 0 0)
+(9.8696 0 0)
+(9.8665 0 0)
+(9.86336 0 0)
+(9.8602 0 0)
+(9.857 0 0)
+(9.85378 0 0)
+(9.85052 0 0)
+(9.84723 0 0)
+(9.84391 0 0)
+(9.84055 0 0)
+(9.83716 0 0)
+(9.83374 0 0)
+(9.83029 0 0)
+(9.8268 0 0)
+(9.82327 0 0)
+(9.81971 0 0)
+(9.81612 0 0)
+(9.81249 0 0)
+(9.80882 0 0)
+(9.80512 0 0)
+(9.80137 0 0)
+(9.79759 0 0)
+(9.79378 0 0)
+(9.78992 0 0)
+(9.78603 0 0)
+(9.78209 0 0)
+(9.77812 0 0)
+(9.7741 0 0)
+(9.77004 0 0)
+(9.76594 0 0)
+(9.7618 0 0)
+(9.75762 0 0)
+(9.75339 0 0)
+(9.74912 0 0)
+(9.7448 0 0)
+(9.74044 0 0)
+(9.73603 0 0)
+(9.73158 0 0)
+(9.72708 0 0)
+(9.72253 0 0)
+(9.71793 0 0)
+(9.71328 0 0)
+(9.70859 0 0)
+(9.70384 0 0)
+(9.69905 0 0)
+(9.6942 0 0)
+(9.6893 0 0)
+(9.68434 0 0)
+(9.67933 0 0)
+(9.67427 0 0)
+(9.66915 0 0)
+(9.66398 0 0)
+(9.65875 0 0)
+(9.65346 0 0)
+(9.64811 0 0)
+(9.6427 0 0)
+(9.63723 0 0)
+(9.6317 0 0)
+(9.62611 0 0)
+(9.62045 0 0)
+(9.61473 0 0)
+(9.60895 0 0)
+(9.60309 0 0)
+(9.59718 0 0)
+(9.59119 0 0)
+(9.58513 0 0)
+(9.57901 0 0)
+(9.57281 0 0)
+(9.56654 0 0)
+(9.56019 0 0)
+(9.55377 0 0)
+(9.54728 0 0)
+(9.5407 0 0)
+(9.53405 0 0)
+(9.52732 0 0)
+(9.52051 0 0)
+(9.51361 0 0)
+(9.50663 0 0)
+(9.49956 0 0)
+(9.80122 0 0)
+(9.79999 0 0)
+(9.79876 0 0)
+(9.79752 0 0)
+(9.79627 0 0)
+(9.795 0 0)
+(9.79373 0 0)
+(9.79244 0 0)
+(9.79115 0 0)
+(9.78984 0 0)
+(9.78852 0 0)
+(9.78719 0 0)
+(9.78585 0 0)
+(9.78449 0 0)
+(9.78313 0 0)
+(9.78175 0 0)
+(9.78036 0 0)
+(9.77896 0 0)
+(9.77755 0 0)
+(9.77612 0 0)
+(9.77469 0 0)
+(9.77324 0 0)
+(9.77177 0 0)
+(9.7703 0 0)
+(9.76881 0 0)
+(9.76731 0 0)
+(9.7658 0 0)
+(9.76427 0 0)
+(9.76273 0 0)
+(9.76117 0 0)
+(9.75961 0 0)
+(9.75803 0 0)
+(9.75643 0 0)
+(9.75482 0 0)
+(9.7532 0 0)
+(9.75156 0 0)
+(9.74991 0 0)
+(9.74824 0 0)
+(9.74656 0 0)
+(9.74486 0 0)
+(9.74315 0 0)
+(9.74143 0 0)
+(9.73969 0 0)
+(9.73793 0 0)
+(9.73616 0 0)
+(9.73437 0 0)
+(9.73257 0 0)
+(9.73075 0 0)
+(9.72891 0 0)
+(9.72706 0 0)
+(9.72519 0 0)
+(9.7233 0 0)
+(9.7214 0 0)
+(9.71948 0 0)
+(9.71754 0 0)
+(9.71559 0 0)
+(9.71361 0 0)
+(9.71162 0 0)
+(9.70962 0 0)
+(9.70759 0 0)
+(9.70555 0 0)
+(9.70348 0 0)
+(9.7014 0 0)
+(9.6993 0 0)
+(9.69718 0 0)
+(9.69504 0 0)
+(9.69289 0 0)
+(9.69071 0 0)
+(9.68851 0 0)
+(9.68629 0 0)
+(9.68405 0 0)
+(9.68179 0 0)
+(9.67952 0 0)
+(9.67721 0 0)
+(9.67489 0 0)
+(9.67255 0 0)
+(9.67018 0 0)
+(9.6678 0 0)
+(9.66539 0 0)
+(9.66296 0 0)
+(9.6605 0 0)
+(9.65803 0 0)
+(9.65553 0 0)
+(9.653 0 0)
+(9.65046 0 0)
+(9.64789 0 0)
+(9.64529 0 0)
+(9.64267 0 0)
+(9.64003 0 0)
+(9.63736 0 0)
+(9.63466 0 0)
+(9.63194 0 0)
+(9.6292 0 0)
+(9.62643 0 0)
+(9.62363 0 0)
+(9.6208 0 0)
+(9.61795 0 0)
+(9.61507 0 0)
+(9.61217 0 0)
+(9.60923 0 0)
+(9.60627 0 0)
+(9.60328 0 0)
+(9.60026 0 0)
+(9.59721 0 0)
+(9.59413 0 0)
+(9.59102 0 0)
+(9.58788 0 0)
+(9.58471 0 0)
+(9.58151 0 0)
+(9.57827 0 0)
+(9.57501 0 0)
+(9.57171 0 0)
+(9.56838 0 0)
+(9.56502 0 0)
+(9.56162 0 0)
+(9.5582 0 0)
+(9.55473 0 0)
+(9.55123 0 0)
+(9.5477 0 0)
+(9.54413 0 0)
+(9.54053 0 0)
+(9.53689 0 0)
+(9.53321 0 0)
+(9.5295 0 0)
+(9.52574 0 0)
+(9.52195 0 0)
+(9.51812 0 0)
+(9.51426 0 0)
+(9.51035 0 0)
+(9.5064 0 0)
+(9.50241 0 0)
+(9.49838 0 0)
+(9.49431 0 0)
+(9.4902 0 0)
+(9.48604 0 0)
+(9.48184 0 0)
+(9.4776 0 0)
+(9.47331 0 0)
+(9.46897 0 0)
+(9.46459 0 0)
+(9.46017 0 0)
+(9.4557 0 0)
+(9.45118 0 0)
+(9.44661 0 0)
+(9.44199 0 0)
+(9.43732 0 0)
+(9.4326 0 0)
+(9.42783 0 0)
+(9.42301 0 0)
+(9.41814 0 0)
+(9.41321 0 0)
+(9.40823 0 0)
+(9.4032 0 0)
+(9.39811 0 0)
+(9.39296 0 0)
+(9.38776 0 0)
+(9.38249 0 0)
+(9.37717 0 0)
+(9.37179 0 0)
+(9.36635 0 0)
+(9.36085 0 0)
+(9.35528 0 0)
+(9.34965 0 0)
+(9.34396 0 0)
+(9.3382 0 0)
+(9.33237 0 0)
+(9.32648 0 0)
+(9.32052 0 0)
+(9.31449 0 0)
+(9.30839 0 0)
+(9.30221 0 0)
+(9.29597 0 0)
+(9.28965 0 0)
+(9.28325 0 0)
+(9.27678 0 0)
+(9.27023 0 0)
+(9.2636 0 0)
+(9.25689 0 0)
+(9.2501 0 0)
+(9.24322 0 0)
+(9.51388 0 0)
+(9.51269 0 0)
+(9.5115 0 0)
+(9.51029 0 0)
+(9.50907 0 0)
+(9.50785 0 0)
+(9.50661 0 0)
+(9.50536 0 0)
+(9.5041 0 0)
+(9.50283 0 0)
+(9.50155 0 0)
+(9.50026 0 0)
+(9.49896 0 0)
+(9.49764 0 0)
+(9.49632 0 0)
+(9.49498 0 0)
+(9.49364 0 0)
+(9.49228 0 0)
+(9.4909 0 0)
+(9.48952 0 0)
+(9.48813 0 0)
+(9.48672 0 0)
+(9.4853 0 0)
+(9.48387 0 0)
+(9.48242 0 0)
+(9.48097 0 0)
+(9.4795 0 0)
+(9.47801 0 0)
+(9.47652 0 0)
+(9.47501 0 0)
+(9.47349 0 0)
+(9.47195 0 0)
+(9.4704 0 0)
+(9.46884 0 0)
+(9.46727 0 0)
+(9.46568 0 0)
+(9.46407 0 0)
+(9.46246 0 0)
+(9.46082 0 0)
+(9.45918 0 0)
+(9.45752 0 0)
+(9.45584 0 0)
+(9.45415 0 0)
+(9.45245 0 0)
+(9.45073 0 0)
+(9.44899 0 0)
+(9.44724 0 0)
+(9.44547 0 0)
+(9.44369 0 0)
+(9.44189 0 0)
+(9.44008 0 0)
+(9.43825 0 0)
+(9.4364 0 0)
+(9.43454 0 0)
+(9.43266 0 0)
+(9.43076 0 0)
+(9.42884 0 0)
+(9.42691 0 0)
+(9.42496 0 0)
+(9.423 0 0)
+(9.42101 0 0)
+(9.41901 0 0)
+(9.41699 0 0)
+(9.41495 0 0)
+(9.41289 0 0)
+(9.41082 0 0)
+(9.40872 0 0)
+(9.40661 0 0)
+(9.40448 0 0)
+(9.40232 0 0)
+(9.40015 0 0)
+(9.39796 0 0)
+(9.39574 0 0)
+(9.39351 0 0)
+(9.39126 0 0)
+(9.38898 0 0)
+(9.38669 0 0)
+(9.38437 0 0)
+(9.38203 0 0)
+(9.37967 0 0)
+(9.37729 0 0)
+(9.37489 0 0)
+(9.37246 0 0)
+(9.37001 0 0)
+(9.36754 0 0)
+(9.36504 0 0)
+(9.36252 0 0)
+(9.35998 0 0)
+(9.35741 0 0)
+(9.35482 0 0)
+(9.35221 0 0)
+(9.34957 0 0)
+(9.3469 0 0)
+(9.34421 0 0)
+(9.3415 0 0)
+(9.33875 0 0)
+(9.33599 0 0)
+(9.33319 0 0)
+(9.33037 0 0)
+(9.32752 0 0)
+(9.32464 0 0)
+(9.32174 0 0)
+(9.31881 0 0)
+(9.31585 0 0)
+(9.31286 0 0)
+(9.30984 0 0)
+(9.30679 0 0)
+(9.30372 0 0)
+(9.30061 0 0)
+(9.29747 0 0)
+(9.2943 0 0)
+(9.2911 0 0)
+(9.28787 0 0)
+(9.28461 0 0)
+(9.28131 0 0)
+(9.27798 0 0)
+(9.27462 0 0)
+(9.27122 0 0)
+(9.2678 0 0)
+(9.26433 0 0)
+(9.26083 0 0)
+(9.2573 0 0)
+(9.25373 0 0)
+(9.25012 0 0)
+(9.24648 0 0)
+(9.2428 0 0)
+(9.23909 0 0)
+(9.23533 0 0)
+(9.23154 0 0)
+(9.22771 0 0)
+(9.22383 0 0)
+(9.21992 0 0)
+(9.21597 0 0)
+(9.21198 0 0)
+(9.20794 0 0)
+(9.20387 0 0)
+(9.19975 0 0)
+(9.19558 0 0)
+(9.19138 0 0)
+(9.18713 0 0)
+(9.18283 0 0)
+(9.17849 0 0)
+(9.1741 0 0)
+(9.16966 0 0)
+(9.16518 0 0)
+(9.16065 0 0)
+(9.15607 0 0)
+(9.15144 0 0)
+(9.14676 0 0)
+(9.14203 0 0)
+(9.13725 0 0)
+(9.13242 0 0)
+(9.12753 0 0)
+(9.12259 0 0)
+(9.11759 0 0)
+(9.11254 0 0)
+(9.10743 0 0)
+(9.10227 0 0)
+(9.09704 0 0)
+(9.09176 0 0)
+(9.08642 0 0)
+(9.08102 0 0)
+(9.07555 0 0)
+(9.07003 0 0)
+(9.06444 0 0)
+(9.05878 0 0)
+(9.05306 0 0)
+(9.04727 0 0)
+(9.04142 0 0)
+(9.0355 0 0)
+(9.02951 0 0)
+(9.02344 0 0)
+(9.01731 0 0)
+(9.0111 0 0)
+(9.00482 0 0)
+(8.99846 0 0)
+(8.99202 0 0)
+(8.98551 0 0)
+(8.97892 0 0)
+(8.97224 0 0)
+(9.20498 0 0)
+(9.20383 0 0)
+(9.20267 0 0)
+(9.20151 0 0)
+(9.20033 0 0)
+(9.19914 0 0)
+(9.19795 0 0)
+(9.19674 0 0)
+(9.19552 0 0)
+(9.19429 0 0)
+(9.19305 0 0)
+(9.1918 0 0)
+(9.19054 0 0)
+(9.18927 0 0)
+(9.18799 0 0)
+(9.1867 0 0)
+(9.18539 0 0)
+(9.18408 0 0)
+(9.18275 0 0)
+(9.18141 0 0)
+(9.18006 0 0)
+(9.1787 0 0)
+(9.17733 0 0)
+(9.17594 0 0)
+(9.17454 0 0)
+(9.17314 0 0)
+(9.17171 0 0)
+(9.17028 0 0)
+(9.16883 0 0)
+(9.16737 0 0)
+(9.1659 0 0)
+(9.16442 0 0)
+(9.16292 0 0)
+(9.16141 0 0)
+(9.15988 0 0)
+(9.15834 0 0)
+(9.15679 0 0)
+(9.15523 0 0)
+(9.15365 0 0)
+(9.15206 0 0)
+(9.15045 0 0)
+(9.14883 0 0)
+(9.14719 0 0)
+(9.14554 0 0)
+(9.14388 0 0)
+(9.1422 0 0)
+(9.1405 0 0)
+(9.1388 0 0)
+(9.13707 0 0)
+(9.13533 0 0)
+(9.13358 0 0)
+(9.1318 0 0)
+(9.13002 0 0)
+(9.12821 0 0)
+(9.12639 0 0)
+(9.12456 0 0)
+(9.12271 0 0)
+(9.12084 0 0)
+(9.11895 0 0)
+(9.11705 0 0)
+(9.11513 0 0)
+(9.11319 0 0)
+(9.11124 0 0)
+(9.10927 0 0)
+(9.10727 0 0)
+(9.10527 0 0)
+(9.10324 0 0)
+(9.10119 0 0)
+(9.09913 0 0)
+(9.09705 0 0)
+(9.09494 0 0)
+(9.09282 0 0)
+(9.09068 0 0)
+(9.08852 0 0)
+(9.08634 0 0)
+(9.08414 0 0)
+(9.08192 0 0)
+(9.07968 0 0)
+(9.07741 0 0)
+(9.07513 0 0)
+(9.07283 0 0)
+(9.0705 0 0)
+(9.06815 0 0)
+(9.06578 0 0)
+(9.06339 0 0)
+(9.06098 0 0)
+(9.05854 0 0)
+(9.05608 0 0)
+(9.0536 0 0)
+(9.05109 0 0)
+(9.04856 0 0)
+(9.046 0 0)
+(9.04343 0 0)
+(9.04082 0 0)
+(9.03819 0 0)
+(9.03554 0 0)
+(9.03286 0 0)
+(9.03016 0 0)
+(9.02743 0 0)
+(9.02467 0 0)
+(9.02189 0 0)
+(9.01908 0 0)
+(9.01624 0 0)
+(9.01338 0 0)
+(9.01049 0 0)
+(9.00757 0 0)
+(9.00462 0 0)
+(9.00164 0 0)
+(8.99863 0 0)
+(8.9956 0 0)
+(8.99253 0 0)
+(8.98944 0 0)
+(8.98631 0 0)
+(8.98315 0 0)
+(8.97996 0 0)
+(8.97674 0 0)
+(8.97349 0 0)
+(8.9702 0 0)
+(8.96689 0 0)
+(8.96354 0 0)
+(8.96015 0 0)
+(8.95673 0 0)
+(8.95328 0 0)
+(8.94979 0 0)
+(8.94627 0 0)
+(8.94271 0 0)
+(8.93911 0 0)
+(8.93548 0 0)
+(8.93181 0 0)
+(8.9281 0 0)
+(8.92435 0 0)
+(8.92057 0 0)
+(8.91674 0 0)
+(8.91288 0 0)
+(8.90898 0 0)
+(8.90503 0 0)
+(8.90105 0 0)
+(8.89702 0 0)
+(8.89295 0 0)
+(8.88884 0 0)
+(8.88468 0 0)
+(8.88048 0 0)
+(8.87623 0 0)
+(8.87194 0 0)
+(8.8676 0 0)
+(8.86322 0 0)
+(8.85879 0 0)
+(8.85431 0 0)
+(8.84978 0 0)
+(8.84521 0 0)
+(8.84058 0 0)
+(8.8359 0 0)
+(8.83117 0 0)
+(8.82639 0 0)
+(8.82156 0 0)
+(8.81667 0 0)
+(8.81173 0 0)
+(8.80673 0 0)
+(8.80168 0 0)
+(8.79657 0 0)
+(8.7914 0 0)
+(8.78617 0 0)
+(8.78089 0 0)
+(8.77554 0 0)
+(8.77013 0 0)
+(8.76466 0 0)
+(8.75912 0 0)
+(8.75353 0 0)
+(8.74786 0 0)
+(8.74213 0 0)
+(8.73633 0 0)
+(8.73047 0 0)
+(8.72453 0 0)
+(8.71852 0 0)
+(8.71245 0 0)
+(8.70629 0 0)
+(8.70007 0 0)
+(8.69377 0 0)
+(8.68739 0 0)
+(8.68093 0 0)
+(8.86505 0 0)
+(8.86394 0 0)
+(8.86283 0 0)
+(8.86171 0 0)
+(8.86057 0 0)
+(8.85943 0 0)
+(8.85828 0 0)
+(8.85711 0 0)
+(8.85594 0 0)
+(8.85476 0 0)
+(8.85356 0 0)
+(8.85236 0 0)
+(8.85115 0 0)
+(8.84992 0 0)
+(8.84869 0 0)
+(8.84744 0 0)
+(8.84619 0 0)
+(8.84492 0 0)
+(8.84364 0 0)
+(8.84235 0 0)
+(8.84105 0 0)
+(8.83974 0 0)
+(8.83842 0 0)
+(8.83708 0 0)
+(8.83574 0 0)
+(8.83438 0 0)
+(8.83301 0 0)
+(8.83163 0 0)
+(8.83024 0 0)
+(8.82883 0 0)
+(8.82741 0 0)
+(8.82598 0 0)
+(8.82454 0 0)
+(8.82308 0 0)
+(8.82162 0 0)
+(8.82014 0 0)
+(8.81864 0 0)
+(8.81713 0 0)
+(8.81561 0 0)
+(8.81408 0 0)
+(8.81253 0 0)
+(8.81097 0 0)
+(8.8094 0 0)
+(8.80781 0 0)
+(8.8062 0 0)
+(8.80459 0 0)
+(8.80295 0 0)
+(8.80131 0 0)
+(8.79965 0 0)
+(8.79797 0 0)
+(8.79628 0 0)
+(8.79458 0 0)
+(8.79285 0 0)
+(8.79112 0 0)
+(8.78937 0 0)
+(8.7876 0 0)
+(8.78581 0 0)
+(8.78401 0 0)
+(8.7822 0 0)
+(8.78037 0 0)
+(8.77852 0 0)
+(8.77665 0 0)
+(8.77477 0 0)
+(8.77287 0 0)
+(8.77095 0 0)
+(8.76902 0 0)
+(8.76707 0 0)
+(8.7651 0 0)
+(8.76311 0 0)
+(8.7611 0 0)
+(8.75908 0 0)
+(8.75703 0 0)
+(8.75497 0 0)
+(8.75289 0 0)
+(8.75079 0 0)
+(8.74867 0 0)
+(8.74653 0 0)
+(8.74437 0 0)
+(8.74219 0 0)
+(8.74 0 0)
+(8.73778 0 0)
+(8.73554 0 0)
+(8.73327 0 0)
+(8.73099 0 0)
+(8.72869 0 0)
+(8.72636 0 0)
+(8.72402 0 0)
+(8.72165 0 0)
+(8.71926 0 0)
+(8.71684 0 0)
+(8.7144 0 0)
+(8.71194 0 0)
+(8.70946 0 0)
+(8.70695 0 0)
+(8.70442 0 0)
+(8.70187 0 0)
+(8.69929 0 0)
+(8.69668 0 0)
+(8.69406 0 0)
+(8.6914 0 0)
+(8.68872 0 0)
+(8.68601 0 0)
+(8.68328 0 0)
+(8.68052 0 0)
+(8.67774 0 0)
+(8.67493 0 0)
+(8.67209 0 0)
+(8.66922 0 0)
+(8.66632 0 0)
+(8.6634 0 0)
+(8.66045 0 0)
+(8.65747 0 0)
+(8.65445 0 0)
+(8.65141 0 0)
+(8.64834 0 0)
+(8.64524 0 0)
+(8.64211 0 0)
+(8.63894 0 0)
+(8.63575 0 0)
+(8.63252 0 0)
+(8.62926 0 0)
+(8.62597 0 0)
+(8.62264 0 0)
+(8.61928 0 0)
+(8.61589 0 0)
+(8.61246 0 0)
+(8.609 0 0)
+(8.6055 0 0)
+(8.60196 0 0)
+(8.59839 0 0)
+(8.59479 0 0)
+(8.59114 0 0)
+(8.58746 0 0)
+(8.58374 0 0)
+(8.57998 0 0)
+(8.57618 0 0)
+(8.57234 0 0)
+(8.56846 0 0)
+(8.56454 0 0)
+(8.56058 0 0)
+(8.55658 0 0)
+(8.55253 0 0)
+(8.54844 0 0)
+(8.54431 0 0)
+(8.54013 0 0)
+(8.53591 0 0)
+(8.53164 0 0)
+(8.52733 0 0)
+(8.52297 0 0)
+(8.51856 0 0)
+(8.51411 0 0)
+(8.5096 0 0)
+(8.50505 0 0)
+(8.50044 0 0)
+(8.49579 0 0)
+(8.49108 0 0)
+(8.48632 0 0)
+(8.48151 0 0)
+(8.47664 0 0)
+(8.47172 0 0)
+(8.46674 0 0)
+(8.46171 0 0)
+(8.45662 0 0)
+(8.45147 0 0)
+(8.44626 0 0)
+(8.44099 0 0)
+(8.43566 0 0)
+(8.43027 0 0)
+(8.42481 0 0)
+(8.41929 0 0)
+(8.41371 0 0)
+(8.40806 0 0)
+(8.40234 0 0)
+(8.39656 0 0)
+(8.3907 0 0)
+(8.38478 0 0)
+(8.37878 0 0)
+(8.37271 0 0)
+(8.36657 0 0)
+(8.36035 0 0)
+(8.47786 0 0)
+(8.4768 0 0)
+(8.47573 0 0)
+(8.47466 0 0)
+(8.47357 0 0)
+(8.47248 0 0)
+(8.47138 0 0)
+(8.47027 0 0)
+(8.46914 0 0)
+(8.46801 0 0)
+(8.46687 0 0)
+(8.46572 0 0)
+(8.46456 0 0)
+(8.46339 0 0)
+(8.46221 0 0)
+(8.46102 0 0)
+(8.45982 0 0)
+(8.45861 0 0)
+(8.45738 0 0)
+(8.45615 0 0)
+(8.45491 0 0)
+(8.45365 0 0)
+(8.45239 0 0)
+(8.45111 0 0)
+(8.44983 0 0)
+(8.44853 0 0)
+(8.44722 0 0)
+(8.4459 0 0)
+(8.44456 0 0)
+(8.44322 0 0)
+(8.44186 0 0)
+(8.4405 0 0)
+(8.43912 0 0)
+(8.43772 0 0)
+(8.43632 0 0)
+(8.4349 0 0)
+(8.43347 0 0)
+(8.43203 0 0)
+(8.43058 0 0)
+(8.42911 0 0)
+(8.42763 0 0)
+(8.42614 0 0)
+(8.42463 0 0)
+(8.42311 0 0)
+(8.42158 0 0)
+(8.42003 0 0)
+(8.41847 0 0)
+(8.4169 0 0)
+(8.41531 0 0)
+(8.41371 0 0)
+(8.41209 0 0)
+(8.41046 0 0)
+(8.40881 0 0)
+(8.40715 0 0)
+(8.40548 0 0)
+(8.40379 0 0)
+(8.40208 0 0)
+(8.40036 0 0)
+(8.39862 0 0)
+(8.39687 0 0)
+(8.3951 0 0)
+(8.39332 0 0)
+(8.39152 0 0)
+(8.3897 0 0)
+(8.38787 0 0)
+(8.38602 0 0)
+(8.38415 0 0)
+(8.38227 0 0)
+(8.38037 0 0)
+(8.37845 0 0)
+(8.37651 0 0)
+(8.37456 0 0)
+(8.37259 0 0)
+(8.3706 0 0)
+(8.36859 0 0)
+(8.36656 0 0)
+(8.36452 0 0)
+(8.36245 0 0)
+(8.36037 0 0)
+(8.35826 0 0)
+(8.35614 0 0)
+(8.354 0 0)
+(8.35184 0 0)
+(8.34965 0 0)
+(8.34745 0 0)
+(8.34523 0 0)
+(8.34298 0 0)
+(8.34072 0 0)
+(8.33843 0 0)
+(8.33612 0 0)
+(8.33379 0 0)
+(8.33144 0 0)
+(8.32906 0 0)
+(8.32667 0 0)
+(8.32425 0 0)
+(8.3218 0 0)
+(8.31934 0 0)
+(8.31684 0 0)
+(8.31433 0 0)
+(8.31179 0 0)
+(8.30923 0 0)
+(8.30664 0 0)
+(8.30403 0 0)
+(8.30139 0 0)
+(8.29873 0 0)
+(8.29604 0 0)
+(8.29332 0 0)
+(8.29058 0 0)
+(8.28781 0 0)
+(8.28501 0 0)
+(8.28219 0 0)
+(8.27934 0 0)
+(8.27646 0 0)
+(8.27355 0 0)
+(8.27061 0 0)
+(8.26765 0 0)
+(8.26465 0 0)
+(8.26163 0 0)
+(8.25857 0 0)
+(8.25548 0 0)
+(8.25237 0 0)
+(8.24922 0 0)
+(8.24604 0 0)
+(8.24282 0 0)
+(8.23958 0 0)
+(8.2363 0 0)
+(8.23299 0 0)
+(8.22964 0 0)
+(8.22626 0 0)
+(8.22285 0 0)
+(8.2194 0 0)
+(8.21591 0 0)
+(8.21239 0 0)
+(8.20883 0 0)
+(8.20523 0 0)
+(8.2016 0 0)
+(8.19793 0 0)
+(8.19422 0 0)
+(8.19047 0 0)
+(8.18668 0 0)
+(8.18286 0 0)
+(8.17899 0 0)
+(8.17508 0 0)
+(8.17113 0 0)
+(8.16713 0 0)
+(8.16309 0 0)
+(8.15901 0 0)
+(8.15489 0 0)
+(8.15072 0 0)
+(8.1465 0 0)
+(8.14224 0 0)
+(8.13793 0 0)
+(8.13358 0 0)
+(8.12917 0 0)
+(8.12472 0 0)
+(8.12022 0 0)
+(8.11567 0 0)
+(8.11107 0 0)
+(8.10641 0 0)
+(8.10171 0 0)
+(8.09695 0 0)
+(8.09213 0 0)
+(8.08726 0 0)
+(8.08234 0 0)
+(8.07736 0 0)
+(8.07232 0 0)
+(8.06722 0 0)
+(8.06206 0 0)
+(8.05685 0 0)
+(8.05157 0 0)
+(8.04623 0 0)
+(8.04083 0 0)
+(8.03536 0 0)
+(8.02983 0 0)
+(8.02423 0 0)
+(8.01856 0 0)
+(8.01283 0 0)
+(8.00702 0 0)
+(8.00115 0 0)
+(7.9952 0 0)
+(8.01163 0 0)
+(8.01064 0 0)
+(8.00963 0 0)
+(8.00861 0 0)
+(8.00759 0 0)
+(8.00656 0 0)
+(8.00551 0 0)
+(8.00446 0 0)
+(8.0034 0 0)
+(8.00233 0 0)
+(8.00126 0 0)
+(8.00017 0 0)
+(7.99907 0 0)
+(7.99796 0 0)
+(7.99685 0 0)
+(7.99572 0 0)
+(7.99459 0 0)
+(7.99344 0 0)
+(7.99229 0 0)
+(7.99112 0 0)
+(7.98995 0 0)
+(7.98876 0 0)
+(7.98757 0 0)
+(7.98636 0 0)
+(7.98515 0 0)
+(7.98392 0 0)
+(7.98268 0 0)
+(7.98143 0 0)
+(7.98017 0 0)
+(7.9789 0 0)
+(7.97762 0 0)
+(7.97633 0 0)
+(7.97503 0 0)
+(7.97371 0 0)
+(7.97238 0 0)
+(7.97105 0 0)
+(7.96969 0 0)
+(7.96833 0 0)
+(7.96696 0 0)
+(7.96557 0 0)
+(7.96417 0 0)
+(7.96276 0 0)
+(7.96134 0 0)
+(7.9599 0 0)
+(7.95845 0 0)
+(7.95699 0 0)
+(7.95552 0 0)
+(7.95403 0 0)
+(7.95253 0 0)
+(7.95102 0 0)
+(7.94949 0 0)
+(7.94795 0 0)
+(7.94639 0 0)
+(7.94482 0 0)
+(7.94324 0 0)
+(7.94164 0 0)
+(7.94003 0 0)
+(7.9384 0 0)
+(7.93676 0 0)
+(7.9351 0 0)
+(7.93343 0 0)
+(7.93175 0 0)
+(7.93005 0 0)
+(7.92833 0 0)
+(7.9266 0 0)
+(7.92485 0 0)
+(7.92308 0 0)
+(7.9213 0 0)
+(7.91951 0 0)
+(7.91769 0 0)
+(7.91586 0 0)
+(7.91402 0 0)
+(7.91215 0 0)
+(7.91027 0 0)
+(7.90838 0 0)
+(7.90646 0 0)
+(7.90453 0 0)
+(7.90258 0 0)
+(7.90061 0 0)
+(7.89862 0 0)
+(7.89661 0 0)
+(7.89459 0 0)
+(7.89255 0 0)
+(7.89048 0 0)
+(7.8884 0 0)
+(7.8863 0 0)
+(7.88418 0 0)
+(7.88204 0 0)
+(7.87988 0 0)
+(7.8777 0 0)
+(7.87549 0 0)
+(7.87327 0 0)
+(7.87103 0 0)
+(7.86876 0 0)
+(7.86647 0 0)
+(7.86416 0 0)
+(7.86183 0 0)
+(7.85948 0 0)
+(7.8571 0 0)
+(7.8547 0 0)
+(7.85228 0 0)
+(7.84984 0 0)
+(7.84737 0 0)
+(7.84487 0 0)
+(7.84236 0 0)
+(7.83982 0 0)
+(7.83725 0 0)
+(7.83466 0 0)
+(7.83204 0 0)
+(7.8294 0 0)
+(7.82673 0 0)
+(7.82403 0 0)
+(7.82131 0 0)
+(7.81857 0 0)
+(7.81579 0 0)
+(7.81299 0 0)
+(7.81016 0 0)
+(7.8073 0 0)
+(7.80441 0 0)
+(7.80149 0 0)
+(7.79855 0 0)
+(7.79557 0 0)
+(7.79256 0 0)
+(7.78953 0 0)
+(7.78646 0 0)
+(7.78336 0 0)
+(7.78023 0 0)
+(7.77707 0 0)
+(7.77388 0 0)
+(7.77065 0 0)
+(7.76739 0 0)
+(7.7641 0 0)
+(7.76077 0 0)
+(7.7574 0 0)
+(7.75401 0 0)
+(7.75057 0 0)
+(7.7471 0 0)
+(7.7436 0 0)
+(7.74006 0 0)
+(7.73648 0 0)
+(7.73286 0 0)
+(7.7292 0 0)
+(7.72551 0 0)
+(7.72177 0 0)
+(7.718 0 0)
+(7.71418 0 0)
+(7.71033 0 0)
+(7.70643 0 0)
+(7.70249 0 0)
+(7.6985 0 0)
+(7.69448 0 0)
+(7.69041 0 0)
+(7.68629 0 0)
+(7.68213 0 0)
+(7.67792 0 0)
+(7.67367 0 0)
+(7.66937 0 0)
+(7.66502 0 0)
+(7.66062 0 0)
+(7.65617 0 0)
+(7.65167 0 0)
+(7.64712 0 0)
+(7.64252 0 0)
+(7.63787 0 0)
+(7.63316 0 0)
+(7.6284 0 0)
+(7.62358 0 0)
+(7.61871 0 0)
+(7.61378 0 0)
+(7.60879 0 0)
+(7.60374 0 0)
+(7.59864 0 0)
+(7.59347 0 0)
+(7.58824 0 0)
+(7.58295 0 0)
+(7.5776 0 0)
+(7.57218 0 0)
+(7.5667 0 0)
+(7.56114 0 0)
+(7.55552 0 0)
+(7.38827 0 0)
+(7.38735 0 0)
+(7.38642 0 0)
+(7.38549 0 0)
+(7.38454 0 0)
+(7.38359 0 0)
+(7.38263 0 0)
+(7.38166 0 0)
+(7.38068 0 0)
+(7.37969 0 0)
+(7.3787 0 0)
+(7.3777 0 0)
+(7.37669 0 0)
+(7.37567 0 0)
+(7.37464 0 0)
+(7.3736 0 0)
+(7.37255 0 0)
+(7.3715 0 0)
+(7.37043 0 0)
+(7.36936 0 0)
+(7.36827 0 0)
+(7.36718 0 0)
+(7.36608 0 0)
+(7.36497 0 0)
+(7.36384 0 0)
+(7.36271 0 0)
+(7.36157 0 0)
+(7.36042 0 0)
+(7.35926 0 0)
+(7.35809 0 0)
+(7.35691 0 0)
+(7.35571 0 0)
+(7.35451 0 0)
+(7.3533 0 0)
+(7.35207 0 0)
+(7.35084 0 0)
+(7.3496 0 0)
+(7.34834 0 0)
+(7.34707 0 0)
+(7.34579 0 0)
+(7.3445 0 0)
+(7.3432 0 0)
+(7.34189 0 0)
+(7.34057 0 0)
+(7.33923 0 0)
+(7.33788 0 0)
+(7.33652 0 0)
+(7.33515 0 0)
+(7.33377 0 0)
+(7.33237 0 0)
+(7.33096 0 0)
+(7.32954 0 0)
+(7.3281 0 0)
+(7.32666 0 0)
+(7.3252 0 0)
+(7.32372 0 0)
+(7.32224 0 0)
+(7.32074 0 0)
+(7.31922 0 0)
+(7.3177 0 0)
+(7.31616 0 0)
+(7.3146 0 0)
+(7.31303 0 0)
+(7.31145 0 0)
+(7.30985 0 0)
+(7.30824 0 0)
+(7.30661 0 0)
+(7.30497 0 0)
+(7.30331 0 0)
+(7.30164 0 0)
+(7.29995 0 0)
+(7.29825 0 0)
+(7.29653 0 0)
+(7.2948 0 0)
+(7.29305 0 0)
+(7.29128 0 0)
+(7.2895 0 0)
+(7.2877 0 0)
+(7.28588 0 0)
+(7.28405 0 0)
+(7.2822 0 0)
+(7.28033 0 0)
+(7.27845 0 0)
+(7.27655 0 0)
+(7.27463 0 0)
+(7.27269 0 0)
+(7.27073 0 0)
+(7.26876 0 0)
+(7.26677 0 0)
+(7.26475 0 0)
+(7.26272 0 0)
+(7.26067 0 0)
+(7.2586 0 0)
+(7.25651 0 0)
+(7.2544 0 0)
+(7.25227 0 0)
+(7.25012 0 0)
+(7.24795 0 0)
+(7.24576 0 0)
+(7.24355 0 0)
+(7.24132 0 0)
+(7.23906 0 0)
+(7.23679 0 0)
+(7.23449 0 0)
+(7.23217 0 0)
+(7.22982 0 0)
+(7.22745 0 0)
+(7.22506 0 0)
+(7.22265 0 0)
+(7.22021 0 0)
+(7.21775 0 0)
+(7.21527 0 0)
+(7.21276 0 0)
+(7.21022 0 0)
+(7.20767 0 0)
+(7.20508 0 0)
+(7.20247 0 0)
+(7.19983 0 0)
+(7.19717 0 0)
+(7.19448 0 0)
+(7.19176 0 0)
+(7.18902 0 0)
+(7.18625 0 0)
+(7.18345 0 0)
+(7.18062 0 0)
+(7.17776 0 0)
+(7.17487 0 0)
+(7.17196 0 0)
+(7.16901 0 0)
+(7.16604 0 0)
+(7.16303 0 0)
+(7.15999 0 0)
+(7.15692 0 0)
+(7.15382 0 0)
+(7.15069 0 0)
+(7.14752 0 0)
+(7.14432 0 0)
+(7.14109 0 0)
+(7.13782 0 0)
+(7.13452 0 0)
+(7.13119 0 0)
+(7.12782 0 0)
+(7.12441 0 0)
+(7.12096 0 0)
+(7.11748 0 0)
+(7.11396 0 0)
+(7.11041 0 0)
+(7.10681 0 0)
+(7.10318 0 0)
+(7.09951 0 0)
+(7.09579 0 0)
+(7.09204 0 0)
+(7.08824 0 0)
+(7.0844 0 0)
+(7.08052 0 0)
+(7.0766 0 0)
+(7.07263 0 0)
+(7.06862 0 0)
+(7.06457 0 0)
+(7.06047 0 0)
+(7.05632 0 0)
+(7.05212 0 0)
+(7.04788 0 0)
+(7.04359 0 0)
+(7.03925 0 0)
+(7.03485 0 0)
+(7.03041 0 0)
+(7.02592 0 0)
+(7.02137 0 0)
+(7.01677 0 0)
+(7.01212 0 0)
+(7.00741 0 0)
+(7.00265 0 0)
+(6.99783 0 0)
+(6.99295 0 0)
+(6.98801 0 0)
+(6.98301 0 0)
+(6.97795 0 0)
+(6.97283 0 0)
+(6.96765 0 0)
+(6.27914 0 0)
+(6.27836 0 0)
+(6.27757 0 0)
+(6.27678 0 0)
+(6.27597 0 0)
+(6.27516 0 0)
+(6.27435 0 0)
+(6.27352 0 0)
+(6.27269 0 0)
+(6.27185 0 0)
+(6.27101 0 0)
+(6.27016 0 0)
+(6.2693 0 0)
+(6.26843 0 0)
+(6.26756 0 0)
+(6.26667 0 0)
+(6.26578 0 0)
+(6.26489 0 0)
+(6.26398 0 0)
+(6.26307 0 0)
+(6.26215 0 0)
+(6.26122 0 0)
+(6.26028 0 0)
+(6.25934 0 0)
+(6.25838 0 0)
+(6.25742 0 0)
+(6.25645 0 0)
+(6.25547 0 0)
+(6.25449 0 0)
+(6.25349 0 0)
+(6.25249 0 0)
+(6.25147 0 0)
+(6.25045 0 0)
+(6.24942 0 0)
+(6.24838 0 0)
+(6.24733 0 0)
+(6.24627 0 0)
+(6.24521 0 0)
+(6.24413 0 0)
+(6.24304 0 0)
+(6.24195 0 0)
+(6.24084 0 0)
+(6.23972 0 0)
+(6.2386 0 0)
+(6.23746 0 0)
+(6.23632 0 0)
+(6.23516 0 0)
+(6.234 0 0)
+(6.23282 0 0)
+(6.23163 0 0)
+(6.23044 0 0)
+(6.22923 0 0)
+(6.22801 0 0)
+(6.22678 0 0)
+(6.22554 0 0)
+(6.22429 0 0)
+(6.22302 0 0)
+(6.22175 0 0)
+(6.22046 0 0)
+(6.21916 0 0)
+(6.21785 0 0)
+(6.21653 0 0)
+(6.2152 0 0)
+(6.21385 0 0)
+(6.21249 0 0)
+(6.21112 0 0)
+(6.20974 0 0)
+(6.20835 0 0)
+(6.20694 0 0)
+(6.20552 0 0)
+(6.20408 0 0)
+(6.20264 0 0)
+(6.20118 0 0)
+(6.1997 0 0)
+(6.19821 0 0)
+(6.19671 0 0)
+(6.1952 0 0)
+(6.19367 0 0)
+(6.19213 0 0)
+(6.19057 0 0)
+(6.189 0 0)
+(6.18741 0 0)
+(6.18581 0 0)
+(6.18419 0 0)
+(6.18256 0 0)
+(6.18091 0 0)
+(6.17925 0 0)
+(6.17757 0 0)
+(6.17588 0 0)
+(6.17417 0 0)
+(6.17244 0 0)
+(6.1707 0 0)
+(6.16894 0 0)
+(6.16716 0 0)
+(6.16537 0 0)
+(6.16356 0 0)
+(6.16174 0 0)
+(6.15989 0 0)
+(6.15803 0 0)
+(6.15615 0 0)
+(6.15425 0 0)
+(6.15233 0 0)
+(6.1504 0 0)
+(6.14844 0 0)
+(6.14647 0 0)
+(6.14448 0 0)
+(6.14247 0 0)
+(6.14044 0 0)
+(6.13839 0 0)
+(6.13632 0 0)
+(6.13422 0 0)
+(6.13211 0 0)
+(6.12998 0 0)
+(6.12782 0 0)
+(6.12565 0 0)
+(6.12345 0 0)
+(6.12123 0 0)
+(6.11899 0 0)
+(6.11673 0 0)
+(6.11444 0 0)
+(6.11213 0 0)
+(6.1098 0 0)
+(6.10745 0 0)
+(6.10507 0 0)
+(6.10266 0 0)
+(6.10023 0 0)
+(6.09778 0 0)
+(6.0953 0 0)
+(6.0928 0 0)
+(6.09027 0 0)
+(6.08772 0 0)
+(6.08513 0 0)
+(6.08253 0 0)
+(6.07989 0 0)
+(6.07723 0 0)
+(6.07454 0 0)
+(6.07182 0 0)
+(6.06907 0 0)
+(6.06629 0 0)
+(6.06349 0 0)
+(6.06065 0 0)
+(6.05779 0 0)
+(6.05489 0 0)
+(6.05196 0 0)
+(6.049 0 0)
+(6.04601 0 0)
+(6.04299 0 0)
+(6.03994 0 0)
+(6.03685 0 0)
+(6.03373 0 0)
+(6.03057 0 0)
+(6.02738 0 0)
+(6.02415 0 0)
+(6.02089 0 0)
+(6.0176 0 0)
+(6.01426 0 0)
+(6.01089 0 0)
+(6.00748 0 0)
+(6.00403 0 0)
+(6.00055 0 0)
+(5.99702 0 0)
+(5.99346 0 0)
+(5.98985 0 0)
+(5.9862 0 0)
+(5.98251 0 0)
+(5.97878 0 0)
+(5.97501 0 0)
+(5.97119 0 0)
+(5.96732 0 0)
+(5.96341 0 0)
+(5.95946 0 0)
+(5.95546 0 0)
+(5.95141 0 0)
+(5.94731 0 0)
+(5.94316 0 0)
+(5.93897 0 0)
+(5.93472 0 0)
+(5.93042 0 0)
+(5.92607 0 0)
+(5.92167 0 0)
+(6.97468 0 0)
+(6.96493 0 0)
+(6.95471 0 0)
+(6.944 0 0)
+(6.93276 0 0)
+(6.92097 0 0)
+(6.90859 0 0)
+(6.89559 0 0)
+(6.88193 0 0)
+(6.86756 0 0)
+(6.85244 0 0)
+(6.83651 0 0)
+(6.81972 0 0)
+(6.80202 0 0)
+(6.78332 0 0)
+(6.76357 0 0)
+(6.74268 0 0)
+(6.72055 0 0)
+(6.69709 0 0)
+(6.67219 0 0)
+(6.64571 0 0)
+(6.61751 0 0)
+(6.58743 0 0)
+(6.55529 0 0)
+(6.52086 0 0)
+(8.16611 0 0)
+(8.15468 0 0)
+(8.1427 0 0)
+(8.13014 0 0)
+(8.11697 0 0)
+(8.10315 0 0)
+(8.08863 0 0)
+(8.07338 0 0)
+(8.05735 0 0)
+(8.04049 0 0)
+(8.02275 0 0)
+(8.00406 0 0)
+(7.98436 0 0)
+(7.96358 0 0)
+(7.94163 0 0)
+(7.91844 0 0)
+(7.89389 0 0)
+(7.8679 0 0)
+(7.84033 0 0)
+(7.81105 0 0)
+(7.77992 0 0)
+(7.74675 0 0)
+(7.71135 0 0)
+(7.67351 0 0)
+(7.63296 0 0)
+(8.78438 0 0)
+(8.77209 0 0)
+(8.75921 0 0)
+(8.74571 0 0)
+(8.73154 0 0)
+(8.71668 0 0)
+(8.70108 0 0)
+(8.68469 0 0)
+(8.66746 0 0)
+(8.64934 0 0)
+(8.63026 0 0)
+(8.61018 0 0)
+(8.589 0 0)
+(8.56667 0 0)
+(8.54309 0 0)
+(8.51816 0 0)
+(8.4918 0 0)
+(8.46387 0 0)
+(8.43426 0 0)
+(8.40281 0 0)
+(8.36937 0 0)
+(8.33375 0 0)
+(8.29575 0 0)
+(8.25512 0 0)
+(8.21159 0 0)
+(9.21696 0 0)
+(9.20407 0 0)
+(9.19056 0 0)
+(9.17639 0 0)
+(9.16154 0 0)
+(9.14595 0 0)
+(9.12958 0 0)
+(9.11239 0 0)
+(9.09431 0 0)
+(9.07531 0 0)
+(9.0553 0 0)
+(9.03423 0 0)
+(9.01203 0 0)
+(8.98861 0 0)
+(8.96387 0 0)
+(8.93774 0 0)
+(8.91009 0 0)
+(8.8808 0 0)
+(8.84975 0 0)
+(8.81678 0 0)
+(8.78172 0 0)
+(8.74437 0 0)
+(8.70453 0 0)
+(8.66194 0 0)
+(8.61632 0 0)
+(9.5539 0 0)
+(9.54053 0 0)
+(9.52653 0 0)
+(9.51185 0 0)
+(9.49645 0 0)
+(9.4803 0 0)
+(9.46333 0 0)
+(9.44551 0 0)
+(9.42678 0 0)
+(9.40709 0 0)
+(9.38636 0 0)
+(9.36452 0 0)
+(9.34151 0 0)
+(9.31724 0 0)
+(9.29161 0 0)
+(9.26452 0 0)
+(9.23587 0 0)
+(9.20553 0 0)
+(9.17335 0 0)
+(9.13918 0 0)
+(9.10286 0 0)
+(9.06417 0 0)
+(9.02289 0 0)
+(8.97877 0 0)
+(8.9315 0 0)
+(9.83176 0 0)
+(9.81801 0 0)
+(9.8036 0 0)
+(9.78849 0 0)
+(9.77265 0 0)
+(9.75602 0 0)
+(9.73857 0 0)
+(9.72023 0 0)
+(9.70096 0 0)
+(9.68069 0 0)
+(9.65936 0 0)
+(9.63689 0 0)
+(9.61322 0 0)
+(9.58824 0 0)
+(9.56187 0 0)
+(9.534 0 0)
+(9.50452 0 0)
+(9.4733 0 0)
+(9.4402 0 0)
+(9.40505 0 0)
+(9.36767 0 0)
+(9.32787 0 0)
+(9.28541 0 0)
+(9.24002 0 0)
+(9.1914 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(9.99166 0 0)
+(9.97378 0 0)
+(9.95501 0 0)
+(9.93527 0 0)
+(9.91451 0 0)
+(9.89267 0 0)
+(9.86966 0 0)
+(9.84542 0 0)
+(9.81984 0 0)
+(9.79284 0 0)
+(9.7643 0 0)
+(9.73411 0 0)
+(9.70214 0 0)
+(9.66824 0 0)
+(9.63225 0 0)
+(9.59398 0 0)
+(9.55323 0 0)
+(9.50975 0 0)
+(9.46328 0 0)
+(9.41349 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(9.99511 0 0)
+(9.96599 0 0)
+(9.93518 0 0)
+(9.90256 0 0)
+(9.86796 0 0)
+(9.83123 0 0)
+(9.79218 0 0)
+(9.75059 0 0)
+(9.70622 0 0)
+(9.65879 0 0)
+(9.60799 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(9.96888 0 0)
+(9.92654 0 0)
+(9.88138 0 0)
+(9.8331 0 0)
+(9.7814 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(9.99064 0 0)
+(9.93811 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(9.98707 0 0)
+(9.9508 0 0)
+(9.91225 0 0)
+(9.87122 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(10 0 0)
+(9.99144 0 0)
+(9.96868 0 0)
+(9.9447 0 0)
+(9.91942 0 0)
+(9.89273 0 0)
+(9.86454 0 0)
+(9.83473 0 0)
+(9.80317 0 0)
+(9.76973 0 0)
+(9.73423 0 0)
+(9.69652 0 0)
+(9.65638 0 0)
+(9.97313 0 0)
+(9.96124 0 0)
+(9.9488 0 0)
+(9.93577 0 0)
+(9.92213 0 0)
+(9.90783 0 0)
+(9.89285 0 0)
+(9.87714 0 0)
+(9.86065 0 0)
+(9.84335 0 0)
+(9.82518 0 0)
+(9.80608 0 0)
+(9.786 0 0)
+(9.76487 0 0)
+(9.74263 0 0)
+(9.71919 0 0)
+(9.69448 0 0)
+(9.66839 0 0)
+(9.64084 0 0)
+(9.6117 0 0)
+(9.58085 0 0)
+(9.54816 0 0)
+(9.51347 0 0)
+(9.4766 0 0)
+(9.43736 0 0)
+(9.73579 0 0)
+(9.72418 0 0)
+(9.71203 0 0)
+(9.69932 0 0)
+(9.686 0 0)
+(9.67204 0 0)
+(9.65741 0 0)
+(9.64207 0 0)
+(9.62598 0 0)
+(9.60909 0 0)
+(9.59134 0 0)
+(9.5727 0 0)
+(9.5531 0 0)
+(9.53247 0 0)
+(9.51075 0 0)
+(9.48787 0 0)
+(9.46374 0 0)
+(9.43827 0 0)
+(9.41137 0 0)
+(9.38292 0 0)
+(9.3528 0 0)
+(9.32088 0 0)
+(9.28701 0 0)
+(9.25101 0 0)
+(9.21269 0 0)
+(9.49044 0 0)
+(9.47913 0 0)
+(9.46729 0 0)
+(9.45489 0 0)
+(9.4419 0 0)
+(9.4283 0 0)
+(9.41404 0 0)
+(9.39908 0 0)
+(9.38339 0 0)
+(9.36692 0 0)
+(9.34962 0 0)
+(9.33145 0 0)
+(9.31234 0 0)
+(9.29223 0 0)
+(9.27105 0 0)
+(9.24874 0 0)
+(9.22522 0 0)
+(9.20039 0 0)
+(9.17416 0 0)
+(9.14642 0 0)
+(9.11705 0 0)
+(9.08593 0 0)
+(9.0529 0 0)
+(9.0178 0 0)
+(8.98044 0 0)
+(9.23434 0 0)
+(9.22333 0 0)
+(9.2118 0 0)
+(9.19974 0 0)
+(9.1871 0 0)
+(9.17386 0 0)
+(9.15998 0 0)
+(9.14543 0 0)
+(9.13016 0 0)
+(9.11414 0 0)
+(9.0973 0 0)
+(9.07961 0 0)
+(9.06101 0 0)
+(9.04144 0 0)
+(9.02084 0 0)
+(8.99913 0 0)
+(8.97623 0 0)
+(8.95206 0 0)
+(8.92654 0 0)
+(8.89954 0 0)
+(8.87096 0 0)
+(8.84066 0 0)
+(8.80851 0 0)
+(8.77435 0 0)
+(8.73798 0 0)
+(8.96361 0 0)
+(8.95292 0 0)
+(8.94173 0 0)
+(8.93002 0 0)
+(8.91775 0 0)
+(8.9049 0 0)
+(8.89142 0 0)
+(8.87729 0 0)
+(8.86247 0 0)
+(8.84691 0 0)
+(8.83057 0 0)
+(8.81339 0 0)
+(8.79534 0 0)
+(8.77633 0 0)
+(8.75633 0 0)
+(8.73525 0 0)
+(8.71302 0 0)
+(8.68955 0 0)
+(8.66476 0 0)
+(8.63855 0 0)
+(8.61079 0 0)
+(8.58138 0 0)
+(8.55016 0 0)
+(8.51697 0 0)
+(8.48166 0 0)
+(8.67256 0 0)
+(8.66221 0 0)
+(8.65139 0 0)
+(8.64005 0 0)
+(8.62818 0 0)
+(8.61574 0 0)
+(8.6027 0 0)
+(8.58903 0 0)
+(8.57468 0 0)
+(8.55963 0 0)
+(8.54381 0 0)
+(8.52719 0 0)
+(8.50971 0 0)
+(8.49132 0 0)
+(8.47196 0 0)
+(8.45155 0 0)
+(8.43004 0 0)
+(8.40732 0 0)
+(8.38333 0 0)
+(8.35795 0 0)
+(8.33109 0 0)
+(8.30261 0 0)
+(8.27238 0 0)
+(8.24026 0 0)
+(8.20606 0 0)
+(8.35226 0 0)
+(8.3423 0 0)
+(8.33187 0 0)
+(8.32095 0 0)
+(8.30951 0 0)
+(8.29753 0 0)
+(8.28497 0 0)
+(8.2718 0 0)
+(8.25798 0 0)
+(8.24347 0 0)
+(8.22823 0 0)
+(8.21222 0 0)
+(8.19538 0 0)
+(8.17766 0 0)
+(8.159 0 0)
+(8.13934 0 0)
+(8.11861 0 0)
+(8.09672 0 0)
+(8.0736 0 0)
+(8.04914 0 0)
+(8.02325 0 0)
+(7.9958 0 0)
+(7.96667 0 0)
+(7.9357 0 0)
+(7.90274 0 0)
+(7.98743 0 0)
+(7.9779 0 0)
+(7.96792 0 0)
+(7.95747 0 0)
+(7.94653 0 0)
+(7.93507 0 0)
+(7.92305 0 0)
+(7.91045 0 0)
+(7.89722 0 0)
+(7.88334 0 0)
+(7.86876 0 0)
+(7.85343 0 0)
+(7.83732 0 0)
+(7.82036 0 0)
+(7.80251 0 0)
+(7.78369 0 0)
+(7.76384 0 0)
+(7.74289 0 0)
+(7.72076 0 0)
+(7.69735 0 0)
+(7.67256 0 0)
+(7.64628 0 0)
+(7.61838 0 0)
+(7.58873 0 0)
+(7.55716 0 0)
+(7.54812 0 0)
+(7.5391 0 0)
+(7.52967 0 0)
+(7.51979 0 0)
+(7.50944 0 0)
+(7.4986 0 0)
+(7.48723 0 0)
+(7.47531 0 0)
+(7.4628 0 0)
+(7.44967 0 0)
+(7.43587 0 0)
+(7.42138 0 0)
+(7.40613 0 0)
+(7.39009 0 0)
+(7.37319 0 0)
+(7.35538 0 0)
+(7.3366 0 0)
+(7.31677 0 0)
+(7.29582 0 0)
+(7.27365 0 0)
+(7.25018 0 0)
+(7.2253 0 0)
+(7.19889 0 0)
+(7.17081 0 0)
+(7.14091 0 0)
+(6.96068 0 0)
+(6.95236 0 0)
+(6.94364 0 0)
+(6.93452 0 0)
+(6.92496 0 0)
+(6.91494 0 0)
+(6.90444 0 0)
+(6.89342 0 0)
+(6.88186 0 0)
+(6.86973 0 0)
+(6.85697 0 0)
+(6.84357 0 0)
+(6.82947 0 0)
+(6.81464 0 0)
+(6.79901 0 0)
+(6.78254 0 0)
+(6.76516 0 0)
+(6.74682 0 0)
+(6.72743 0 0)
+(6.70692 0 0)
+(6.6852 0 0)
+(6.66217 0 0)
+(6.63772 0 0)
+(6.61174 0 0)
+(6.58408 0 0)
+(5.9114 0 0)
+(5.90435 0 0)
+(5.89698 0 0)
+(5.88926 0 0)
+(5.88118 0 0)
+(5.87271 0 0)
+(5.86383 0 0)
+(5.85452 0 0)
+(5.84475 0 0)
+(5.8345 0 0)
+(5.82374 0 0)
+(5.81242 0 0)
+(5.80053 0 0)
+(5.78801 0 0)
+(5.77484 0 0)
+(5.76095 0 0)
+(5.74632 0 0)
+(5.73087 0 0)
+(5.71455 0 0)
+(5.69729 0 0)
+(5.67903 0 0)
+(5.65967 0 0)
+(5.63913 0 0)
+(5.61731 0 0)
+(5.59408 0 0)
+)
+;
 
 boundaryField
 {
-    inlet           
+    inlet
     {
         type            fixedValue;
         value           uniform (10 0 0);
     }
-
-    outlet          
+    outlet
     {
         type            zeroGradient;
     }
-
-    upperWall       
+    upperWall
     {
         type            fixedValue;
         value           uniform (0 0 0);
     }
-
-    lowerWall       
+    lowerWall
     {
         type            fixedValue;
         value           uniform (0 0 0);
     }
-
-    frontAndBack    
+    frontAndBack
     {
         type            empty;
     }
 }
 
+
 // ************************************************************************* //
diff --git a/tutorials/incompressible/simpleFoam/pitzDaily/0/epsilon b/tutorials/incompressible/simpleFoam/pitzDaily/0/epsilon
index 7128897fb1c4a2917f2161098a58811808356821..dc23ee0ade9986684a314f485283e8aa2fb4b1b6 100644
--- a/tutorials/incompressible/simpleFoam/pitzDaily/0/epsilon
+++ b/tutorials/incompressible/simpleFoam/pitzDaily/0/epsilon
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  1.6                                   |
+|  \\    /   O peration     | Version:  dev                                   |
 |   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
@@ -17,7 +17,12236 @@ FoamFile
 
 dimensions      [0 2 -3 0 0 0 0];
 
-internalField   uniform 14.855;
+internalField   nonuniform List<scalar> 
+12225
+(
+37429.9
+36320.4
+36320.4
+36320.4
+36320.4
+36320.4
+36320.4
+36320.4
+36320.4
+36320.4
+36320.4
+36320.4
+36320.4
+36320.4
+36320.4
+36320.4
+36320.4
+36356.1
+1342.56
+544.283
+544.283
+544.283
+544.283
+544.283
+544.283
+544.283
+544.283
+544.283
+544.283
+544.283
+544.283
+544.283
+544.283
+544.283
+544.283
+563.412
+1297.78
+291.948
+291.948
+291.948
+291.948
+291.948
+291.948
+291.948
+291.948
+291.948
+291.948
+291.948
+291.948
+291.948
+291.948
+291.948
+291.948
+304.877
+1325.04
+218.242
+218.242
+218.242
+218.242
+218.242
+218.242
+218.242
+218.242
+218.242
+218.242
+218.242
+218.242
+218.242
+218.242
+218.242
+218.242
+224.153
+1258.05
+178.54
+178.54
+178.54
+178.54
+178.54
+178.54
+178.54
+178.54
+178.54
+178.54
+178.54
+178.54
+178.54
+178.54
+178.54
+178.54
+181.565
+1094.14
+152.356
+152.356
+152.356
+152.356
+152.356
+152.356
+152.356
+152.356
+152.356
+152.356
+152.356
+152.356
+152.356
+152.356
+152.356
+152.356
+154.049
+865.035
+135.522
+135.522
+135.522
+135.522
+135.522
+135.522
+135.522
+135.522
+135.522
+135.522
+135.522
+135.522
+135.522
+135.522
+135.522
+135.522
+136.543
+639.644
+121.221
+121.221
+121.221
+121.221
+121.221
+121.221
+121.221
+121.221
+121.221
+121.221
+121.221
+121.221
+121.221
+121.221
+121.221
+121.221
+121.913
+447.635
+109.569
+109.569
+109.569
+109.569
+109.569
+109.569
+109.569
+109.569
+109.569
+109.569
+109.569
+109.569
+109.569
+109.569
+109.569
+109.569
+110.075
+275.879
+101.153
+101.153
+101.153
+101.153
+101.153
+101.153
+101.153
+101.153
+101.153
+101.153
+101.153
+101.153
+101.153
+101.153
+101.153
+101.153
+101.526
+147.799
+93.2857
+93.2857
+93.2857
+93.2857
+93.2857
+93.2857
+93.2857
+93.2857
+93.2857
+93.2857
+93.2857
+93.2857
+93.2857
+93.2857
+93.2857
+93.2857
+93.56
+19.3313
+18.6883
+18.6883
+18.6883
+18.6883
+18.6883
+18.6883
+18.6883
+18.6883
+18.6883
+18.6883
+18.6883
+18.6883
+18.6883
+18.6883
+18.6883
+18.6883
+18.8095
+0.0313675
+0.0313675
+0.0313675
+0.0313675
+0.0313675
+0.0313675
+0.0313675
+0.0313675
+0.0313675
+0.0313675
+0.0313675
+0.0313675
+0.0313675
+0.0313675
+0.0313675
+0.0313675
+0.0313675
+0.0313675
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1.55294e-41
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+4.57669
+4.57669
+4.57669
+4.57669
+4.57669
+4.57669
+4.57669
+4.57669
+4.57669
+4.57669
+4.57669
+4.57669
+4.57669
+4.57669
+4.57669
+4.57669
+4.57669
+4.57669
+98.1386
+62.7358
+62.7358
+62.7358
+62.7358
+62.7358
+62.7358
+62.7358
+62.7358
+62.7358
+62.7358
+62.7358
+62.7358
+62.7358
+62.7358
+62.7358
+62.7358
+62.7362
+325.279
+105.629
+105.629
+105.629
+105.629
+105.629
+105.629
+105.629
+105.629
+105.629
+105.629
+105.629
+105.629
+105.629
+105.629
+105.629
+105.629
+105.629
+631.738
+121.512
+121.512
+121.512
+121.512
+121.512
+121.512
+121.512
+121.512
+121.512
+121.512
+121.512
+121.512
+121.512
+121.512
+121.512
+121.512
+121.513
+967.6
+143.243
+143.243
+143.243
+143.243
+143.243
+143.243
+143.243
+143.243
+143.243
+143.243
+143.243
+143.243
+143.243
+143.243
+143.243
+143.243
+143.243
+1232.73
+176.106
+176.106
+176.106
+176.106
+176.106
+176.106
+176.106
+176.106
+176.106
+176.106
+176.106
+176.106
+176.106
+176.106
+176.106
+176.106
+176.106
+1354.05
+236.886
+236.886
+236.886
+236.886
+236.886
+236.886
+236.886
+236.886
+236.886
+236.886
+236.886
+236.886
+236.886
+236.886
+236.886
+236.886
+236.886
+1419.44
+443.508
+443.508
+443.508
+443.508
+443.508
+443.508
+443.508
+443.508
+443.508
+443.508
+443.508
+443.508
+443.508
+443.508
+443.508
+443.508
+443.508
+31097.4
+29678.7
+29678.7
+29678.7
+29678.7
+29678.7
+29678.7
+29678.7
+29678.7
+29678.7
+29678.7
+29678.7
+29678.7
+29678.7
+29678.7
+29678.7
+29678.7
+29678.7
+47306.7
+15089.9
+16549.9
+17510.2
+17514.7
+17519.3
+17523.9
+17528.6
+17533.3
+17538
+17542.8
+17547.6
+17552.4
+17557.3
+17562.3
+17567.2
+17572.3
+17577.3
+17582.4
+17587.6
+17592.8
+17598
+17603.3
+17608.6
+17614
+17619.4
+17624.9
+17630.4
+17636
+17641.6
+17647.2
+17652.9
+17658.7
+17664.5
+17670.4
+17676.3
+17682.2
+17688.2
+17694.3
+17700.4
+17706.6
+17712.8
+17719.1
+17725.4
+17731.8
+17738.3
+17744.8
+17751.3
+17758
+17764.6
+17771.4
+17778.2
+17785
+17791.9
+17798.9
+17806
+17813.1
+17820.2
+17827.5
+17834.8
+17842.1
+17849.5
+17857
+17864.6
+17872.2
+17879.9
+17887.7
+17895.5
+17903.4
+17911.4
+17919.4
+17927.5
+17935.7
+17944
+17952.3
+17960.7
+17969.2
+17977.8
+17986.5
+17995.2
+18004
+18012.9
+18021.8
+18030.9
+18040
+18049.2
+18058.5
+18067.9
+18077.4
+18087
+18096.6
+18106.3
+18116.2
+18126.1
+18136.1
+18146.2
+18156.4
+18166.7
+18177.1
+18187.6
+18198.2
+18208.9
+18219.7
+18230.5
+18241.5
+18252.6
+18263.8
+18275.1
+18286.6
+18298.1
+18309.7
+18321.5
+18333.3
+18345.3
+18357.4
+18369.6
+18381.9
+18394.3
+18406.9
+18419.6
+18432.4
+18445.3
+18458.3
+18471.5
+18484.8
+18498.3
+18511.8
+18525.5
+18539.4
+18553.4
+18567.5
+18581.7
+18596.1
+18610.6
+18625.3
+18640.2
+18655.1
+18670.3
+18685.5
+18701
+18716.5
+18732.3
+18748.2
+18764.3
+18780.5
+18796.9
+18813.4
+18830.2
+18847.1
+18864.1
+18881.4
+18898.8
+18916.4
+18934.2
+18952.2
+18970.4
+18988.7
+19007.3
+19026
+19044.9
+19064.1
+19083.4
+19103
+19122.7
+19142.7
+19162.8
+19183.2
+19203.9
+19224.7
+19245.7
+19267
+19288.5
+19310.3
+19332.3
+19354.5
+19377
+19399.7
+19422.7
+19445.9
+19469.4
+41660.9
+640.313
+311.73
+142.89
+188.083
+266.562
+266.632
+266.703
+266.774
+266.846
+266.919
+266.992
+267.066
+267.14
+267.215
+267.291
+267.367
+267.445
+267.522
+267.601
+267.68
+267.759
+267.84
+267.921
+268.003
+268.085
+268.168
+268.252
+268.337
+268.422
+268.508
+268.595
+268.683
+268.771
+268.86
+268.95
+269.041
+269.132
+269.225
+269.318
+269.412
+269.506
+269.602
+269.698
+269.796
+269.894
+269.993
+270.092
+270.193
+270.295
+270.397
+270.501
+270.605
+270.71
+270.816
+270.923
+271.032
+271.141
+271.251
+271.362
+271.473
+271.586
+271.7
+271.815
+271.931
+272.048
+272.167
+272.286
+272.406
+272.527
+272.65
+272.773
+272.898
+273.024
+273.15
+273.279
+273.408
+273.538
+273.67
+273.802
+273.936
+274.072
+274.208
+274.346
+274.485
+274.625
+274.767
+274.909
+275.053
+275.199
+275.346
+275.494
+275.644
+275.794
+275.947
+276.101
+276.256
+276.412
+276.571
+276.73
+276.891
+277.054
+277.218
+277.384
+277.551
+277.72
+277.89
+278.062
+278.236
+278.411
+278.588
+278.767
+278.947
+279.129
+279.313
+279.499
+279.686
+279.876
+280.067
+280.26
+280.454
+280.651
+280.85
+281.05
+281.253
+281.457
+281.664
+281.872
+282.083
+282.295
+282.51
+282.727
+282.946
+283.167
+283.39
+283.616
+283.844
+284.074
+284.306
+284.541
+284.778
+285.018
+285.26
+285.504
+285.751
+286.001
+286.253
+286.507
+286.764
+287.024
+287.287
+287.552
+287.82
+288.09
+288.364
+288.64
+288.919
+289.202
+289.487
+289.775
+290.066
+290.36
+290.658
+290.958
+291.262
+291.569
+291.879
+292.193
+292.51
+292.83
+293.154
+293.481
+293.812
+294.147
+294.485
+294.827
+295.173
+295.522
+295.876
+296.234
+41660.9
+633.003
+346.646
+268.098
+193.061
+70.3956
+90.2899
+146.316
+146.355
+146.394
+146.434
+146.474
+146.515
+146.556
+146.597
+146.638
+146.68
+146.723
+146.765
+146.808
+146.852
+146.895
+146.939
+146.984
+147.029
+147.074
+147.12
+147.166
+147.212
+147.259
+147.306
+147.354
+147.402
+147.45
+147.499
+147.549
+147.598
+147.649
+147.699
+147.75
+147.802
+147.854
+147.906
+147.959
+148.012
+148.066
+148.121
+148.175
+148.231
+148.286
+148.343
+148.399
+148.456
+148.514
+148.572
+148.631
+148.69
+148.75
+148.811
+148.872
+148.933
+148.995
+149.057
+149.12
+149.184
+149.248
+149.313
+149.379
+149.444
+149.511
+149.578
+149.646
+149.714
+149.783
+149.853
+149.923
+149.994
+150.066
+150.138
+150.211
+150.284
+150.358
+150.433
+150.509
+150.585
+150.662
+150.74
+150.818
+150.897
+150.977
+151.057
+151.139
+151.221
+151.303
+151.387
+151.471
+151.557
+151.642
+151.729
+151.817
+151.905
+151.994
+152.084
+152.175
+152.267
+152.36
+152.453
+152.548
+152.643
+152.739
+152.836
+152.934
+153.033
+153.133
+153.234
+153.336
+153.439
+153.542
+153.647
+153.753
+153.86
+153.968
+154.077
+154.187
+154.298
+154.41
+154.523
+154.638
+154.753
+154.87
+154.988
+155.107
+155.227
+155.348
+155.471
+155.594
+155.719
+155.846
+155.973
+156.102
+156.232
+156.364
+156.496
+156.63
+156.766
+156.903
+157.041
+157.181
+157.322
+157.464
+157.608
+157.754
+157.901
+158.049
+158.199
+158.351
+158.504
+158.659
+158.815
+158.973
+159.133
+159.294
+159.458
+159.622
+159.789
+159.957
+160.128
+160.3
+160.474
+160.649
+160.827
+161.007
+161.188
+161.372
+161.557
+161.745
+161.935
+162.126
+162.32
+162.518
+41660.9
+633.01
+346.648
+266.218
+223.919
+197.412
+154.263
+51.9843
+65.4795
+112.68
+112.71
+112.741
+112.773
+112.804
+112.836
+112.868
+112.9
+112.932
+112.965
+112.998
+113.032
+113.065
+113.099
+113.133
+113.168
+113.203
+113.238
+113.273
+113.309
+113.345
+113.382
+113.418
+113.455
+113.493
+113.53
+113.568
+113.606
+113.645
+113.684
+113.723
+113.763
+113.803
+113.843
+113.884
+113.925
+113.967
+114.008
+114.051
+114.093
+114.136
+114.179
+114.223
+114.267
+114.311
+114.356
+114.401
+114.447
+114.493
+114.54
+114.586
+114.634
+114.681
+114.729
+114.778
+114.827
+114.876
+114.926
+114.977
+115.027
+115.079
+115.13
+115.182
+115.235
+115.288
+115.342
+115.396
+115.45
+115.506
+115.561
+115.617
+115.674
+115.731
+115.788
+115.847
+115.905
+115.964
+116.024
+116.085
+116.145
+116.207
+116.269
+116.331
+116.395
+116.458
+116.523
+116.588
+116.653
+116.719
+116.786
+116.853
+116.921
+116.99
+117.059
+117.129
+117.2
+117.271
+117.343
+117.416
+117.489
+117.563
+117.638
+117.713
+117.79
+117.867
+117.944
+118.023
+118.102
+118.182
+118.262
+118.344
+118.426
+118.509
+118.593
+118.678
+118.763
+118.849
+118.937
+119.025
+119.114
+119.203
+119.294
+119.386
+119.478
+119.571
+119.666
+119.761
+119.857
+119.954
+120.053
+120.152
+120.252
+120.353
+120.455
+120.558
+120.663
+120.768
+120.874
+120.982
+121.09
+121.2
+121.311
+121.423
+121.536
+121.65
+121.766
+121.883
+122
+122.12
+122.24
+122.362
+122.485
+122.609
+122.734
+122.861
+122.99
+123.119
+123.25
+123.383
+123.517
+123.652
+123.789
+123.927
+124.067
+124.208
+124.351
+124.495
+124.641
+124.789
+124.938
+125.091
+41660.9
+633.019
+346.651
+266.22
+223.921
+196.55
+176.894
+162.409
+129.271
+42.1967
+54.4708
+56.985
+57.223
+57.4636
+57.707
+57.9532
+58.2022
+58.454
+58.7087
+58.9664
+59.227
+59.4906
+59.7572
+60.027
+60.2999
+60.5759
+60.8552
+61.1378
+61.4236
+61.7129
+62.0055
+62.3016
+62.6013
+62.9044
+63.2112
+63.5217
+63.8359
+64.1538
+64.4756
+64.8013
+65.1309
+65.4645
+65.8021
+66.1439
+66.4899
+66.84
+67.1945
+67.5534
+67.9167
+68.2845
+68.6569
+69.0339
+69.4156
+69.8022
+70.1935
+70.5898
+70.9911
+71.3975
+71.8091
+72.2258
+72.648
+73.0755
+73.5085
+73.9471
+74.3914
+74.8414
+75.2973
+75.7591
+76.2269
+76.7009
+77.1811
+77.6677
+78.1607
+78.6602
+79.1664
+79.6793
+80.1991
+80.7259
+81.2598
+81.8009
+82.3493
+82.9052
+83.4687
+84.0398
+84.6188
+85.2058
+85.8009
+86.4042
+87.016
+87.6362
+88.2651
+88.9029
+89.5496
+90.2054
+90.8706
+91.5452
+92.2294
+92.9234
+93.6274
+94.3415
+95.0659
+95.8009
+96.5465
+97.303
+98.0706
+98.8494
+98.9218
+98.983
+99.0449
+99.1073
+99.1703
+99.2339
+99.2981
+99.363
+99.4284
+99.4945
+99.5612
+99.6286
+99.6966
+99.7653
+99.8346
+99.9046
+99.9753
+100.047
+100.119
+100.192
+100.265
+100.339
+100.414
+100.49
+100.566
+100.644
+100.721
+100.8
+100.88
+100.96
+101.041
+101.123
+101.206
+101.289
+101.374
+101.459
+101.545
+101.632
+101.72
+101.809
+101.899
+101.989
+102.081
+102.173
+102.267
+102.361
+102.456
+102.553
+102.65
+102.749
+102.848
+102.948
+103.05
+103.152
+103.256
+103.361
+103.467
+103.574
+103.682
+103.791
+103.902
+104.013
+104.126
+104.24
+104.355
+104.472
+104.59
+104.709
+104.829
+104.951
+105.074
+105.198
+105.324
+105.454
+41661
+633.031
+346.655
+266.223
+223.924
+196.552
+176.896
+161.866
+149.879
+140.51
+30.4388
+3.22313
+3.22107
+3.26129
+3.3022
+3.34384
+3.38621
+3.42934
+3.47322
+3.51789
+3.56336
+3.60964
+3.65675
+3.70471
+3.75354
+3.80326
+3.85387
+3.90542
+3.9579
+4.01135
+4.06578
+4.12122
+4.17769
+4.2352
+4.29379
+4.35347
+4.41427
+4.47622
+4.53934
+4.60365
+4.66918
+4.73596
+4.80401
+4.87338
+4.94407
+5.01613
+5.08958
+5.16446
+5.2408
+5.31863
+5.39798
+5.47889
+5.5614
+5.64555
+5.73136
+5.81888
+5.90814
+5.9992
+6.09209
+6.18685
+6.28352
+6.38216
+6.4828
+6.58551
+6.69031
+6.79727
+6.90644
+7.01786
+7.1316
+7.2477
+7.36623
+7.48724
+7.6108
+7.73696
+7.8658
+7.99737
+8.13174
+8.26898
+8.40917
+8.55237
+8.69866
+8.84812
+9.00083
+9.15686
+9.31631
+9.47925
+9.64579
+9.816
+9.98998
+10.1678
+10.3496
+10.5355
+10.7256
+10.92
+11.1187
+11.3219
+11.5298
+11.7424
+11.9599
+12.1824
+12.4101
+12.643
+12.8813
+13.1252
+13.3748
+13.6296
+13.8623
+14.0988
+14.3403
+14.5868
+14.8384
+15.0954
+15.3578
+15.6258
+15.8994
+16.1789
+16.4644
+16.756
+17.0538
+17.3581
+17.669
+17.9866
+18.3111
+18.6426
+18.9814
+19.3277
+19.6816
+20.0432
+20.4129
+20.7907
+21.177
+21.5719
+21.9756
+22.3883
+22.8104
+23.242
+23.6833
+24.1346
+24.5963
+25.0684
+25.5514
+26.0454
+26.5509
+27.068
+27.5971
+28.1385
+28.6925
+29.2594
+29.8396
+30.4335
+31.0414
+31.6636
+32.3007
+32.9528
+33.6206
+34.3043
+35.0045
+35.7215
+36.4558
+37.2079
+37.9784
+38.7676
+39.5761
+40.4045
+41.2532
+42.1229
+43.0142
+43.9276
+44.8638
+45.8233
+46.807
+47.8154
+48.8493
+49.9094
+50.9964
+52.1111
+53.2544
+54.427
+55.6298
+56.8683
+41661
+633.045
+346.659
+266.227
+223.927
+196.554
+176.898
+161.868
+149.88
+140.024
+21.5195
+0.00215694
+2.43154e-43
+2.10003e-42
+1.44651e-40
+6.56933e-42
+1.21399e-40
+2.36206e-41
+7.91283e-45
+2.04683e-40
+5.89359e-42
+2.76442e-42
+3.61194e-40
+3.07157e-41
+9.2069e-43
+1.01116e-40
+9.33868e-42
+5.60423e-41
+6.6519e-40
+1.1594e-41
+2.56979e-40
+1.90101e-40
+4.54802e-42
+1.06374e-41
+1.66679e-43
+5.8111e-42
+4.17348e-42
+3.08794e-40
+5.13465e-45
+1.15593e-41
+3.59185e-41
+6.948e-42
+4.92499e-40
+1.62813e-40
+1.31963e-40
+1.95016e-41
+2.27998e-41
+1.58137e-42
+6.17448e-41
+1.56788e-40
+3.95049e-41
+7.24157e-42
+1.11407e-41
+3.72994e-45
+1.33373e-41
+4.69951e-41
+8.34277e-43
+2.66886e-42
+3.28881e-41
+4.35862e-43
+1.7739e-42
+2.67447e-41
+1.36065e-41
+3.20544e-42
+1.74108e-40
+2.46728e-40
+3.80688e-40
+1.50018e-40
+4.04939e-41
+3.74557e-43
+6.21751e-43
+1.27329e-40
+1.85389e-43
+2.61013e-44
+1.01158e-40
+1.09686e-40
+4.33386e-41
+4.74192e-41
+1.41398e-43
+1.57999e-41
+7.47988e-41
+1.51605e-41
+6.07364e-42
+7.27727e-42
+2.74472e-43
+1.92711e-41
+1.49913e-44
+4.2214e-42
+2.02103e-41
+6.80289e-41
+1.38127e-44
+1.79476e-42
+6.39886e-41
+1.7074e-40
+1.54865e-40
+1.57116e-41
+1.13216e-43
+8.25469e-43
+1.8339e-43
+7.57434e-42
+2.09766e-41
+2.90337e-41
+3.5101e-41
+4.5503e-43
+1.62518e-43
+3.30495e-41
+2.08212e-06
+1.73505e-05
+6.00083e-05
+0.00014518
+0.00028896
+0.000508456
+0.000821844
+0.00124842
+0.00180865
+0.00252425
+0.00341819
+0.00451485
+0.00583999
+0.00742089
+0.00928637
+0.0114669
+0.0139948
+0.0169039
+0.0202302
+0.0240115
+0.028288
+0.0331016
+0.0384969
+0.0445208
+0.0512225
+0.0586542
+0.0668706
+0.0759294
+0.0858914
+0.0968205
+0.108784
+0.121853
+0.136101
+0.151607
+0.168454
+0.186728
+0.20652
+0.227926
+0.251046
+0.275987
+0.302859
+0.33178
+0.362873
+0.396265
+0.432093
+0.470499
+0.511633
+0.555652
+0.60272
+0.653012
+0.706709
+0.764002
+0.825091
+0.890189
+0.959516
+1.03331
+1.1118
+1.19526
+1.28395
+1.37815
+1.47816
+1.5843
+1.69689
+1.81628
+1.94281
+2.07689
+2.2189
+2.36926
+2.52842
+2.69683
+2.87497
+3.06337
+3.26256
+3.47309
+41661.1
+633.061
+346.665
+266.231
+223.93
+196.557
+176.901
+161.871
+149.883
+140.026
+21.5162
+0.00214896
+7.24361e-42
+1.10144e-42
+8.68883e-41
+3.08119e-41
+1.08506e-40
+3.01495e-42
+2.13419e-43
+6.02276e-42
+5.21635e-40
+1.74245e-41
+2.5958e-41
+1.12926e-39
+3.65637e-41
+2.16367e-40
+1.56382e-41
+2.37584e-41
+6.75591e-42
+8.98989e-42
+5.64734e-44
+1.13781e-41
+2.57627e-41
+4.99713e-41
+4.47615e-44
+4.35373e-40
+4.88396e-40
+2.02568e-40
+6.84043e-45
+1.4542e-40
+3.91128e-40
+1.13288e-41
+8.55898e-42
+6.12037e-43
+1.6858e-42
+4.92009e-40
+8.57876e-50
+5.62012e-43
+4.40145e-42
+1.06373e-40
+2.7396e-43
+2.68206e-40
+9.08015e-43
+3.95824e-42
+7.8881e-43
+7.72272e-43
+2.8012e-44
+2.66886e-42
+4.99577e-41
+1.05662e-40
+2.73136e-41
+2.75391e-41
+1.97421e-40
+1.66544e-42
+1.08027e-41
+3.07373e-42
+2.83946e-45
+1.22518e-41
+1.49979e-42
+1.97359e-43
+1.15073e-41
+2.71134e-42
+6.62192e-41
+1.96112e-44
+7.0132e-41
+1.99587e-41
+5.48804e-43
+1.40503e-41
+4.64473e-41
+1.68507e-42
+1.68531e-40
+7.75006e-43
+1.07152e-41
+1.24125e-41
+2.74239e-42
+1.05442e-42
+3.57186e-42
+1.17472e-43
+9.80331e-42
+2.47522e-42
+3.62909e-41
+3.18312e-41
+9.1374e-43
+2.72416e-41
+3.80066e-41
+4.21148e-44
+1.79689e-47
+2.10505e-43
+1.46712e-45
+2.74137e-42
+1.40911e-42
+1.46553e-42
+7.13e-42
+4.84473e-42
+1.62546e-43
+1.89712e-41
+1.56137e-43
+5.20549e-42
+1.57757e-41
+4.39167e-43
+2.65269e-42
+1.48615e-41
+1.65012e-41
+1.37475e-40
+1.17827e-40
+8.86855e-42
+4.51766e-42
+6.92128e-41
+1.17272e-40
+1.29595e-40
+2.39015e-40
+9.35747e-42
+4.96418e-42
+5.71505e-44
+7.00619e-45
+3.01646e-42
+6.3432e-42
+1.18888e-40
+4.03917e-41
+1.04499e-41
+5.69416e-42
+6.12696e-45
+1.38091e-41
+1.59037e-43
+9.69533e-41
+9.9652e-44
+1.22119e-40
+2.55012e-43
+1.27662e-42
+5.11568e-43
+2.11614e-44
+8.88853e-43
+1.07291e-42
+1.16198e-42
+8.40956e-44
+2.58937e-42
+2.95018e-46
+1.68904e-42
+6.24555e-43
+1.92342e-41
+3.42467e-44
+4.20283e-45
+7.24667e-43
+1.92112e-41
+6.36657e-41
+9.72624e-41
+2.11533e-42
+1.4063e-42
+1.19946e-41
+3.53714e-43
+1.66753e-43
+1.00793e-42
+2.26487e-46
+1.01017e-41
+9.55496e-43
+7.16779e-41
+2.56645e-44
+2.01735e-43
+9.24848e-42
+1.11163e-41
+3.76782e-42
+4.06356e-44
+3.19504e-43
+1.1631e-44
+6.02893e-43
+6.90322e-42
+6.47775e-46
+5.79783e-46
+2.03058e-42
+0
+41661.2
+633.079
+346.671
+266.235
+223.934
+196.561
+176.904
+161.874
+149.885
+140.028
+21.5123
+0.00213986
+7.01243e-42
+2.02662e-41
+6.89748e-44
+1.53192e-41
+3.479e-40
+8.07984e-45
+7.90415e-45
+6.02278e-42
+1.40842e-41
+8.23475e-48
+4.26625e-40
+2.53849e-42
+1.65416e-42
+2.99603e-41
+2.32421e-40
+9.13922e-42
+2.02797e-40
+7.00265e-41
+4.5213e-41
+8.39105e-43
+1.40532e-41
+1.5436e-43
+8.07272e-42
+1.24296e-42
+2.36411e-41
+3.26793e-41
+4.35916e-41
+2.77127e-42
+1.17247e-42
+1.30029e-43
+1.51574e-40
+6.4875e-43
+7.57742e-41
+4.33291e-41
+4.61259e-44
+1.14407e-43
+8.91107e-41
+3.00841e-43
+2.54399e-43
+1.36662e-41
+2.37334e-41
+1.96494e-41
+1.36302e-42
+3.79417e-42
+2.78318e-40
+9.23973e-40
+5.6301e-41
+3.48689e-42
+1.20084e-42
+1.38956e-41
+3.9524e-41
+8.1555e-44
+1.89299e-43
+1.80433e-41
+2.41612e-40
+1.42456e-45
+3.82482e-43
+6.12675e-42
+2.76848e-42
+6.89923e-44
+2.00237e-44
+5.85427e-41
+8.76666e-42
+3.30562e-43
+4.18131e-42
+1.15676e-45
+2.5501e-41
+2.17347e-45
+4.45657e-41
+9.15915e-42
+5.82394e-42
+3.45362e-45
+1.68554e-40
+3.64594e-42
+1.98814e-42
+1.17496e-43
+1.9083e-42
+9.60479e-42
+4.94577e-41
+1.16562e-40
+3.81131e-42
+3.05603e-41
+2.03859e-41
+8.59608e-43
+1.62153e-42
+9.63377e-42
+1.0712e-41
+5.25113e-42
+1.19624e-41
+4.03487e-41
+1.43633e-42
+9.98804e-42
+1.10378e-41
+2.75292e-43
+9.40522e-42
+2.33443e-42
+1.68756e-43
+7.32917e-42
+1.51597e-41
+2.70087e-41
+2.33045e-41
+1.09515e-41
+1.7459e-41
+8.13448e-43
+5.27992e-46
+6.25594e-42
+1.81182e-41
+3.04679e-41
+1.50755e-40
+3.91309e-41
+7.73033e-42
+3.93887e-42
+4.77459e-42
+1.07385e-43
+1.41338e-41
+2.46752e-42
+3.78143e-41
+3.50677e-42
+8.77384e-43
+2.51115e-44
+2.80124e-43
+3.87378e-46
+1.37726e-42
+5.51988e-43
+3.95852e-46
+5.79272e-42
+6.74724e-42
+3.34292e-42
+9.07071e-44
+3.15297e-41
+8.73032e-41
+6.85572e-43
+3.0622e-43
+7.7161e-42
+1.21145e-41
+8.21671e-42
+8.06566e-42
+1.78605e-44
+2.66675e-41
+7.63192e-42
+9.92862e-42
+2.52398e-41
+2.4783e-41
+6.4186e-42
+6.30311e-42
+1.23451e-43
+1.51812e-44
+1.14263e-42
+6.26907e-43
+7.57274e-46
+3.45898e-45
+5.94118e-43
+1.57599e-41
+1.67189e-42
+9.18562e-42
+2.01735e-43
+3.90229e-42
+2.73903e-41
+1.91425e-46
+7.07343e-42
+6.24031e-46
+3.57708e-42
+9.14612e-44
+3.85529e-42
+9.85186e-42
+8.68924e-44
+1.67592e-43
+4.30079e-41
+41661.2
+633.1
+346.677
+266.241
+223.938
+196.564
+176.907
+161.877
+149.888
+140.031
+21.508
+0.00212966
+7.01243e-42
+7.04969e-44
+5.94236e-43
+2.46697e-41
+1.15977e-41
+2.18102e-43
+8.85108e-40
+2.48722e-40
+4.1731e-42
+3.93603e-42
+6.15302e-41
+3.73633e-41
+5.89243e-41
+9.55055e-43
+6.69873e-41
+2.37586e-41
+0
+1.78395e-41
+1.10723e-41
+3.29045e-42
+2.13315e-41
+1.5436e-43
+3.08479e-42
+5.81114e-42
+5.68768e-42
+4.45359e-41
+1.50025e-40
+3.66957e-41
+3.06459e-41
+2.81268e-40
+3.01663e-40
+1.62813e-40
+1.68591e-42
+1.05369e-42
+2.27999e-41
+3.59689e-41
+3.12294e-41
+2.139e-41
+5.22482e-41
+5.76543e-42
+3.04786e-47
+3.75893e-41
+1.19662e-43
+1.52006e-41
+6.73813e-41
+1.02341e-41
+3.87369e-41
+9.41461e-41
+2.34906e-41
+8.25822e-43
+2.40205e-42
+1.93316e-43
+1.61253e-41
+1.58932e-40
+4.75861e-41
+3.20621e-41
+1.43296e-41
+2.66384e-45
+2.07419e-40
+9.33143e-42
+7.47179e-42
+4.67292e-42
+2.70044e-42
+8.7756e-43
+8.59463e-43
+5.42676e-42
+3.10375e-42
+7.90348e-42
+9.01194e-42
+3.29261e-49
+3.2254e-49
+1.04833e-45
+6.69582e-43
+8.12999e-42
+2.34215e-43
+1.84344e-45
+1.15082e-43
+4.12139e-41
+1.11074e-41
+4.94149e-41
+2.87224e-45
+4.7442e-41
+6.03528e-41
+2.04927e-41
+3.64145e-43
+0
+1.1737e-44
+2.64548e-41
+2.55862e-42
+3.29155e-43
+1.52118e-41
+4.18572e-41
+1.8284e-43
+6.71328e-42
+1.44187e-41
+5.40076e-42
+3.78714e-41
+0
+4.45353e-41
+2.37713e-41
+3.17602e-41
+5.41574e-41
+8.52333e-45
+1.33732e-40
+1.43897e-42
+3.81276e-42
+6.30208e-41
+1.23615e-40
+2.82746e-42
+1.04443e-42
+4.99642e-41
+1.00369e-41
+6.59447e-42
+1.08963e-48
+6.76917e-45
+3.72814e-41
+1.93613e-41
+1.21264e-41
+4.10308e-46
+5.9572e-43
+4.67527e-42
+2.19871e-42
+2.69618e-43
+1.50046e-40
+1.11948e-40
+1.17901e-45
+5.70304e-44
+1.72219e-43
+1.69073e-43
+2.22198e-42
+2.5432e-45
+6.85572e-43
+7.08872e-42
+8.25414e-44
+1.37644e-41
+2.14552e-41
+3.45897e-42
+1.41361e-41
+4.16679e-43
+1.96154e-43
+1.18152e-41
+1.99056e-41
+2.4783e-41
+3.45644e-42
+6.74701e-44
+1.65431e-42
+5.11877e-44
+1.43334e-41
+2.28433e-43
+2.98646e-43
+3.18934e-41
+1.5784e-43
+1.07776e-41
+8.21345e-42
+4.06973e-48
+9.20987e-41
+8.87474e-41
+9.57372e-43
+8.20735e-42
+1.2123e-44
+6.24031e-43
+3.19416e-42
+1.14326e-44
+3.03435e-43
+4.89783e-42
+1.25875e-42
+4.07003e-42
+0
+41661.3
+633.123
+346.685
+266.246
+223.943
+196.569
+176.911
+161.88
+149.892
+140.034
+21.5032
+0.00211836
+9.07541e-41
+7.48067e-41
+2.13625e-50
+1.18525e-41
+6.02729e-41
+1.0097e-39
+9.88018e-43
+8.92808e-41
+6.05654e-44
+4.08364e-42
+3.81808e-41
+5.67397e-44
+6.94832e-45
+5.11425e-41
+7.67286e-41
+9.63768e-42
+2.2357e-41
+5.75352e-40
+2.27592e-42
+3.71759e-41
+3.07686e-41
+2.08776e-41
+4.3566e-42
+3.41122e-41
+1.60038e-41
+9.3117e-40
+2.55891e-40
+1.64687e-43
+7.14633e-41
+2.24663e-40
+1.54452e-43
+1.94449e-40
+1.05657e-40
+2.75418e-41
+7.85891e-42
+1.14393e-43
+1.54821e-42
+9.33863e-42
+3.17999e-44
+1.81562e-40
+6.58338e-45
+8.8905e-43
+7.88786e-43
+8.60262e-42
+8.42267e-42
+1.25177e-41
+8.70305e-41
+2.99416e-40
+4.22887e-41
+3.17474e-41
+1.97421e-40
+6.94736e-42
+2.03855e-40
+7.66494e-41
+3.9849e-42
+6.38835e-42
+3.40071e-43
+5.07894e-42
+2.62028e-45
+9.33156e-42
+9.34048e-43
+1.25486e-42
+3.07547e-41
+2.64242e-41
+1.68126e-41
+1.64676e-41
+1.41388e-43
+1.19313e-42
+1.65058e-42
+2.91717e-42
+1.10896e-41
+1.04833e-45
+2.74506e-43
+2.68667e-42
+5.05816e-44
+2.29421e-43
+1.12016e-41
+1.32651e-41
+5.65856e-44
+9.32497e-43
+7.04539e-42
+1.63635e-41
+1.78825e-41
+1.21401e-42
+9.78023e-44
+3.44329e-42
+6.47149e-42
+2.02004e-42
+1.12724e-44
+9.77426e-42
+5.9699e-42
+1.12617e-41
+1.8284e-43
+1.4323e-41
+2.38156e-42
+7.62738e-42
+1.26205e-40
+6.18993e-46
+6.13081e-41
+2.70087e-41
+6.08251e-41
+1.20181e-40
+6.22321e-41
+3.4229e-44
+5.58367e-42
+8.52559e-42
+1.29446e-41
+7.5187e-43
+4.4176e-41
+1.0446e-42
+2.38797e-43
+4.86941e-42
+7.037e-45
+1.20741e-42
+1.05306e-40
+2.14312e-41
+4.15086e-43
+1.1171e-42
+2.96069e-42
+2.90458e-42
+4.80323e-44
+5.89026e-45
+3.96372e-41
+1.30406e-41
+3.5603e-46
+9.59989e-44
+2.76111e-45
+5.57738e-42
+3.67e-46
+1.09338e-42
+3.179e-43
+1.53285e-42
+8.40267e-43
+3.00643e-43
+9.95809e-43
+7.43449e-42
+5.2911e-42
+7.662e-43
+1.87918e-42
+3.95567e-42
+8.91744e-43
+1.47986e-41
+5.77923e-41
+3.12868e-44
+2.52295e-46
+6.19077e-42
+4.92469e-42
+7.62094e-42
+3.81436e-44
+6.05819e-42
+7.22225e-42
+5.96152e-44
+6.97066e-42
+2.88883e-42
+1.19781e-42
+1.39038e-41
+4.35209e-42
+3.04361e-45
+4.13478e-44
+1.09753e-42
+3.44142e-42
+1.1631e-44
+2.24276e-44
+7.40809e-44
+4.75305e-44
+5.72777e-46
+7.03931e-44
+0
+41661.4
+633.148
+346.693
+266.253
+223.949
+196.573
+176.916
+161.884
+149.895
+140.038
+21.4979
+0.00210598
+5.76348e-43
+6.86141e-42
+0
+6.5693e-42
+2.41195e-40
+3.01495e-42
+6.15487e-42
+5.64727e-41
+6.05654e-44
+2.21152e-41
+2.16414e-41
+1.53197e-42
+6.80212e-41
+2.99604e-41
+9.33876e-42
+2.37585e-41
+4.71662e-43
+7.98299e-41
+6.0976e-42
+5.43806e-40
+1.67234e-41
+9.59046e-41
+8.28894e-42
+7.19768e-41
+2.95518e-42
+1.00022e-41
+2.62894e-42
+2.57323e-42
+8.25346e-41
+8.07876e-41
+2.34902e-40
+3.36878e-41
+9.49569e-41
+2.41032e-41
+1.29232e-41
+7.32114e-45
+7.80621e-41
+3.16173e-42
+6.66892e-41
+5.76543e-42
+6.39184e-41
+3.95824e-42
+2.7057e-43
+2.78407e-42
+3.52774e-41
+7.40404e-43
+1.41427e-40
+1.44934e-41
+3.41434e-42
+4.66741e-42
+2.74378e-47
+4.47524e-42
+4.15565e-42
+3.4076e-40
+2.41611e-40
+1.46324e-41
+3.57538e-41
+1.45229e-41
+1.15073e-41
+3.58966e-42
+3.51897e-43
+7.31783e-42
+1.75257e-41
+2.36128e-45
+8.59536e-43
+1.91477e-41
+2.48514e-42
+1.34804e-41
+1.25738e-40
+1.81514e-41
+1.12156e-42
+7.43774e-43
+9.93259e-42
+4.39812e-42
+1.45879e-42
+1.34007e-41
+4.85503e-44
+3.80584e-43
+1.34417e-42
+2.37616e-42
+1.40685e-41
+8.90969e-41
+4.6487e-41
+1.75228e-41
+2.4226e-49
+7.87667e-46
+2.06322e-43
+3.02286e-41
+2.364e-41
+1.17239e-41
+1.52248e-42
+4.95281e-43
+1.01262e-42
+9.92369e-43
+1.2491e-42
+6.10183e-41
+2.63465e-44
+7.52966e-44
+1.2755e-40
+4.44388e-41
+7.52852e-41
+3.56089e-41
+2.54511e-41
+1.46877e-43
+1.29928e-48
+1.01203e-41
+3.23217e-44
+7.27021e-42
+2.38194e-42
+7.69584e-41
+5.48487e-41
+1.11511e-41
+6.59447e-42
+2.2526e-43
+3.1444e-43
+7.42975e-41
+9.11841e-43
+2.06186e-41
+1.34777e-42
+6.51683e-44
+7.56336e-42
+2.19871e-42
+1.51873e-41
+3.19761e-41
+9.78383e-44
+9.58579e-43
+4.28478e-44
+5.81238e-43
+2.65879e-45
+3.74985e-43
+6.04357e-41
+2.65773e-41
+3.0622e-43
+7.44704e-49
+3.36573e-41
+1.65272e-41
+5.59562e-42
+9.53385e-46
+3.43973e-44
+1.13698e-43
+1.95672e-41
+1.32991e-43
+6.87455e-45
+3.97543e-45
+1.0082e-41
+1.55374e-44
+6.50142e-43
+3.69801e-45
+1.15717e-41
+7.57644e-43
+7.80485e-46
+2.99368e-42
+4.1873e-42
+1.5495e-42
+1.52124e-41
+6.15015e-43
+1.46872e-41
+2.22226e-41
+1.46949e-41
+2.8707e-43
+4.54919e-43
+1.93511e-42
+8.02775e-43
+5.92647e-43
+6.49054e-42
+3.7276e-42
+1.14483e-42
+0
+41661.5
+633.176
+346.702
+266.26
+223.954
+196.579
+176.92
+161.888
+149.899
+140.041
+21.4922
+0.00209253
+7.20435e-44
+1.15821e-40
+0
+6.56939e-42
+3.18762e-40
+1.77989e-39
+1.11049e-41
+2.72932e-40
+1.63482e-42
+9.25792e-43
+5.45717e-41
+4.41826e-41
+5.55408e-44
+8.49069e-43
+4.25414e-40
+5.06551e-42
+2.04722e-40
+4.85162e-42
+8.56669e-42
+3.48579e-40
+6.19812e-42
+1.36241e-42
+1.6706e-41
+1.28102e-40
+1.02189e-41
+6.24763e-40
+6.89162e-40
+2.97884e-42
+3.83074e-42
+3.0818e-43
+1.37719e-40
+1.06118e-41
+2.8474e-40
+4.64904e-40
+3.37017e-42
+1.71688e-42
+7.53143e-42
+1.18635e-40
+8.54024e-41
+8.40564e-43
+3.81402e-45
+5.52611e-42
+3.19233e-41
+5.29701e-42
+1.04526e-41
+1.88987e-42
+1.05891e-40
+4.62007e-43
+1.41915e-41
+6.06392e-41
+4.33804e-43
+3.9703e-41
+6.51749e-40
+3.44949e-40
+1.55637e-40
+2.22207e-44
+3.82715e-43
+7.19588e-44
+1.3275e-41
+2.8741e-42
+5.85386e-41
+1.90835e-42
+2.35237e-41
+2.36128e-45
+6.87585e-42
+1.75626e-42
+3.36977e-41
+8.0776e-43
+1.69762e-44
+4.77574e-42
+6.07351e-42
+6.99754e-42
+1.2496e-43
+8.43483e-42
+1.49872e-44
+1.0006e-41
+2.52637e-42
+5.26066e-42
+1.73954e-41
+5.54424e-44
+4.29762e-41
+2.98762e-41
+8.67408e-42
+1.24724e-44
+2.91283e-42
+3.23414e-43
+2.0612e-42
+1.61756e-42
+1.85209e-41
+5.15608e-43
+4.43491e-41
+1.33686e-41
+7.706e-43
+3.34205e-43
+1.81453e-41
+4.56998e-43
+3.24057e-41
+1.0411e-42
+1.67562e-41
+4.76501e-41
+9.97512e-42
+4.5798e-41
+5.66355e-41
+3.90022e-43
+2.68601e-43
+3.74954e-43
+6.13445e-42
+3.04677e-41
+5.16191e-42
+7.2301e-43
+1.38902e-41
+5.56309e-42
+8.82578e-42
+2.81938e-44
+4.5928e-42
+5.61199e-41
+3.5349e-41
+1.1171e-42
+2.91182e-43
+4.89619e-44
+2.80124e-43
+4.58668e-42
+8.12553e-43
+1.85787e-43
+2.29425e-44
+3.47266e-42
+7.53215e-43
+3.58161e-42
+7.64106e-42
+6.37583e-42
+1.42805e-42
+1.16198e-42
+6.72308e-42
+1.30023e-44
+5.09792e-43
+2.89591e-43
+7.29896e-42
+3.48839e-41
+6.02311e-43
+3.4908e-42
+1.13239e-41
+1.78714e-41
+1.95455e-41
+1.2823e-43
+1.96417e-42
+1.23663e-43
+1.52593e-44
+1.04474e-42
+2.64439e-43
+4.84655e-44
+6.02375e-45
+3.80609e-42
+5.46133e-42
+4.58736e-42
+2.5669e-41
+4.46732e-41
+5.0896e-42
+5.34806e-43
+2.03876e-42
+4.14392e-43
+8.62734e-42
+2.5123e-42
+9.80207e-42
+5.23127e-42
+2.10077e-42
+2.1588e-44
+3.61513e-44
+0
+41661.6
+633.206
+346.712
+266.267
+223.961
+196.584
+176.925
+161.893
+149.903
+140.045
+21.4859
+0.00207802
+7.20435e-44
+4.04296e-40
+1.86238e-42
+3.14893e-42
+5.2832e-40
+8.9332e-40
+1.90183e-41
+3.96007e-42
+1.44306e-41
+8.33112e-42
+5.79972e-44
+2.1178e-41
+7.39213e-44
+4.95929e-41
+2.42769e-41
+2.86936e-41
+1.90096e-41
+8.18944e-41
+1.64635e-43
+3.81932e-40
+4.54802e-42
+1.36552e-40
+1.63469e-40
+6.32096e-41
+4.55015e-41
+4.08497e-42
+2.2649e-41
+4.02178e-44
+1.7967e-41
+1.69105e-41
+3.54904e-41
+1.10216e-40
+1.74401e-40
+6.21143e-42
+5.15442e-40
+9.7445e-42
+2.28718e-42
+3.24827e-44
+5.58457e-42
+3.1132e-47
+5.64462e-42
+1.89796e-41
+5.13067e-42
+1.26165e-40
+6.5884e-41
+2.7419e-44
+1.6724e-40
+6.90821e-41
+8.68664e-44
+1.38958e-41
+1.36064e-41
+5.23546e-45
+5.63942e-42
+6.22307e-41
+1.5464e-41
+8.93199e-41
+3.57536e-41
+2.83903e-44
+9.73814e-43
+3.58966e-42
+8.78767e-42
+2.46979e-41
+6.225e-41
+5.61594e-41
+5.97182e-41
+2.96458e-41
+3.10418e-42
+3.63054e-41
+1.79955e-41
+2.72934e-41
+1.01367e-40
+8.78911e-42
+1.21597e-41
+2.68878e-43
+1.50036e-44
+5.48039e-42
+3.01689e-41
+5.26055e-42
+1.2997e-41
+3.65308e-43
+1.17294e-41
+3.87874e-41
+3.34516e-41
+8.49957e-42
+9.05724e-43
+1.50874e-41
+3.08463e-41
+2.64573e-41
+4.94832e-42
+1.39167e-41
+1.01907e-41
+6.79168e-43
+1.30014e-42
+1.01948e-41
+6.85404e-41
+8.81456e-41
+4.23545e-41
+3.51334e-42
+2.75512e-41
+2.48205e-41
+5.64022e-42
+9.25692e-41
+6.81867e-44
+1.47259e-43
+1.48787e-41
+2.71148e-41
+3.73546e-41
+1.23615e-40
+9.4589e-41
+3.27649e-41
+4.31856e-42
+3.33415e-43
+1.111e-48
+6.08058e-42
+5.39163e-47
+2.41429e-41
+1.77923e-41
+2.50074e-43
+2.02257e-41
+2.68664e-42
+2.80124e-43
+1.93095e-43
+1.01635e-43
+1.28495e-45
+2.59634e-43
+3.07843e-41
+8.80004e-42
+1.72219e-43
+3.3008e-43
+5.06134e-45
+4.96718e-45
+1.33769e-44
+3.26137e-42
+1.01489e-42
+2.95343e-43
+1.98691e-42
+7.67546e-42
+5.19341e-42
+4.54285e-42
+3.27541e-42
+5.80209e-43
+1.31355e-41
+1.64073e-44
+1.72316e-41
+5.30326e-44
+2.41115e-46
+5.20248e-43
+5.10962e-43
+6.26819e-43
+1.63793e-43
+1.4106e-44
+1.58054e-43
+2.12705e-43
+2.78142e-43
+1.74907e-41
+1.47264e-43
+9.24927e-42
+4.208e-41
+1.22512e-44
+1.03237e-41
+6.64469e-42
+1.54809e-41
+1.42908e-45
+2.13651e-42
+2.98524e-43
+6.95438e-43
+2.60761e-42
+0
+41661.8
+633.238
+346.723
+266.275
+223.968
+196.59
+176.931
+161.898
+149.908
+140.05
+21.4792
+0.00206247
+9.00544e-45
+5.2269e-40
+1.2123e-42
+4.92778e-40
+1.04431e-39
+7.86243e-40
+3.33114e-40
+4.81821e-41
+2.871e-40
+0
+1.01908e-42
+2.03078e-41
+8.67625e-43
+5.43381e-47
+1.90326e-41
+1.55393e-40
+1.33848e-40
+6.23728e-45
+2.27592e-42
+8.38424e-42
+8.21272e-43
+1.80377e-40
+8.28894e-42
+8.11281e-42
+4.17353e-42
+4.08497e-42
+1.29163e-41
+3.91377e-42
+8.06148e-41
+1.6518e-42
+1.54452e-43
+7.9728e-45
+6.72365e-41
+2.32909e-41
+9.2988e-41
+1.48787e-41
+3.52116e-41
+4.56751e-42
+2.18115e-40
+9.29596e-41
+2.7817e-41
+4.19584e-42
+7.0293e-41
+1.22634e-42
+2.80043e-44
+2.03142e-42
+6.45952e-41
+1.81167e-42
+3.619e-42
+2.01617e-43
+1.01079e-43
+1.58919e-45
+4.15958e-43
+1.80441e-41
+7.4385e-43
+9.10158e-44
+1.38412e-41
+7.95418e-42
+4.50801e-45
+2.4344e-41
+1.24704e-40
+9.14729e-43
+1.63022e-40
+3.15539e-40
+4.97435e-43
+1.0176e-40
+1.54499e-40
+8.5052e-41
+1.35698e-43
+3.16713e-41
+6.66503e-44
+8.78911e-42
+3.72208e-42
+1.62893e-40
+2.34175e-40
+9.39968e-43
+2.02277e-42
+6.57624e-43
+2.4306e-43
+1.44067e-43
+3.58112e-43
+2.53445e-42
+2.66938e-41
+1.32926e-43
+2.91316e-42
+3.92457e-43
+7.51372e-43
+1.1705e-44
+9.97311e-42
+4.12487e-42
+8.66194e-44
+1.49091e-41
+1.31029e-41
+5.37063e-41
+4.38658e-42
+1.72017e-42
+1.2097e-41
+3.86181e-44
+1.29628e-41
+5.36143e-42
+1.73015e-42
+1.03542e-41
+2.3388e-41
+1.44403e-41
+9.06314e-43
+3.29072e-41
+2.13109e-43
+2.42882e-42
+4.17751e-42
+1.02684e-40
+7.28471e-42
+1.54306e-42
+9.69274e-44
+4.88962e-46
+6.3432e-42
+4.81897e-42
+4.44733e-41
+3.96205e-41
+4.27927e-41
+3.91695e-46
+4.67527e-42
+2.74816e-43
+4.62314e-41
+6.0374e-41
+9.76946e-43
+1.17901e-42
+9.36833e-45
+1.96168e-42
+1.22918e-42
+2.07313e-41
+1.85399e-42
+4.96092e-45
+3.0622e-43
+2.22926e-42
+3.28017e-46
+2.89591e-46
+5.55227e-43
+4.24432e-43
+9.2466e-43
+5.29515e-42
+1.5407e-42
+1.78726e-41
+2.02483e-41
+1.60013e-44
+5.9888e-42
+1.23451e-43
+1.21241e-43
+3.09554e-43
+1.12229e-42
+0
+2.76719e-44
+1.06374e-42
+4.59442e-44
+4.1132e-42
+1.49879e-43
+1.38412e-42
+1.36005e-42
+9.57372e-43
+9.69625e-42
+9.63215e-44
+1.47919e-42
+1.24652e-42
+1.14326e-44
+2.42748e-42
+2.99207e-43
+9.31242e-42
+1.37169e-45
+0
+41661.9
+633.273
+346.734
+266.284
+223.975
+196.597
+176.936
+161.903
+149.913
+140.054
+21.472
+0.00204589
+2.63122e-40
+2.88766e-43
+5.51836e-43
+2.2781e-43
+3.01494e-41
+6.28994e-42
+1.88813e-40
+0
+9.94843e-41
+9.48967e-41
+2.70517e-42
+2.07229e-40
+4.32371e-41
+5.03225e-43
+4.25413e-43
+2.46962e-41
+8.95181e-43
+1.17264e-40
+3.32428e-41
+1.4359e-41
+6.74195e-41
+1.37542e-41
+7.86029e-42
+4.26403e-42
+4.55019e-41
+1.91598e-41
+2.16398e-40
+4.28124e-40
+1.17243e-42
+2.65501e-42
+1.7593e-42
+4.64978e-41
+3.5171e-42
+4.3329e-41
+1.90907e-41
+1.81652e-40
+1.8295e-41
+1.51564e-42
+2.35792e-40
+4.12986e-42
+8.76249e-42
+1.31623e-40
+4.67516e-40
+4.46916e-40
+9.07842e-41
+2.7419e-44
+8.01633e-41
+1.91926e-40
+8.4348e-43
+3.17474e-41
+3.46986e-42
+6.35059e-41
+2.30368e-42
+1.27761e-41
+1.54631e-41
+1.0917e-40
+1.58884e-40
+1.17502e-41
+2.93215e-41
+6.10325e-41
+8.78751e-42
+8.03054e-44
+1.49528e-41
+5.40723e-42
+3.51227e-41
+7.39054e-44
+7.23906e-41
+1.28258e-42
+2.97802e-42
+6.52944e-43
+2.86044e-43
+3.45362e-45
+7.4044e-41
+2.14926e-41
+2.63585e-43
+1.0881e-42
+5.674e-41
+1.09754e-41
+6.55352e-42
+3.11192e-41
+2.1022e-48
+1.22258e-41
+8.09589e-42
+5.11746e-44
+2.21938e-41
+9.32622e-42
+4.61485e-43
+1.01769e-41
+1.26799e-41
+1.8152e-41
+6.41746e-42
+1.29116e-40
+1.82661e-42
+3.8055e-42
+5.26421e-41
+4.32061e-41
+3.11261e-41
+4.13168e-42
+1.99296e-45
+6.16437e-42
+8.86749e-45
+2.38552e-44
+8.29627e-43
+5.31532e-42
+3.05823e-42
+2.11135e-41
+2.87713e-41
+5.81617e-41
+2.16889e-41
+1.22048e-41
+7.28439e-45
+1.13282e-48
+3.95137e-41
+2.50968e-41
+6.73953e-45
+1.89274e-41
+3.07696e-42
+1.89929e-41
+4.25261e-42
+1.9244e-42
+2.64835e-41
+4.71221e-41
+2.53678e-42
+2.6906e-42
+1.06065e-41
+1.20091e-43
+4.1715e-42
+7.26547e-41
+7.25186e-43
+8.746e-45
+3.179e-46
+3.89998e-44
+5.38212e-42
+6.60761e-43
+2.36015e-42
+7.94638e-43
+4.91229e-43
+3.92396e-41
+8.97852e-42
+3.58339e-43
+6.44093e-42
+3.45446e-43
+5.51643e-44
+1.82264e-43
+1.58214e-44
+1.92892e-45
+1.7544e-41
+2.57219e-41
+2.11604e-42
+1.15079e-43
+2.80364e-44
+3.60241e-41
+1.70164e-45
+2.22514e-42
+1.32306e-44
+1.2911e-41
+2.48874e-44
+1.55833e-45
+1.39738e-43
+1.20402e-41
+1.85711e-43
+7.45662e-43
+1.90383e-42
+5.92647e-43
+1.00812e-42
+1.69712e-43
+4.06949e-42
+5.37598e-42
+41662
+633.31
+346.746
+266.293
+223.983
+196.603
+176.943
+161.909
+149.918
+140.059
+21.4644
+0.00202831
+9.00544e-45
+1.90328e-42
+8.62185e-42
+2.01527e-40
+1.38496e-40
+7.86243e-40
+8.88381e-41
+8.20792e-42
+5.35703e-41
+4.08362e-42
+1.89993e-42
+7.55377e-44
+7.80734e-42
+9.54263e-42
+1.26736e-41
+9.63768e-42
+1.2138e-41
+2.18801e-41
+1.05367e-44
+4.64703e-42
+2.25533e-40
+2.13362e-42
+8.32894e-41
+1.03063e-40
+4.40601e-47
+3.94996e-41
+1.18095e-41
+2.64767e-41
+4.08619e-42
+2.39976e-40
+3.77079e-44
+4.89712e-42
+1.42515e-40
+4.45556e-41
+1.6154e-42
+1.5815e-42
+2.65445e-43
+3.05724e-41
+5.22482e-41
+5.47265e-43
+6.58338e-45
+4.12816e-43
+5.1347e-43
+8.9938e-42
+4.14896e-41
+2.19412e-43
+3.77497e-42
+7.84907e-41
+6.13484e-42
+4.35824e-44
+2.47047e-44
+2.35207e-42
+6.49297e-44
+2.45896e-41
+9.96146e-42
+2.16287e-42
+3.82166e-42
+2.13107e-44
+3.42908e-41
+1.12698e-41
+7.31131e-41
+2.46979e-41
+2.65504e-43
+1.88076e-44
+1.18707e-45
+5.91243e-43
+8.24854e-43
+5.61218e-41
+2.93026e-41
+6.80682e-44
+2.28798e-42
+1.55189e-42
+4.91007e-42
+2.68695e-42
+5.14244e-42
+2.79949e-41
+2.80674e-42
+1.76206e-42
+5.04338e-41
+1.08241e-40
+2.1022e-48
+1.29897e-44
+2.74931e-45
+9.9779e-44
+7.82419e-43
+4.20603e-41
+3.50471e-41
+2.02025e-42
+4.9487e-42
+8.83802e-47
+4.75334e-42
+1.49091e-41
+4.26762e-44
+2.43081e-42
+8.51223e-43
+3.20964e-43
+3.11267e-41
+9.48521e-41
+9.22666e-45
+7.2362e-41
+3.30977e-42
+1.20272e-43
+2.45042e-42
+1.17409e-41
+9.06314e-43
+3.54369e-41
+4.44279e-41
+2.88315e-42
+1.80525e-42
+1.34885e-41
+1.02424e-42
+1.87291e-42
+1.89999e-43
+9.66809e-43
+1.18762e-43
+1.16486e-43
+7.29473e-42
+1.4634e-41
+2.91083e-43
+9.11116e-41
+3.31043e-42
+1.35488e-41
+3.69847e-46
+3.62866e-46
+7.81557e-42
+2.40766e-41
+7.52581e-42
+3.36364e-43
+0
+1.88914e-42
+2.03456e-44
+2.89014e-42
+8.26894e-42
+1.75287e-42
+9.95687e-43
+2.14552e-41
+2.63268e-42
+1.79833e-44
+1.76548e-44
+7.38084e-43
+3.31566e-44
+2.86768e-41
+4.47508e-42
+3.12525e-44
+2.45791e-43
+2.41115e-43
+2.36799e-43
+1.27617e-41
+6.16843e-42
+6.16037e-43
+2.45058e-46
+1.48553e-42
+1.04542e-42
+1.02668e-42
+2.28281e-46
+1.86873e-42
+6.86026e-44
+3.36599e-43
+1.53308e-42
+1.09716e-42
+5.91813e-46
+1.68304e-42
+2.38627e-43
+6.02305e-44
+3.1969e-41
+2.25886e-43
+1.09735e-44
+0
+41662.2
+633.349
+346.759
+266.303
+223.991
+196.611
+176.949
+161.915
+149.924
+140.064
+21.4562
+0.00200975
+2.84162e-40
+9.90364e-41
+6.89748e-44
+8.50192e-41
+6.11634e-43
+5.98455e-40
+3.33114e-40
+1.1459e-41
+2.76426e-41
+3.12134e-40
+1.38186e-41
+3.91062e-42
+1.59635e-41
+5.43381e-44
+2.30295e-40
+5.6867e-41
+4.95738e-42
+2.32555e-42
+4.74838e-42
+4.49344e-41
+1.53108e-42
+1.20184e-40
+8.329e-41
+7.95474e-41
+1.53462e-41
+4.08492e-42
+1.9165e-42
+9.58267e-42
+1.13148e-41
+1.43797e-41
+1.40747e-41
+4.64978e-41
+1.17132e-40
+3.32894e-41
+1.26455e-40
+2.71228e-43
+5.73361e-44
+3.05724e-41
+9.14234e-42
+2.12156e-41
+8.36803e-44
+1.22275e-43
+5.13049e-42
+1.06761e-41
+4.91818e-42
+5.43493e-49
+1.00204e-41
+2.62862e-44
+6.13431e-42
+6.00653e-42
+1.01123e-43
+4.24426e-42
+1.84259e-41
+1.48296e-42
+2.83685e-42
+4.87788e-43
+8.91319e-44
+1.65946e-41
+1.06198e-40
+5.37169e-41
+4.19823e-41
+6.3558e-41
+6.2929e-43
+3.66958e-42
+1.7338e-41
+5.91243e-43
+1.13726e-40
+3.46307e-41
+4.66359e-44
+4.7761e-42
+7.14304e-42
+1.02018e-42
+2.74461e-43
+2.91709e-41
+5.05856e-41
+4.81131e-43
+2.02269e-42
+1.37214e-42
+1.38696e-44
+8.6058e-42
+1.86257e-41
+2.80578e-42
+3.43831e-43
+2.73947e-43
+9.05499e-43
+5.25754e-42
+1.62252e-43
+1.01769e-41
+2.46462e-45
+1.94298e-43
+8.15255e-41
+4.95281e-43
+4.85934e-43
+1.7832e-44
+8.48361e-41
+4.32061e-41
+6.54316e-42
+4.46684e-42
+3.78573e-44
+1.13064e-42
+1.69074e-41
+4.90303e-41
+3.62372e-41
+3.66838e-42
+3.61419e-41
+2.16914e-43
+1.87829e-42
+3.1857e-44
+1.12237e-41
+2.00555e-43
+1.07921e-41
+4.57204e-43
+7.50454e-45
+1.85892e-43
+5.41534e-44
+2.07931e-42
+2.1283e-43
+5.62811e-42
+1.6362e-42
+6.76849e-43
+5.31199e-42
+1.2723e-42
+5.11276e-42
+2.90292e-45
+1.39934e-41
+1.14483e-41
+1.75806e-43
+9.08184e-42
+5.80148e-42
+2.66291e-45
+2.31749e-43
+1.99679e-44
+2.101e-42
+5.19368e-43
+2.18587e-41
+1.35112e-41
+7.80054e-43
+1.79833e-44
+1.40515e-43
+1.7216e-41
+1.7018e-44
+4.55825e-42
+4.47508e-42
+1.2801e-43
+1.58214e-44
+1.92945e-42
+1.16384e-42
+4.0877e-42
+1.82746e-45
+3.87724e-43
+1.60676e-43
+2.63434e-42
+4.21618e-48
+1.52341e-43
+8.41336e-43
+4.435e-43
+1.58756e-42
+3.37627e-43
+1.31458e-42
+5.91534e-41
+5.51838e-42
+6.53362e-42
+1.52169e-41
+2.46906e-41
+3.7287e-44
+2.34609e-42
+4.72692e-45
+0
+41615.9
+633.031
+346.67
+266.255
+223.96
+196.588
+176.931
+161.9
+149.912
+140.054
+21.4253
+0.00199576
+2.2236e-43
+2.16781e-43
+6.35282e-41
+9.08043e-40
+1.36726e-40
+3.43685e-42
+4.54164e-41
+4.2154e-41
+1.81037e-43
+2.89796e-40
+9.85812e-40
+4.03027e-40
+1.63229e-43
+1.59063e-43
+7.34956e-40
+9.94618e-41
+3.5077e-41
+4.69989e-42
+2.29605e-40
+2.47259e-40
+3.9904e-41
+1.81622e-40
+1.26097e-43
+9.09251e-42
+1.49468e-41
+3.14594e-42
+3.38149e-42
+2.66086e-40
+1.89366e-42
+3.44103e-42
+2.43747e-41
+1.24532e-44
+8.84423e-42
+1.6607e-41
+1.61892e-42
+8.98281e-44
+5.63268e-45
+1.49535e-41
+6.14523e-42
+1.74521e-41
+1.38352e-42
+1.34743e-42
+2.4208e-40
+1.27741e-41
+1.16405e-40
+2.57571e-41
+1.81496e-42
+1.43132e-44
+7.97002e-42
+1.09146e-42
+2.47733e-43
+1.03548e-42
+1.13714e-48
+4.47089e-43
+3.97282e-40
+1.275e-40
+5.16046e-44
+2.2061e-41
+2.69836e-41
+3.0501e-42
+8.15045e-42
+1.48102e-42
+1.60725e-40
+4.31849e-40
+1.36744e-42
+4.31172e-41
+3.16497e-43
+2.46538e-42
+3.00062e-43
+2.48889e-41
+9.779e-44
+9.34759e-43
+2.7997e-41
+2.10036e-42
+7.61586e-42
+9.78125e-42
+5.23334e-44
+2.86992e-42
+1.26044e-41
+3.86308e-43
+3.77225e-43
+1.69542e-42
+5.5695e-42
+1.60625e-42
+2.59271e-41
+9.75821e-44
+3.20041e-43
+2.25358e-44
+4.73886e-42
+1.35824e-41
+3.41539e-41
+2.53065e-42
+2.48062e-41
+7.15466e-42
+2.95833e-48
+2.6902e-41
+6.59654e-42
+4.64663e-43
+1.07147e-42
+0
+1.01606e-42
+6.33269e-44
+2.11035e-41
+7.70122e-41
+3.90394e-44
+5.16794e-42
+4.73203e-41
+2.31077e-43
+1.24445e-42
+1.24733e-44
+2.12409e-43
+1.65226e-41
+2.73251e-42
+5.19593e-43
+4.43888e-44
+2.01063e-41
+1.80312e-42
+6.39764e-43
+2.31674e-42
+4.483e-41
+2.11611e-41
+2.05968e-41
+1.22552e-42
+7.49829e-42
+1.03881e-41
+3.37723e-44
+4.99655e-43
+1.31263e-44
+1.03923e-42
+1.24279e-41
+9.67235e-44
+2.23454e-43
+2.32603e-41
+2.82973e-42
+3.21017e-42
+8.45861e-44
+4.74801e-44
+1.24786e-42
+2.46914e-42
+8.53147e-42
+1.22305e-41
+8.94106e-42
+1.10493e-43
+2.28473e-43
+1.67323e-41
+2.37316e-42
+1.6837e-42
+1.54068e-41
+3.32357e-42
+1.55041e-42
+7.06618e-45
+2.51812e-43
+2.01173e-45
+4.18444e-42
+1.13838e-42
+7.38388e-42
+6.02908e-43
+2.1422e-43
+8.49912e-43
+4.36043e-44
+8.04447e-43
+2.54319e-43
+1.86712e-43
+1.67491e-42
+1.28968e-43
+5.78887e-43
+2.64105e-47
+2.56953e-47
+41606.2
+632.916
+346.635
+266.233
+223.942
+196.574
+176.919
+161.89
+149.902
+140.045
+21.429
+0.00201605
+1.69417e-41
+1.6221e-42
+2.54932e-40
+1.81793e-41
+3.70621e-40
+1.37248e-41
+8.22022e-43
+2.88561e-42
+3.43812e-41
+6.07202e-42
+4.80628e-42
+2.59375e-42
+1.2105e-42
+5.29762e-41
+1.00738e-40
+4.15024e-44
+2.06246e-41
+3.98558e-42
+1.63701e-42
+5.80806e-43
+6.86111e-43
+5.59309e-41
+6.43227e-41
+2.43307e-41
+8.77164e-43
+1.1713e-42
+1.38714e-41
+6.47137e-42
+1.40165e-41
+1.59874e-42
+8.18712e-42
+1.24606e-43
+4.15504e-41
+6.46957e-42
+0
+7.69548e-42
+1.44162e-41
+2.06523e-40
+3.38026e-41
+1.10739e-41
+5.34668e-42
+3.11446e-41
+3.11948e-43
+1.47478e-40
+3.25972e-41
+3.33976e-42
+3.85753e-42
+6.26334e-41
+1.71785e-42
+1.81449e-41
+2.12935e-41
+7.20533e-44
+1.83753e-41
+4.39396e-45
+1.14618e-43
+5.02433e-41
+1.10329e-42
+3.93398e-45
+1.60328e-42
+9.48969e-41
+1.35168e-40
+5.7983e-41
+5.17275e-42
+1.11635e-44
+2.05969e-43
+8.58487e-42
+1.28416e-42
+1.00162e-44
+4.37681e-42
+1.63188e-41
+4.13874e-42
+3.65745e-41
+7.0647e-43
+2.89634e-42
+4.75105e-42
+3.59647e-42
+3.17853e-41
+3.50814e-44
+0
+1.54031e-42
+3.02139e-41
+1.02244e-42
+2.42665e-43
+2.77546e-41
+4.96836e-44
+1.14327e-43
+5.68019e-41
+0
+1.68299e-45
+1.93688e-41
+1.23782e-41
+7.61746e-41
+1.06588e-42
+1.13643e-41
+5.8243e-43
+6.88134e-43
+1.38848e-41
+1.58392e-43
+1.36911e-45
+4.03853e-42
+1.45507e-43
+1.41391e-43
+2.97339e-44
+5.40365e-41
+1.26124e-41
+2.76359e-42
+9.72565e-42
+1.18972e-43
+3.96919e-44
+5.23361e-42
+2.94243e-42
+3.15404e-42
+1.00159e-41
+3.92707e-42
+2.13067e-42
+2.07683e-43
+1.28778e-41
+1.08243e-42
+3.22567e-41
+1.21111e-40
+6.52932e-43
+4.05428e-44
+2.01634e-41
+9.90861e-42
+4.45554e-41
+3.87081e-42
+5.44032e-42
+1.7942e-42
+1.53801e-41
+3.65486e-43
+2.49271e-43
+3.78219e-42
+6.11045e-43
+1.22393e-42
+1.18844e-42
+9.24014e-43
+8.96608e-43
+1.06988e-44
+2.65161e-41
+1.22402e-41
+2.48755e-42
+1.64292e-41
+1.87577e-41
+1.12008e-42
+3.56333e-41
+2.50226e-45
+3.81223e-44
+1.37526e-41
+2.65063e-42
+3.47224e-41
+2.87168e-42
+3.49627e-43
+6.97124e-43
+5.42132e-43
+2.3936e-43
+1.69368e-43
+1.8045e-42
+4.72757e-44
+1.23889e-42
+1.20242e-42
+2.43465e-42
+4.26669e-43
+4.12095e-44
+2.43465e-43
+3.83444e-44
+5.64763e-42
+3.65544e-44
+2.57281e-47
+41595.7
+632.791
+346.598
+266.209
+223.924
+196.559
+176.906
+161.878
+149.892
+140.035
+21.4333
+0.0020383
+2.4136e-40
+2.96216e-40
+7.87626e-41
+3.37618e-43
+7.2108e-42
+3.11069e-41
+4.13831e-43
+9.09752e-41
+3.68233e-44
+2.08686e-40
+9.14809e-41
+1.0647e-41
+5.69166e-41
+9.56701e-41
+5.38924e-44
+6.97165e-41
+8.09e-44
+2.87065e-44
+1.90065e-41
+4.76332e-42
+3.70903e-42
+9.57503e-42
+7.14317e-41
+2.44486e-40
+1.24279e-40
+4.0288e-42
+3.08364e-43
+8.88407e-44
+2.65667e-41
+3.60215e-42
+2.51144e-41
+1.94682e-44
+2.64753e-41
+4.21362e-41
+0
+3.37993e-42
+2.66896e-48
+3.8993e-42
+1.23841e-41
+3.50348e-45
+1.02403e-41
+7.47762e-42
+4.6017e-41
+4.47245e-41
+2.61612e-42
+4.26998e-43
+2.54844e-40
+4.59385e-42
+4.70228e-43
+1.13118e-42
+5.78184e-45
+3.01772e-44
+1.34315e-41
+3.86696e-42
+6.44174e-46
+6.43128e-46
+1.31439e-43
+1.75989e-41
+1.3026e-40
+6.96876e-44
+1.11228e-40
+3.83642e-43
+5.11157e-43
+3.94648e-41
+1.89495e-41
+4.812e-46
+8.95248e-42
+1.58747e-41
+7.13755e-41
+2.13313e-43
+0
+1.93053e-42
+1.37117e-41
+2.98429e-45
+3.83148e-42
+3.58947e-46
+5.86518e-43
+4.55244e-42
+1.63693e-43
+2.48316e-42
+5.93486e-42
+4.35526e-41
+3.54986e-41
+2.19184e-41
+2.67897e-43
+8.76675e-43
+5.72288e-41
+2.44721e-43
+5.2141e-42
+3.06833e-43
+2.17784e-41
+3.76347e-43
+9.99978e-41
+1.40933e-41
+3.48491e-41
+1.92552e-46
+1.28781e-41
+3.1864e-42
+3.09168e-42
+1.09228e-41
+8.49253e-44
+1.28518e-42
+9.0924e-43
+1.7788e-41
+1.46673e-43
+1.42281e-43
+5.42459e-42
+5.48587e-43
+1.62317e-44
+3.30177e-41
+1.04065e-41
+1.18478e-43
+6.70348e-43
+1.47819e-41
+1.27139e-41
+4.12247e-42
+2.23208e-42
+9.89756e-44
+5.26849e-41
+3.12689e-43
+4.4134e-43
+1.92472e-43
+1.85472e-42
+2.68939e-41
+1.25855e-47
+4.9242e-45
+5.14057e-42
+1.41088e-41
+3.58836e-44
+2.53584e-41
+2.35674e-41
+3.29015e-44
+1.08721e-42
+2.02731e-43
+5.65542e-42
+3.08974e-42
+1.5688e-41
+9.30017e-43
+1.12872e-43
+1.7844e-42
+4.81129e-44
+2.72248e-43
+3.61353e-43
+3.50108e-46
+1.71816e-41
+3.99922e-42
+1.25179e-41
+6.66193e-44
+2.18105e-43
+2.89744e-43
+0
+1.86324e-42
+5.78277e-43
+3.74577e-46
+1.01074e-42
+1.22576e-43
+5.0853e-43
+1.10133e-42
+5.95693e-43
+3.63278e-43
+4.5187e-44
+5.8736e-42
+1.90892e-46
+1.07798e-42
+1.17702e-44
+4.67872e-45
+7.19598e-42
+5.32273e-42
+41584.1
+632.659
+346.559
+266.184
+223.905
+196.543
+176.893
+161.867
+149.881
+140.026
+21.4372
+0.002061
+1.84712e-41
+1.00384e-42
+3.68844e-40
+1.97066e-40
+2.76289e-40
+4.96185e-42
+3.96479e-43
+3.74974e-41
+7.6895e-41
+3.54173e-41
+3.53711e-43
+1.02374e-41
+3.09257e-42
+3.15855e-41
+3.94573e-44
+4.82437e-41
+1.3889e-41
+2.46388e-41
+1.2336e-40
+2.18416e-45
+1.13726e-41
+1.31988e-43
+6.10512e-42
+9.96124e-43
+4.15164e-42
+1.21937e-40
+5.05865e-41
+2.16526e-43
+5.6768e-42
+7.33893e-42
+1.44571e-40
+4.59011e-41
+3.28465e-41
+2.00869e-41
+1.41098e-45
+1.58647e-42
+4.95413e-42
+1.06327e-40
+2.08666e-43
+1.85234e-42
+2.55358e-40
+2.3572e-40
+3.06189e-43
+3.65052e-45
+1.741e-41
+8.38948e-41
+3.37973e-45
+7.90403e-41
+3.1459e-42
+1.98733e-42
+1.09737e-43
+5.84559e-42
+1.21593e-41
+7.31161e-41
+1.07639e-41
+7.56343e-43
+3.42028e-41
+1.08179e-42
+5.11724e-42
+1.47105e-42
+9.02823e-47
+4.04021e-44
+1.91107e-41
+3.8021e-44
+2.35637e-42
+5.94217e-42
+1.4903e-43
+6.56946e-44
+3.26429e-44
+3.16587e-44
+4.79045e-43
+3.71577e-42
+1.23586e-42
+1.8425e-43
+6.22796e-42
+4.99643e-42
+4.98232e-44
+7.59818e-42
+1.92363e-43
+7.84334e-44
+9.65756e-43
+7.49652e-43
+7.1399e-44
+5.63184e-42
+3.30721e-42
+3.76288e-44
+8.69224e-42
+2.26282e-42
+1.59827e-42
+4.58932e-43
+6.27787e-42
+4.38421e-42
+4.17925e-43
+6.13876e-41
+2.83664e-41
+1.28249e-42
+2.26784e-42
+2.42756e-41
+1.59916e-45
+5.76953e-42
+2.28279e-42
+3.93676e-44
+4.83215e-43
+1.1749e-41
+1.13801e-41
+1.053e-40
+7.92914e-41
+1.19239e-41
+1.16186e-42
+1.75794e-44
+1.70972e-44
+1.28351e-41
+3.80381e-42
+1.50394e-42
+7.0993e-42
+1.12775e-41
+1.97127e-42
+1.05686e-41
+6.72627e-42
+8.13845e-43
+5.74455e-43
+2.0933e-42
+1.12322e-42
+3.01287e-43
+1.35012e-42
+3.90363e-42
+3.31379e-43
+7.87311e-46
+1.6362e-44
+1.62682e-44
+1.24638e-42
+2.35327e-44
+1.79214e-45
+6.42126e-47
+2.44147e-42
+1.62239e-42
+3.71991e-42
+5.62206e-44
+0
+1.15452e-42
+2.96644e-43
+4.91915e-47
+1.28443e-42
+5.08752e-42
+1.20106e-45
+4.18676e-42
+1.01646e-42
+1.62962e-41
+2.83438e-41
+1.75605e-42
+6.39084e-43
+3.25645e-43
+5.30583e-43
+1.69216e-44
+1.24893e-42
+3.90095e-45
+3.48621e-46
+2.44024e-42
+4.78404e-44
+3.76201e-42
+6.16207e-42
+1.99879e-46
+5.27858e-45
+7.64404e-43
+4.86855e-45
+4.76141e-45
+2.04835e-42
+0
+41571.6
+632.522
+346.518
+266.158
+223.886
+196.527
+176.88
+161.855
+149.871
+140.017
+21.4402
+0.00208263
+3.08215e-43
+2.19789e-41
+1.69114e-41
+7.31203e-41
+9.40729e-42
+6.32309e-42
+4.91147e-41
+2.68815e-41
+5.95992e-44
+2.06577e-41
+1.47254e-40
+2.58125e-41
+1.38762e-40
+9.00089e-42
+3.16418e-41
+4.54474e-41
+2.05721e-41
+9.85435e-45
+7.75194e-42
+2.74161e-45
+9.90778e-42
+7.0846e-42
+7.10803e-41
+4.78471e-41
+2.35878e-42
+5.02362e-41
+1.29488e-41
+3.88508e-40
+2.61283e-43
+6.86268e-45
+2.71849e-41
+5.23503e-42
+1.18419e-40
+9.09072e-41
+4.78107e-43
+2.56769e-42
+1.89535e-42
+2.415e-42
+2.40592e-44
+1.08851e-42
+6.10823e-43
+2.20326e-44
+5.06906e-42
+2.59775e-41
+1.59946e-43
+9.19077e-41
+3.29995e-42
+1.45766e-43
+4.76757e-43
+1.7116e-44
+3.58349e-45
+7.50481e-43
+5.109e-43
+1.47018e-42
+1.78099e-40
+9.66737e-42
+1.38065e-44
+8.47274e-42
+6.60814e-42
+1.21723e-42
+1.70391e-42
+3.80543e-41
+1.97115e-44
+6.07487e-42
+9.44273e-42
+1.81821e-43
+2.70374e-43
+1.59368e-41
+9.96972e-42
+1.73473e-41
+1.92658e-45
+9.05603e-42
+1.45202e-42
+1.67817e-41
+3.17375e-41
+3.07296e-44
+1.96221e-43
+9.88078e-42
+7.24984e-41
+1.38245e-41
+2.97799e-43
+6.57678e-44
+4.07428e-42
+1.00302e-44
+1.61041e-42
+3.21292e-42
+5.10749e-43
+4.06605e-44
+3.82591e-42
+3.8075e-44
+4.48137e-43
+9.33476e-42
+1.41177e-43
+4.42322e-42
+7.68734e-42
+7.08085e-42
+1.03509e-44
+3.64889e-42
+7.40263e-42
+1.27592e-42
+6.29524e-42
+1.63496e-45
+3.41792e-43
+5.69405e-42
+3.6636e-48
+4.90412e-43
+5.67708e-41
+2.08857e-41
+4.43276e-43
+1.66299e-42
+7.04494e-42
+8.51509e-43
+1.717e-42
+2.68475e-42
+1.7489e-41
+1.69006e-41
+2.70345e-42
+2.61234e-42
+2.02161e-42
+4.55197e-43
+1.88774e-42
+1.54486e-41
+8.54031e-42
+7.74921e-43
+9.71612e-42
+1.00004e-41
+1.02752e-41
+2.31633e-43
+3.80218e-42
+6.70562e-42
+2.05273e-42
+2.01598e-43
+7.09136e-47
+6.91608e-44
+1.97013e-42
+3.78494e-41
+2.87686e-42
+2.4386e-43
+3.15414e-42
+1.82309e-41
+1.59626e-42
+2.12209e-43
+6.24076e-42
+1.62648e-43
+5.65963e-43
+3.09432e-42
+1.22753e-45
+2.15583e-44
+1.14327e-45
+3.31819e-42
+2.22983e-42
+2.49914e-42
+1.18081e-43
+2.70049e-43
+4.36045e-45
+2.79461e-46
+2.80691e-43
+7.66438e-42
+2.61181e-43
+3.76047e-43
+5.73651e-45
+1.03826e-43
+6.91348e-46
+2.29126e-42
+3.92174e-44
+1.40062e-45
+2.81889e-44
+0
+41558
+632.383
+346.477
+266.132
+223.867
+196.512
+176.867
+161.844
+149.861
+140.008
+21.4414
+0.00210161
+1.50446e-42
+8.52431e-41
+2.6046e-41
+1.62736e-41
+8.2959e-42
+3.54412e-42
+1.0021e-44
+3.06656e-40
+8.00105e-41
+7.78491e-40
+7.74683e-41
+2.81686e-43
+4.38904e-41
+9.07899e-41
+5.7181e-41
+1.24419e-40
+3.24663e-41
+1.23295e-44
+7.3398e-42
+9.93258e-42
+7.30959e-42
+1.50105e-42
+1.45484e-42
+2.07758e-41
+7.16765e-43
+1.27781e-41
+7.07643e-41
+5.2176e-42
+2.7877e-42
+4.15777e-41
+3.51542e-40
+9.66489e-41
+6.26285e-43
+7.45484e-45
+2.30435e-42
+2.99984e-43
+7.12001e-42
+6.37139e-41
+1.07467e-40
+9.23814e-41
+2.2084e-43
+1.24699e-42
+6.16786e-42
+4.64068e-42
+3.41174e-42
+1.29529e-41
+2.14067e-41
+1.40933e-42
+3.15813e-41
+6.76173e-43
+7.45553e-42
+1.81975e-41
+1.27533e-41
+3.18097e-42
+3.67626e-41
+2.12059e-42
+3.55695e-45
+1.49531e-41
+1.42365e-40
+6.09256e-44
+1.81296e-41
+2.44528e-42
+5.02799e-42
+2.84933e-45
+5.56076e-41
+1.71475e-42
+2.71312e-41
+1.07382e-41
+1.81311e-41
+8.3104e-42
+8.03694e-42
+7.40202e-43
+3.16805e-43
+5.81377e-41
+1.26965e-42
+9.64893e-43
+1.48259e-43
+6.524e-44
+1.5384e-42
+2.47061e-41
+2.19967e-41
+4.55713e-46
+4.69006e-42
+4.25705e-43
+4.00461e-41
+6.61507e-41
+1.9672e-43
+6.17709e-41
+5.96867e-41
+1.97821e-41
+9.19704e-44
+1.20499e-42
+3.12655e-43
+1.76096e-42
+2.51298e-42
+2.05455e-43
+2.34438e-42
+2.26442e-42
+3.1764e-44
+1.57966e-44
+1.51764e-44
+8.09474e-46
+6.05675e-43
+2.66403e-44
+2.34761e-41
+4.3616e-42
+8.94821e-42
+3.33927e-41
+2.97345e-41
+1.99752e-43
+2.09052e-44
+9.37252e-43
+5.77581e-43
+2.58851e-43
+2.39515e-42
+3.05985e-42
+1.33797e-42
+2.85114e-43
+3.55294e-42
+0
+7.45847e-42
+7.74828e-42
+6.3246e-43
+2.29631e-42
+2.29022e-41
+1.11039e-41
+4.80524e-44
+1.59081e-42
+8.08529e-43
+1.05671e-44
+8.1157e-44
+2.64098e-43
+9.18141e-43
+8.84995e-43
+8.25022e-42
+3.94367e-43
+2.43214e-41
+2.93045e-42
+5.89298e-42
+1.28275e-43
+4.49995e-43
+9.37173e-44
+4.29319e-46
+4.28702e-42
+3.87922e-46
+3.73872e-43
+2.47021e-42
+5.1024e-42
+5.08327e-43
+5.05298e-45
+1.91148e-41
+2.21579e-42
+6.66123e-42
+2.3877e-42
+7.3279e-43
+5.05998e-42
+1.07077e-44
+1.52541e-44
+6.29747e-43
+4.34937e-42
+5.46175e-42
+7.25299e-46
+5.87486e-42
+3.01813e-45
+5.03083e-44
+1.2821e-43
+9.66069e-42
+5.33853e-42
+41543.2
+632.243
+346.436
+266.108
+223.849
+196.498
+176.855
+161.834
+149.852
+140
+21.4403
+0.00211641
+1.7522e-40
+6.57407e-41
+2.68699e-41
+4.58382e-43
+8.4419e-41
+1.94487e-41
+7.42748e-40
+3.67777e-41
+1.20224e-40
+2.65743e-41
+5.57669e-40
+8.66953e-44
+1.97517e-40
+3.33142e-43
+6.12999e-41
+6.0979e-43
+2.12176e-41
+1.00386e-40
+6.73329e-42
+4.61559e-42
+3.02468e-42
+9.0547e-41
+1.06761e-42
+3.24168e-41
+7.54834e-42
+3.03652e-41
+1.98932e-41
+1.48287e-41
+2.75197e-41
+1.43877e-42
+3.07721e-41
+3.52079e-41
+2.30446e-40
+3.09e-40
+2.01145e-40
+4.20292e-41
+7.12911e-41
+3.607e-42
+1.67225e-42
+2.77344e-43
+3.3563e-44
+9.6593e-43
+1.72878e-41
+1.33093e-41
+2.28292e-41
+2.20729e-41
+3.42958e-45
+2.49385e-41
+2.04926e-43
+2.47698e-44
+6.4633e-43
+3.25075e-41
+5.33026e-42
+3.92513e-41
+9.74775e-43
+1.39149e-42
+8.0053e-44
+1.88537e-44
+6.79981e-42
+6.57019e-42
+2.79441e-41
+2.98371e-41
+1.57765e-40
+5.07279e-41
+4.4555e-42
+9.75138e-42
+6.06723e-42
+9.20026e-43
+5.88592e-42
+3.70922e-43
+1.17059e-42
+8.00693e-43
+1.03932e-43
+9.87991e-42
+5.76311e-42
+1.26688e-45
+1.19338e-41
+8.71128e-44
+1.14359e-41
+8.52901e-43
+6.7735e-44
+3.60062e-41
+1.65216e-41
+4.19198e-42
+1.05863e-41
+1.16331e-41
+1.6437e-41
+1.05568e-41
+3.70881e-41
+4.54668e-43
+4.73508e-44
+2.66392e-43
+1.31267e-42
+1.27827e-41
+2.2602e-41
+2.30882e-43
+0
+3.68101e-44
+4.43221e-45
+1.22871e-42
+3.05309e-43
+5.58667e-43
+6.73274e-44
+2.9544e-44
+1.57037e-41
+3.23e-42
+1.56992e-42
+5.60403e-44
+3.08659e-45
+4.09742e-44
+7.83209e-45
+3.094e-42
+1.80632e-42
+7.34236e-43
+1.04625e-41
+2.37081e-45
+3.75328e-42
+5.29489e-42
+1.35808e-43
+3.52822e-45
+7.34122e-43
+2.25615e-42
+3.15249e-42
+3.08552e-43
+3.65512e-43
+2.05254e-42
+0
+1.20982e-44
+8.02136e-43
+1.12514e-44
+1.99719e-42
+1.82344e-42
+7.78271e-42
+4.39161e-42
+1.62968e-43
+6.93902e-42
+3.06946e-42
+5.28206e-43
+1.80292e-42
+1.19496e-43
+5.88927e-44
+6.55889e-44
+3.18023e-43
+6.94993e-42
+7.93615e-42
+5.61248e-41
+1.08477e-41
+1.51686e-43
+9.98719e-43
+2.42068e-43
+5.29416e-42
+1.50837e-42
+9.67338e-42
+3.54817e-41
+8.94313e-42
+3.28363e-44
+6.92806e-44
+3.50939e-44
+1.66305e-42
+4.91954e-42
+1.37862e-44
+7.34634e-43
+3.16399e-45
+1.64764e-42
+5.04572e-43
+1.26014e-42
+9.0189e-45
+5.3431e-42
+41527.2
+632.105
+346.397
+266.084
+223.832
+196.485
+176.844
+161.825
+149.844
+139.993
+21.4361
+0.00212553
+1.04341e-40
+4.41979e-42
+1.43161e-41
+9.80776e-42
+1.59379e-43
+8.29741e-40
+3.38634e-40
+1.07384e-39
+5.62535e-42
+1.89189e-40
+3.31717e-41
+1.96765e-41
+9.08957e-43
+3.80001e-43
+1.06255e-40
+2.84235e-42
+3.37214e-41
+6.94583e-41
+2.54841e-40
+1.93942e-41
+1.99713e-49
+9.67988e-41
+6.48932e-43
+2.45781e-43
+4.78858e-40
+2.53273e-43
+1.86494e-42
+7.89129e-41
+8.14275e-42
+1.0417e-41
+1.62619e-42
+2.20512e-40
+2.89648e-41
+1.86961e-40
+4.99383e-44
+4.47129e-41
+6.18165e-42
+8.3761e-41
+3.47805e-43
+3.26971e-41
+4.69479e-44
+1.02923e-40
+2.59399e-40
+6.58669e-42
+5.02071e-41
+1.00607e-40
+1.47063e-42
+7.20329e-42
+2.83957e-41
+1.17762e-40
+1.14753e-40
+1.25799e-41
+3.52797e-42
+1.0318e-40
+2.13432e-43
+5.01352e-41
+1.51912e-41
+3.91248e-43
+2.15957e-42
+2.07235e-44
+2.65222e-42
+5.67246e-42
+3.46263e-41
+2.55571e-41
+3.22189e-41
+2.40963e-41
+5.43673e-44
+6.94992e-43
+2.96946e-49
+5.27628e-41
+2.92148e-41
+1.30753e-42
+8.60359e-43
+2.19504e-43
+1.11579e-41
+2.03817e-42
+3.30587e-41
+9.29292e-44
+3.79946e-42
+4.48226e-43
+8.81248e-42
+6.12767e-42
+1.03836e-44
+8.64134e-45
+2.1883e-41
+5.52985e-43
+2.02509e-40
+5.95778e-41
+3.95578e-42
+3.96391e-41
+2.34929e-40
+9.25289e-42
+7.56656e-42
+2.77547e-43
+1.25263e-45
+1.25246e-42
+1.4345e-43
+4.40748e-41
+4.94767e-45
+1.11583e-41
+1.25772e-40
+1.73393e-41
+2.63627e-41
+7.58059e-42
+8.22354e-42
+8.56671e-43
+2.00286e-42
+1.9276e-42
+4.85465e-42
+3.24115e-45
+5.47115e-43
+8.95105e-42
+2.63264e-42
+4.87724e-44
+4.96786e-42
+3.61112e-43
+6.67037e-44
+2.98355e-46
+0
+2.13986e-43
+3.72161e-44
+8.92667e-43
+5.25142e-42
+1.7161e-42
+1.23217e-42
+5.6356e-42
+3.61015e-46
+1.08484e-41
+2.80501e-42
+2.94343e-50
+6.26593e-43
+4.01205e-42
+1.73334e-41
+1.88678e-41
+3.28864e-44
+3.49517e-42
+8.75855e-43
+1.14695e-42
+1.03207e-41
+1.48536e-41
+3.43348e-42
+1.06302e-41
+2.39906e-44
+6.20459e-42
+6.52999e-45
+6.27197e-45
+1.81192e-42
+2.30369e-41
+9.76637e-44
+3.51319e-42
+5.51739e-42
+9.75032e-50
+4.59733e-43
+7.57152e-46
+4.03479e-42
+1.25716e-42
+2.64166e-42
+5.10812e-43
+4.5915e-42
+1.95589e-42
+1.1149e-41
+1.80146e-42
+1.72877e-42
+6.30979e-42
+4.05595e-42
+2.21597e-41
+4.94543e-42
+5.34717e-42
+41520.6
+637.363
+347.799
+266.668
+224.133
+196.661
+176.956
+161.9
+149.897
+140.031
+21.4467
+0.00212756
+0
+7.49179e-51
+3.92128e-40
+0
+0
+3.5363e-40
+0
+0
+3.18768e-40
+0
+2.97383e-40
+4.24166e-50
+0
+0
+3.82004e-50
+0
+2.41165e-40
+2.32847e-40
+0
+0
+2.09511e-40
+2.02244e-40
+0
+2.78276e-50
+0
+1.75519e-40
+1.69388e-40
+0
+0
+1.52201e-40
+0
+1.41687e-40
+0
+1.31873e-40
+1.27213e-40
+0
+1.74805e-50
+1.14165e-40
+1.10109e-40
+0
+1.51239e-50
+9.87534e-41
+9.52249e-41
+0
+8.85278e-41
+8.53514e-41
+8.22847e-41
+0
+7.64659e-41
+0
+7.10438e-41
+0
+0
+7.5139e-50
+7.2409e-50
+6.97746e-50
+5.6906e-41
+0
+0
+5.0894e-41
+4.90296e-41
+5.58018e-50
+4.54958e-41
+0
+4.2208e-41
+0
+3.91496e-41
+4.45431e-50
+0
+3.49587e-41
+3.36603e-41
+0
+0
+0
+3.41639e-50
+2.78352e-41
+0
+2.57885e-41
+2.48204e-41
+2.38873e-41
+2.29881e-41
+2.21216e-41
+2.51494e-50
+0
+0
+0
+0
+0
+0
+1.62369e-41
+1.84516e-50
+0
+1.36544e-49
+0
+1.33603e-41
+1.28473e-41
+1.23533e-41
+1.12265e-49
+0
+1.09791e-41
+1.05547e-41
+0
+9.75312e-42
+0
+9.01041e-42
+8.65989e-42
+8.32258e-42
+6.3984e-41
+7.68565e-42
+7.38518e-42
+5.67679e-41
+6.81786e-42
+6.19109e-50
+6.29277e-42
+6.04514e-42
+0
+0
+5.35757e-42
+0
+4.94186e-42
+4.74595e-42
+3.646e-41
+0
+0
+0
+0
+0
+0
+0
+3.10946e-50
+0
+2.86465e-50
+0
+2.2333e-41
+2.14321e-41
+0
+0
+1.89354e-41
+1.81677e-41
+1.74304e-41
+0
+1.5162e-49
+1.45443e-49
+1.47604e-41
+0
+0
+0
+1.18045e-49
+1.13201e-49
+1.14847e-41
+1.04086e-49
+9.97995e-50
+9.56849e-50
+9.17353e-50
+0
+8.43057e-50
+8.55016e-42
+7.7462e-50
+0
+0
+0
+6.91474e-42
+6.62634e-42
+0
+6.08411e-42
+5.82943e-42
+0
+5.35076e-42
+180.7
+689.377
+310.586
+255.464
+219.197
+193.992
+175.323
+160.814
+149.131
+139.467
+20.2683
+0.000503212
+1.79342e-43
+9.56946e-42
+5.40418e-44
+1.31921e-43
+2.47776e-41
+1.90827e-40
+5.72939e-41
+1.62022e-40
+1.29877e-40
+3.10992e-44
+2.05304e-40
+1.39047e-40
+4.55506e-41
+3.36081e-41
+1.41552e-41
+8.33844e-44
+8.87192e-42
+4.1528e-41
+1.71334e-41
+5.04493e-42
+4.79086e-41
+3.5571e-41
+0
+4.89381e-43
+2.17909e-45
+1.57805e-41
+5.22733e-41
+1.05676e-41
+1.97812e-42
+1.52172e-41
+1.72354e-42
+7.30971e-42
+3.03782e-42
+9.80432e-44
+1.17085e-40
+2.57069e-42
+1.44418e-42
+8.14887e-42
+8.6657e-41
+8.95339e-44
+9.86049e-42
+6.95358e-42
+6.26579e-41
+4.41968e-41
+2.83621e-42
+8.08042e-42
+1.02869e-42
+6.9858e-41
+1.58878e-41
+5.05189e-42
+0
+3.8316e-43
+4.47811e-42
+4.30124e-42
+1.43262e-43
+5.09542e-45
+3.13209e-43
+1.12002e-42
+1.07555e-42
+2.9869e-43
+4.54697e-42
+4.23986e-42
+0
+0
+2.20254e-41
+7.98535e-42
+3.45767e-42
+3.10832e-41
+3.89603e-41
+1.82441e-41
+3.88852e-43
+2.12331e-44
+3.37895e-43
+2.44434e-45
+2.29877e-41
+2.95842e-41
+1.72816e-44
+4.76573e-42
+2.94534e-42
+1.05163e-42
+3.44376e-41
+2.46604e-42
+1.04889e-41
+1.61686e-45
+1.23932e-44
+9.25604e-42
+5.20465e-42
+3.14334e-42
+6.90458e-42
+1.2624e-45
+8.92939e-44
+6.37205e-43
+7.09385e-44
+8.27359e-43
+1.17583e-41
+5.14459e-42
+2.15325e-42
+8.97475e-46
+2.56887e-42
+2.46237e-42
+2.26321e-42
+8.06684e-45
+2.07901e-42
+1.65846e-43
+1.9913e-42
+1.2028e-41
+1.16761e-42
+6.25399e-45
+2.48015e-42
+3.93347e-42
+3.76859e-42
+1.47656e-42
+2.61219e-43
+3.63059e-45
+5.43414e-44
+1.36513e-44
+1.45681e-42
+1.14078e-42
+2.67168e-42
+2.80354e-48
+1.25278e-43
+6.90527e-42
+9.89727e-42
+4.36635e-43
+1.24478e-42
+2.29392e-42
+2.06964e-45
+1.09253e-42
+2.01312e-42
+2.55144e-42
+2.17312e-46
+2.20755e-43
+6.53599e-45
+2.9071e-42
+4.82753e-42
+4.17068e-42
+1.25815e-42
+0
+4.01164e-44
+1.55431e-43
+1.18965e-42
+3.20296e-42
+1.18474e-41
+7.89863e-43
+7.31576e-43
+5.75243e-44
+8.63643e-46
+7.61774e-45
+4.14519e-42
+3.75092e-41
+5.6059e-43
+6.37689e-45
+7.50153e-42
+6.29849e-46
+5.1138e-42
+4.20588e-42
+4.67653e-42
+5.26741e-46
+5.34495e-43
+9.18199e-43
+1.10792e-42
+5.50381e-44
+1.20509e-42
+3.13311e-43
+2.99514e-43
+0
+1.93788e-43
+5.6363e-42
+768.292
+241.146
+256.64
+233.789
+208.775
+188.182
+171.724
+158.412
+147.436
+133.767
+16.7935
+1.41624e-43
+1.0929e-42
+6.74675e-41
+1.27096e-40
+1.11702e-41
+5.07302e-43
+1.29862e-42
+7.05404e-41
+1.76387e-41
+7.45206e-41
+2.77764e-40
+6.01681e-40
+2.94e-40
+2.17306e-40
+3.9123e-40
+1.48454e-39
+1.06493e-41
+4.43677e-42
+1.4355e-43
+1.72924e-44
+1.29769e-41
+0
+1.16523e-40
+8.83844e-42
+2.41056e-40
+2.011e-40
+1.33409e-44
+4.79588e-42
+9.63862e-42
+6.0673e-41
+5.06619e-41
+7.08133e-43
+1.93484e-41
+3.83044e-42
+8.39049e-41
+5.24783e-42
+1.66427e-41
+4.86608e-42
+2.98427e-41
+8.18197e-45
+5.83626e-43
+7.64291e-41
+8.42772e-41
+2.4107e-42
+4.93969e-41
+1.94449e-41
+2.05409e-43
+6.40187e-42
+2.56095e-41
+3.57618e-43
+2.75296e-42
+4.02896e-42
+3.98289e-44
+8.28403e-45
+1.72029e-42
+2.33605e-41
+3.21207e-41
+4.10837e-45
+9.07965e-42
+6.89542e-42
+2.27536e-41
+1.63906e-40
+4.74694e-42
+1.23363e-41
+3.31622e-42
+1.01317e-39
+3.87841e-40
+5.04536e-42
+4.48213e-41
+1.13302e-41
+5.88555e-43
+4.56974e-41
+5.24913e-42
+3.59504e-41
+1.31368e-41
+1.57852e-42
+5.26064e-44
+3.2379e-45
+2.61401e-41
+6.07283e-42
+1.06418e-43
+5.2324e-44
+9.55834e-42
+1.48567e-41
+6.2479e-42
+4.45905e-44
+1.55694e-40
+3.29217e-43
+2.32216e-41
+1.62827e-42
+3.64883e-44
+1.43487e-40
+5.63404e-41
+1.38674e-43
+4.17714e-42
+4.65636e-43
+6.98591e-45
+6.52925e-43
+1.85188e-42
+4.21417e-42
+1.70705e-42
+1.19534e-41
+3.40865e-41
+7.44435e-41
+5.67162e-42
+1.15343e-42
+3.49768e-41
+1.35408e-40
+6.01199e-42
+3.04254e-43
+1.83873e-43
+6.64098e-43
+2.82557e-42
+9.15076e-42
+5.21443e-42
+6.92314e-43
+2.46007e-41
+9.27603e-43
+6.6204e-41
+1.86207e-41
+4.27849e-42
+4.87354e-43
+3.93631e-42
+3.22821e-42
+2.8965e-41
+1.98924e-42
+3.55955e-43
+2.68858e-44
+4.83287e-41
+1.11309e-41
+3.59295e-42
+7.21047e-43
+1.25981e-44
+6.62775e-43
+1.07332e-43
+1.39813e-41
+2.33545e-43
+2.13859e-41
+5.00471e-42
+3.79611e-42
+3.21574e-41
+4.01442e-43
+7.63627e-41
+7.21163e-42
+1.32968e-42
+1.55742e-41
+1.9985e-42
+9.61009e-42
+9.20708e-42
+1.07462e-43
+7.37761e-42
+2.95542e-41
+2.11219e-43
+9.04738e-44
+6.58635e-45
+1.48487e-42
+3.35366e-41
+1.90162e-42
+1.12003e-43
+1.14208e-42
+4.05053e-44
+2.91485e-44
+1.00295e-42
+3.2505e-43
+1.04815e-43
+3.82704e-43
+5.15073e-44
+1.84503e-46
+0
+248.326
+204.807
+212.088
+206.486
+192.958
+178.517
+165.433
+154.086
+144.327
+113.911
+11.4304
+2.0438e-41
+6.84669e-43
+2.75352e-40
+3.11089e-40
+8.53358e-42
+5.31392e-41
+2.13325e-41
+3.56049e-44
+1.59206e-43
+2.70026e-41
+1.35525e-40
+1.90221e-41
+3.14307e-41
+8.55746e-45
+5.89409e-41
+1.75272e-41
+1.88045e-42
+5.42083e-42
+1.12195e-43
+1.08276e-43
+3.00482e-41
+1.00884e-43
+3.28632e-43
+3.85308e-43
+4.14072e-41
+2.36329e-42
+1.12046e-41
+1.1461e-41
+5.17896e-41
+1.33266e-41
+5.70119e-41
+1.10375e-42
+3.75732e-41
+4.1815e-41
+1.82314e-41
+1.11074e-40
+4.02079e-41
+1.53647e-42
+5.49439e-44
+9.2954e-42
+4.08352e-43
+3.15566e-45
+2.08357e-41
+1.48364e-40
+1.15968e-40
+0
+1.88194e-39
+1.60964e-39
+3.04943e-43
+7.39418e-40
+4.97589e-41
+3.32297e-42
+1.07813e-42
+1.47946e-42
+9.6089e-42
+5.17604e-43
+2.83784e-44
+3.44468e-41
+4.62712e-42
+5.83871e-41
+9.95631e-40
+4.13804e-42
+2.27245e-44
+1.20566e-41
+3.82483e-41
+1.93314e-40
+6.33498e-41
+8.78414e-43
+1.3235e-40
+2.19901e-41
+1.3463e-43
+5.08984e-42
+2.19173e-42
+1.65976e-42
+4.73544e-43
+2.75757e-49
+5.87943e-42
+1.81143e-41
+5.88532e-41
+1.1629e-42
+1.01743e-41
+1.9438e-42
+3.49111e-43
+2.76815e-43
+9.28642e-42
+4.86132e-42
+7.78334e-43
+2.76433e-42
+2.01603e-42
+7.11486e-41
+4.12503e-41
+6.02661e-41
+7.05392e-43
+2.60204e-42
+1.81147e-43
+1.48357e-41
+1.07206e-41
+2.44407e-44
+5.07747e-42
+1.05225e-41
+2.51668e-41
+1.34129e-41
+8.63092e-44
+1.5462e-43
+5.71516e-42
+7.66026e-43
+5.89184e-42
+4.45934e-43
+1.81367e-43
+6.1217e-42
+4.54274e-48
+2.68018e-42
+3.30816e-45
+3.3742e-42
+0
+4.05938e-44
+3.70915e-41
+2.9988e-43
+1.14945e-41
+1.70615e-42
+9.85224e-45
+1.01475e-42
+3.11924e-42
+2.94843e-41
+6.64193e-42
+9.18544e-44
+9.74557e-46
+3.14723e-45
+1.18854e-42
+1.85235e-43
+1.42323e-42
+6.8139e-42
+6.9305e-44
+5.83463e-45
+7.00501e-43
+8.40519e-47
+1.07413e-43
+4.25146e-42
+9.86753e-42
+1.00407e-41
+1.20503e-42
+3.3691e-44
+1.54048e-42
+3.3267e-42
+2.97929e-44
+5.58479e-44
+1.84255e-44
+1.11444e-44
+1.41915e-41
+4.61052e-42
+1.3542e-42
+3.39598e-41
+2.44368e-43
+5.32556e-42
+2.46527e-42
+7.58913e-42
+9.29365e-42
+2.82445e-41
+3.26192e-47
+1.85459e-41
+1.07849e-42
+3.66142e-45
+8.2251e-43
+1.23524e-42
+3.51061e-43
+4.5093e-42
+1.36352e-43
+2.07391e-43
+5.6281e-42
+168.223
+200.707
+181.731
+180.958
+174.956
+166.197
+156.856
+147.938
+139.786
+87.4615
+5.64163
+1.68871e-40
+1.04927e-40
+2.61832e-42
+4.53187e-41
+6.15043e-40
+7.43769e-41
+5.34476e-43
+3.408e-42
+1.71672e-41
+3.86958e-42
+1.28477e-40
+4.12319e-41
+4.37568e-43
+4.23153e-43
+1.25847e-40
+3.6057e-41
+6.0191e-45
+1.26987e-41
+1.22781e-41
+2.42701e-41
+1.76282e-44
+1.38553e-41
+0
+1.46125e-48
+3.12796e-41
+1.64139e-41
+3.27027e-40
+0
+1.07509e-43
+6.00772e-44
+1.21748e-40
+4.49257e-43
+3.46886e-45
+2.44349e-42
+3.74847e-42
+1.45954e-40
+9.21352e-42
+1.04913e-40
+1.73797e-40
+4.14271e-42
+5.17854e-41
+2.52543e-41
+6.96303e-41
+1.46067e-40
+2.28876e-45
+1.26126e-40
+5.20503e-41
+1.42024e-40
+2.63926e-40
+8.96242e-41
+1.85455e-42
+2.04254e-40
+8.85286e-43
+2.93232e-41
+1.41913e-40
+4.19689e-41
+8.7495e-42
+3.12755e-43
+3.58742e-41
+5.02235e-42
+1.30133e-45
+4.23859e-42
+1.04401e-41
+2.28338e-42
+1.76438e-44
+6.97665e-44
+6.71908e-44
+5.18769e-43
+3.20146e-41
+9.17293e-41
+5.30173e-42
+1.06673e-41
+1.02884e-41
+5.94511e-43
+5.73532e-43
+2.08141e-42
+3.28531e-42
+2.6261e-42
+3.0545e-42
+1.02438e-44
+1.38869e-42
+1.99687e-41
+1.58616e-44
+3.88435e-42
+6.83124e-44
+6.58469e-44
+5.07183e-43
+2.4761e-41
+1.03507e-42
+1.85977e-42
+5.4695e-44
+1.42378e-42
+2.08031e-43
+2.50564e-44
+2.19998e-42
+2.65045e-43
+5.47224e-42
+2.46258e-43
+7.13985e-43
+3.48074e-46
+3.66926e-42
+1.59414e-41
+2.87495e-46
+4.24313e-41
+1.92274e-41
+3.13791e-44
+1.92552e-45
+1.13916e-42
+1.14468e-43
+2.69813e-44
+7.11332e-44
+4.30327e-44
+2.33372e-42
+9.4545e-44
+2.22209e-44
+1.01511e-41
+5.39835e-42
+6.79824e-42
+2.02456e-41
+2.5402e-43
+9.74355e-42
+6.97807e-44
+9.55812e-44
+3.40203e-42
+1.67613e-42
+0
+3.06804e-45
+1.86783e-43
+9.6238e-43
+1.03799e-41
+1.50309e-42
+1.62489e-41
+1.18574e-43
+1.84929e-41
+4.21646e-41
+5.8684e-42
+1.64554e-44
+7.3269e-44
+3.63257e-44
+2.01968e-42
+1.75944e-45
+5.57368e-46
+1.32722e-43
+2.70303e-42
+7.41418e-44
+5.35562e-44
+1.39038e-42
+2.53877e-44
+1.30054e-45
+2.34211e-44
+6.92503e-42
+1.71274e-41
+6.44218e-48
+1.16325e-42
+8.20526e-45
+1.08487e-41
+1.17211e-43
+9.16062e-44
+3.4083e-43
+1.80354e-43
+7.74757e-42
+1.86758e-45
+1.49715e-42
+4.85531e-42
+5.43989e-45
+3.78044e-43
+1.37875e-42
+1.42898e-42
+3.40107e-48
+161.896
+176.9
+159.512
+159.519
+157.268
+152.628
+146.652
+140.231
+133.885
+58.2208
+1.38136
+5.28631e-41
+4.779e-43
+5.27438e-42
+4.48559e-43
+3.16783e-40
+3.836e-41
+1.37621e-42
+2.32022e-40
+1.78085e-40
+2.15613e-41
+4.08793e-42
+1.83291e-44
+3.36606e-43
+7.04104e-41
+6.00102e-41
+1.31056e-41
+1.27081e-42
+1.22865e-41
+9.36587e-43
+1.8778e-40
+5.61734e-41
+3.23797e-40
+1.60671e-42
+2.36018e-43
+2.60115e-42
+4.77434e-41
+1.71167e-42
+1.73393e-41
+6.87928e-42
+1.08895e-40
+3.39477e-42
+6.23519e-42
+1.22843e-40
+5.83702e-42
+1.6452e-43
+3.11234e-43
+2.9277e-41
+1.49242e-43
+4.9485e-42
+1.27051e-41
+1.81551e-41
+7.59083e-42
+2.89957e-41
+8.04575e-43
+5.49429e-41
+2.79918e-44
+2.15672e-43
+6.83231e-42
+5.79674e-41
+6.40522e-41
+1.29923e-41
+2.27831e-44
+3.49298e-48
+1.04628e-40
+5.41113e-41
+1.93763e-42
+1.2313e-42
+1.19021e-42
+2.14093e-41
+1.63533e-41
+1.07471e-42
+0
+1.41142e-40
+4.76589e-42
+2.02635e-43
+4.64577e-43
+5.10453e-42
+3.94577e-41
+2.43422e-41
+3.68326e-41
+5.23117e-42
+1.27341e-42
+2.33227e-41
+0
+1.64551e-48
+1.26266e-41
+3.17222e-43
+6.37173e-42
+1.24831e-43
+2.85757e-43
+2.20859e-42
+5.20609e-43
+5.3526e-42
+8.38552e-43
+9.28748e-48
+7.95144e-42
+1.14497e-40
+2.0716e-42
+7.03934e-43
+8.63311e-43
+1.30397e-43
+1.19979e-41
+1.80943e-43
+9.2097e-45
+6.52552e-48
+3.38618e-42
+1.05407e-43
+5.77333e-41
+1.46195e-43
+2.20423e-45
+7.17823e-45
+8.65758e-43
+3.29421e-43
+1.53873e-44
+1.67939e-43
+4.40519e-48
+1.3721e-44
+4.48071e-44
+4.37916e-42
+5.19593e-42
+1.80648e-41
+8.79431e-43
+4.73981e-43
+2.08116e-44
+5.50723e-44
+2.72181e-42
+1.0291e-41
+2.4878e-43
+2.70852e-41
+2.35065e-41
+1.71763e-43
+4.20111e-43
+2.07426e-43
+1.15633e-46
+1.48367e-43
+5.28719e-43
+1.15162e-46
+2.19192e-42
+9.62278e-47
+9.275e-41
+2.18005e-42
+5.51335e-45
+4.2052e-42
+1.00005e-44
+1.34136e-43
+2.13598e-41
+1.12733e-41
+3.53134e-44
+1.98063e-42
+3.75426e-43
+2.42443e-42
+1.68348e-45
+2.25094e-42
+1.44584e-41
+9.33707e-43
+1.72705e-43
+2.87848e-43
+3.03841e-45
+9.87677e-45
+2.0547e-42
+9.31585e-43
+1.67307e-43
+8.49654e-45
+1.76792e-42
+4.29027e-46
+3.52783e-44
+3.38203e-44
+1.5193e-42
+0
+2.68504e-46
+0
+1.53527e-42
+1.59656e-41
+8.50022e-43
+1.28676e-44
+4.68856e-42
+0
+1.58407e-45
+2.71814e-47
+146.874
+146.196
+146.47
+141.854
+141.209
+139.072
+135.652
+131.438
+126.864
+22.0578
+0.0120156
+5.82449e-42
+2.86197e-40
+2.31251e-42
+6.64552e-43
+7.58356e-41
+2.23769e-40
+1.37639e-40
+2.89963e-40
+1.54469e-44
+1.86684e-42
+2.50266e-41
+2.85426e-41
+6.71354e-43
+1.07369e-41
+4.03991e-41
+1.00936e-41
+6.26858e-41
+1.75142e-40
+4.19016e-40
+2.49468e-40
+2.29674e-42
+4.05085e-40
+9.25218e-41
+7.74695e-44
+1.19237e-43
+1.10686e-40
+5.73479e-41
+5.56337e-42
+2.27248e-41
+3.44079e-40
+1.47469e-43
+1.53151e-41
+4.67325e-43
+8.60855e-41
+1.30217e-43
+6.66204e-45
+4.12139e-43
+2.7165e-41
+1.5416e-41
+3.41194e-41
+2.10127e-43
+0
+1.97153e-43
+3.29614e-43
+1.34682e-40
+9.81907e-42
+9.50879e-42
+9.25326e-41
+2.55946e-41
+1.7703e-40
+2.67636e-41
+9.44391e-42
+1.14302e-42
+5.66871e-43
+1.14098e-41
+6.05039e-42
+5.08709e-41
+2.625e-41
+9.67121e-46
+1.96785e-43
+1.54996e-41
+4.97852e-42
+6.02491e-43
+9.99539e-44
+8.55876e-41
+2.45451e-41
+5.83848e-45
+1.9258e-42
+6.78762e-43
+9.08007e-42
+1.25096e-41
+8.50112e-42
+2.04073e-43
+1.01173e-41
+1.91019e-43
+2.64698e-42
+4.43985e-41
+2.99084e-41
+2.49822e-43
+4.72291e-43
+8.02168e-42
+7.7575e-42
+5.35955e-44
+2.02841e-42
+7.01791e-42
+2.47133e-44
+3.73832e-43
+1.68477e-41
+1.37255e-41
+3.75403e-46
+3.26466e-43
+6.81808e-44
+8.37428e-43
+2.03368e-41
+1.96611e-41
+4.84761e-42
+2.66582e-43
+2.5798e-43
+6.80795e-45
+8.27729e-44
+3.10046e-43
+6.0742e-42
+8.54581e-42
+3.1283e-41
+1.62497e-42
+1.67177e-41
+5.20673e-43
+1.08708e-41
+8.96985e-42
+5.09991e-42
+2.90364e-41
+2.20834e-42
+4.59805e-42
+1.86397e-44
+7.38874e-44
+1.48229e-42
+3.67459e-45
+1.03905e-45
+1.66992e-43
+7.06789e-43
+7.49192e-42
+1.20641e-42
+8.73902e-43
+1.05476e-46
+6.70803e-41
+3.09369e-41
+1.26458e-43
+3.60618e-42
+8.89912e-44
+8.59338e-44
+1.4276e-43
+7.97723e-44
+6.16197e-43
+1.30604e-41
+5.75057e-43
+1.21812e-41
+1.17632e-42
+1.01742e-41
+1.63532e-41
+8.4722e-42
+2.38497e-43
+2.87282e-44
+8.5297e-42
+2.05554e-42
+2.76884e-42
+7.66903e-42
+2.57935e-42
+2.33879e-44
+9.61161e-43
+1.73377e-43
+8.91603e-45
+3.83126e-42
+1.94436e-44
+5.81107e-48
+1.39037e-42
+8.13204e-42
+4.55484e-43
+4.39151e-43
+6.62057e-45
+4.08814e-43
+9.34935e-43
+2.03943e-42
+1.08964e-43
+5.6242e-43
+1.15356e-42
+4.13276e-44
+9.56719e-44
+2.16148e-42
+0
+132.462
+130.026
+135.537
+127.78
+127.419
+126.388
+124.524
+121.949
+71.6027
+2.26244
+5.65848e-40
+2.22688e-40
+2.92848e-41
+2.12313e-42
+4.89903e-41
+2.28032e-41
+1.04184e-41
+2.68764e-42
+4.47472e-43
+1.77961e-42
+8.66405e-41
+2.88731e-40
+3.87046e-41
+4.46886e-40
+8.93175e-41
+3.54128e-41
+3.42682e-40
+2.03378e-41
+3.23915e-41
+1.50709e-41
+1.72042e-41
+1.19605e-41
+2.08216e-40
+4.51368e-41
+9.13896e-41
+1.28122e-40
+6.49163e-49
+1.39522e-41
+1.92127e-40
+1.54272e-44
+1.90968e-45
+1.15603e-43
+1.12165e-43
+1.80749e-41
+2.89472e-41
+1.27831e-41
+5.23214e-42
+1.50416e-42
+1.06343e-42
+6.95286e-42
+1.37264e-45
+2.30073e-42
+7.66085e-41
+2.16451e-42
+7.78872e-44
+4.04154e-43
+5.85089e-43
+7.10497e-44
+5.50509e-43
+8.39521e-45
+1.26473e-43
+1.22504e-43
+4.86551e-43
+1.27378e-41
+2.45152e-42
+1.21798e-40
+2.88223e-43
+2.23453e-42
+6.31491e-42
+1.01854e-42
+7.41838e-43
+9.94119e-42
+1.5303e-41
+3.70772e-41
+8.71745e-43
+1.71926e-44
+2.07687e-42
+2.44289e-42
+1.40964e-41
+6.22781e-46
+3.22025e-41
+1.89051e-41
+1.10111e-43
+8.54255e-43
+3.28319e-42
+3.81291e-45
+5.98708e-43
+1.78356e-42
+9.11279e-44
+4.97427e-42
+7.79457e-42
+5.10636e-43
+5.13889e-42
+9.72127e-42
+1.17714e-42
+9.27082e-43
+4.35593e-43
+6.84719e-44
+5.30574e-43
+1.21813e-42
+7.87218e-45
+1.91578e-42
+7.29571e-42
+7.18388e-43
+1.47781e-42
+5.31662e-44
+4.17727e-42
+6.31775e-43
+1.78256e-42
+5.92368e-43
+6.84558e-42
+6.95364e-44
+1.61001e-45
+6.51848e-44
+6.19588e-43
+3.85074e-44
+2.15091e-41
+8.18691e-43
+4.80448e-42
+2.15958e-42
+5.19461e-44
+4.93903e-43
+2.21225e-42
+2.36994e-43
+2.72465e-41
+4.33522e-43
+1.24263e-43
+9.62134e-46
+4.7676e-43
+6.56963e-43
+3.57229e-42
+1.45846e-42
+1.12932e-41
+3.88469e-42
+3.91604e-43
+1.99831e-41
+5.72932e-45
+2.27098e-41
+3.43304e-43
+2.55018e-41
+6.28413e-43
+1.06746e-41
+4.28368e-43
+2.65243e-41
+1.20838e-42
+9.19489e-43
+5.48637e-42
+3.20915e-44
+1.32197e-42
+3.00322e-44
+6.23712e-42
+6.02995e-42
+0
+4.08514e-43
+8.52586e-44
+5.27794e-42
+2.36347e-44
+6.177e-43
+1.16828e-42
+3.34153e-43
+7.00218e-44
+2.01426e-44
+3.77891e-44
+2.00543e-42
+6.21082e-42
+1.9936e-43
+1.08328e-42
+2.33082e-41
+1.97878e-42
+8.20459e-44
+1.68632e-43
+1.04367e-41
+3.18037e-46
+3.07547e-46
+3.49544e-43
+1.56485e-42
+4.13558e-44
+1.3015e-44
+5.79784e-42
+5.61349e-42
+119.614
+120.867
+119.422
+124.248
+117.09
+116.724
+115.748
+111.476
+12.9106
+4.78647e-42
+3.70111e-41
+1.20723e-40
+9.62847e-40
+1.6054e-40
+7.93593e-45
+2.61235e-42
+7.16321e-40
+1.5622e-41
+1.18721e-41
+1.43367e-42
+8.01751e-43
+1.69976e-41
+2.93985e-41
+5.93952e-45
+2.82793e-40
+5.39234e-45
+3.03755e-41
+1.36735e-43
+2.48693e-42
+2.40183e-42
+3.3019e-42
+3.47722e-40
+2.07484e-41
+1.60249e-40
+1.61244e-41
+3.6988e-40
+3.66839e-45
+8.77398e-48
+1.15377e-41
+1.92415e-41
+6.99614e-42
+1.20799e-40
+3.07947e-40
+5.63405e-41
+4.77308e-42
+1.82833e-41
+3.21835e-43
+1.809e-42
+3.17589e-40
+4.05975e-41
+1.78268e-44
+4.64323e-43
+2.13083e-45
+1.60026e-41
+4.23514e-41
+9.14203e-42
+2.48103e-41
+2.99134e-42
+2.30735e-41
+4.35901e-44
+7.2413e-41
+3.64996e-41
+1.99468e-41
+4.77437e-43
+2.31938e-42
+1.61631e-40
+9.23483e-41
+5.90309e-42
+1.54292e-42
+6.12558e-41
+1.42724e-40
+3.39792e-41
+2.74261e-42
+3.7856e-41
+2.54658e-42
+3.51518e-41
+8.62627e-43
+2.17642e-40
+5.9267e-41
+7.70645e-43
+1.62999e-41
+5.22087e-43
+9.52574e-42
+1.14673e-42
+1.25832e-41
+4.92515e-42
+7.54233e-44
+3.65462e-41
+5.35268e-41
+3.63224e-42
+1.40239e-42
+9.0934e-41
+2.80519e-41
+3.74189e-45
+2.04458e-41
+1.45031e-43
+4.06137e-43
+2.28007e-42
+2.065e-41
+2.89786e-42
+1.78814e-43
+7.27014e-44
+1.10769e-43
+2.83267e-41
+2.77046e-42
+2.3659e-45
+7.61597e-43
+7.32803e-43
+1.31263e-43
+1.27157e-43
+4.10057e-43
+2.43082e-42
+1.2812e-42
+8.6528e-43
+8.32307e-43
+1.6649e-41
+2.98093e-47
+0
+3.76719e-44
+8.56131e-44
+4.45195e-43
+9.01764e-43
+4.87191e-42
+1.14491e-42
+4.50586e-42
+3.63426e-43
+4.163e-42
+1.04039e-41
+1.14304e-41
+1.1286e-43
+1.52536e-41
+3.89193e-41
+6.83009e-41
+9.63253e-41
+1.62701e-42
+2.40195e-42
+2.34583e-43
+4.32211e-44
+7.92842e-44
+6.06774e-43
+4.79265e-45
+2.87277e-43
+1.47663e-42
+4.13581e-45
+6.61019e-43
+9.39018e-42
+1.57535e-43
+1.48631e-42
+4.2278e-46
+3.24847e-45
+2.68798e-41
+2.99623e-45
+1.47385e-42
+2.51789e-43
+7.16387e-44
+1.09233e-43
+0
+2.41353e-45
+2.31722e-45
+0
+3.59142e-42
+4.38343e-42
+2.66186e-46
+1.34024e-42
+4.76461e-44
+1.54345e-43
+3.99973e-42
+3.43003e-42
+3.24417e-43
+4.84978e-42
+8.7339e-42
+6.77503e-43
+3.49196e-42
+5.98567e-42
+8.53335e-43
+9.22005e-45
+2.32423e-43
+2.25707e-43
+1.1011e-45
+3.89295e-42
+108.666
+110.217
+110.882
+113.875
+104.579
+108.535
+108.251
+26.0855
+0.0992887
+8.98379e-40
+1.81106e-48
+1.91257e-41
+2.811e-42
+1.45968e-41
+5.15712e-42
+3.19569e-43
+5.15094e-41
+2.73299e-41
+2.32424e-42
+7.59846e-42
+1.53065e-40
+5.15677e-43
+1.19033e-40
+1.90137e-41
+2.9981e-41
+2.3227e-43
+2.26468e-43
+9.33936e-42
+1.07975e-40
+6.89667e-43
+1.80165e-41
+5.16777e-42
+5.00296e-42
+1.14802e-41
+2.88912e-41
+1.07618e-41
+2.03364e-41
+4.25163e-42
+8.03698e-42
+3.18612e-41
+9.13654e-42
+1.007e-40
+2.4572e-40
+1.6169e-41
+3.43708e-41
+1.51371e-41
+3.9539e-43
+7.25373e-42
+0
+1.20818e-42
+3.51923e-41
+3.40741e-42
+1.19998e-41
+2.28428e-40
+3.79965e-44
+2.3446e-42
+8.39777e-41
+2.49746e-41
+6.28184e-43
+9.55591e-45
+2.48516e-43
+3.80382e-43
+1.85409e-42
+5.09275e-42
+8.01793e-42
+2.09845e-43
+5.46178e-42
+1.98805e-42
+1.92017e-41
+5.40967e-44
+2.75696e-42
+6.31529e-45
+2.05965e-41
+1.45173e-41
+9.84582e-42
+5.02341e-43
+1.81706e-44
+5.94848e-42
+8.25901e-43
+6.00079e-43
+1.56354e-41
+2.0101e-41
+6.78216e-44
+2.68965e-43
+1.38265e-42
+1.64233e-42
+7.4517e-47
+1.24516e-42
+1.20299e-42
+1.14242e-41
+1.12148e-42
+1.8401e-41
+5.26411e-42
+4.06543e-41
+2.83831e-45
+1.1222e-41
+1.69537e-43
+2.36391e-41
+6.65117e-44
+6.52447e-42
+4.95564e-43
+1.82004e-44
+1.72084e-44
+1.05588e-42
+4.29609e-43
+2.40922e-43
+1.49124e-44
+1.30243e-42
+1.2577e-42
+8.52377e-43
+1.28246e-44
+1.94127e-43
+3.28491e-42
+2.85089e-47
+9.51667e-42
+1.33759e-45
+7.52234e-42
+9.06679e-43
+3.27748e-44
+9.25239e-42
+9.49632e-41
+6.3749e-41
+7.67563e-41
+2.74195e-42
+1.8951e-41
+3.04053e-41
+7.35212e-45
+8.62902e-43
+2.72321e-41
+4.66878e-42
+4.97119e-44
+4.75756e-44
+2.93891e-42
+1.86361e-41
+6.6566e-43
+4.09988e-44
+2.12155e-43
+2.4393e-42
+1.57144e-42
+1.4894e-44
+1.43457e-41
+2.80824e-41
+2.01874e-42
+5.05404e-42
+1.87304e-42
+7.74124e-42
+1.97744e-41
+1.12045e-42
+3.14341e-42
+3.78301e-43
+1.26044e-43
+3.52155e-43
+1.38781e-42
+1.11438e-43
+2.29214e-43
+9.86313e-42
+2.90973e-43
+1.62603e-42
+4.65072e-43
+8.73163e-43
+1.45105e-42
+5.26641e-43
+3.64795e-47
+3.82473e-43
+1.079e-41
+4.42518e-44
+1.97953e-43
+5.20236e-43
+6.3115e-44
+8.18431e-42
+1.25003e-41
+1.50283e-42
+1.56753e-43
+3.30604e-43
+7.1343e-43
+6.82926e-43
+1.06767e-45
+7.49394e-43
+1.09744e-45
+0
+100.447
+101.65
+102.184
+97.2323
+102.912
+76.4645
+18.3197
+0.105466
+2.04675e-42
+1.06528e-41
+3.77072e-42
+2.92989e-41
+2.07395e-41
+2.74571e-40
+1.71775e-42
+1.89932e-41
+1.55351e-41
+8.28968e-44
+2.17391e-42
+0
+2.60232e-41
+3.77121e-41
+8.6781e-41
+6.2702e-41
+2.49565e-45
+3.40626e-40
+2.8611e-41
+4.49228e-41
+1.292e-41
+3.71577e-42
+4.28528e-40
+2.46369e-41
+2.04015e-40
+1.2204e-40
+1.48067e-41
+3.10306e-42
+5.87945e-42
+2.92071e-42
+3.54212e-43
+1.69405e-41
+3.33636e-43
+1.49769e-42
+5.94983e-42
+7.21662e-43
+2.99995e-41
+2.91216e-42
+1.36893e-41
+2.1915e-41
+0
+6.43488e-41
+3.12055e-42
+1.10308e-42
+7.798e-43
+1.15281e-45
+1.97882e-41
+2.67456e-42
+6.48155e-42
+5.86315e-44
+1.53465e-42
+4.01704e-41
+2.73487e-41
+8.99387e-46
+2.81791e-41
+2.08521e-42
+1.61913e-42
+5.21043e-43
+3.39838e-42
+4.96619e-41
+1.78234e-42
+3.6706e-42
+2.3969e-41
+1.27627e-43
+3.34311e-42
+5.39856e-41
+2.50673e-41
+1.18142e-40
+6.96972e-42
+8.58487e-42
+1.40936e-41
+3.76634e-45
+3.64775e-45
+4.30206e-43
+1.14196e-42
+2.06339e-43
+2.49758e-44
+2.4184e-41
+1.19904e-41
+2.83397e-45
+2.74451e-42
+3.32401e-43
+5.55442e-43
+4.3015e-42
+1.18395e-41
+5.04177e-43
+0
+7.49438e-43
+3.65477e-42
+1.89535e-41
+1.35837e-41
+6.57698e-43
+2.56363e-41
+7.35257e-42
+1.38885e-41
+2.2356e-42
+2.80797e-42
+3.45598e-42
+1.35265e-44
+1.95794e-42
+4.89146e-43
+8.02909e-42
+2.07985e-41
+4.42555e-43
+1.51479e-41
+1.46518e-41
+9.91809e-41
+8.20692e-43
+1.50507e-41
+5.38859e-43
+5.21874e-43
+6.74739e-42
+7.61006e-42
+1.58857e-42
+5.18253e-42
+1.34234e-41
+1.82397e-42
+1.25462e-41
+9.73602e-44
+8.3324e-46
+3.71429e-43
+6.81197e-41
+8.48961e-44
+2.67612e-42
+3.74476e-41
+1.3173e-43
+2.8946e-42
+7.11445e-44
+4.008e-43
+1.04593e-41
+4.7516e-42
+1.69931e-43
+3.06226e-44
+4.64121e-43
+3.06075e-42
+1.18242e-42
+4.60357e-41
+2.75564e-42
+8.5443e-43
+7.3713e-42
+1.4809e-42
+1.7993e-43
+3.12334e-42
+1.28019e-41
+2.79217e-45
+3.02978e-43
+3.6558e-41
+3.74343e-41
+2.01816e-41
+3.19745e-42
+2.02866e-42
+5.34971e-44
+9.28226e-42
+3.04256e-43
+8.64958e-42
+8.33471e-42
+2.04483e-43
+2.89993e-46
+3.29761e-43
+4.03045e-42
+1.77756e-43
+5.59521e-42
+2.8529e-43
+6.50126e-43
+1.2244e-45
+2.59544e-42
+1.77982e-41
+7.52737e-42
+1.32252e-43
+1.01995e-42
+1.23442e-43
+3.88196e-42
+92.7286
+90.7296
+71.3149
+52.5772
+22.2884
+2.68137
+0.00749476
+7.21692e-42
+1.89605e-40
+2.6518e-41
+1.55102e-43
+6.47198e-42
+2.44345e-41
+4.82303e-43
+2.17263e-42
+2.92246e-41
+3.21387e-41
+2.1308e-41
+9.8619e-41
+2.01686e-41
+6.21914e-42
+3.52845e-41
+7.14295e-42
+4.13737e-41
+1.32014e-41
+4.34717e-44
+3.42743e-41
+1.20745e-40
+1.53358e-40
+7.05819e-42
+1.74847e-43
+1.09459e-44
+4.46025e-42
+1.25099e-40
+4.28929e-43
+1.61766e-42
+2.88239e-41
+1.58865e-41
+7.1515e-44
+1.08649e-42
+2.2818e-43
+6.58463e-44
+6.39081e-44
+1.70636e-41
+9.18659e-41
+1.01469e-40
+6.14712e-41
+1.70653e-41
+7.67976e-41
+1.41556e-42
+1.39947e-41
+1.70139e-42
+2.06515e-42
+9.17822e-44
+8.64432e-42
+1.49139e-43
+1.30917e-40
+4.17306e-44
+7.92013e-41
+4.89538e-41
+3.06298e-43
+8.17344e-41
+1.62367e-40
+1.48151e-41
+2.48718e-41
+5.18468e-43
+1.72572e-43
+2.28052e-41
+1.02555e-40
+3.68947e-42
+7.87343e-42
+1.36812e-40
+4.23072e-43
+8.86601e-41
+1.48788e-40
+8.38764e-44
+1.23207e-41
+3.1107e-41
+3.02016e-41
+3.35099e-41
+1.94944e-42
+1.06396e-41
+6.14832e-41
+1.78486e-42
+6.52389e-42
+2.88352e-43
+1.54342e-40
+4.69556e-43
+1.69975e-44
+6.10219e-41
+2.7485e-41
+3.39154e-41
+1.49836e-41
+1.4942e-44
+3.81013e-43
+3.69751e-43
+8.16431e-42
+2.05042e-43
+1.95511e-43
+3.27806e-43
+1.95987e-42
+7.83911e-41
+7.09637e-43
+4.83264e-41
+1.03716e-40
+7.37956e-42
+1.00903e-44
+4.8766e-42
+6.73702e-42
+1.36303e-41
+1.90924e-41
+2.31453e-42
+2.2446e-42
+8.14471e-45
+1.2799e-42
+9.92183e-42
+1.95111e-43
+2.40324e-42
+1.17385e-41
+4.22224e-43
+8.82677e-41
+3.96131e-43
+7.98601e-42
+2.97909e-42
+4.6344e-44
+9.4438e-42
+2.2353e-42
+4.6771e-43
+0
+4.9534e-45
+4.80007e-45
+3.10465e-41
+1.79646e-41
+3.09793e-42
+8.90014e-43
+1.36822e-42
+8.49161e-42
+6.23422e-43
+9.98524e-43
+3.90578e-45
+5.87972e-42
+4.1196e-46
+1.34661e-42
+3.29169e-41
+1.53283e-42
+2.57879e-44
+3.57119e-43
+7.33991e-44
+1.11047e-42
+2.55137e-42
+6.74364e-44
+5.89159e-42
+1.99233e-41
+7.67871e-43
+1.37209e-41
+6.24967e-41
+6.8522e-45
+4.25743e-43
+1.22551e-43
+1.70491e-41
+2.23616e-43
+3.7342e-43
+3.30577e-47
+5.54739e-43
+1.28352e-44
+1.67953e-45
+3.16626e-43
+3.44803e-41
+4.70145e-43
+3.63007e-42
+8.24577e-44
+2.71729e-41
+4.03996e-42
+4.74183e-42
+7.67906e-42
+1.35926e-43
+5.36935e-43
+1.01229e-45
+1.52933e-41
+0
+16.8509
+11.1124
+4.75686
+1.05311
+0.014458
+2.20843e-43
+7.0475e-42
+6.59173e-41
+2.04352e-43
+5.46605e-43
+3.41013e-41
+2.95437e-40
+3.98501e-41
+0
+1.1945e-40
+9.41975e-41
+7.76899e-42
+3.86798e-41
+1.74943e-41
+0
+1.50417e-43
+1.46434e-43
+6.65828e-42
+6.48886e-42
+3.71915e-43
+1.8557e-40
+1.28716e-43
+2.20286e-41
+1.15041e-40
+8.11674e-41
+1.16188e-43
+1.56337e-42
+1.21867e-41
+1.85679e-43
+6.69601e-42
+1.79011e-41
+6.76809e-41
+7.16945e-42
+3.86315e-43
+8.12626e-41
+9.89607e-42
+1.66212e-40
+1.49152e-41
+1.29142e-40
+5.12646e-41
+2.2573e-41
+4.89487e-45
+1.60924e-41
+3.1857e-41
+2.03249e-41
+2.25622e-42
+1.47223e-42
+2.6756e-43
+8.94589e-42
+4.9573e-43
+1.62949e-42
+1.84833e-41
+4.45747e-41
+3.56787e-42
+9.53427e-42
+5.14614e-42
+3.29506e-45
+2.33914e-42
+2.27778e-42
+3.52295e-42
+5.20698e-41
+9.73684e-42
+1.10396e-40
+6.6697e-41
+1.55297e-41
+8.74917e-42
+8.27023e-41
+1.14641e-40
+1.5336e-43
+5.03018e-43
+6.22081e-42
+2.75864e-43
+4.72291e-42
+0
+2.03614e-42
+4.34968e-41
+1.05825e-40
+4.12405e-42
+3.15767e-42
+1.31744e-40
+8.86455e-43
+4.62166e-42
+8.39238e-43
+2.0053e-45
+1.03849e-46
+1.10161e-42
+1.46997e-42
+1.97774e-41
+4.78469e-43
+2.92524e-43
+6.14839e-41
+4.32913e-42
+8.03814e-44
+1.12391e-41
+9.70613e-45
+1.79476e-41
+1.96433e-41
+4.27253e-41
+4.33319e-42
+1.29145e-43
+8.22546e-45
+6.22882e-44
+9.46649e-43
+1.02373e-45
+2.45732e-42
+3.56902e-42
+3.46956e-42
+6.59029e-45
+1.3854e-42
+8.29738e-42
+5.1979e-42
+4.71479e-44
+5.73068e-45
+2.39444e-43
+1.85092e-44
+8.26712e-44
+1.10712e-42
+4.97939e-45
+1.04564e-42
+1.27455e-43
+5.72509e-43
+1.57489e-44
+2.73729e-41
+1.03393e-41
+5.10588e-46
+5.28918e-42
+1.04189e-43
+0
+1.53849e-42
+7.78268e-42
+6.72378e-42
+1.41136e-42
+4.06368e-46
+1.06669e-41
+5.99946e-42
+3.31616e-45
+1.48373e-42
+6.08164e-43
+2.24877e-44
+1.36302e-42
+1.88468e-42
+2.51085e-42
+4.0683e-43
+1.72531e-42
+3.83866e-43
+9.05498e-45
+4.74192e-43
+4.63086e-42
+6.90794e-42
+2.49446e-43
+4.24184e-42
+2.4962e-42
+3.97824e-43
+1.03075e-41
+2.2855e-42
+4.55254e-44
+3.53613e-43
+1.25619e-44
+3.30289e-43
+1.88257e-43
+1.18109e-44
+2.41185e-42
+2.97435e-42
+6.72823e-43
+1.6977e-42
+2.14089e-42
+2.6415e-42
+1.16611e-45
+3.10709e-42
+1.89774e-42
+1.07041e-42
+2.83926e-42
+6.59925e-44
+1.43145e-45
+0
+0.0081192
+1.50073e-41
+4.93273e-42
+1.47105e-43
+4.92053e-41
+4.58894e-42
+3.00158e-42
+1.87661e-41
+1.04232e-39
+1.7884e-41
+1.39669e-40
+2.6261e-44
+2.07794e-41
+3.32082e-41
+5.35087e-41
+5.13532e-42
+6.92372e-45
+1.81238e-43
+7.58717e-42
+1.75655e-42
+2.63529e-42
+9.53319e-44
+2.92284e-41
+5.807e-42
+2.54633e-41
+2.48549e-41
+1.48198e-41
+6.58941e-40
+5.1458e-42
+6.11071e-41
+4.03515e-40
+1.2929e-43
+2.00239e-40
+1.69755e-41
+1.82703e-40
+2.13357e-41
+1.52319e-40
+2.41267e-41
+3.67931e-40
+2.16238e-40
+9.38042e-41
+8.1098e-43
+1.8758e-42
+1.60622e-41
+0
+6.14284e-40
+6.54243e-41
+9.66401e-41
+1.3574e-40
+3.0708e-41
+8.27384e-42
+2.53526e-41
+5.65236e-41
+2.24213e-41
+3.42236e-43
+2.66891e-42
+5.72302e-42
+1.28741e-40
+2.91798e-40
+3.78176e-44
+1.29598e-40
+7.77847e-45
+7.59034e-45
+6.53787e-41
+1.37053e-40
+2.88882e-41
+6.99768e-43
+5.45943e-42
+7.95523e-42
+9.71538e-43
+2.31295e-43
+3.16978e-41
+0
+8.43616e-42
+1.07215e-43
+4.08704e-40
+3.50131e-41
+5.33995e-43
+1.21448e-44
+1.5772e-41
+9.91165e-42
+3.04759e-43
+1.37548e-42
+2.94591e-41
+1.63648e-40
+1.27723e-42
+9.23167e-41
+1.29437e-41
+6.08218e-43
+3.16181e-44
+3.04719e-44
+7.0462e-44
+1.51015e-40
+8.38393e-42
+1.08825e-41
+1.06181e-41
+5.33637e-41
+9.48647e-43
+7.60709e-45
+1.00358e-45
+2.41729e-42
+2.09451e-41
+2.87965e-43
+1.76483e-43
+7.9781e-43
+5.00893e-44
+2.60043e-43
+2.02093e-44
+6.14386e-41
+4.17281e-41
+1.50819e-42
+3.9034e-42
+2.56498e-41
+1.74628e-42
+8.72684e-41
+2.97376e-42
+5.46803e-42
+3.96749e-41
+1.67241e-41
+2.80296e-43
+2.1867e-42
+9.00287e-43
+1.7142e-42
+8.56083e-43
+8.48436e-42
+8.2745e-42
+5.58562e-42
+3.58037e-45
+1.4968e-43
+3.62457e-41
+3.31993e-42
+1.5899e-41
+3.59479e-41
+2.81854e-43
+0
+4.86526e-43
+3.46884e-41
+2.22365e-44
+3.01295e-45
+2.64475e-42
+3.43112e-42
+1.46628e-41
+4.22958e-42
+8.88961e-42
+3.21552e-41
+2.83432e-43
+3.81941e-42
+7.40674e-43
+4.53642e-43
+2.3793e-42
+5.65288e-44
+1.33407e-41
+9.7064e-43
+5.05005e-44
+1.16055e-43
+8.98726e-43
+3.3911e-47
+9.72743e-42
+2.53955e-41
+4.32835e-44
+1.12517e-42
+9.69279e-44
+0
+1.04702e-42
+2.40731e-42
+6.99318e-43
+4.46355e-42
+1.61013e-43
+8.08824e-44
+1.55575e-43
+7.62695e-44
+3.9828e-43
+9.30081e-45
+0
+1.43473e-42
+2.28792e-43
+9.44164e-42
+3.56948e-41
+2.61399e-41
+1.49492e-46
+9.6896e-42
+1.36817e-41
+6.48109e-41
+2.67272e-41
+3.58373e-40
+9.45618e-43
+1.22057e-41
+9.54385e-41
+6.63626e-43
+2.54878e-41
+1.3928e-42
+1.70147e-40
+7.5699e-44
+3.03594e-43
+4.92874e-41
+5.23765e-42
+4.45294e-45
+1.48276e-42
+9.27597e-41
+1.39404e-41
+2.35464e-41
+1.66492e-42
+1.97532e-42
+1.03573e-42
+4.73458e-46
+9.24986e-41
+3.50034e-41
+9.44699e-42
+4.21133e-43
+3.28971e-45
+1.50035e-40
+3.92936e-43
+1.37476e-40
+2.47254e-40
+1.71248e-41
+3.58805e-40
+3.50841e-43
+1.4044e-42
+1.35821e-40
+7.07733e-44
+7.27032e-41
+2.89997e-42
+1.10005e-41
+1.22618e-42
+5.79835e-48
+1.33433e-41
+1.97081e-40
+5.61313e-41
+3.25073e-42
+1.02659e-41
+1.30737e-43
+7.50793e-41
+1.90033e-40
+4.72913e-48
+2.27032e-41
+5.00981e-43
+3.51036e-41
+4.78506e-42
+7.19135e-43
+6.26553e-41
+2.47797e-42
+4.85684e-42
+1.06819e-41
+1.21807e-41
+7.54026e-41
+5.00321e-43
+2.50095e-41
+2.404e-42
+1.80433e-40
+2.07802e-41
+6.06654e-41
+2.19677e-42
+6.36672e-43
+8.8625e-43
+4.67038e-41
+1.23709e-41
+3.83573e-42
+8.09696e-43
+1.90875e-41
+7.7436e-43
+2.849e-42
+1.12275e-40
+9.92658e-46
+1.03352e-41
+2.57033e-44
+2.29937e-48
+5.29217e-42
+1.0796e-41
+5.5911e-44
+1.06052e-43
+1.04159e-43
+6.49e-42
+4.62647e-42
+2.12981e-42
+1.63851e-43
+3.03969e-42
+8.02227e-41
+1.85955e-40
+4.43991e-41
+1.83159e-41
+8.29237e-44
+8.14501e-44
+1.37038e-43
+1.07212e-42
+1.80781e-41
+1.30368e-42
+3.71403e-44
+4.54155e-42
+1.3537e-41
+7.25132e-43
+2.47692e-41
+2.13036e-42
+5.07803e-43
+1.21127e-41
+3.33168e-42
+2.43239e-43
+3.05581e-44
+1.10852e-41
+3.55986e-42
+1.19363e-42
+8.37103e-42
+4.15917e-43
+1.89867e-41
+2.94824e-41
+3.11369e-45
+1.0279e-44
+1.52529e-42
+9.83486e-45
+1.20252e-42
+3.48912e-43
+1.11727e-41
+4.61027e-42
+1.05835e-44
+1.31613e-42
+2.7768e-45
+1.00071e-41
+4.66799e-42
+2.93544e-43
+3.57452e-41
+7.92375e-45
+1.50195e-41
+1.56335e-42
+1.79637e-42
+8.66453e-43
+2.51781e-43
+6.72979e-43
+5.24634e-44
+2.00028e-41
+3.96911e-43
+3.3041e-46
+4.80765e-44
+2.68979e-41
+3.70231e-42
+1.13057e-41
+3.54231e-42
+1.91954e-41
+1.12539e-42
+1.89654e-43
+3.99102e-44
+3.96904e-42
+1.03185e-42
+1.13866e-44
+3.65972e-44
+1.32791e-42
+1.20246e-41
+6.25074e-42
+1.55404e-43
+7.78691e-44
+4.87946e-42
+9.32573e-42
+3.07958e-44
+1.11755e-42
+5.60368e-43
+7.33715e-42
+5.36826e-43
+2.79997e-44
+6.59489e-44
+1.19525e-41
+2.11634e-42
+3.85881e-42
+1.49534e-41
+1.76494e-41
+9.86872e-41
+5.19955e-41
+1.01066e-42
+1.6176e-41
+2.01067e-40
+9.78158e-41
+2.15898e-43
+2.44557e-40
+1.45111e-41
+2.30413e-42
+2.29332e-41
+4.60324e-42
+2.1961e-41
+9.78168e-42
+7.78376e-42
+2.95544e-41
+1.39073e-42
+5.23226e-41
+1.66567e-43
+9.1496e-41
+5.46982e-41
+6.69818e-43
+1.64495e-40
+5.12783e-41
+3.36221e-41
+5.86597e-40
+1.5095e-40
+7.35395e-43
+1.52963e-42
+3.02034e-41
+9.37934e-41
+1.14764e-41
+6.50088e-45
+9.65478e-43
+1.07643e-41
+1.80677e-42
+7.46256e-43
+1.19332e-40
+1.93071e-41
+4.55703e-43
+6.04961e-42
+2.74873e-42
+1.80292e-42
+3.34926e-42
+5.36355e-41
+4.01194e-42
+1.53334e-40
+7.17225e-43
+1.18165e-41
+1.74293e-41
+1.05202e-41
+9.387e-43
+1.57783e-43
+3.50313e-41
+3.32038e-43
+1.00858e-40
+2.15772e-41
+1.66991e-41
+1.38999e-43
+1.24246e-40
+1.41479e-40
+3.5858e-41
+3.45281e-45
+1.16111e-42
+1.53347e-44
+1.20159e-43
+2.0686e-42
+6.72563e-43
+1.56137e-42
+1.94261e-41
+5.94628e-42
+8.72616e-46
+1.82795e-42
+1.40852e-42
+7.27539e-41
+6.25751e-45
+2.28297e-41
+2.02743e-41
+3.01441e-42
+7.21554e-43
+3.61584e-43
+1.68769e-41
+4.36942e-44
+2.38801e-41
+8.14762e-44
+2.61342e-42
+6.25439e-43
+7.45553e-42
+3.08e-43
+1.27132e-40
+1.12548e-40
+1.37888e-41
+9.74125e-42
+2.53438e-41
+7.06244e-41
+3.36302e-44
+1.12303e-41
+4.01202e-45
+1.32741e-44
+1.30149e-41
+6.29498e-43
+1.87728e-40
+1.48836e-41
+7.69557e-43
+3.49334e-45
+5.69897e-43
+4.66818e-46
+4.57768e-46
+2.60175e-44
+4.40236e-46
+2.50229e-44
+6.58088e-43
+3.7352e-43
+1.50124e-42
+2.0964e-42
+2.27137e-44
+7.59432e-42
+5.04977e-41
+7.20903e-44
+1.52298e-41
+2.96587e-42
+1.06097e-42
+6.76757e-42
+1.7945e-41
+5.84232e-42
+1.9984e-42
+3.58854e-44
+4.3836e-42
+5.42173e-42
+5.31797e-42
+7.2929e-43
+4.06984e-42
+3.24997e-44
+3.135e-44
+3.61975e-46
+3.80655e-41
+3.28291e-42
+5.11444e-42
+1.83207e-42
+1.13777e-41
+1.28635e-42
+1.13959e-43
+2.26704e-42
+2.88797e-42
+1.19825e-42
+4.40639e-44
+1.26695e-41
+4.25173e-44
+1.11411e-42
+1.59871e-41
+6.32458e-44
+2.13089e-45
+1.78018e-43
+2.41824e-42
+5.89641e-44
+8.70947e-44
+6.81289e-43
+2.82879e-43
+5.25673e-42
+2.18168e-42
+3.40322e-42
+3.2922e-44
+1.52499e-43
+1.7331e-45
+2.28193e-41
+4.66916e-42
+2.46464e-42
+9.06454e-45
+1.35572e-43
+5.47181e-43
+7.6616e-43
+6.6085e-44
+8.12988e-42
+3.4289e-43
+2.10242e-45
+1.07641e-45
+4.8869e-43
+3.84149e-42
+9.42416e-42
+3.76914e-42
+5.24243e-43
+2.04756e-41
+5.11368e-42
+1.16723e-42
+1.09681e-41
+3.32548e-42
+2.14142e-42
+5.75516e-42
+8.66746e-43
+7.23087e-41
+1.79591e-40
+1.23548e-43
+2.87648e-42
+4.75524e-41
+3.57143e-41
+3.47157e-42
+2.11855e-41
+3.0766e-40
+9.16991e-41
+5.52549e-42
+0
+2.45544e-44
+1.05609e-41
+4.14291e-43
+9.07837e-43
+4.41539e-42
+3.1179e-42
+4.99751e-41
+1.09016e-41
+4.79892e-41
+7.46781e-41
+2.01937e-40
+1.03452e-40
+4.15725e-42
+3.42514e-41
+1.79947e-42
+6.36338e-41
+5.99424e-41
+6.49783e-42
+2.94868e-44
+1.1399e-41
+5.373e-43
+1.02875e-42
+1.39419e-41
+1.63944e-41
+2.12997e-42
+4.81385e-41
+5.96344e-44
+2.50899e-43
+9.53914e-42
+3.70752e-43
+3.86924e-42
+6.95252e-41
+1.61778e-42
+1.78464e-42
+1.56804e-41
+8.31943e-42
+4.04106e-41
+9.97019e-41
+1.61968e-42
+7.23141e-43
+4.13694e-42
+8.69816e-44
+1.50073e-42
+1.308e-42
+9.99254e-43
+7.84352e-42
+1.73551e-42
+5.46873e-41
+5.1872e-41
+2.0167e-45
+4.02318e-42
+3.68918e-44
+2.38368e-43
+3.23274e-42
+2.67268e-42
+3.42317e-44
+9.75393e-42
+4.22938e-45
+3.25449e-44
+4.95938e-43
+6.72889e-42
+1.42369e-41
+6.24668e-43
+8.09791e-42
+4.52521e-43
+4.56504e-46
+9.42334e-44
+2.49872e-42
+4.21257e-43
+2.11608e-43
+1.66279e-42
+1.09482e-42
+2.68682e-42
+2.11161e-41
+1.07103e-44
+8.15414e-42
+8.01846e-43
+6.30732e-42
+1.21148e-43
+9.46507e-45
+1.14927e-42
+1.83571e-41
+1.22723e-40
+3.59344e-46
+2.0473e-44
+0
+1.57488e-43
+6.20137e-41
+1.01822e-43
+3.64905e-41
+4.52041e-41
+3.74499e-41
+1.90512e-42
+7.46434e-45
+2.86065e-42
+1.08252e-42
+8.91831e-44
+1.04828e-42
+6.8794e-45
+1.44455e-42
+2.00385e-45
+5.18181e-44
+3.51531e-41
+3.0831e-41
+3.95666e-43
+1.91921e-41
+3.89855e-42
+7.37003e-43
+1.48207e-41
+2.92756e-42
+1.52053e-43
+4.43766e-44
+1.18029e-42
+6.75869e-43
+7.06024e-42
+4.23213e-44
+9.76622e-44
+1.09635e-42
+1.6481e-45
+5.98487e-42
+1.80847e-43
+1.89025e-42
+1.40034e-42
+3.80222e-43
+7.9427e-42
+1.2241e-43
+1.47334e-45
+0
+9.40328e-43
+1.69415e-42
+3.83759e-42
+6.35896e-43
+1.04934e-42
+5.09752e-43
+8.6973e-43
+1.01502e-42
+3.14159e-44
+9.19439e-45
+6.08488e-42
+5.74342e-43
+3.80203e-43
+4.86636e-44
+6.85804e-42
+1.9923e-41
+1.40862e-42
+1.66402e-44
+4.24121e-42
+1.77044e-42
+1.23256e-41
+1.47338e-45
+1.05601e-41
+2.68275e-44
+3.33305e-43
+9.66353e-43
+3.90254e-42
+1.63191e-42
+3.06325e-41
+1.37399e-41
+1.07721e-40
+2.54858e-43
+1.03463e-40
+2.28472e-40
+6.71237e-43
+2.48211e-40
+8.07946e-42
+3.06144e-41
+1.5185e-40
+1.12406e-41
+2.12081e-41
+2.07902e-41
+1.05895e-41
+1.37477e-40
+4.40964e-40
+5.40417e-41
+6.48087e-41
+3.31726e-41
+1.70597e-44
+2.8906e-44
+2.30454e-41
+4.80307e-41
+8.69738e-42
+1.74013e-41
+1.48684e-40
+1.15865e-41
+3.35647e-41
+1.7892e-42
+1.40551e-44
+1.07236e-41
+5.04213e-42
+5.84524e-41
+1.04114e-43
+3.06862e-41
+9.74321e-42
+1.82751e-40
+1.20446e-44
+6.22578e-41
+2.79025e-41
+5.82621e-42
+9.17966e-47
+4.83363e-41
+2.56307e-42
+1.98652e-40
+5.45729e-41
+6.50921e-43
+1.12266e-41
+2.33486e-42
+5.0663e-41
+5.14704e-41
+1.3732e-41
+9.13986e-45
+4.87092e-41
+6.83113e-42
+0
+3.15722e-42
+1.16804e-42
+3.04494e-42
+2.99043e-42
+1.10645e-42
+7.7892e-41
+5.91189e-42
+1.77743e-42
+2.57292e-41
+1.20759e-40
+5.5066e-42
+2.95407e-41
+9.59203e-42
+1.61418e-41
+4.2193e-43
+5.1832e-44
+1.82451e-40
+2.33681e-42
+1.46954e-40
+1.63275e-43
+4.62933e-42
+2.05243e-41
+1.26208e-43
+1.22035e-42
+7.04756e-48
+7.67543e-42
+2.00528e-42
+3.38261e-43
+1.7037e-43
+8.39917e-42
+6.95166e-44
+8.98342e-42
+4.73848e-43
+1.37119e-41
+4.01402e-43
+2.03572e-42
+3.6508e-44
+3.06096e-42
+1.55252e-41
+2.03103e-43
+5.92222e-44
+4.10875e-43
+2.73109e-46
+1.90847e-43
+1.41426e-41
+7.56134e-42
+1.61093e-44
+8.85015e-42
+6.73027e-45
+8.06574e-43
+1.5071e-41
+1.17565e-41
+3.04613e-43
+1.31603e-42
+6.61715e-42
+2.19195e-43
+0
+2.6603e-44
+9.79182e-42
+1.33358e-44
+5.60377e-43
+2.78306e-42
+3.91133e-42
+9.62972e-43
+1.64689e-41
+1.73876e-41
+2.09331e-46
+3.21114e-43
+7.86571e-42
+8.45029e-42
+3.93119e-43
+1.76584e-43
+7.14646e-43
+7.05592e-43
+3.34958e-42
+1.74564e-41
+6.80522e-43
+1.05808e-44
+6.95836e-42
+4.33179e-42
+4.28283e-45
+2.75685e-42
+5.2355e-43
+5.26301e-44
+6.21759e-43
+1.88568e-44
+0
+7.22745e-43
+2.01351e-42
+1.53524e-42
+6.66358e-42
+3.10418e-42
+2.4624e-42
+4.54769e-42
+6.75934e-43
+7.02699e-44
+1.68907e-44
+4.59546e-44
+5.44223e-43
+6.6756e-42
+1.92231e-46
+8.30361e-45
+4.35457e-43
+1.59795e-41
+6.54372e-44
+2.18509e-43
+9.12955e-44
+5.80565e-42
+2.71705e-43
+3.66252e-42
+7.82367e-42
+1.18369e-41
+3.26584e-42
+1.88202e-42
+4.2577e-44
+1.3192e-41
+4.67105e-42
+7.57428e-45
+2.87627e-42
+2.03134e-43
+3.32052e-45
+1.82797e-42
+1.16641e-46
+3.0517e-41
+3.00981e-42
+1.62566e-42
+3.33397e-41
+6.75897e-41
+3.26113e-40
+9.5827e-41
+2.99025e-41
+1.11757e-40
+0
+1.55872e-41
+1.56914e-43
+2.77286e-41
+1.50641e-43
+5.33874e-40
+6.47114e-42
+1.52637e-40
+6.34112e-41
+1.1641e-39
+1.23536e-42
+8.60862e-41
+7.06431e-41
+2.92089e-41
+3.49191e-42
+2.12017e-42
+1.56845e-41
+4.32573e-41
+7.48068e-41
+1.1148e-43
+4.07441e-41
+1.73598e-40
+1.5137e-40
+8.00858e-41
+6.94933e-42
+1.83959e-40
+2.91512e-41
+1.16419e-40
+7.45654e-43
+6.01667e-41
+0
+1.09942e-44
+3.21584e-41
+1.48382e-41
+1.29471e-42
+3.03323e-41
+1.39972e-41
+1.037e-41
+1.65747e-44
+2.26206e-41
+9.23198e-45
+1.72476e-41
+2.30145e-40
+1.22414e-42
+6.236e-41
+6.70533e-44
+1.89087e-41
+1.13328e-41
+5.06551e-43
+5.67058e-41
+2.27564e-41
+2.14138e-41
+7.78862e-42
+1.55626e-42
+7.12419e-41
+1.25991e-41
+8.95153e-41
+7.09394e-42
+1.5092e-41
+3.39341e-41
+7.10729e-41
+7.76147e-43
+1.40184e-41
+5.98429e-45
+1.26934e-42
+1.5578e-43
+2.4991e-41
+6.42234e-41
+1.3028e-42
+3.18316e-40
+1.69484e-40
+4.03102e-42
+2.8038e-42
+2.63136e-41
+1.06038e-42
+1.15988e-41
+3.68782e-42
+4.93794e-42
+9.87677e-43
+3.81404e-41
+2.82544e-43
+4.35759e-45
+8.02501e-41
+4.71395e-42
+1.22996e-41
+9.47176e-41
+9.31085e-41
+4.15291e-42
+1.43591e-42
+2.67695e-41
+2.80009e-41
+4.63891e-48
+7.89388e-44
+1.55253e-42
+2.37038e-42
+7.50977e-41
+4.88834e-41
+3.31021e-45
+1.21548e-42
+9.17543e-42
+5.53911e-43
+1.27925e-44
+1.25885e-44
+1.40341e-43
+3.72442e-42
+4.08842e-42
+7.86062e-42
+8.86965e-43
+3.83763e-44
+4.58563e-41
+5.13189e-42
+1.16374e-42
+2.30958e-42
+1.75216e-42
+4.42871e-45
+4.75589e-42
+3.45709e-43
+1.54931e-46
+6.2555e-43
+4.48144e-42
+1.96661e-41
+1.00708e-41
+1.53387e-42
+4.65211e-42
+6.38987e-41
+1.52618e-41
+3.6741e-45
+2.94584e-42
+1.28832e-41
+5.34949e-43
+2.79014e-44
+3.78497e-42
+2.46743e-42
+8.52565e-42
+3.6369e-42
+1.20494e-46
+4.87396e-43
+7.21126e-41
+1.92898e-41
+7.327e-42
+6.46521e-41
+5.65657e-42
+1.93919e-42
+2.39377e-42
+3.52864e-42
+1.38315e-44
+2.29956e-44
+7.13295e-43
+1.51106e-46
+1.35257e-43
+9.15775e-42
+1.55294e-42
+1.04682e-42
+3.18841e-42
+4.72807e-43
+7.62727e-43
+1.25123e-41
+1.72807e-41
+6.07584e-45
+1.28655e-41
+6.60522e-44
+9.0147e-44
+4.67839e-44
+7.05681e-43
+7.44066e-42
+4.75003e-42
+1.85383e-44
+5.86569e-42
+8.98815e-43
+4.88357e-43
+1.0109e-42
+2.70187e-42
+2.65157e-41
+9.74626e-40
+2.61416e-43
+5.37066e-40
+3.13606e-44
+9.1531e-43
+4.22885e-41
+2.03248e-42
+2.48916e-40
+1.03391e-40
+2.21895e-43
+2.71774e-44
+2.66298e-44
+2.60939e-47
+4.75813e-41
+6.76536e-43
+4.11945e-40
+7.03627e-41
+3.13863e-44
+5.4632e-40
+5.35423e-40
+5.50004e-50
+1.37754e-40
+2.19127e-47
+1.10109e-40
+3.81241e-41
+2.66393e-42
+1.98384e-40
+1.54377e-43
+4.45051e-41
+5.42296e-41
+0
+4.24807e-42
+2.52154e-41
+3.01146e-40
+8.85007e-41
+1.41911e-40
+7.37398e-42
+3.77467e-42
+0
+1.91218e-45
+3.39021e-42
+3.32481e-42
+1.25584e-40
+1.37144e-42
+2.6349e-41
+9.15108e-41
+1.62876e-41
+1.26949e-42
+1.27932e-44
+3.60806e-42
+2.93432e-42
+5.3026e-42
+4.32801e-41
+7.92332e-42
+1.6027e-41
+8.95464e-44
+4.82144e-42
+1.49107e-43
+5.83158e-42
+3.64508e-41
+9.91715e-43
+0
+3.66244e-42
+9.37454e-43
+8.89776e-42
+1.63101e-43
+3.73127e-44
+2.13133e-42
+4.62509e-41
+8.62913e-45
+1.94648e-41
+3.66537e-41
+2.43646e-41
+4.99132e-41
+1.2477e-48
+3.39209e-42
+5.17163e-42
+7.25497e-43
+5.42427e-43
+4.19383e-41
+3.35216e-42
+2.86185e-44
+3.49039e-45
+9.41739e-43
+2.88869e-42
+1.69926e-41
+9.41292e-42
+2.33053e-42
+6.13585e-42
+1.58476e-41
+3.51289e-42
+6.2252e-44
+4.18076e-41
+2.21314e-43
+6.2193e-41
+4.23614e-42
+9.61953e-41
+6.9128e-41
+5.03364e-43
+2.37268e-43
+2.56083e-42
+6.91082e-42
+8.49634e-43
+1.2849e-43
+2.99688e-43
+2.94744e-43
+1.85592e-41
+1.5046e-41
+1.79987e-44
+3.36155e-42
+3.39855e-47
+6.63007e-49
+1.11113e-43
+2.59256e-43
+2.8225e-41
+4.94557e-42
+5.43505e-43
+6.5771e-42
+8.19465e-46
+0
+4.42308e-41
+7.51008e-42
+6.40564e-42
+2.53711e-41
+4.28015e-43
+1.33052e-41
+1.75122e-41
+4.09074e-41
+2.75278e-43
+2.16922e-42
+1.14585e-41
+1.26682e-41
+5.53794e-42
+4.94047e-42
+2.37225e-44
+1.73384e-42
+8.2934e-43
+3.02035e-42
+6.69095e-43
+1.41827e-42
+7.17787e-43
+3.39874e-42
+1.89464e-46
+1.34568e-45
+2.47237e-41
+8.99753e-42
+2.03272e-44
+1.55644e-41
+1.26343e-42
+2.6958e-43
+4.22926e-43
+1.90363e-44
+1.09711e-43
+1.10198e-41
+8.5774e-43
+1.1628e-45
+9.19831e-42
+1.89328e-43
+8.20001e-43
+3.06251e-43
+2.41754e-42
+2.6977e-48
+1.8633e-42
+2.92797e-42
+4.45373e-43
+1.80615e-42
+2.79457e-44
+5.49437e-42
+6.96484e-42
+1.87248e-41
+1.21291e-41
+1.9297e-42
+4.2368e-44
+2.62171e-44
+6.2048e-44
+4.88964e-43
+1.12914e-05
+0.000675573
+0.00369093
+1.07994e-39
+4.30545e-41
+4.49811e-42
+3.52522e-41
+4.17424e-41
+2.86118e-41
+1.98609e-42
+1.70842e-43
+1.21728e-42
+0
+6.8887e-42
+1.29717e-43
+2.93255e-41
+2.03468e-41
+8.61809e-42
+1.06575e-41
+3.47338e-44
+3.4029e-44
+3.13874e-41
+1.54969e-40
+2.96655e-43
+8.25025e-41
+9.25397e-42
+2.34833e-41
+1.05797e-41
+2.72695e-41
+9.58978e-44
+1.91875e-42
+1.5047e-41
+2.14081e-43
+6.31041e-41
+8.33521e-41
+3.06701e-40
+4.34393e-43
+3.02888e-45
+5.39266e-42
+2.1261e-41
+4.25062e-41
+8.01668e-42
+5.44212e-50
+1.00493e-42
+5.70317e-43
+3.40361e-41
+3.56789e-42
+4.52309e-42
+5.27738e-43
+1.22682e-42
+1.88026e-47
+3.03038e-41
+3.44955e-41
+4.02853e-42
+4.70167e-43
+3.7009e-45
+5.49208e-43
+2.19049e-44
+5.44485e-44
+1.58471e-44
+9.6762e-41
+1.04547e-40
+5.58286e-42
+2.06228e-41
+2.53238e-43
+2.89611e-41
+1.11014e-43
+1.08964e-43
+4.99011e-42
+9.0455e-43
+2.11669e-41
+5.55176e-42
+1.24162e-44
+5.35114e-42
+5.25402e-42
+4.81555e-44
+5.08989e-41
+3.12102e-40
+3.32263e-41
+4.07888e-42
+1.88662e-43
+1.48092e-41
+3.86445e-42
+1.42877e-41
+2.62544e-41
+7.27247e-43
+1.02312e-41
+5.90051e-41
+5.13126e-42
+6.6765e-41
+1.63158e-41
+0
+5.91323e-42
+3.76157e-41
+2.54553e-40
+6.59769e-44
+5.3255e-46
+3.71893e-43
+2.11287e-43
+2.07825e-43
+4.17065e-42
+3.52975e-42
+6.4705e-42
+2.94582e-44
+1.90968e-43
+4.74076e-42
+2.55376e-42
+1.84673e-44
+6.23108e-42
+2.66777e-41
+1.25023e-42
+8.07812e-41
+2.31571e-42
+4.52289e-43
+1.57492e-42
+1.03993e-43
+6.17639e-42
+4.86356e-41
+2.30996e-44
+1.74593e-42
+1.91973e-41
+3.35314e-41
+7.33291e-44
+9.16834e-43
+7.22313e-42
+1.20686e-42
+3.88448e-42
+2.01629e-44
+1.58717e-43
+3.81641e-44
+1.29005e-41
+3.15709e-42
+2.13103e-43
+3.28622e-41
+6.15188e-44
+4.37391e-45
+9.04427e-42
+3.61021e-41
+2.09664e-05
+0.000278673
+0.00111509
+0.00290764
+0.00607105
+0.0110604
+0.0183744
+0.0285588
+0.0422102
+0.0599798
+0.0825786
+0.110781
+0.145431
+0.187447
+0.237827
+0.297658
+0.368118
+0.45049
+0.546163
+0.656647
+0.783576
+0.928727
+1.09402
+1.28154
+1.49355
+1.7325
+2.00102
+2.302
+2.63853
+3.01399
+3.43202
+3.89655
+4.41186
+4.98258
+5.6137
+6.31065
+7.0793
+7.92599
+8.85762
+9.88164
+11.0061
+12.2374
+13.4933
+14.6729
+15.9381
+8.46047e-41
+1.41026e-39
+1.07379e-40
+4.21595e-41
+3.59727e-40
+2.7104e-40
+7.54362e-45
+5.74089e-42
+1.07532e-40
+9.30241e-41
+2.07055e-41
+7.84284e-41
+4.14726e-41
+6.92283e-42
+2.69401e-40
+2.28779e-41
+2.29116e-42
+1.43367e-42
+6.62592e-41
+1.89338e-43
+9.78442e-45
+5.5495e-45
+2.03014e-42
+5.33694e-45
+4.0689e-42
+5.12745e-45
+3.21335e-43
+0
+1.76196e-41
+8.5877e-42
+3.70901e-44
+4.56522e-45
+1.2033e-43
+1.63068e-42
+1.15668e-43
+1.85256e-41
+2.16941e-41
+2.06747e-42
+5.86628e-42
+3.0235e-42
+8.22443e-43
+5.53217e-42
+1.61529e-41
+1.02905e-40
+7.60937e-43
+7.946e-42
+5.85559e-45
+2.65908e-47
+1.02003e-06
+1.57658e-05
+6.52465e-05
+0.00017205
+0.000360313
+0.000655804
+0.00108601
+0.00168024
+0.00246969
+0.00348758
+0.00476925
+0.00635226
+0.00827651
+0.0105844
+0.0133209
+0.0165337
+0.0202735
+0.0245938
+0.0295516
+0.035207
+0.0416237
+0.0488693
+0.057015
+0.0661366
+0.0763137
+0.0876309
+0.100177
+0.114048
+0.129341
+0.146163
+0.164625
+0.184844
+0.206945
+0.231058
+0.257321
+0.28588
+0.316889
+0.350511
+0.386916
+0.426286
+0.46881
+0.514691
+0.56414
+0.617381
+0.674649
+0.736195
+0.802278
+0.873177
+0.949184
+1.0306
+1.11776
+1.211
+1.31069
+1.41719
+1.53091
+1.65228
+1.78174
+1.91977
+2.06684
+2.2235
+2.39029
+2.56779
+2.75661
+2.9574
+3.17085
+3.39768
+3.63864
+3.89453
+4.1662
+4.45455
+4.76051
+5.08509
+5.42932
+5.79432
+6.18125
+6.59136
+7.02595
+7.48639
+7.97415
+8.49076
+9.03784
+9.61711
+10.2304
+10.8796
+11.5668
+12.2941
+13.0608
+13.7548
+14.4381
+15.1511
+15.8967
+16.6762
+17.4912
+18.3434
+19.2342
+20.1655
+21.1391
+22.1567
+23.2205
+24.3325
+25.4948
+26.7097
+27.9796
+29.3069
+30.6942
+32.1443
+33.66
+35.2443
+36.9003
+38.6312
+40.4406
+42.3321
+44.3093
+46.3763
+48.5372
+50.7964
+53.1584
+55.6282
+58.2106
+60.9111
+63.7351
+66.6886
+69.7776
+73.0088
+76.3887
+79.9247
+83.6242
+87.4951
+91.5458
+94.3805
+94.658
+94.9405
+4.62573
+4.7239
+4.82446
+4.92749
+5.03306
+5.14123
+5.25208
+5.36568
+5.4821
+5.60143
+5.72374
+5.84912
+5.97765
+6.10942
+6.24453
+6.38306
+6.52511
+6.67078
+6.82018
+6.97341
+7.13058
+7.2918
+7.45719
+7.62687
+7.80096
+7.97959
+8.16289
+8.351
+8.54406
+8.74221
+8.9456
+9.15439
+9.36873
+9.5888
+9.81475
+10.0468
+10.285
+10.5297
+10.7811
+11.0392
+11.3044
+11.5768
+11.8567
+12.1443
+12.4398
+12.7435
+13.0557
+13.3745
+13.6594
+13.9295
+14.2045
+14.4858
+14.7737
+15.0682
+15.3697
+15.6781
+15.9938
+16.3169
+16.6476
+16.9862
+17.3327
+17.6875
+18.0507
+18.4226
+18.8034
+19.1933
+19.5926
+20.0016
+20.4205
+20.8495
+21.289
+21.7393
+22.2005
+22.6731
+23.1573
+23.6535
+24.162
+24.6831
+25.2172
+25.7647
+26.3259
+26.9011
+27.4909
+28.0956
+28.7157
+29.3515
+30.0035
+30.6723
+31.3582
+32.0617
+32.7835
+33.5239
+34.2835
+35.063
+35.8629
+36.6837
+37.5261
+38.3907
+39.2783
+40.1894
+41.1248
+42.0852
+43.0713
+44.084
+45.124
+46.1922
+47.2894
+48.4165
+49.5744
+50.764
+51.9865
+53.2426
+54.5336
+55.8605
+57.2245
+58.6266
+60.0681
+61.5502
+63.0743
+64.6417
+66.2537
+67.9118
+69.6174
+71.3722
+73.1777
+75.0356
+76.9476
+78.9155
+80.941
+83.0262
+85.1731
+87.3836
+89.6599
+92.0043
+94.419
+95.1806
+95.3512
+95.524
+95.699
+95.8763
+96.0558
+96.2377
+96.422
+96.6087
+96.7978
+96.9894
+97.1836
+97.3804
+97.5799
+97.782
+97.9868
+98.1945
+98.405
+98.6184
+98.8347
+99.0541
+99.2765
+99.5021
+99.7308
+99.9628
+100.198
+100.437
+100.679
+100.924
+101.174
+101.427
+101.683
+101.944
+102.208
+102.476
+102.748
+103.025
+103.306
+103.591
+103.88
+104.174
+104.472
+104.776
+105.084
+105.397
+62.9762
+63.4606
+63.9521
+64.4505
+64.9562
+65.4691
+65.9895
+66.5174
+67.053
+67.5964
+68.1478
+68.7073
+69.2751
+69.8512
+70.436
+71.0294
+71.6317
+72.2431
+72.8636
+73.4935
+74.133
+74.7822
+75.4413
+76.1105
+76.79
+77.4799
+78.1805
+78.892
+79.6146
+80.3484
+81.0938
+81.8509
+82.62
+83.4012
+84.1949
+85.0012
+85.8205
+86.6529
+87.4988
+88.3583
+89.2318
+90.1196
+91.0219
+91.939
+92.8712
+93.8189
+94.7823
+95.7617
+96.1305
+96.2038
+96.2778
+96.3525
+96.428
+96.5042
+96.5811
+96.6589
+96.7374
+96.8167
+96.8968
+96.9777
+97.0595
+97.142
+97.2254
+97.3097
+97.3948
+97.4807
+97.5676
+97.6553
+97.744
+97.8335
+97.924
+98.0154
+98.1078
+98.2011
+98.2954
+98.3907
+98.487
+98.5843
+98.6826
+98.782
+98.8824
+98.9839
+99.0864
+99.1901
+99.2948
+99.4007
+99.5077
+99.6159
+99.7252
+99.8358
+99.9475
+100.06
+100.175
+100.29
+100.407
+100.525
+100.644
+100.765
+100.887
+101.01
+101.135
+101.261
+101.388
+101.517
+101.647
+101.779
+101.913
+102.048
+102.184
+102.322
+102.462
+102.603
+102.746
+102.89
+103.037
+103.185
+103.334
+103.486
+103.639
+103.794
+103.951
+104.11
+104.271
+104.433
+104.598
+104.765
+104.933
+105.104
+105.277
+105.452
+105.629
+105.808
+105.99
+106.174
+106.36
+106.549
+106.74
+106.933
+107.129
+107.327
+107.528
+107.732
+107.938
+108.147
+108.359
+108.574
+108.791
+109.011
+109.234
+109.461
+109.69
+109.923
+110.158
+110.397
+110.639
+110.885
+111.134
+111.386
+111.642
+111.902
+112.165
+112.433
+112.704
+112.979
+113.258
+113.541
+113.828
+114.119
+114.415
+114.716
+115.02
+115.33
+115.644
+115.963
+116.287
+116.616
+116.95
+117.29
+117.635
+117.985
+105.656
+105.708
+105.761
+105.815
+105.869
+105.923
+105.979
+106.034
+106.09
+106.147
+106.204
+106.262
+106.32
+106.379
+106.439
+106.499
+106.559
+106.62
+106.682
+106.744
+106.807
+106.87
+106.934
+106.999
+107.064
+107.13
+107.196
+107.263
+107.331
+107.399
+107.468
+107.538
+107.608
+107.679
+107.751
+107.824
+107.897
+107.97
+108.045
+108.12
+108.196
+108.273
+108.35
+108.429
+108.508
+108.587
+108.668
+108.749
+108.831
+108.914
+108.998
+109.083
+109.168
+109.254
+109.341
+109.429
+109.518
+109.608
+109.699
+109.79
+109.883
+109.976
+110.071
+110.166
+110.263
+110.36
+110.458
+110.558
+110.658
+110.759
+110.862
+110.965
+111.07
+111.175
+111.282
+111.39
+111.499
+111.609
+111.721
+111.833
+111.947
+112.062
+112.178
+112.295
+112.414
+112.533
+112.655
+112.777
+112.901
+113.026
+113.152
+113.28
+113.41
+113.54
+113.672
+113.806
+113.941
+114.078
+114.216
+114.355
+114.496
+114.639
+114.783
+114.929
+115.077
+115.226
+115.377
+115.53
+115.685
+115.841
+115.999
+116.159
+116.321
+116.484
+116.65
+116.817
+116.987
+117.158
+117.332
+117.507
+117.685
+117.865
+118.047
+118.231
+118.417
+118.606
+118.797
+118.99
+119.186
+119.384
+119.585
+119.788
+119.993
+120.202
+120.412
+120.626
+120.842
+121.061
+121.283
+121.507
+121.735
+121.966
+122.199
+122.436
+122.675
+122.918
+123.164
+123.414
+123.666
+123.923
+124.182
+124.445
+124.712
+124.983
+125.257
+125.535
+125.817
+126.103
+126.392
+126.686
+126.985
+127.287
+127.594
+127.905
+128.221
+128.542
+128.867
+129.197
+129.532
+129.872
+130.217
+130.567
+130.923
+131.284
+131.651
+132.023
+132.402
+132.786
+133.176
+133.573
+121.543
+121.603
+121.664
+121.726
+121.788
+121.851
+121.915
+121.979
+122.043
+122.109
+122.175
+122.241
+122.308
+122.376
+122.444
+122.513
+122.583
+122.653
+122.724
+122.795
+122.868
+122.941
+123.014
+123.088
+123.163
+123.239
+123.316
+123.393
+123.471
+123.549
+123.629
+123.709
+123.79
+123.872
+123.954
+124.037
+124.121
+124.206
+124.292
+124.379
+124.466
+124.554
+124.643
+124.733
+124.824
+124.916
+125.008
+125.102
+125.196
+125.292
+125.388
+125.486
+125.584
+125.683
+125.783
+125.885
+125.987
+126.09
+126.194
+126.3
+126.406
+126.514
+126.622
+126.732
+126.843
+126.955
+127.068
+127.182
+127.298
+127.414
+127.532
+127.651
+127.772
+127.893
+128.016
+128.14
+128.265
+128.392
+128.52
+128.65
+128.78
+128.913
+129.046
+129.181
+129.318
+129.455
+129.595
+129.736
+129.878
+130.022
+130.168
+130.315
+130.463
+130.614
+130.766
+130.919
+131.075
+131.232
+131.391
+131.551
+131.713
+131.878
+132.044
+132.212
+132.381
+132.553
+132.727
+132.903
+133.08
+133.26
+133.442
+133.626
+133.812
+134
+134.191
+134.383
+134.578
+134.776
+134.975
+135.177
+135.382
+135.588
+135.798
+136.01
+136.224
+136.441
+136.661
+136.883
+137.108
+137.336
+137.567
+137.8
+138.037
+138.277
+138.519
+138.765
+139.013
+139.265
+139.52
+139.779
+140.041
+140.306
+140.574
+140.847
+141.122
+141.402
+141.685
+141.972
+142.263
+142.557
+142.856
+143.159
+143.466
+143.777
+144.092
+144.412
+144.736
+145.065
+145.398
+145.737
+146.08
+146.428
+146.781
+147.139
+147.502
+147.871
+148.245
+148.624
+149.01
+149.401
+149.798
+150.201
+150.61
+151.026
+151.447
+151.876
+152.311
+152.753
+153.203
+153.659
+143.279
+143.35
+143.422
+143.494
+143.568
+143.642
+143.717
+143.792
+143.869
+143.945
+144.023
+144.101
+144.18
+144.26
+144.341
+144.422
+144.504
+144.587
+144.67
+144.755
+144.84
+144.926
+145.013
+145.1
+145.189
+145.278
+145.368
+145.459
+145.551
+145.644
+145.737
+145.832
+145.927
+146.023
+146.121
+146.219
+146.318
+146.418
+146.519
+146.621
+146.724
+146.828
+146.933
+147.039
+147.146
+147.254
+147.364
+147.474
+147.585
+147.698
+147.811
+147.926
+148.042
+148.159
+148.277
+148.397
+148.517
+148.639
+148.762
+148.886
+149.012
+149.138
+149.266
+149.396
+149.526
+149.658
+149.792
+149.926
+150.062
+150.2
+150.339
+150.479
+150.621
+150.764
+150.909
+151.055
+151.203
+151.353
+151.503
+151.656
+151.81
+151.966
+152.123
+152.283
+152.443
+152.606
+152.77
+152.936
+153.104
+153.274
+153.445
+153.619
+153.794
+153.971
+154.15
+154.332
+154.515
+154.7
+154.887
+155.076
+155.268
+155.461
+155.657
+155.855
+156.055
+156.258
+156.463
+156.67
+156.879
+157.091
+157.305
+157.522
+157.742
+157.963
+158.188
+158.415
+158.645
+158.877
+159.113
+159.351
+159.592
+159.836
+160.082
+160.332
+160.585
+160.841
+161.1
+161.362
+161.627
+161.896
+162.168
+162.443
+162.722
+163.005
+163.29
+163.58
+163.873
+164.17
+164.471
+164.775
+165.084
+165.397
+165.713
+166.034
+166.359
+166.689
+167.022
+167.361
+167.703
+168.051
+168.403
+168.76
+169.121
+169.488
+169.86
+170.237
+170.619
+171.007
+171.4
+171.799
+172.203
+172.613
+173.029
+173.451
+173.88
+174.314
+174.755
+175.203
+175.657
+176.118
+176.586
+177.061
+177.544
+178.033
+178.531
+179.036
+179.549
+180.07
+180.6
+181.138
+176.15
+176.238
+176.326
+176.416
+176.506
+176.597
+176.689
+176.782
+176.876
+176.97
+177.066
+177.162
+177.259
+177.357
+177.456
+177.556
+177.657
+177.759
+177.862
+177.965
+178.07
+178.176
+178.283
+178.39
+178.499
+178.609
+178.719
+178.831
+178.944
+179.058
+179.173
+179.289
+179.407
+179.525
+179.645
+179.765
+179.887
+180.01
+180.134
+180.26
+180.387
+180.514
+180.644
+180.774
+180.906
+181.039
+181.173
+181.308
+181.445
+181.584
+181.723
+181.864
+182.007
+182.151
+182.296
+182.443
+182.591
+182.741
+182.892
+183.044
+183.199
+183.355
+183.512
+183.671
+183.832
+183.994
+184.158
+184.323
+184.491
+184.66
+184.831
+185.003
+185.177
+185.354
+185.532
+185.711
+185.893
+186.077
+186.262
+186.45
+186.639
+186.831
+187.025
+187.22
+187.418
+187.618
+187.82
+188.024
+188.23
+188.439
+188.65
+188.863
+189.078
+189.296
+189.517
+189.739
+189.964
+190.192
+190.422
+190.655
+190.89
+191.128
+191.369
+191.612
+191.858
+192.107
+192.359
+192.614
+192.871
+193.132
+193.395
+193.662
+193.932
+194.205
+194.481
+194.76
+195.042
+195.328
+195.617
+195.91
+196.206
+196.506
+196.81
+197.117
+197.427
+197.742
+198.06
+198.383
+198.709
+199.039
+199.374
+199.712
+200.055
+200.402
+200.754
+201.11
+201.47
+201.835
+202.205
+202.579
+202.959
+203.343
+203.732
+204.127
+204.526
+204.931
+205.342
+205.758
+206.179
+206.606
+207.039
+207.478
+207.922
+208.373
+208.83
+209.294
+209.764
+210.24
+210.724
+211.214
+211.711
+212.215
+212.727
+213.246
+213.772
+214.307
+214.849
+215.399
+215.957
+216.524
+217.1
+217.684
+218.277
+218.879
+219.49
+220.111
+220.742
+221.383
+222.034
+222.695
+236.945
+237.063
+237.182
+237.302
+237.424
+237.546
+237.67
+237.795
+237.921
+238.048
+238.176
+238.306
+238.437
+238.568
+238.702
+238.836
+238.972
+239.109
+239.247
+239.387
+239.527
+239.67
+239.813
+239.958
+240.104
+240.252
+240.401
+240.551
+240.703
+240.856
+241.011
+241.167
+241.325
+241.484
+241.645
+241.808
+241.972
+242.137
+242.304
+242.473
+242.643
+242.815
+242.989
+243.164
+243.341
+243.52
+243.701
+243.883
+244.067
+244.253
+244.441
+244.631
+244.823
+245.016
+245.212
+245.409
+245.608
+245.81
+246.013
+246.218
+246.426
+246.636
+246.847
+247.061
+247.277
+247.496
+247.716
+247.939
+248.164
+248.391
+248.621
+248.853
+249.088
+249.325
+249.564
+249.806
+250.05
+250.297
+250.547
+250.799
+251.054
+251.312
+251.572
+251.835
+252.101
+252.37
+252.642
+252.916
+253.194
+253.475
+253.758
+254.045
+254.335
+254.628
+254.924
+255.224
+255.527
+255.833
+256.143
+256.456
+256.772
+257.092
+257.416
+257.743
+258.074
+258.409
+258.748
+259.09
+259.437
+259.787
+260.142
+260.5
+260.863
+261.23
+261.601
+261.977
+262.357
+262.742
+263.131
+263.524
+263.923
+264.326
+264.734
+265.147
+265.565
+265.988
+266.417
+266.85
+267.289
+267.733
+268.183
+268.639
+269.1
+269.567
+270.039
+270.518
+271.003
+271.494
+271.992
+272.495
+273.006
+273.523
+274.046
+274.577
+275.114
+275.659
+276.211
+276.77
+277.337
+277.912
+278.494
+279.084
+279.682
+280.289
+280.904
+281.527
+282.159
+282.8
+283.45
+284.11
+284.778
+285.457
+286.145
+286.843
+287.551
+288.27
+288.999
+289.739
+290.49
+291.253
+292.026
+292.812
+293.61
+294.42
+295.242
+296.078
+296.926
+297.788
+298.664
+299.553
+443.618
+443.839
+444.063
+444.288
+444.515
+444.745
+444.976
+445.21
+445.446
+445.684
+445.924
+446.167
+446.412
+446.659
+446.908
+447.16
+447.414
+447.67
+447.929
+448.19
+448.454
+448.72
+448.989
+449.26
+449.534
+449.81
+450.089
+450.371
+450.655
+450.942
+451.232
+451.525
+451.82
+452.118
+452.419
+452.723
+453.03
+453.34
+453.653
+453.969
+454.288
+454.61
+454.935
+455.263
+455.595
+455.93
+456.268
+456.609
+456.954
+457.302
+457.654
+458.009
+458.368
+458.73
+459.096
+459.466
+459.839
+460.216
+460.597
+460.981
+461.37
+461.762
+462.159
+462.559
+462.964
+463.372
+463.785
+464.202
+464.624
+465.049
+465.479
+465.914
+466.353
+466.797
+467.245
+467.698
+468.156
+468.618
+469.085
+469.558
+470.035
+470.517
+471.005
+471.498
+471.996
+472.499
+473.008
+473.522
+474.042
+474.567
+475.098
+475.635
+476.178
+476.726
+477.281
+477.842
+478.409
+478.982
+479.562
+480.148
+480.741
+481.34
+481.946
+482.559
+483.179
+483.806
+484.44
+485.081
+485.73
+486.386
+487.049
+487.721
+488.4
+489.087
+489.782
+490.485
+491.197
+491.917
+492.646
+493.383
+494.129
+494.884
+495.648
+496.421
+497.204
+497.996
+498.798
+499.609
+500.431
+501.263
+502.105
+502.958
+503.821
+504.695
+505.581
+506.477
+507.385
+508.304
+509.235
+510.179
+511.134
+512.102
+513.083
+514.076
+515.082
+516.102
+517.136
+518.183
+519.244
+520.32
+521.41
+522.515
+523.635
+524.771
+525.922
+527.089
+528.273
+529.473
+530.69
+531.925
+533.177
+534.447
+535.735
+537.042
+538.368
+539.714
+541.079
+542.465
+543.872
+545.299
+546.748
+548.22
+549.713
+551.23
+552.77
+554.334
+555.923
+557.537
+559.176
+560.842
+29686
+29700.8
+29715.8
+29730.9
+29746.1
+29761.4
+29776.9
+29792.6
+29808.4
+29824.3
+29840.4
+29856.6
+29873
+29889.5
+29906.2
+29923
+29940
+29957.2
+29974.5
+29992
+30009.6
+30027.5
+30045.4
+30063.6
+30081.9
+30100.4
+30119.1
+30137.9
+30156.9
+30176.2
+30195.5
+30215.1
+30234.9
+30254.8
+30275
+30295.3
+30315.9
+30336.6
+30357.5
+30378.7
+30400
+30421.6
+30443.3
+30465.3
+30487.5
+30509.9
+30532.5
+30555.4
+30578.5
+30601.8
+30625.3
+30649.1
+30673.1
+30697.3
+30721.8
+30746.5
+30771.5
+30796.7
+30822.2
+30847.9
+30873.9
+30900.2
+30926.7
+30953.5
+30980.6
+31007.9
+31035.6
+31063.5
+31091.7
+31120.2
+31149
+31178
+31207.4
+31237.1
+31267.1
+31297.4
+31328
+31359
+31390.3
+31421.9
+31453.8
+31486.1
+31518.7
+31551.7
+31585
+31618.7
+31652.7
+31687.1
+31721.9
+31757.1
+31792.6
+31828.5
+31864.8
+31901.6
+31938.7
+31976.2
+32014.2
+32052.5
+32091.3
+32130.5
+32170.2
+32210.3
+32250.9
+32291.9
+32333.4
+32375.3
+32417.7
+32460.6
+32504.1
+32548
+32592.4
+32637.3
+32682.7
+32728.7
+32775.2
+32822.3
+32869.9
+32918.1
+32966.8
+33016.2
+33066.1
+33116.6
+33167.7
+33219.5
+33271.9
+33324.9
+33378.5
+33432.8
+33487.8
+33543.5
+33599.9
+33656.9
+33714.7
+33773.2
+33832.4
+33892.4
+33953.2
+34014.7
+34077
+34140.1
+34204.1
+34268.8
+34334.4
+34400.9
+34468.3
+34536.5
+34605.6
+34675.7
+34746.7
+34818.7
+34891.7
+34965.6
+35040.6
+35116.5
+35193.6
+35271.7
+35350.9
+35431.2
+35512.7
+35595.3
+35679
+35764
+35850.2
+35937.7
+36026.4
+36116.5
+36207.9
+36300.6
+36394.7
+36490.2
+36587.2
+36685.6
+36785.6
+36887.1
+36990.1
+37094.8
+37201.1
+37309.1
+37418.8
+37530.2
+19728.8
+19839.1
+19955.9
+20079.4
+20209.8
+20347.9
+20494
+20649
+20813.5
+20988.2
+21174.1
+21372.1
+21583.2
+21808.8
+22050.1
+22308.8
+22586.6
+22885.4
+23207.7
+23556.1
+23933.7
+24344.2
+24791.8
+25281.6
+25385.8
+306.246
+308.09
+309.892
+311.794
+313.805
+315.93
+318.18
+320.564
+323.091
+325.775
+328.627
+331.662
+334.896
+338.347
+342.035
+345.983
+350.215
+354.762
+359.656
+364.936
+370.645
+376.836
+383.567
+390.91
+425.793
+166.519
+167.595
+168.583
+169.628
+170.732
+171.9
+173.138
+174.45
+175.843
+177.323
+178.898
+180.575
+182.365
+184.277
+186.323
+188.517
+190.873
+193.409
+196.145
+199.103
+202.31
+205.796
+209.6
+213.763
+255.243
+128.122
+128.996
+129.756
+130.56
+131.409
+132.308
+133.26
+134.27
+135.341
+136.479
+137.691
+138.981
+140.357
+141.827
+143.401
+145.088
+146.899
+148.849
+150.953
+153.227
+155.693
+158.374
+161.298
+164.5
+202.103
+107.97
+108.744
+109.386
+110.063
+110.779
+111.536
+112.339
+113.19
+114.092
+115.052
+116.072
+117.16
+118.32
+119.559
+120.885
+122.306
+123.833
+125.476
+127.248
+129.164
+131.242
+133.501
+135.965
+138.662
+168.014
+61.6817
+68.183
+75.3504
+83.443
+92.6001
+98.1227
+98.8285
+99.5768
+100.371
+101.215
+102.113
+103.069
+104.089
+105.179
+106.345
+107.595
+108.938
+110.383
+111.942
+113.627
+115.454
+117.441
+119.608
+121.98
+141.861
+4.15877
+5.42103
+7.02665
+9.06463
+11.7007
+14.9617
+18.722
+23.2091
+28.6961
+35.4021
+43.5962
+53.6102
+65.8541
+80.8368
+95.9248
+97.0523
+98.2633
+99.5665
+100.972
+102.492
+104.14
+105.932
+107.886
+110.025
+121.202
+4.03659e-42
+3.06176e-43
+2.68381e-43
+1.34613e-44
+2.39312e-43
+0.000595367
+0.0191922
+0.100932
+0.31331
+0.754083
+1.56319
+2.93943
+5.16396
+8.6498
+13.9915
+21.1949
+30.9935
+44.4722
+62.8417
+87.7037
+95.5046
+97.1474
+98.9394
+100.901
+105.402
+3.17749e-43
+1.35098e-42
+6.36162e-43
+2.00188e-42
+2.92354e-42
+5.13468e-43
+1.06287e-44
+5.36569e-44
+4.43723e-43
+5.89687e-44
+3.86192e-43
+5.97766e-44
+3.05437e-43
+1.01867e-42
+0.000182136
+0.0653307
+0.48266
+1.75723
+4.70514
+10.7289
+21.0655
+37.4348
+62.9273
+93.6369
+94.2935
+3.17749e-43
+1.27119e-43
+5.0893e-42
+4.72009e-42
+7.51396e-44
+5.13468e-43
+4.75441e-43
+5.36569e-44
+1.9959e-44
+1.885e-43
+6.38335e-44
+2.57363e-43
+3.81796e-44
+0
+3.02202e-43
+4.73588e-44
+4.86107e-45
+4.3065e-44
+3.30652e-43
+3.43929e-44
+0.0723535
+1.04029
+4.83416
+14.9125
+34.0036
+7.58361e-43
+9.61337e-44
+6.36162e-43
+1.97769e-42
+5.55562e-43
+6.94464e-44
+5.27017e-42
+1.06357e-45
+4.98856e-44
+8.54264e-45
+1.73712e-44
+6.89353e-44
+0
+2.87668e-43
+3.02202e-43
+2.29216e-42
+2.7267e-43
+2.60542e-43
+2.81125e-44
+3.43929e-44
+8.52675e-43
+8.20319e-44
+2.95817e-43
+0.00262397
+0.846666
+3.21636e-43
+1.35098e-42
+0
+1.97769e-42
+7.51396e-44
+0
+5.78345e-44
+5.96584e-44
+3.99085e-43
+4.64836e-44
+6.88491e-45
+4.06583e-44
+0
+3.59585e-44
+0
+5.108e-45
+4.50694e-44
+4.64487e-45
+2.249e-43
+2.41148e-43
+8.52675e-43
+2.05031e-43
+3.1906e-44
+7.95595e-44
+3.14099e-44
+3.17749e-43
+1.08078e-44
+6.36162e-43
+2.47212e-43
+1.33957e-45
+2.21179e-43
+1.58063e-42
+3.45765e-42
+4.98856e-44
+5.16829e-44
+7.97918e-45
+1.62672e-44
+1.63695e-42
+9.70879e-43
+0
+0
+4.50694e-44
+4.64487e-45
+2.81125e-44
+1.78298e-42
+2.33786e-43
+3.01441e-43
+0
+1.25871e-42
+2.91217e-43
+7.53183e-43
+8.64628e-44
+5.0893e-42
+7.32479e-44
+2.89752e-42
+7.80752e-45
+7.35676e-42
+5.96584e-44
+1.68364e-43
+1.27041e-42
+7.26656e-43
+4.5206e-44
+0
+1.43868e-44
+9.62481e-43
+3.22121e-44
+4.50694e-44
+1.18783e-43
+7.59037e-43
+3.38888e-42
+8.41268e-44
+0
+2.51507e-44
+1.59082e-42
+1.98077e-43
+2.58554e-41
+8.88484e-44
+6.36162e-43
+5.85983e-43
+1.05595e-45
+5.13468e-43
+2.31392e-44
+6.70711e-45
+6.2357e-45
+8.54264e-45
+3.86192e-43
+4.5206e-44
+3.05437e-43
+1.45819e-43
+1.37775e-43
+4.73588e-44
+0
+9.37549e-44
+4.13315e-44
+3.38888e-42
+8.52675e-43
+3.76801e-44
+2.51507e-44
+3.15327e-44
+1.98077e-43
+2.29853e-41
+2.36305e-42
+8.17143e-44
+5.85983e-43
+1.67446e-46
+4.05937e-42
+3.35309e-43
+8.38388e-46
+6.2357e-45
+1.64604e-43
+7.97918e-45
+1.09777e-42
+3.05437e-43
+2.87668e-43
+4.24688e-45
+9.12537e-43
+3.06549e-44
+9.37549e-44
+7.964e-43
+2.41148e-43
+4.16787e-45
+2.27964e-43
+2.51507e-44
+3.10706e-45
+3.92624e-45
+3.97186e-44
+1.7185e-43
+6.40535e-43
+2.521e-42
+2.30874e-43
+5.03116e-43
+5.29878e-42
+1.45316e-42
+5.68229e-43
+3.82129e-43
+2.32691e-43
+1.37222e-43
+1.28856e-43
+1.2136e-43
+6.73445e-46
+4.02651e-45
+1.31433e-42
+2.60542e-43
+7.964e-43
+3.43929e-44
+3.86424e-44
+1.0254e-44
+6.79069e-43
+3.65445e-44
+2.20232e-43
+1.84691e-43
+6.9289e-43
+1.2425e-42
+5.90011e-43
+2.90402e-42
+0
+8.03791e-45
+5.51373e-44
+2.13885e-42
+1.96103e-44
+2.32691e-43
+4.63124e-43
+3.05437e-43
+1.54172e-42
+3.77752e-44
+3.22121e-44
+3.06549e-44
+3.25678e-44
+6.00813e-44
+3.98592e-44
+1.05158e-44
+1.0254e-44
+1.07834e-42
+3.88383e-43
+1.98077e-43
+1.82955e-43
+3.58853e-42
+1.4877e-43
+1.71917e-46
+4.05601e-42
+3.7022e-42
+6.01063e-43
+1.66147e-42
+1.49231e-43
+1.7426e-42
+5.17618e-45
+3.42543e-44
+4.93023e-43
+1.24823e-42
+3.36354e-42
+8.40933e-44
+3.61214e-46
+2.14939e-44
+1.01527e-44
+0
+5.9133e-44
+1.64537e-44
+5.23041e-44
+2.15295e-44
+9.13151e-43
+1.75033e-41
+8.28299e-42
+6.09362e-43
+8.04806e-42
+2.14177e-43
+1.56395e-42
+8.24503e-46
+6.03425e-45
+1.49231e-43
+0
+5.17618e-45
+2.63355e-42
+0
+1.22821e-44
+9.52858e-44
+1.33537e-43
+9.75277e-45
+3.35842e-43
+3.68088e-45
+5.1132e-43
+3.21994e-45
+0
+1.93719e-45
+2.15295e-44
+2.20178e-45
+5.35845e-42
+1.45405e-45
+1.89241e-44
+7.90339e-43
+2.14177e-43
+2.43623e-44
+3.56681e-44
+2.1368e-44
+0
+2.05562e-44
+3.82713e-44
+1.51624e-44
+2.52428e-43
+1.28867e-44
+3.13178e-43
+3.89321e-43
+4.51517e-44
+9.06772e-45
+3.68088e-45
+2.96675e-45
+1.94806e-44
+2.05671e-45
+5.23041e-44
+1.30253e-43
+0
+2.64324e-46
+2.83341e-43
+1.37913e-42
+8.67313e-42
+7.20646e-43
+5.26405e-42
+7.07769e-43
+2.5457e-45
+6.90885e-46
+7.92048e-44
+1.00865e-42
+4.28179e-45
+2.21472e-42
+3.63914e-42
+3.08167e-43
+1.59466e-42
+0
+1.08952e-44
+8.44974e-45
+5.05141e-43
+3.42205e-44
+2.05671e-45
+7.85568e-45
+7.84812e-44
+1.11079e-43
+3.53926e-42
+3.53099e-44
+4.01679e-42
+4.44255e-42
+1.36656e-41
+8.26693e-44
+1.09841e-42
+2.67101e-45
+1.49231e-43
+2.21738e-43
+4.65546e-45
+1.80638e-45
+3.59413e-43
+1.28867e-44
+2.66208e-42
+2.85356e-43
+4.80776e-43
+2.46158e-43
+1.60232e-43
+3.70844e-46
+7.39163e-45
+0
+8.60543e-44
+4.94225e-44
+1.14144e-43
+2.2572e-44
+5.51986e-43
+2.36551e-45
+4.69e-44
+1.23568e-43
+2.47796e-43
+2.01436e-43
+2.67101e-45
+3.53733e-43
+5.45913e-43
+4.65546e-45
+6.71971e-44
+1.69107e-43
+7.23301e-45
+1.8677e-44
+1.9318e-45
+1.2191e-42
+1.16228e-43
+3.12953e-46
+8.28134e-45
+4.02493e-46
+2.57089e-46
+1.54975e-44
+2.8601e-44
+1.14144e-43
+2.82151e-45
+1.12159e-42
+4.43252e-42
+4.57372e-46
+1.54459e-44
+2.47957e-43
+2.02859e-42
+3.08953e-42
+5.3224e-42
+4.08316e-44
+1.99603e-43
+1.06091e-47
+1.02187e-42
+2.55842e-43
+3.36354e-45
+3.62495e-44
+2.63325e-43
+9.22066e-43
+1.34179e-44
+4.29785e-46
+2.43508e-45
+1.3163e-43
+1.03821e-44
+2.28808e-46
+3.44029e-47
+2.82503e-43
+8.62478e-45
+6.79742e-42
+5.04651e-43
+3.39347e-44
+5.06865e-43
+2.64595e-42
+7.76088e-42
+1.43198e-42
+1.73876e-42
+2.73475e-42
+7.12382e-43
+1.79189e-42
+2.11745e-43
+1.77374e-43
+2.41476e-46
+5.49361e-43
+1.22068e-43
+4.21711e-44
+7.19234e-43
+3.11834e-45
+2.05671e-45
+0
+9.81015e-45
+1.1127e-43
+5.89122e-42
+5.06296e-50
+0
+0
+0
+0
+3.37725e-42
+0
+0
+1.96247e-49
+0
+0
+0
+0
+1.72213e-42
+1.59483e-42
+0
+8.32121e-49
+7.75411e-49
+1.19737e-42
+0
+0
+1.2398e-43
+1.1715e-43
+4.30036e-48
+1.10518e-42
+4.28509e-49
+1.70199e-43
+3.97152e-44
+1.94636e-42
+2.37031e-43
+2.17643e-46
+7.30922e-43
+4.43457e-43
+8.95607e-43
+4.07404e-42
+1.13332e-43
+2.44924e-43
+1.00293e-45
+3.06136e-44
+8.49818e-44
+1.94626e-43
+7.4614e-44
+5.26105e-43
+2.14637e-43
+1.14709e-44
+1.11391e-45
+1.58419e-44
+2.10059e-43
+1.42184e-43
+9.70257e-44
+2.10433e-42
+1.30061e-41
+6.21029e-45
+1.94636e-42
+5.12987e-44
+1.92556e-43
+2.82129e-44
+9.43642e-47
+1.08805e-47
+5.97071e-43
+1.29544e-43
+6.90592e-44
+1.00293e-42
+2.01799e-43
+7.43779e-44
+1.55772e-42
+5.96912e-43
+1.12647e-42
+4.38131e-44
+3.83218e-43
+1.61333e-43
+2.57564e-43
+4.50229e-45
+1.42184e-43
+2.01783e-42
+2.16181e-47
+3.65768e-42
+9.91278e-43
+2.28702e-43
+7.09931e-43
+1.41747e-44
+2.01714e-42
+2.07148e-42
+8.06919e-43
+4.71617e-43
+1.65283e-43
+1.21378e-42
+1.38645e-44
+6.36667e-43
+6.56665e-46
+3.99762e-44
+2.58117e-44
+2.956e-45
+3.4897e-43
+8.92913e-45
+4.18684e-43
+8.11106e-45
+3.83523e-43
+1.42184e-43
+1.2998e-42
+2.10422e-42
+4.33566e-43
+2.25816e-42
+4.46683e-43
+1.21893e-43
+3.85648e-44
+4.197e-43
+4.77983e-42
+3.12937e-42
+1.26469e-42
+4.05012e-44
+5.52474e-43
+2.16633e-43
+1.29151e-44
+9.64752e-44
+1.33828e-45
+2.06494e-43
+3.28663e-45
+3.4897e-46
+2.17493e-44
+1.61057e-43
+3.99845e-43
+2.88147e-46
+0
+4.09327e-44
+5.66706e-42
+2.47057e-42
+4.30546e-42
+6.7061e-42
+4.77173e-42
+4.57213e-43
+1.60553e-42
+7.54913e-43
+2.35019e-42
+3.31708e-43
+4.76515e-45
+5.52474e-46
+6.83468e-43
+1.03321e-43
+5.68148e-44
+5.31858e-44
+2.58117e-44
+1.04676e-44
+4.1045e-45
+7.1433e-44
+4.24781e-43
+2.40328e-45
+7.77996e-45
+1.42184e-43
+3.27462e-43
+2.39261e-42
+5.12593e-45
+1.15618e-45
+1.83101e-42
+2.1035e-43
+3.66555e-42
+6.00825e-43
+3.86516e-43
+6.96353e-43
+4.11804e-44
+1.60824e-44
+1.21378e-42
+5.135e-46
+6.06815e-46
+2.85852e-44
+3.11444e-43
+4.97896e-46
+2.3648e-44
+2.48322e-44
+1.73994e-43
+2.51651e-45
+2.13767e-44
+1.84414e-44
+0
+1.10518e-42
+8.91565e-44
+1.40543e-45
+7.6037e-44
+2.31499e-43
+9.70878e-43
+1.13398e-43
+1.09502e-42
+3.09213e-42
+1.52252e-43
+2.63554e-42
+7.00582e-45
+2.82866e-43
+8.87327e-43
+4.8677e-43
+1.2366e-42
+2.45169e-42
+3.15364e-42
+7.98121e-44
+1.78673e-43
+7.49492e-44
+2.23839e-44
+3.81097e-46
+2.30517e-45
+1.13747e-42
+6.72872e-44
+9.64839e-46
+1.94804e-42
+6.52861e-42
+5.16618e-42
+2.40402e-43
+9.44712e-46
+3.0491e-43
+1.19459e-43
+2.63537e-43
+0
+1.23489e-42
+1.42098e-42
+4.02891e-43
+0
+3.53407e-43
+7.60696e-44
+8.86049e-43
+0
+1.71898e-42
+2.02763e-44
+5.98299e-44
+2.54894e-44
+2.70677e-45
+1.3545e-43
+8.4109e-45
+8.58206e-45
+1.53219e-42
+8.16077e-43
+2.06889e-42
+6.1787e-45
+5.7155e-45
+3.07006e-43
+1.89697e-43
+2.7999e-43
+0
+3.59221e-45
+0
+2.32149e-42
+1.52959e-42
+4.48329e-46
+2.38845e-44
+7.25291e-44
+3.06425e-43
+2.99133e-45
+2.68117e-44
+1.57682e-43
+6.93649e-45
+4.8356e-43
+1.3545e-43
+7.66443e-43
+2.10954e-43
+3.63186e-42
+1.13159e-41
+9.5693e-44
+6.94642e-43
+3.28994e-43
+6.06026e-43
+5.8889e-42
+7.20254e-42
+3.84126e-45
+7.75918e-43
+2.6946e-44
+2.02707e-43
+4.39226e-45
+3.53407e-43
+1.71854e-43
+3.01129e-44
+0
+1.19407e-43
+3.9391e-42
+5.02199e-43
+1.73371e-44
+0
+0
+1.3142e-43
+3.95198e-42
+5.17114e-42
+1.29409e-46
+1.04313e-41
+3.55657e-43
+1.41372e-41
+5.60355e-44
+1.19459e-43
+3.66268e-44
+5.6475e-45
+2.87377e-44
+2.996e-44
+2.35924e-42
+4.39226e-45
+3.32534e-44
+9.21029e-43
+5.53011e-43
+3.06425e-43
+3.15715e-43
+7.29634e-45
+1.16586e-42
+0
+1.36555e-43
+1.9914e-43
+1.11949e-41
+6.17497e-44
+5.67478e-44
+5.22289e-44
+1.9263e-44
+3.55657e-43
+6.84204e-42
+1.54558e-43
+2.83163e-43
+6.05403e-45
+1.08819e-43
+2.29902e-43
+9.54194e-44
+5.54003e-42
+4.03425e-42
+2.01183e-43
+2.14817e-44
+1.63855e-43
+0
+0
+2.31347e-44
+2.8111e-45
+0
+5.53758e-43
+1.9914e-43
+1.11949e-41
+2.08405e-43
+1.55093e-42
+4.7852e-42
+3.95796e-43
+2.2762e-41
+1.12394e-42
+3.0491e-43
+3.53954e-44
+0
+1.96673e-42
+4.22507e-44
+1.72455e-42
+3.16729e-42
+5.22553e-42
+1.80944e-43
+5.80007e-43
+1.82183e-43
+2.88327e-44
+1.50912e-43
+2.31976e-42
+3.82911e-42
+1.38697e-43
+2.00766e-43
+0
+5.38298e-43
+9.64839e-43
+2.00951e-43
+4.64566e-43
+1.65511e-41
+6.94642e-43
+6.84204e-42
+4.84821e-42
+0
+2.12279e-42
+3.07301e-44
+4.55705e-45
+7.27543e-43
+2.2538e-43
+6.77061e-43
+1.48749e-42
+0
+0
+1.74438e-43
+1.8864e-44
+1.82366e-44
+1.41819e-43
+0
+5.4635e-44
+1.3545e-43
+1.4534e-41
+6.86565e-44
+5.67478e-44
+5.22289e-44
+1.62493e-43
+1.5283e-41
+5.14053e-45
+4.76421e-42
+5.92391e-43
+9.3322e-43
+3.07301e-44
+2.55616e-43
+2.15568e-43
+2.98023e-43
+2.12585e-43
+1.48749e-42
+1.91076e-43
+3.01129e-44
+1.56889e-43
+2.52572e-42
+2.14494e-43
+5.6741e-44
+1.10958e-42
+2.00766e-43
+1.3545e-43
+5.38298e-43
+3.97915e-42
+1.53219e-42
+1.42743e-42
+1.70491e-43
+5.55713e-45
+5.14053e-42
+4.23768e-44
+1.13292e-43
+9.3322e-43
+3.84126e-42
+4.22507e-44
+2.6946e-44
+2.53383e-44
+6.45298e-43
+2.01183e-43
+2.73255e-42
+2.74235e-42
+2.4514e-42
+5.09327e-43
+2.14494e-43
+2.40451e-43
+1.10958e-42
+0
+2.14788e-44
+5.38298e-43
+5.07628e-43
+5.67478e-44
+5.22289e-44
+2.0828e-42
+3.95437e-43
+1.77904e-42
+2.43928e-42
+4.50242e-42
+4.19037e-42
+3.07301e-44
+4.22507e-44
+2.15568e-43
+2.2538e-43
+0
+2.01183e-43
+2.14817e-44
+2.40903e-43
+6.27705e-44
+2.39307e-44
+1.82366e-44
+0.00301571
+0.180814
+1.12171
+3.90189
+4.74393e-44
+4.82302e-44
+3.97124e-44
+5.78816e-43
+2.19744e-42
+1.88902e-41
+1.45008e-41
+1.66842e-42
+0
+3.2754e-44
+2.06532e-44
+2.39823e-42
+6.12658e-42
+0.000508451
+0.0261121
+0.15118
+0.493533
+1.23189
+2.63386
+5.09718
+9.2474
+15.8485
+25.3719
+39.1218
+57.589
+0.0142882
+0.0439764
+0.104083
+0.21119
+0.38741
+0.662069
+1.07391
+1.67396
+2.52937
+3.72847
+5.38742
+7.65926
+10.784
+14.7495
+19.2017
+24.6912
+31.6043
+40.2987
+51.2256
+64.9563
+82.218
+95.7813
+97.1878
+98.7111
+101.289
+18.1662
+20.5923
+23.3315
+26.468
+30.0649
+34.1964
+38.9494
+44.4269
+50.7508
+58.0656
+66.5434
+76.3898
+87.8513
+96.0892
+96.9704
+97.91
+98.9132
+99.986
+101.135
+102.369
+103.695
+105.124
+106.668
+108.34
+117.942
+97.3374
+97.8742
+98.365
+98.8822
+99.4275
+100.003
+100.61
+101.253
+101.932
+102.651
+103.413
+104.222
+105.08
+105.993
+106.966
+108.002
+109.109
+110.293
+111.56
+112.921
+114.384
+115.961
+117.665
+119.51
+137.832
+108.071
+108.654
+109.199
+109.773
+110.379
+111.018
+111.692
+112.405
+113.159
+113.958
+114.804
+115.702
+116.655
+117.669
+118.748
+119.899
+121.128
+122.442
+123.85
+125.361
+126.986
+128.737
+130.628
+132.677
+159.63
+120.992
+121.632
+122.242
+122.885
+123.563
+124.278
+125.033
+125.831
+126.676
+127.57
+128.517
+129.522
+130.59
+131.725
+132.933
+134.222
+135.598
+137.069
+138.646
+140.338
+142.157
+144.118
+146.236
+148.529
+182.646
+136.992
+137.703
+138.393
+139.121
+139.889
+140.698
+141.554
+142.458
+143.414
+144.426
+145.499
+146.637
+147.846
+149.131
+150.5
+151.959
+153.517
+155.184
+156.969
+158.885
+160.945
+163.166
+165.564
+168.162
+206.974
+157.606
+158.411
+159.205
+160.043
+160.926
+161.858
+162.842
+163.882
+164.982
+166.147
+167.381
+168.691
+170.082
+171.561
+173.137
+174.816
+176.609
+178.527
+180.581
+182.786
+185.158
+187.713
+190.473
+193.463
+233.824
+185.807
+186.742
+187.679
+188.667
+189.708
+190.807
+191.967
+193.194
+194.491
+195.865
+197.321
+198.866
+200.507
+202.251
+204.109
+206.09
+208.205
+210.467
+212.89
+215.491
+218.288
+221.302
+224.557
+228.082
+266.416
+228.458
+229.592
+230.745
+231.96
+233.241
+234.593
+236.02
+237.529
+239.126
+240.816
+242.608
+244.508
+246.527
+248.674
+250.96
+253.398
+256.001
+258.784
+261.766
+264.965
+268.406
+272.112
+276.114
+280.446
+312.877
+307.345
+308.852
+310.405
+312.042
+313.768
+315.589
+317.513
+319.546
+321.697
+323.975
+326.389
+328.95
+331.671
+334.564
+337.645
+340.929
+344.435
+348.183
+352.197
+356.503
+361.129
+366.109
+371.48
+377.283
+399.538
+579.857
+582.603
+585.46
+588.466
+591.631
+594.966
+598.482
+602.191
+606.106
+610.244
+614.619
+619.249
+624.155
+629.356
+634.879
+640.748
+646.993
+653.648
+660.749
+668.34
+676.467
+685.188
+694.566
+704.677
+709.963
+38041.8
+38222.9
+38414.2
+38615.8
+38828.3
+39052.5
+39289.2
+39539.3
+39803.9
+40083.9
+40380.7
+40695.4
+41029.6
+41384.9
+41763.2
+42166.3
+42596.6
+43056.7
+43549.4
+44078
+44646.2
+45258.4
+45919.5
+46635.2
+46937.8
+)
+;
 
 boundaryField
 {
@@ -33,12 +12262,499 @@ boundaryField
     upperWall
     {
         type            epsilonWallFunction;
-        value           uniform 14.855;
+        Cmu             0.09;
+        kappa           0.41;
+        E               9.8;
+        value           nonuniform List<scalar> 
+223
+(
+31097.4
+29678.7
+29678.7
+29678.7
+29678.7
+29678.7
+29678.7
+29678.7
+29678.7
+29678.7
+29678.7
+29678.7
+29678.7
+29678.7
+29678.7
+29678.7
+29678.7
+29678.7
+29686
+29700.8
+29715.8
+29730.9
+29746.1
+29761.4
+29776.9
+29792.6
+29808.4
+29824.3
+29840.4
+29856.6
+29873
+29889.5
+29906.2
+29923
+29940
+29957.2
+29974.5
+29992
+30009.6
+30027.5
+30045.4
+30063.6
+30081.9
+30100.4
+30119.1
+30137.9
+30156.9
+30176.2
+30195.5
+30215.1
+30234.9
+30254.8
+30275
+30295.3
+30315.9
+30336.6
+30357.5
+30378.7
+30400
+30421.6
+30443.3
+30465.3
+30487.5
+30509.9
+30532.5
+30555.4
+30578.5
+30601.8
+30625.3
+30649.1
+30673.1
+30697.3
+30721.8
+30746.5
+30771.5
+30796.7
+30822.2
+30847.9
+30873.9
+30900.2
+30926.7
+30953.5
+30980.6
+31007.9
+31035.6
+31063.5
+31091.7
+31120.2
+31149
+31178
+31207.4
+31237.1
+31267.1
+31297.4
+31328
+31359
+31390.3
+31421.9
+31453.8
+31486.1
+31518.7
+31551.7
+31585
+31618.7
+31652.7
+31687.1
+31721.9
+31757.1
+31792.6
+31828.5
+31864.8
+31901.6
+31938.7
+31976.2
+32014.2
+32052.5
+32091.3
+32130.5
+32170.2
+32210.3
+32250.9
+32291.9
+32333.4
+32375.3
+32417.7
+32460.6
+32504.1
+32548
+32592.4
+32637.3
+32682.7
+32728.7
+32775.2
+32822.3
+32869.9
+32918.1
+32966.8
+33016.2
+33066.1
+33116.6
+33167.7
+33219.5
+33271.9
+33324.9
+33378.5
+33432.8
+33487.8
+33543.5
+33599.9
+33656.9
+33714.7
+33773.2
+33832.4
+33892.4
+33953.2
+34014.7
+34077
+34140.1
+34204.1
+34268.8
+34334.4
+34400.9
+34468.3
+34536.5
+34605.6
+34675.7
+34746.7
+34818.7
+34891.7
+34965.6
+35040.6
+35116.5
+35193.6
+35271.7
+35350.9
+35431.2
+35512.7
+35595.3
+35679
+35764
+35850.2
+35937.7
+36026.4
+36116.5
+36207.9
+36300.6
+36394.7
+36490.2
+36587.2
+36685.6
+36785.6
+36887.1
+36990.1
+37094.8
+37201.1
+37309.1
+37418.8
+37530.2
+38041.8
+38222.9
+38414.2
+38615.8
+38828.3
+39052.5
+39289.2
+39539.3
+39803.9
+40083.9
+40380.7
+40695.4
+41029.6
+41384.9
+41763.2
+42166.3
+42596.6
+43056.7
+43549.4
+44078
+44646.2
+45258.4
+45919.5
+46635.2
+46937.8
+)
+;
     }
     lowerWall
     {
         type            epsilonWallFunction;
-        value           uniform 14.855;
+        Cmu             0.09;
+        kappa           0.41;
+        E               9.8;
+        value           nonuniform List<scalar> 
+250
+(
+37429.9
+36320.4
+36320.4
+36320.4
+36320.4
+36320.4
+36320.4
+36320.4
+36320.4
+36320.4
+36320.4
+36320.4
+36320.4
+36320.4
+36320.4
+36320.4
+36320.4
+36356.1
+41615.9
+41606.2
+41595.7
+41584.1
+41571.6
+41558
+41543.2
+41527.2
+41520.6
+47306.7
+41660.9
+41660.9
+41660.9
+41660.9
+41661
+41661
+41661.1
+41661.2
+41661.2
+41661.3
+41661.4
+41661.5
+41661.6
+41661.8
+41661.9
+41662
+41662.2
+47306.7
+15089.9
+16549.9
+17510.2
+17514.7
+17519.3
+17523.9
+17528.6
+17533.3
+17538
+17542.8
+17547.6
+17552.4
+17557.3
+17562.3
+17567.2
+17572.3
+17577.3
+17582.4
+17587.6
+17592.8
+17598
+17603.3
+17608.6
+17614
+17619.4
+17624.9
+17630.4
+17636
+17641.6
+17647.2
+17652.9
+17658.7
+17664.5
+17670.4
+17676.3
+17682.2
+17688.2
+17694.3
+17700.4
+17706.6
+17712.8
+17719.1
+17725.4
+17731.8
+17738.3
+17744.8
+17751.3
+17758
+17764.6
+17771.4
+17778.2
+17785
+17791.9
+17798.9
+17806
+17813.1
+17820.2
+17827.5
+17834.8
+17842.1
+17849.5
+17857
+17864.6
+17872.2
+17879.9
+17887.7
+17895.5
+17903.4
+17911.4
+17919.4
+17927.5
+17935.7
+17944
+17952.3
+17960.7
+17969.2
+17977.8
+17986.5
+17995.2
+18004
+18012.9
+18021.8
+18030.9
+18040
+18049.2
+18058.5
+18067.9
+18077.4
+18087
+18096.6
+18106.3
+18116.2
+18126.1
+18136.1
+18146.2
+18156.4
+18166.7
+18177.1
+18187.6
+18198.2
+18208.9
+18219.7
+18230.5
+18241.5
+18252.6
+18263.8
+18275.1
+18286.6
+18298.1
+18309.7
+18321.5
+18333.3
+18345.3
+18357.4
+18369.6
+18381.9
+18394.3
+18406.9
+18419.6
+18432.4
+18445.3
+18458.3
+18471.5
+18484.8
+18498.3
+18511.8
+18525.5
+18539.4
+18553.4
+18567.5
+18581.7
+18596.1
+18610.6
+18625.3
+18640.2
+18655.1
+18670.3
+18685.5
+18701
+18716.5
+18732.3
+18748.2
+18764.3
+18780.5
+18796.9
+18813.4
+18830.2
+18847.1
+18864.1
+18881.4
+18898.8
+18916.4
+18934.2
+18952.2
+18970.4
+18988.7
+19007.3
+19026
+19044.9
+19064.1
+19083.4
+19103
+19122.7
+19142.7
+19162.8
+19183.2
+19203.9
+19224.7
+19245.7
+19267
+19288.5
+19310.3
+19332.3
+19354.5
+19377
+19399.7
+19422.7
+19445.9
+19469.4
+19728.8
+19839.1
+19955.9
+20079.4
+20209.8
+20347.9
+20494
+20649
+20813.5
+20988.2
+21174.1
+21372.1
+21583.2
+21808.8
+22050.1
+22308.8
+22586.6
+22885.4
+23207.7
+23556.1
+23933.7
+24344.2
+24791.8
+25281.6
+25385.8
+)
+;
     }
     frontAndBack
     {
diff --git a/tutorials/incompressible/simpleFoam/pitzDaily/0/k b/tutorials/incompressible/simpleFoam/pitzDaily/0/k
index 8706fab9eb53949e8983cddad6080e54d3ec7d7f..7c195813c485750e0c9e131fe712359eff1b7685 100644
--- a/tutorials/incompressible/simpleFoam/pitzDaily/0/k
+++ b/tutorials/incompressible/simpleFoam/pitzDaily/0/k
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  1.6                                   |
+|  \\    /   O peration     | Version:  dev                                   |
 |   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
@@ -17,7 +17,12236 @@ FoamFile
 
 dimensions      [0 2 -2 0 0 0 0];
 
-internalField   uniform 0.375;
+internalField   nonuniform List<scalar> 
+12225
+(
+5.98297
+5.86414
+5.86414
+5.86414
+5.86414
+5.86414
+5.86414
+5.86414
+5.86414
+5.86414
+5.86414
+5.86414
+5.86414
+5.86414
+5.86414
+5.86414
+5.86414
+5.86798
+1.38433
+0.758289
+0.758289
+0.758289
+0.758289
+0.758289
+0.758289
+0.758289
+0.758289
+0.758289
+0.758289
+0.758289
+0.758289
+0.758289
+0.758289
+0.758289
+0.758289
+0.775953
+1.96348
+0.726266
+0.726266
+0.726266
+0.726266
+0.726266
+0.726266
+0.726266
+0.726266
+0.726266
+0.726266
+0.726266
+0.726266
+0.726266
+0.726266
+0.726266
+0.726266
+0.747554
+2.57596
+0.774006
+0.774006
+0.774006
+0.774006
+0.774006
+0.774006
+0.774006
+0.774006
+0.774006
+0.774006
+0.774006
+0.774006
+0.774006
+0.774006
+0.774006
+0.774006
+0.787921
+3.04485
+0.828432
+0.828432
+0.828432
+0.828432
+0.828432
+0.828432
+0.828432
+0.828432
+0.828432
+0.828432
+0.828432
+0.828432
+0.828432
+0.828432
+0.828432
+0.828432
+0.837763
+3.28431
+0.882337
+0.882337
+0.882337
+0.882337
+0.882337
+0.882337
+0.882337
+0.882337
+0.882337
+0.882337
+0.882337
+0.882337
+0.882337
+0.882337
+0.882337
+0.882337
+0.888861
+3.25276
+0.945298
+0.945298
+0.945298
+0.945298
+0.945298
+0.945298
+0.945298
+0.945298
+0.945298
+0.945298
+0.945298
+0.945298
+0.945298
+0.945298
+0.945298
+0.945298
+0.950041
+2.97823
+0.982617
+0.982617
+0.982617
+0.982617
+0.982617
+0.982617
+0.982617
+0.982617
+0.982617
+0.982617
+0.982617
+0.982617
+0.982617
+0.982617
+0.982617
+0.982617
+0.986352
+2.57413
+1.00725
+1.00725
+1.00725
+1.00725
+1.00725
+1.00725
+1.00725
+1.00725
+1.00725
+1.00725
+1.00725
+1.00725
+1.00725
+1.00725
+1.00725
+1.00725
+1.01036
+2.04694
+1.04861
+1.04861
+1.04861
+1.04861
+1.04861
+1.04861
+1.04861
+1.04861
+1.04861
+1.04861
+1.04861
+1.04861
+1.04861
+1.04861
+1.04861
+1.04861
+1.05118
+1.48437
+1.09221
+1.09221
+1.09221
+1.09221
+1.09221
+1.09221
+1.09221
+1.09221
+1.09221
+1.09221
+1.09221
+1.09221
+1.09221
+1.09221
+1.09221
+1.09221
+1.09435
+0.420919
+0.411533
+0.411533
+0.411533
+0.411533
+0.411533
+0.411533
+0.411533
+0.411533
+0.411533
+0.411533
+0.411533
+0.411533
+0.411533
+0.411533
+0.411533
+0.411533
+0.413311
+0.00589802
+0.00589802
+0.00589802
+0.00589802
+0.00589802
+0.00589802
+0.00589802
+0.00589802
+0.00589802
+0.00589802
+0.00589802
+0.00589802
+0.00589802
+0.00589802
+0.00589802
+0.00589802
+0.00589802
+0.00589802
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+3.69111e-29
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0.163463
+0.163463
+0.163463
+0.163463
+0.163463
+0.163463
+0.163463
+0.163463
+0.163463
+0.163463
+0.163463
+0.163463
+0.163463
+0.163463
+0.163463
+0.163463
+0.163463
+0.163463
+1.14915
+0.852763
+0.852763
+0.852763
+0.852763
+0.852763
+0.852763
+0.852763
+0.852763
+0.852763
+0.852763
+0.852763
+0.852763
+0.852763
+0.852763
+0.852763
+0.852763
+0.852767
+2.2234
+1.05043
+1.05043
+1.05043
+1.05043
+1.05043
+1.05043
+1.05043
+1.05043
+1.05043
+1.05043
+1.05043
+1.05043
+1.05043
+1.05043
+1.05043
+1.05043
+1.05044
+2.96695
+0.988626
+0.988626
+0.988626
+0.988626
+0.988626
+0.988626
+0.988626
+0.988626
+0.988626
+0.988626
+0.988626
+0.988626
+0.988626
+0.988626
+0.988626
+0.988626
+0.988628
+3.30741
+0.925561
+0.925561
+0.925561
+0.925561
+0.925561
+0.925561
+0.925561
+0.925561
+0.925561
+0.925561
+0.925561
+0.925561
+0.925561
+0.925561
+0.925561
+0.925561
+0.925562
+3.15567
+0.862375
+0.862375
+0.862375
+0.862375
+0.862375
+0.862375
+0.862375
+0.862375
+0.862375
+0.862375
+0.862375
+0.862375
+0.862375
+0.862375
+0.862375
+0.862375
+0.862376
+2.58008
+0.807055
+0.807055
+0.807055
+0.807055
+0.807055
+0.807055
+0.807055
+0.807055
+0.807055
+0.807055
+0.807055
+0.807055
+0.807055
+0.807055
+0.807055
+0.807055
+0.807055
+1.82441
+0.840065
+0.840065
+0.840065
+0.840065
+0.840065
+0.840065
+0.840065
+0.840065
+0.840065
+0.840065
+0.840065
+0.840065
+0.840065
+0.840065
+0.840065
+0.840065
+0.840065
+6.68646
+6.48152
+6.48152
+6.48152
+6.48152
+6.48152
+6.48152
+6.48152
+6.48152
+6.48152
+6.48152
+6.48152
+6.48152
+6.48152
+6.48152
+6.48152
+6.48152
+6.48152
+9.90703
+7.68929
+8.17517
+8.48587
+8.48478
+8.48367
+8.48255
+8.48143
+8.48029
+8.47915
+8.478
+8.47684
+8.47566
+8.47448
+8.47329
+8.47209
+8.47088
+8.46966
+8.46843
+8.46719
+8.46594
+8.46468
+8.46341
+8.46213
+8.46084
+8.45954
+8.45823
+8.4569
+8.45557
+8.45422
+8.45287
+8.4515
+8.45012
+8.44873
+8.44733
+8.44592
+8.4445
+8.44306
+8.44162
+8.44016
+8.43868
+8.4372
+8.43571
+8.4342
+8.43268
+8.43115
+8.4296
+8.42804
+8.42647
+8.42489
+8.42329
+8.42168
+8.42006
+8.41842
+8.41677
+8.41511
+8.41343
+8.41174
+8.41003
+8.40831
+8.40658
+8.40483
+8.40307
+8.40129
+8.3995
+8.39769
+8.39587
+8.39403
+8.39218
+8.39031
+8.38843
+8.38653
+8.38461
+8.38268
+8.38073
+8.37877
+8.37679
+8.37479
+8.37278
+8.37075
+8.3687
+8.36664
+8.36456
+8.36246
+8.36034
+8.3582
+8.35605
+8.35388
+8.35169
+8.34948
+8.34726
+8.34501
+8.34275
+8.34046
+8.33816
+8.33584
+8.3335
+8.33114
+8.32875
+8.32635
+8.32393
+8.32149
+8.31902
+8.31654
+8.31403
+8.31151
+8.30896
+8.30639
+8.30379
+8.30118
+8.29854
+8.29588
+8.2932
+8.29049
+8.28776
+8.28501
+8.28223
+8.27943
+8.27661
+8.27376
+8.27088
+8.26799
+8.26506
+8.26211
+8.25914
+8.25614
+8.25311
+8.25006
+8.24698
+8.24387
+8.24074
+8.23758
+8.23439
+8.23117
+8.22793
+8.22466
+8.22136
+8.21802
+8.21466
+8.21128
+8.20786
+8.20441
+8.20093
+8.19741
+8.19387
+8.1903
+8.18669
+8.18306
+8.17939
+8.17568
+8.17195
+8.16818
+8.16438
+8.16054
+8.15667
+8.15276
+8.14882
+8.14485
+8.14084
+8.13679
+8.1327
+8.12858
+8.12442
+8.12022
+8.11599
+8.11172
+8.1074
+8.10305
+8.09866
+8.09423
+8.08976
+8.08524
+8.08069
+8.07609
+8.07145
+8.06677
+8.06204
+8.05728
+8.05246
+8.04761
+9.10222
+1.17247
+1.02245
+0.715459
+0.859049
+1.08356
+1.08342
+1.08327
+1.08313
+1.08298
+1.08283
+1.08268
+1.08254
+1.08238
+1.08223
+1.08208
+1.08192
+1.08177
+1.08161
+1.08145
+1.08129
+1.08113
+1.08097
+1.08081
+1.08064
+1.08048
+1.08031
+1.08014
+1.07997
+1.0798
+1.07962
+1.07945
+1.07927
+1.0791
+1.07892
+1.07874
+1.07855
+1.07837
+1.07819
+1.078
+1.07781
+1.07762
+1.07743
+1.07724
+1.07704
+1.07685
+1.07665
+1.07645
+1.07625
+1.07605
+1.07585
+1.07564
+1.07543
+1.07522
+1.07501
+1.0748
+1.07459
+1.07437
+1.07415
+1.07393
+1.07371
+1.07349
+1.07326
+1.07304
+1.07281
+1.07258
+1.07234
+1.07211
+1.07187
+1.07163
+1.07139
+1.07115
+1.07091
+1.07066
+1.07041
+1.07016
+1.06991
+1.06965
+1.06939
+1.06914
+1.06887
+1.06861
+1.06834
+1.06808
+1.06781
+1.06753
+1.06726
+1.06698
+1.0667
+1.06642
+1.06613
+1.06585
+1.06556
+1.06527
+1.06497
+1.06468
+1.06438
+1.06408
+1.06377
+1.06346
+1.06316
+1.06284
+1.06253
+1.06221
+1.06189
+1.06157
+1.06124
+1.06091
+1.06058
+1.06025
+1.05991
+1.05957
+1.05923
+1.05888
+1.05854
+1.05818
+1.05783
+1.05747
+1.05711
+1.05675
+1.05638
+1.05601
+1.05564
+1.05526
+1.05488
+1.0545
+1.05411
+1.05372
+1.05333
+1.05293
+1.05253
+1.05213
+1.05172
+1.05131
+1.05089
+1.05048
+1.05005
+1.04963
+1.0492
+1.04877
+1.04833
+1.04789
+1.04744
+1.047
+1.04654
+1.04609
+1.04563
+1.04516
+1.04469
+1.04422
+1.04374
+1.04326
+1.04278
+1.04229
+1.04179
+1.04129
+1.04079
+1.04028
+1.03977
+1.03925
+1.03873
+1.0382
+1.03767
+1.03714
+1.0366
+1.03605
+1.0355
+1.03494
+1.03438
+1.03382
+1.03325
+1.03267
+1.03209
+1.0315
+1.03091
+1.03031
+1.02971
+1.0291
+1.02848
+1.02786
+9.10222
+1.16353
+1.09744
+1.16011
+1.10486
+0.626974
+0.739909
+1.0205
+1.02036
+1.02022
+1.02008
+1.01995
+1.0198
+1.01966
+1.01952
+1.01937
+1.01923
+1.01908
+1.01893
+1.01878
+1.01863
+1.01848
+1.01833
+1.01818
+1.01802
+1.01786
+1.01771
+1.01755
+1.01739
+1.01722
+1.01706
+1.0169
+1.01673
+1.01656
+1.0164
+1.01623
+1.01605
+1.01588
+1.01571
+1.01553
+1.01535
+1.01518
+1.015
+1.01481
+1.01463
+1.01445
+1.01426
+1.01407
+1.01389
+1.01369
+1.0135
+1.01331
+1.01311
+1.01292
+1.01272
+1.01252
+1.01232
+1.01211
+1.01191
+1.0117
+1.01149
+1.01128
+1.01107
+1.01086
+1.01064
+1.01042
+1.0102
+1.00998
+1.00976
+1.00953
+1.00931
+1.00908
+1.00885
+1.00862
+1.00838
+1.00815
+1.00791
+1.00767
+1.00742
+1.00718
+1.00693
+1.00669
+1.00644
+1.00618
+1.00593
+1.00567
+1.00541
+1.00515
+1.00489
+1.00462
+1.00435
+1.00408
+1.00381
+1.00354
+1.00326
+1.00298
+1.0027
+1.00241
+1.00213
+1.00184
+1.00155
+1.00125
+1.00096
+1.00066
+1.00036
+1.00005
+0.999746
+0.999436
+0.999124
+0.99881
+0.998492
+0.998172
+0.997849
+0.997524
+0.997195
+0.996864
+0.99653
+0.996193
+0.995853
+0.995511
+0.995165
+0.994816
+0.994464
+0.994109
+0.993751
+0.99339
+0.993026
+0.992659
+0.992288
+0.991915
+0.991538
+0.991157
+0.990774
+0.990387
+0.989996
+0.989603
+0.989205
+0.988805
+0.9884
+0.987992
+0.987581
+0.987166
+0.986747
+0.986325
+0.985899
+0.985469
+0.985035
+0.984597
+0.984156
+0.98371
+0.983261
+0.982807
+0.98235
+0.981888
+0.981422
+0.980952
+0.980478
+0.98
+0.979517
+0.97903
+0.978538
+0.978042
+0.977542
+0.977037
+0.976528
+0.976013
+0.975494
+0.974971
+0.974442
+0.973909
+0.973371
+0.972828
+0.97228
+0.971727
+0.971169
+0.970605
+0.970037
+0.969463
+0.968884
+0.968305
+9.10222
+1.16354
+1.09745
+1.15469
+1.21966
+1.28522
+1.22197
+0.640646
+0.746973
+1.07233
+1.07218
+1.07204
+1.07189
+1.07174
+1.07159
+1.07144
+1.07128
+1.07113
+1.07097
+1.07082
+1.07066
+1.0705
+1.07034
+1.07018
+1.07001
+1.06985
+1.06968
+1.06952
+1.06935
+1.06918
+1.06901
+1.06883
+1.06866
+1.06848
+1.06831
+1.06813
+1.06795
+1.06777
+1.06758
+1.0674
+1.06721
+1.06702
+1.06684
+1.06664
+1.06645
+1.06626
+1.06606
+1.06587
+1.06567
+1.06547
+1.06527
+1.06506
+1.06486
+1.06465
+1.06444
+1.06423
+1.06402
+1.0638
+1.06359
+1.06337
+1.06315
+1.06293
+1.06271
+1.06248
+1.06226
+1.06203
+1.0618
+1.06157
+1.06133
+1.06109
+1.06086
+1.06062
+1.06037
+1.06013
+1.05988
+1.05964
+1.05938
+1.05913
+1.05888
+1.05862
+1.05836
+1.0581
+1.05784
+1.05757
+1.0573
+1.05703
+1.05676
+1.05649
+1.05621
+1.05593
+1.05565
+1.05537
+1.05508
+1.05479
+1.0545
+1.05421
+1.05391
+1.05361
+1.05331
+1.05301
+1.0527
+1.05239
+1.05208
+1.05176
+1.05145
+1.05113
+1.05081
+1.05048
+1.05015
+1.04982
+1.04949
+1.04915
+1.04881
+1.04847
+1.04813
+1.04778
+1.04743
+1.04707
+1.04671
+1.04635
+1.04599
+1.04562
+1.04525
+1.04488
+1.04451
+1.04413
+1.04374
+1.04336
+1.04297
+1.04258
+1.04218
+1.04178
+1.04138
+1.04097
+1.04056
+1.04014
+1.03973
+1.03931
+1.03888
+1.03845
+1.03802
+1.03758
+1.03714
+1.0367
+1.03625
+1.0358
+1.03534
+1.03488
+1.03442
+1.03395
+1.03348
+1.033
+1.03252
+1.03204
+1.03155
+1.03105
+1.03055
+1.03005
+1.02954
+1.02903
+1.02852
+1.02799
+1.02747
+1.02694
+1.0264
+1.02586
+1.02532
+1.02477
+1.02421
+1.02365
+1.02308
+1.02251
+1.02194
+1.02136
+1.02077
+1.02018
+1.01958
+1.01898
+1.01837
+1.01777
+9.10223
+1.16355
+1.09746
+1.1547
+1.21967
+1.28148
+1.33874
+1.39482
+1.30561
+0.658739
+0.780726
+0.804312
+0.806289
+0.808286
+0.810301
+0.812335
+0.814389
+0.816462
+0.818554
+0.820667
+0.822799
+0.824952
+0.827126
+0.82932
+0.831536
+0.833772
+0.83603
+0.83831
+0.840612
+0.842936
+0.845282
+0.847651
+0.850043
+0.852459
+0.854897
+0.85736
+0.859846
+0.862357
+0.864892
+0.867452
+0.870037
+0.872647
+0.875283
+0.877945
+0.880633
+0.883348
+0.886089
+0.888858
+0.891654
+0.894478
+0.89733
+0.900211
+0.90312
+0.906058
+0.909026
+0.912023
+0.91505
+0.918108
+0.921197
+0.924317
+0.927468
+0.930652
+0.933867
+0.937116
+0.940397
+0.943712
+0.947061
+0.950443
+0.953861
+0.957314
+0.960802
+0.964326
+0.967886
+0.971483
+0.975118
+0.97879
+0.9825
+0.986249
+0.990037
+0.993865
+0.997732
+1.00164
+1.00559
+1.00958
+1.01361
+1.01769
+1.02181
+1.02597
+1.03018
+1.03443
+1.03872
+1.04307
+1.04746
+1.05189
+1.05638
+1.06091
+1.06549
+1.07012
+1.0748
+1.07953
+1.08431
+1.08915
+1.09404
+1.09898
+1.10397
+1.10902
+1.10877
+1.10843
+1.10808
+1.10773
+1.10738
+1.10703
+1.10667
+1.10631
+1.10594
+1.10557
+1.1052
+1.10483
+1.10445
+1.10407
+1.10369
+1.1033
+1.10291
+1.10252
+1.10212
+1.10172
+1.10132
+1.10091
+1.1005
+1.10009
+1.09967
+1.09925
+1.09882
+1.09839
+1.09796
+1.09752
+1.09708
+1.09664
+1.09619
+1.09574
+1.09528
+1.09482
+1.09435
+1.09389
+1.09341
+1.09294
+1.09245
+1.09197
+1.09148
+1.09099
+1.09049
+1.08998
+1.08948
+1.08897
+1.08845
+1.08793
+1.0874
+1.08687
+1.08634
+1.0858
+1.08525
+1.0847
+1.08415
+1.08359
+1.08302
+1.08245
+1.08187
+1.08129
+1.08071
+1.08012
+1.07952
+1.07892
+1.07831
+1.0777
+1.07708
+1.07645
+1.07582
+1.07519
+1.07454
+1.07391
+9.10223
+1.16357
+1.09747
+1.15471
+1.21968
+1.28149
+1.33875
+1.39171
+1.44092
+1.49034
+0.576158
+0.129391
+0.129336
+0.13041
+0.131499
+0.132602
+0.13372
+0.134853
+0.136001
+0.137164
+0.138344
+0.139539
+0.14075
+0.141978
+0.143223
+0.144485
+0.145764
+0.147061
+0.148376
+0.149709
+0.15106
+0.15243
+0.153819
+0.155228
+0.156656
+0.158104
+0.159573
+0.161062
+0.162573
+0.164105
+0.165658
+0.167234
+0.168832
+0.170454
+0.172098
+0.173766
+0.175458
+0.177175
+0.178917
+0.180684
+0.182477
+0.184295
+0.186141
+0.188014
+0.189914
+0.191843
+0.1938
+0.195786
+0.197802
+0.199848
+0.201924
+0.204032
+0.206171
+0.208343
+0.210548
+0.212786
+0.215058
+0.217365
+0.219707
+0.222085
+0.2245
+0.226952
+0.229442
+0.231971
+0.234539
+0.237147
+0.239796
+0.242486
+0.245219
+0.247995
+0.250815
+0.25368
+0.256591
+0.259548
+0.262552
+0.265605
+0.268706
+0.271858
+0.275061
+0.278316
+0.281624
+0.284986
+0.288404
+0.291877
+0.295408
+0.298997
+0.302646
+0.306355
+0.310127
+0.313961
+0.31786
+0.321825
+0.325856
+0.329956
+0.334126
+0.338357
+0.341957
+0.345586
+0.349265
+0.352996
+0.35678
+0.360618
+0.36451
+0.368457
+0.37246
+0.37652
+0.380639
+0.384816
+0.389053
+0.393351
+0.397711
+0.402133
+0.40662
+0.411171
+0.415788
+0.420473
+0.425226
+0.430048
+0.43494
+0.439904
+0.444941
+0.450052
+0.455238
+0.460501
+0.465841
+0.471261
+0.476761
+0.482343
+0.488008
+0.493758
+0.499594
+0.505517
+0.51153
+0.517633
+0.523828
+0.530116
+0.5365
+0.542981
+0.549561
+0.55624
+0.563022
+0.569908
+0.576899
+0.583997
+0.591205
+0.598525
+0.605957
+0.613505
+0.62117
+0.628954
+0.63686
+0.644889
+0.653044
+0.661327
+0.669741
+0.678287
+0.686968
+0.695787
+0.704746
+0.713847
+0.723094
+0.732488
+0.742033
+0.751731
+0.761585
+0.771598
+0.781773
+0.792112
+0.80262
+0.813342
+9.10224
+1.16359
+1.09748
+1.15472
+1.2197
+1.28151
+1.33877
+1.39173
+1.44093
+1.4869
+0.457242
+0.000989947
+2.31015e-30
+9.72455e-30
+1.63405e-28
+2.08002e-29
+1.45388e-28
+4.8818e-29
+2.35473e-31
+2.05956e-28
+1.93482e-29
+1.16803e-29
+3.00755e-28
+5.81602e-29
+5.61214e-30
+1.28706e-28
+2.62972e-29
+8.68421e-29
+4.51873e-28
+3.03768e-29
+2.3969e-28
+1.96054e-28
+1.6278e-29
+2.8682e-29
+1.796e-30
+1.91672e-29
+1.53716e-29
+2.70914e-28
+1.76493e-31
+3.03161e-29
+6.45553e-29
+2.1592e-29
+3.69819e-28
+1.76812e-28
+1.53705e-28
+4.29634e-29
+4.76804e-29
+8.04899e-30
+9.26374e-29
+1.72422e-28
+6.87839e-29
+2.2196e-29
+2.95798e-29
+1.42622e-31
+3.33502e-29
+7.72244e-29
+5.25524e-30
+1.14096e-29
+6.08712e-29
+3.40893e-30
+8.68972e-30
+5.30328e-29
+3.37974e-29
+1.28917e-29
+1.84898e-28
+2.33274e-28
+3.11482e-28
+1.67423e-28
+6.99271e-29
+3.08128e-30
+4.3198e-30
+1.50085e-28
+1.928e-30
+5.21788e-31
+1.28742e-28
+1.35879e-28
+7.31649e-29
+7.76883e-29
+1.60946e-30
+3.73384e-29
+1.05273e-28
+3.63242e-29
+1.97402e-29
+2.22689e-29
+2.50448e-30
+4.26243e-29
+3.60533e-31
+1.5489e-29
+4.39982e-29
+9.88209e-29
+3.4138e-31
+8.7577e-30
+9.48683e-29
+1.82506e-28
+1.7101e-28
+3.71991e-29
+1.38779e-30
+5.21819e-30
+1.91412e-30
+2.28709e-29
+4.51034e-29
+5.60172e-29
+6.35719e-29
+3.50816e-30
+1.76598e-30
+6.10702e-29
+9.66919e-06
+3.97431e-05
+9.08923e-05
+0.000163804
+0.000259186
+0.000377765
+0.00052029
+0.000687532
+0.000880284
+0.00109936
+0.0013456
+0.00161988
+0.00192307
+0.00225609
+0.00261989
+0.00301544
+0.00344373
+0.0039058
+0.0044027
+0.00493552
+0.00550538
+0.00611344
+0.00676088
+0.00744894
+0.00817887
+0.00895197
+0.00976959
+0.0106331
+0.0115439
+0.0125035
+0.0135133
+0.014575
+0.0156901
+0.0168603
+0.0180873
+0.0193728
+0.0207186
+0.0221266
+0.0235987
+0.0251369
+0.0267432
+0.0284197
+0.0301686
+0.0319921
+0.0338926
+0.0358723
+0.0379337
+0.0400794
+0.042312
+0.0446341
+0.0470486
+0.0495582
+0.052166
+0.054875
+0.0576883
+0.0606092
+0.063641
+0.0667873
+0.0700515
+0.0734374
+0.0769487
+0.0805894
+0.0843637
+0.0882756
+0.0923295
+0.0965299
+0.100881
+0.105389
+0.110057
+0.114892
+0.119897
+0.125079
+0.130444
+0.135997
+9.10225
+1.16362
+1.0975
+1.15474
+1.21972
+1.28153
+1.33879
+1.39175
+1.44095
+1.48692
+0.457196
+0.000987503
+2.22002e-29
+6.3245e-30
+1.16331e-28
+5.82816e-29
+1.34903e-28
+1.23758e-29
+2.11775e-30
+1.96298e-29
+3.84265e-28
+3.98559e-29
+5.19877e-29
+6.43057e-28
+6.53261e-29
+2.13721e-28
+3.70832e-29
+4.90076e-29
+2.11922e-29
+2.56383e-29
+8.72868e-31
+2.99985e-29
+5.17265e-29
+8.04513e-29
+7.47576e-31
+3.40639e-28
+3.67763e-28
+2.04534e-28
+2.13685e-31
+1.63984e-28
+3.1715e-28
+2.99117e-29
+2.48123e-29
+4.27469e-30
+8.39956e-30
+3.69574e-28
+1.15346e-34
+4.03847e-30
+1.59264e-29
+1.33129e-28
+2.50137e-30
+2.46622e-28
+5.56051e-30
+1.48384e-29
+5.06253e-30
+4.99152e-30
+5.46952e-31
+1.14096e-29
+8.04367e-29
+1.32536e-28
+5.37822e-29
+5.40778e-29
+2.01055e-28
+8.33179e-30
+2.89784e-29
+1.25361e-29
+1.18908e-31
+3.15151e-29
+7.76976e-30
+2.01013e-30
+3.02251e-29
+1.15303e-29
+9.70604e-29
+4.31243e-31
+1.00847e-28
+4.36323e-29
+3.97494e-30
+3.45284e-29
+7.66231e-29
+8.39713e-30
+1.80928e-28
+5.0033e-30
+2.88218e-29
+3.17902e-29
+1.16182e-29
+6.14322e-30
+1.38564e-29
+1.42236e-30
+2.71624e-29
+1.08508e-29
+6.50006e-29
+5.956e-29
+5.58386e-30
+5.36877e-29
+6.70335e-29
+7.1781e-31
+4.06819e-33
+2.09843e-30
+7.65649e-32
+1.16153e-29
+7.45333e-30
+7.65095e-30
+2.19674e-29
+1.69785e-29
+1.76619e-30
+4.2181e-29
+1.71945e-30
+1.78112e-29
+3.73003e-29
+3.42615e-30
+1.13635e-29
+3.58449e-29
+3.84353e-29
+1.57955e-28
+1.42522e-28
+2.54071e-29
+1.62055e-29
+9.9964e-29
+1.42075e-28
+1.51861e-28
+2.28386e-28
+2.63325e-29
+1.72564e-29
+8.79831e-31
+2.17124e-31
+1.23799e-29
+2.03201e-29
+1.43376e-28
+6.98094e-29
+2.8344e-29
+1.89092e-29
+1.98556e-31
+3.41321e-29
+1.74068e-30
+1.25149e-28
+1.27461e-30
+1.45963e-28
+2.38466e-30
+6.97849e-30
+3.79305e-30
+4.53679e-31
+5.482e-30
+6.21482e-30
+6.55417e-30
+1.13824e-30
+1.11819e-29
+2.62796e-32
+8.41032e-30
+4.33278e-30
+4.25698e-29
+6.25362e-31
+1.54435e-31
+4.78423e-30
+4.2536e-29
+9.45489e-29
+1.25415e-28
+9.77174e-30
+7.44341e-30
+3.10725e-29
+2.96588e-30
+1.79653e-30
+5.96129e-30
+2.20334e-32
+2.77109e-29
+5.75271e-30
+1.02324e-28
+5.15951e-31
+2.03973e-30
+2.61276e-29
+2.95365e-29
+1.43586e-29
+7.00902e-31
+2.77143e-30
+3.04414e-31
+4.23201e-30
+2.14991e-29
+4.43952e-32
+4.12316e-32
+9.50896e-30
+0
+9.10226
+1.16365
+1.09752
+1.15476
+1.21974
+1.28155
+1.33881
+1.39177
+1.44098
+1.48695
+0.457144
+0.000984714
+2.17253e-29
+4.40792e-29
+9.97347e-31
+3.65772e-29
+2.9333e-28
+2.38774e-31
+2.353e-31
+1.96299e-29
+3.4584e-29
+2.41817e-33
+3.3606e-28
+1.10349e-29
+8.29414e-30
+5.72027e-29
+2.24166e-28
+2.59214e-29
+2.04688e-28
+1.00746e-28
+7.52595e-29
+5.2755e-30
+3.45331e-29
+1.70638e-30
+2.38634e-29
+6.85528e-30
+4.88462e-29
+6.06133e-29
+7.34493e-29
+1.16996e-29
+6.59356e-30
+1.522e-30
+1.68578e-28
+4.44397e-30
+1.06186e-28
+7.31542e-29
+7.62692e-31
+1.39751e-30
+1.18306e-28
+2.66242e-30
+2.38084e-30
+3.38962e-29
+4.89733e-29
+4.31803e-29
+7.28989e-30
+1.44255e-29
+2.52782e-28
+5.62547e-28
+8.71091e-29
+1.36357e-29
+6.69951e-30
+3.42745e-29
+6.88061e-29
+1.1152e-30
+1.95502e-30
+4.0794e-29
+2.30037e-28
+7.50771e-32
+3.12459e-30
+1.98551e-29
+1.16918e-29
+9.97516e-31
+4.37269e-31
+8.94063e-29
+2.52121e-29
+2.83501e-30
+1.53908e-29
+6.53452e-32
+5.13757e-29
+9.94997e-32
+7.45395e-29
+2.59591e-29
+1.91954e-29
+1.35488e-31
+1.80944e-28
+1.40473e-29
+9.37601e-30
+1.42255e-30
+9.12328e-30
+2.67944e-29
+7.98991e-29
+1.41501e-28
+1.44689e-29
+5.7964e-29
+4.42527e-29
+5.36109e-30
+8.18469e-30
+2.68483e-29
+2.8816e-29
+1.79152e-29
+3.10169e-29
+6.97599e-29
+7.54899e-30
+2.75026e-29
+2.93973e-29
+2.50947e-30
+2.6422e-29
+1.04354e-29
+1.81089e-30
+2.23746e-29
+3.63228e-29
+5.33812e-29
+4.83815e-29
+2.92439e-29
+3.99086e-29
+5.16741e-30
+3.8738e-32
+2.01333e-29
+4.09068e-29
+5.7847e-29
+1.67971e-28
+6.83491e-29
+2.31838e-29
+1.479e-29
+1.68142e-29
+1.33973e-30
+3.46651e-29
+1.08283e-29
+6.68072e-29
+1.36875e-29
+5.43475e-30
+5.08513e-31
+2.53875e-30
+3.1512e-32
+7.34059e-30
+3.9903e-30
+3.19699e-32
+1.91268e-29
+2.1174e-29
+1.32577e-29
+1.19715e-30
+5.91833e-29
+1.16701e-28
+4.61057e-30
+2.69407e-30
+2.31553e-29
+3.12793e-29
+2.41463e-29
+2.38495e-29
+4.05181e-31
+5.29307e-29
+2.29866e-29
+2.73934e-29
+5.10243e-29
+5.04068e-29
+2.04808e-29
+2.02344e-29
+1.47022e-30
+3.63571e-31
+6.48121e-30
+4.34365e-30
+4.92669e-32
+1.35629e-31
+4.19084e-30
+3.72753e-29
+8.35331e-30
+2.60091e-29
+2.03973e-30
+1.46983e-29
+5.38828e-29
+1.96963e-32
+2.18511e-29
+4.33036e-32
+1.38698e-29
+1.20377e-30
+1.458e-29
+2.7252e-29
+1.16334e-30
+1.80255e-30
+7.27922e-29
+9.10227
+1.16368
+1.09754
+1.15478
+1.21976
+1.28157
+1.33883
+1.3918
+1.441
+1.48698
+0.457085
+0.000981581
+2.17253e-29
+1.01197e-30
+4.1914e-30
+5.02531e-29
+3.03832e-29
+2.14862e-30
+5.46659e-28
+2.34528e-28
+1.53706e-29
+1.47829e-29
+9.24226e-29
+6.6275e-29
+8.97944e-29
+5.75094e-30
+9.78095e-29
+4.9008e-29
+0
+4.04863e-29
+2.94586e-29
+1.31187e-29
+4.56107e-29
+1.70638e-30
+1.25662e-29
+1.91673e-29
+1.88948e-29
+7.45063e-29
+1.67428e-28
+6.54832e-29
+5.80721e-29
+2.54565e-28
+2.66727e-28
+1.76812e-28
+8.39991e-30
+6.14037e-30
+4.76805e-29
+6.46156e-29
+5.88069e-29
+4.56941e-29
+8.2877e-29
+1.90666e-29
+5.78606e-33
+6.65419e-29
+1.43998e-30
+3.63882e-29
+9.81927e-29
+2.79524e-29
+6.78895e-29
+1.22722e-28
+4.86387e-29
+5.21968e-30
+1.06359e-29
+1.98258e-30
+3.78493e-29
+1.73991e-28
+7.78705e-29
+5.98477e-29
+3.49844e-29
+1.13953e-31
+2.07787e-28
+2.62836e-29
+2.2664e-29
+1.65747e-29
+1.14994e-29
+5.43547e-30
+5.36049e-30
+1.83125e-29
+1.26176e-29
+2.35287e-29
+2.56802e-29
+2.82756e-34
+2.78896e-34
+6.11952e-32
+4.5386e-30
+2.39761e-29
+2.25318e-30
+8.91536e-32
+1.403e-30
+7.07536e-29
+2.95208e-29
+7.9853e-29
+1.19821e-31
+7.77132e-29
+9.12398e-29
+4.4407e-29
+3.02391e-30
+0
+3.0626e-31
+5.26489e-29
+1.10932e-29
+2.82696e-30
+3.64059e-29
+7.1488e-29
+1.9103e-30
+2.11029e-29
+3.51293e-29
+1.82539e-29
+6.68744e-29
+0
+7.45056e-29
+4.90254e-29
+5.94714e-29
+8.48837e-29
+2.47434e-31
+1.55075e-28
+7.55823e-30
+1.44726e-29
+9.39094e-29
+1.47152e-28
+1.18573e-29
+6.10436e-30
+8.04437e-29
+2.75922e-29
+2.08532e-29
+6.27923e-34
+2.12199e-31
+6.61781e-29
+4.27572e-29
+3.12997e-29
+3.27436e-32
+4.19837e-30
+1.65802e-29
+1.00269e-29
+2.47487e-30
+1.67443e-28
+1.37741e-28
+6.61807e-32
+8.78598e-31
+1.83558e-30
+1.81316e-30
+1.00975e-29
+1.10486e-31
+4.61057e-30
+2.18825e-29
+1.12418e-30
+3.40584e-29
+4.57869e-29
+1.35628e-29
+3.46688e-29
+3.30817e-30
+2.00194e-30
+3.07619e-29
+4.35548e-29
+5.04068e-29
+1.35562e-29
+9.82789e-31
+8.29464e-30
+8.17516e-31
+3.49907e-29
+2.21594e-30
+2.64946e-30
+5.96376e-29
+1.73193e-30
+2.89335e-29
+2.414e-29
+1.51157e-33
+1.20936e-28
+1.17984e-28
+5.76023e-30
+2.4128e-29
+3.12938e-31
+4.33036e-30
+1.28615e-29
+3.00943e-31
+2.67771e-30
+1.71023e-29
+6.91322e-30
+1.51165e-29
+0
+9.10228
+1.16371
+1.09756
+1.1548
+1.21978
+1.2816
+1.33886
+1.39183
+1.44103
+1.48701
+0.45702
+0.000978106
+1.19756e-28
+1.0528e-28
+4.56549e-35
+3.08266e-29
+9.11593e-29
+5.96827e-28
+5.88251e-30
+1.18456e-28
+9.14539e-31
+1.51502e-29
+6.72382e-29
+8.75611e-31
+2.15927e-31
+8.17036e-29
+1.07076e-28
+2.68556e-29
+4.70611e-29
+4.10212e-28
+1.02602e-29
+6.60531e-29
+5.8227e-29
+4.49614e-29
+1.5818e-29
+6.23724e-29
+3.76589e-29
+5.65464e-28
+2.39014e-28
+1.78166e-30
+1.02119e-28
+2.1915e-28
+1.70706e-30
+1.99032e-28
+1.32531e-28
+5.40813e-29
+2.34402e-29
+1.39739e-30
+7.93607e-30
+2.62971e-29
+5.95209e-31
+1.90138e-28
+2.08298e-31
+5.48282e-30
+5.06243e-30
+2.48966e-29
+2.45482e-29
+3.19695e-29
+1.16457e-28
+2.65401e-28
+7.19784e-29
+5.94554e-29
+2.01055e-28
+2.15907e-29
+2.054e-28
+1.07002e-28
+1.4905e-29
+2.04164e-29
+2.88912e-30
+1.75214e-29
+1.12707e-31
+2.62838e-29
+5.66629e-30
+6.89894e-30
+5.82095e-29
+5.26082e-29
+3.89173e-29
+3.83831e-29
+1.60939e-30
+6.67082e-30
+8.28216e-30
+1.21067e-29
+2.94892e-29
+6.11952e-32
+2.50469e-30
+1.14603e-29
+8.11051e-31
+2.22233e-30
+2.96875e-29
+3.32298e-29
+8.74024e-31
+5.66001e-30
+2.17933e-29
+3.82211e-29
+4.05512e-29
+6.7484e-30
+1.25879e-30
+1.35218e-29
+2.05931e-29
+9.47602e-30
+2.98124e-31
+2.71087e-29
+1.95148e-29
+2.97935e-29
+1.9103e-30
+3.49738e-29
+1.05753e-29
+2.29775e-29
+1.492e-28
+4.30702e-32
+9.22001e-29
+5.33812e-29
+9.17151e-29
+1.44414e-28
+9.31242e-29
+6.25147e-31
+1.86638e-29
+2.47477e-29
+3.26924e-29
+4.90322e-30
+7.41043e-29
+6.10502e-30
+2.28247e-30
+1.70361e-29
+2.1776e-31
+6.72393e-30
+1.32238e-28
+4.57527e-29
+3.29973e-30
+6.3843e-30
+1.22269e-29
+1.20719e-29
+7.83565e-31
+1.93409e-31
+6.89373e-29
+3.28538e-29
+2.97882e-32
+1.24326e-30
+1.1671e-31
+1.86498e-29
+3.03969e-32
+6.29363e-30
+2.76214e-30
+7.8835e-30
+5.28037e-30
+2.66126e-30
+5.91339e-30
+2.25885e-29
+1.8006e-29
+4.96532e-30
+9.03023e-30
+1.4832e-29
+5.49389e-30
+3.57438e-29
+8.86406e-29
+5.8879e-31
+2.36769e-32
+1.99932e-29
+1.71648e-29
+2.29646e-29
+6.71945e-31
+1.97067e-29
+2.21565e-29
+9.04949e-31
+2.16389e-29
+1.20282e-29
+6.68823e-30
+3.42879e-29
+1.58071e-29
+1.24541e-31
+7.09068e-31
+6.30955e-30
+1.35169e-29
+3.04414e-31
+4.71601e-31
+1.04598e-30
+7.78098e-31
+4.08987e-32
+1.01097e-30
+0
+9.1023
+1.16375
+1.09758
+1.15483
+1.21981
+1.28163
+1.33889
+1.39186
+1.44107
+1.48704
+0.456948
+0.000974291
+4.10685e-30
+2.14122e-29
+0
+2.08001e-29
+2.29773e-28
+1.23758e-29
+1.99158e-29
+8.72861e-29
+9.14539e-31
+4.67211e-29
+4.60514e-29
+7.8805e-30
+9.88133e-29
+5.72029e-29
+2.62974e-29
+4.90078e-29
+3.59313e-30
+1.09942e-28
+1.97921e-29
+3.95077e-28
+3.87795e-29
+1.24245e-28
+2.42876e-29
+1.02608e-28
+1.22117e-29
+2.75286e-29
+1.12955e-29
+1.11354e-29
+1.12411e-28
+1.10819e-28
+2.25758e-28
+6.1854e-29
+1.23425e-28
+4.94807e-29
+3.26562e-29
+2.23583e-31
+1.08313e-28
+1.27743e-29
+9.75191e-29
+1.90666e-29
+9.47989e-29
+1.48384e-29
+2.48069e-30
+1.17356e-29
+6.37848e-29
+4.85324e-30
+1.60969e-28
+3.52505e-29
+1.34459e-29
+1.65616e-29
+5.39451e-33
+1.61039e-29
+1.53278e-29
+2.89303e-28
+2.30037e-28
+3.54756e-29
+6.43578e-29
+3.52983e-29
+3.02251e-29
+1.39023e-29
+2.95572e-30
+2.23516e-29
+4.001e-29
+1.05152e-31
+5.36079e-30
+4.24422e-29
+1.08798e-29
+3.35882e-29
+1.48832e-28
+4.09568e-29
+6.40129e-30
+4.86796e-30
+2.74007e-29
+1.59183e-29
+7.62748e-30
+3.34558e-29
+7.89189e-31
+3.11425e-30
+7.22254e-30
+1.05593e-29
+3.45582e-29
+1.18294e-28
+7.66667e-29
+4.00057e-29
+2.30449e-34
+5.05764e-32
+2.07054e-30
+5.75437e-29
+4.88447e-29
+3.06032e-29
+7.84792e-30
+3.71211e-30
+5.97974e-30
+5.89977e-30
+6.8778e-30
+9.19093e-29
+5.25052e-31
+1.05739e-30
+1.50259e-28
+7.4398e-29
+1.05729e-28
+6.41837e-29
+5.13086e-29
+1.65078e-30
+7.06082e-34
+2.77449e-29
+6.01703e-31
+2.22545e-29
+1.05764e-29
+1.07289e-28
+8.56046e-29
+2.95982e-29
+2.08532e-29
+2.19538e-30
+2.74206e-30
+1.04802e-28
+5.57612e-30
+4.45888e-29
+7.23541e-30
+9.60308e-31
+2.28487e-29
+1.00269e-29
+3.63668e-29
+5.97407e-29
+1.2591e-30
+5.76507e-30
+7.26114e-31
+4.13005e-30
+1.13809e-31
+3.08363e-30
+9.13234e-29
+5.28112e-29
+2.69407e-30
+4.87201e-34
+6.18167e-29
+3.84756e-29
+1.86904e-29
+5.74423e-32
+6.27194e-31
+1.39173e-30
+4.30598e-29
+1.54502e-30
+2.14396e-31
+1.48813e-31
+2.76747e-29
+3.69237e-31
+4.45032e-30
+1.41807e-31
+3.03378e-29
+4.92829e-30
+5.02685e-32
+1.23175e-29
+1.54055e-29
+7.9405e-30
+3.6407e-29
+4.28854e-30
+3.55641e-29
+4.68722e-29
+3.55765e-29
+2.58055e-30
+3.50759e-30
+9.20851e-30
+5.12211e-30
+4.18392e-30
+2.06335e-29
+1.42563e-29
+6.48952e-30
+0
+9.10231
+1.16379
+1.09761
+1.15486
+1.21984
+1.28166
+1.33892
+1.39189
+1.4411
+1.48708
+0.45687
+0.000970137
+1.02671e-30
+1.409e-28
+0
+2.08003e-29
+2.76714e-28
+8.70928e-28
+2.95163e-29
+2.4951e-28
+8.22935e-30
+5.63285e-30
+8.53161e-29
+7.41117e-29
+8.63232e-31
+5.31718e-30
+3.35424e-28
+1.74905e-29
+2.05982e-28
+1.69946e-29
+2.48272e-29
+2.93711e-28
+2.0009e-29
+7.2877e-30
+3.87526e-29
+1.50692e-28
+2.79247e-29
+4.33374e-28
+4.62665e-28
+1.22768e-29
+1.4518e-29
+2.70555e-30
+1.58143e-28
+2.8636e-29
+2.56656e-28
+3.55873e-28
+1.33297e-29
+8.50248e-30
+2.27844e-29
+1.43173e-28
+1.15e-28
+5.28161e-30
+1.44757e-31
+1.85353e-29
+5.96749e-29
+1.80194e-29
+2.83488e-29
+9.06443e-30
+1.32726e-28
+3.54393e-30
+3.47593e-29
+9.15282e-29
+3.39819e-30
+6.90136e-29
+4.45766e-28
+2.91669e-28
+1.71578e-28
+4.68695e-31
+3.12586e-30
+1.02591e-30
+3.32462e-29
+1.19873e-29
+8.94021e-29
+9.12344e-30
+4.86844e-29
+1.05152e-31
+2.14423e-29
+8.63203e-30
+6.18661e-29
+5.14329e-30
+3.91693e-31
+1.68169e-29
+1.97399e-29
+2.16945e-29
+1.48217e-30
+2.45718e-29
+3.60467e-31
+2.75356e-29
+1.09998e-29
+1.79369e-29
+3.98116e-29
+8.62212e-31
+7.27564e-29
+5.70956e-29
+2.50343e-29
+3.18923e-31
+1.20947e-29
+2.79399e-30
+9.6043e-30
+8.17134e-30
+4.15108e-29
+3.81299e-30
+7.42978e-29
+3.34023e-29
+4.98431e-30
+2.8558e-30
+4.09477e-29
+3.51827e-30
+6.02746e-29
+6.09136e-30
+3.88302e-29
+7.79403e-29
+2.74788e-29
+7.59073e-29
+8.74537e-29
+3.16552e-30
+2.46864e-30
+3.08346e-30
+1.98718e-29
+5.78468e-29
+1.77117e-29
+4.77693e-30
+3.42656e-29
+1.86179e-29
+2.53253e-29
+5.49315e-31
+1.63847e-29
+8.69222e-29
+6.3871e-29
+6.3843e-30
+2.60513e-30
+7.93643e-31
+2.53875e-30
+1.63701e-29
+5.16362e-30
+1.93077e-30
+4.78792e-31
+1.35986e-29
+4.90906e-30
+1.38816e-29
+2.3005e-29
+2.03897e-29
+7.51993e-30
+6.55417e-30
+2.11234e-29
+3.27893e-31
+3.78426e-30
+2.59563e-30
+2.23131e-29
+6.33096e-29
+4.22928e-30
+1.36459e-29
+2.99032e-29
+4.05346e-29
+4.3028e-29
+1.50792e-30
+9.30048e-30
+1.4719e-30
+3.64818e-31
+6.10557e-30
+2.44307e-30
+7.8827e-31
+1.9632e-31
+1.44557e-29
+1.83901e-29
+1.63717e-29
+5.16011e-29
+7.46594e-29
+1.75459e-29
+3.90706e-30
+9.53446e-30
+3.29605e-30
+2.49443e-29
+1.09589e-29
+2.71601e-29
+1.787e-29
+9.72683e-30
+4.59756e-31
+6.48339e-31
+0
+9.10233
+1.16384
+1.09764
+1.15489
+1.21987
+1.28169
+1.33896
+1.39193
+1.44114
+1.48712
+0.456785
+0.000965648
+1.02671e-30
+3.24229e-28
+8.97631e-30
+1.27398e-29
+3.87541e-28
+5.50036e-28
+4.22507e-29
+1.4843e-29
+3.51486e-29
+2.437e-29
+8.885e-31
+4.53917e-29
+1.04448e-30
+8.00446e-29
+4.97182e-29
+5.55789e-29
+4.22378e-29
+1.11829e-28
+1.78129e-30
+3.1216e-28
+1.6278e-29
+1.57248e-28
+1.77287e-28
+9.40967e-29
+7.55793e-29
+1.51535e-29
+4.747e-29
+6.96089e-31
+4.0679e-29
+3.90682e-29
+6.40413e-29
+1.36317e-28
+1.85105e-28
+2.00377e-29
+3.81217e-28
+2.70537e-29
+1.0294e-29
+6.03699e-31
+1.86658e-29
+5.86846e-33
+1.87993e-29
+4.21934e-29
+1.76402e-29
+1.49169e-28
+9.67326e-29
+5.39205e-31
+1.80003e-28
+9.98381e-29
+1.16311e-30
+3.42749e-29
+3.37973e-29
+1.78795e-31
+1.87878e-29
+9.31227e-29
+3.68073e-29
+1.18491e-28
+6.43575e-29
+5.51865e-31
+5.82599e-30
+1.39023e-29
+2.52524e-29
+5.02913e-29
+9.3142e-29
+8.69629e-29
+9.05991e-29
+5.68017e-29
+1.26188e-29
+6.5018e-29
+4.07219e-29
+5.37557e-29
+1.28919e-28
+2.52551e-29
+3.13571e-29
+2.47034e-30
+3.60731e-31
+1.84329e-29
+5.7468e-29
+1.79366e-29
+3.27804e-29
+3.03035e-30
+3.06129e-29
+6.79485e-29
+6.15645e-29
+2.46974e-29
+5.55116e-30
+3.62072e-29
+5.8325e-29
+5.26522e-29
+1.72197e-29
+3.43092e-29
+2.78733e-29
+4.58181e-30
+7.06394e-30
+2.78807e-29
+9.93155e-29
+1.1745e-28
+7.20531e-29
+1.37046e-29
+5.40937e-29
+5.04575e-29
+1.87896e-29
+1.21347e-28
+9.89735e-31
+1.65364e-30
+3.58726e-29
+5.35209e-29
+6.62647e-29
+1.47152e-28
+1.23106e-28
+6.07191e-29
+1.57258e-29
+2.8513e-30
+6.36105e-34
+1.97553e-29
+8.46316e-33
+4.9535e-29
+4.04149e-29
+2.35377e-30
+4.40205e-29
+1.14602e-29
+2.53875e-30
+1.98107e-30
+1.29146e-30
+7.00881e-32
+2.41339e-30
+5.82469e-29
+2.5276e-29
+1.83558e-30
+2.83225e-30
+1.74809e-31
+1.72634e-31
+3.34162e-31
+1.30412e-29
+5.98868e-30
+2.62989e-30
+9.37213e-30
+2.3074e-29
+1.77837e-29
+1.62657e-29
+1.30787e-29
+4.12518e-30
+3.3013e-29
+3.82892e-31
+3.95613e-29
+8.37043e-31
+2.29722e-32
+3.83583e-30
+3.79005e-30
+4.34324e-30
+1.77521e-30
+3.46195e-31
+1.7335e-30
+2.11302e-30
+2.52676e-30
+3.99567e-29
+1.65368e-30
+2.61291e-29
+7.17414e-29
+3.15141e-31
+2.81154e-29
+2.09589e-29
+3.6834e-29
+7.52357e-32
+9.83686e-30
+2.64874e-30
+4.6547e-30
+1.12344e-29
+0
+9.10235
+1.16389
+1.09767
+1.15492
+1.21991
+1.28173
+1.339
+1.39197
+1.44118
+1.48716
+0.456694
+0.000960824
+2.56678e-31
+3.84783e-28
+6.74207e-30
+3.69959e-28
+6.10386e-28
+5.05154e-28
+2.84958e-28
+7.85193e-29
+2.58072e-28
+0
+6.00516e-30
+4.41395e-29
+5.39437e-30
+8.50724e-33
+4.22719e-29
+1.71399e-28
+1.55165e-28
+2.00932e-31
+1.02602e-29
+2.44735e-29
+5.20049e-30
+1.8931e-28
+2.42876e-29
+2.39424e-29
+1.53717e-29
+1.51535e-29
+3.26446e-29
+1.47271e-29
+1.10661e-28
+8.28625e-30
+1.70706e-30
+2.36661e-31
+9.80519e-29
+4.83627e-29
+1.21713e-28
+3.58726e-29
+6.37054e-29
+1.63245e-29
+2.14871e-28
+1.21688e-28
+5.44411e-29
+1.54264e-29
+1.01001e-28
+6.79401e-30
+5.46852e-31
+9.51158e-30
+9.54669e-29
+8.81264e-30
+1.3978e-29
+2.03894e-30
+1.28675e-30
+8.07553e-32
+3.30435e-30
+4.07953e-29
+4.86829e-30
+1.19986e-30
+3.4185e-29
+2.36292e-29
+1.61824e-31
+4.98097e-29
+1.48015e-28
+5.58789e-30
+1.76963e-28
+2.74845e-28
+3.72286e-30
+1.29252e-28
+1.7074e-28
+1.14686e-28
+1.56591e-30
+5.93604e-29
+9.74812e-31
+2.52551e-29
+1.42422e-29
+1.7687e-28
+2.25292e-28
+5.69021e-30
+9.48455e-30
+4.4844e-30
+2.30956e-30
+1.62965e-30
+2.99042e-30
+1.10232e-29
+5.29655e-29
+1.54452e-30
+1.20956e-29
+3.17868e-30
+4.90105e-30
+3.05703e-31
+2.74751e-29
+1.5252e-29
+1.1609e-30
+3.59214e-29
+3.29583e-29
+8.44117e-29
+1.58905e-29
+8.51333e-30
+3.12491e-29
+6.77506e-31
+3.27229e-29
+1.81652e-29
+8.54625e-30
+2.81706e-29
+4.8497e-29
+3.51645e-29
+5.55356e-30
+6.08948e-29
+2.1157e-30
+1.07148e-29
+1.53815e-29
+1.30034e-28
+2.22841e-29
+7.91848e-30
+1.25127e-30
+3.68046e-32
+2.03201e-29
+1.69183e-29
+7.44365e-29
+6.8918e-29
+7.25492e-29
+3.17457e-32
+1.65802e-29
+2.50658e-30
+7.63854e-29
+9.12611e-29
+5.83848e-30
+6.61807e-30
+2.63528e-31
+9.29261e-30
+6.80449e-30
+4.4751e-29
+8.94934e-30
+1.72489e-31
+2.69407e-30
+1.01195e-29
+2.82044e-32
+2.59563e-32
+4.0059e-30
+3.34908e-30
+5.62826e-30
+1.80152e-29
+7.91041e-30
+4.05363e-29
+4.40534e-29
+3.7655e-31
+1.9556e-29
+1.47022e-30
+1.45262e-30
+2.71359e-30
+6.40407e-30
+0
+5.42515e-31
+6.17935e-30
+7.60688e-31
+1.52232e-29
+1.67319e-30
+7.36494e-30
+7.27931e-30
+5.76023e-30
+2.69643e-29
+1.24605e-30
+7.69841e-30
+6.86833e-30
+3.00943e-31
+1.07108e-29
+2.65278e-30
+2.62479e-29
+7.32078e-32
+0
+9.10236
+1.16394
+1.09771
+1.15495
+1.21995
+1.28177
+1.33904
+1.39201
+1.44123
+1.4872
+0.456596
+0.00095567
+2.43495e-28
+2.5907e-30
+3.98957e-30
+2.21191e-30
+5.74432e-29
+2.02062e-29
+1.95168e-28
+0
+1.27318e-28
+1.23373e-28
+1.15129e-29
+2.0766e-28
+7.30506e-29
+3.75169e-30
+3.35424e-30
+5.0289e-29
+5.50799e-30
+1.42068e-28
+6.1308e-29
+3.50323e-29
+9.82298e-29
+3.40416e-29
+2.34429e-29
+1.55931e-29
+7.55799e-29
+4.24599e-29
+2.13741e-28
+3.36847e-28
+6.59344e-30
+1.13701e-29
+8.64197e-30
+7.66787e-29
+1.37144e-29
+7.31541e-29
+4.23578e-29
+1.90201e-28
+4.11726e-29
+7.82438e-30
+2.26328e-28
+1.52643e-29
+2.52041e-29
+1.5344e-28
+3.57205e-28
+3.46633e-28
+1.19782e-28
+5.39205e-31
+1.10248e-28
+1.97307e-28
+5.29382e-30
+5.94554e-29
+1.35913e-29
+9.43906e-29
+1.03435e-29
+3.2408e-29
+3.68059e-29
+1.35453e-28
+1.73956e-28
+3.06491e-29
+5.63867e-29
+9.19236e-29
+2.5252e-29
+1.10378e-30
+3.59916e-29
+1.82685e-29
+6.35982e-29
+1.04433e-30
+1.03001e-28
+7.00019e-30
+1.22745e-29
+4.4631e-30
+2.57439e-30
+1.35488e-31
+1.04563e-28
+4.58401e-29
+2.43781e-30
+6.27335e-30
+8.75614e-29
+2.92864e-29
+2.07668e-29
+5.86685e-29
+9.73126e-34
+3.14706e-29
+2.39091e-29
+8.17376e-31
+4.68318e-29
+2.62738e-29
+3.54126e-30
+2.78481e-29
+3.22451e-29
+4.09577e-29
+2.04783e-29
+1.51486e-28
+8.861e-30
+1.44542e-29
+8.3293e-29
+7.30157e-29
+5.86772e-29
+1.52688e-29
+9.39114e-32
+1.99363e-29
+2.5405e-31
+4.91407e-31
+5.2357e-30
+1.80609e-29
+1.24939e-29
+4.52995e-29
+5.56791e-29
+8.90179e-29
+4.61188e-29
+3.14345e-29
+2.22834e-31
+6.44408e-34
+6.87941e-29
+5.08314e-29
+2.11579e-31
+4.2116e-29
+1.25449e-29
+4.2213e-29
+1.55653e-29
+9.17451e-30
+5.26869e-29
+7.73634e-29
+1.103e-29
+1.14715e-29
+2.86264e-29
+1.44342e-30
+1.53667e-29
+1.03251e-28
+4.78651e-30
+2.51725e-31
+2.76214e-32
+6.81963e-31
+1.82119e-29
+4.49865e-30
+1.05118e-29
+5.08744e-30
+3.69183e-30
+6.84756e-29
+2.56167e-29
+2.99168e-30
+2.05282e-29
+2.91948e-30
+8.59327e-31
+1.90628e-30
+3.73722e-31
+9.18887e-32
+4.00379e-29
+5.16719e-29
+9.77392e-30
+1.40297e-30
+5.47269e-31
+6.46817e-29
+8.45209e-32
+1.0107e-29
+3.3172e-31
+3.26358e-29
+5.05482e-31
+7.97062e-32
+1.59685e-30
+3.11512e-29
+1.93024e-30
+4.87619e-30
+9.10903e-30
+4.18392e-30
+5.96201e-30
+1.81772e-30
+1.51152e-29
+1.8198e-29
+9.10238
+1.164
+1.09774
+1.15499
+1.21999
+1.28181
+1.33908
+1.39206
+1.44127
+1.48725
+0.456492
+0.000950188
+2.56678e-31
+9.10728e-30
+2.49337e-29
+2.03833e-28
+1.58737e-28
+5.05154e-28
+1.18064e-28
+2.41291e-29
+8.42692e-29
+1.51501e-29
+9.09657e-30
+1.05965e-30
+2.33375e-29
+2.66787e-29
+3.22344e-29
+2.68556e-29
+3.13197e-29
+4.63894e-29
+2.85006e-31
+1.65134e-29
+2.19715e-28
+9.82796e-30
+1.13096e-28
+1.30353e-28
+7.39747e-33
+6.87778e-29
+3.07521e-29
+5.26779e-29
+1.51565e-29
+2.28998e-28
+6.66819e-31
+1.71007e-29
+1.61793e-28
+7.45283e-29
+8.16406e-30
+8.04944e-30
+2.44927e-30
+5.79793e-29
+8.2877e-29
+3.96751e-30
+2.08298e-31
+3.28769e-30
+3.80244e-30
+2.56457e-29
+7.10688e-29
+2.15721e-30
+1.43768e-29
+1.08709e-28
+1.98726e-29
+7.3439e-31
+5.03005e-31
+1.04878e-29
+9.57962e-31
+5.01441e-29
+2.74537e-29
+9.9176e-30
+1.44951e-29
+4.55811e-31
+6.25899e-29
+2.98078e-29
+1.03685e-28
+5.02913e-29
+2.44963e-30
+4.1938e-31
+6.64818e-32
+4.17731e-30
+5.2156e-30
+8.69242e-29
+5.63625e-29
+9.88588e-31
+1.02965e-29
+7.94864e-30
+1.71308e-29
+1.14611e-29
+1.76671e-29
+5.46729e-29
+1.17992e-29
+8.651e-30
+8.09469e-29
+1.34683e-28
+9.73126e-34
+3.27682e-31
+1.16377e-31
+1.27569e-30
+5.03515e-30
+7.17191e-29
+6.35069e-29
+9.47668e-30
+1.72205e-29
+1.17658e-32
+1.67643e-29
+3.59214e-29
+7.24175e-31
+1.07206e-29
+5.32617e-30
+2.77986e-30
+5.8678e-29
+1.23334e-28
+2.60865e-31
+1.02974e-28
+1.317e-29
+1.44487e-30
+1.07782e-29
+3.06329e-29
+5.55356e-30
+6.39769e-29
+7.43857e-29
+1.20124e-29
+8.7918e-30
+3.36017e-29
+6.02543e-30
+9.01012e-30
+1.95984e-30
+5.79802e-30
+1.43275e-30
+1.41439e-30
+2.23045e-29
+3.54782e-29
+2.60454e-30
+1.2007e-28
+1.31717e-29
+3.37018e-29
+3.05539e-32
+3.01682e-32
+2.33539e-29
+4.94443e-29
+2.27731e-29
+2.86809e-30
+0
+9.06209e-30
+4.41943e-31
+1.20318e-29
+2.42486e-29
+8.62089e-30
+5.91291e-30
+4.57869e-29
+1.13062e-29
+4.07036e-31
+4.02064e-31
+4.8431e-30
+6.12021e-31
+5.55572e-29
+1.61035e-29
+5.88359e-31
+2.32682e-30
+2.29722e-30
+2.26972e-30
+3.23836e-29
+1.99451e-29
+4.29329e-30
+2.3222e-32
+7.72041e-30
+6.10818e-30
+6.03499e-30
+2.21496e-32
+8.99672e-30
+9.93756e-31
+2.86942e-30
+7.8843e-30
+6.30812e-30
+4.18e-32
+8.3904e-30
+2.28139e-30
+9.11165e-31
+5.97317e-29
+2.19944e-30
+2.92831e-31
+0
+9.10241
+1.16406
+1.09778
+1.15503
+1.22003
+1.28185
+1.33913
+1.39211
+1.44132
+1.4873
+0.456381
+0.00094438
+2.56309e-28
+1.26935e-28
+9.97347e-31
+1.14656e-28
+4.27281e-30
+4.21121e-28
+2.84958e-28
+3.01405e-29
+5.42133e-29
+2.72864e-28
+3.41477e-29
+1.47192e-29
+3.75957e-29
+8.50724e-31
+2.22797e-28
+8.76919e-29
+1.72407e-29
+1.04088e-29
+1.67526e-29
+7.49501e-29
+7.87745e-30
+1.44416e-28
+1.13096e-28
+1.09682e-28
+3.66201e-29
+1.51533e-29
+9.14938e-30
+2.67533e-29
+2.98871e-29
+3.50659e-29
+3.45684e-29
+7.66787e-29
+1.41961e-28
+6.13653e-29
+1.49397e-28
+2.48471e-30
+8.81736e-31
+5.79793e-29
+2.59273e-29
+4.54453e-29
+1.13449e-30
+1.46087e-30
+1.76397e-29
+2.87516e-29
+1.71497e-29
+3.94926e-34
+2.75619e-29
+5.2425e-31
+1.98715e-29
+1.95946e-29
+1.28712e-30
+1.55449e-29
+4.13687e-29
+7.71151e-30
+1.18835e-29
+3.67457e-30
+1.18325e-30
+3.85802e-29
+1.32983e-28
+8.44229e-29
+7.16304e-29
+9.44422e-29
+4.35465e-30
+1.41079e-29
+3.97239e-29
+4.17731e-30
+1.39196e-28
+6.30029e-29
+7.68304e-31
+1.68178e-29
+2.19942e-29
+6.00948e-30
+2.50442e-30
+5.61935e-29
+8.11093e-29
+3.64107e-30
+9.4843e-30
+7.32236e-30
+3.42318e-31
+2.49027e-29
+4.16672e-29
+1.17966e-29
+2.91038e-30
+2.50129e-30
+5.55023e-30
+1.79298e-29
+1.76406e-30
+2.78481e-29
+1.08198e-31
+1.98929e-30
+1.11493e-28
+3.71211e-30
+3.66526e-30
+4.0475e-31
+1.14491e-28
+7.30157e-29
+2.07449e-29
+1.60837e-29
+6.68578e-31
+6.43581e-30
+3.90635e-29
+7.94381e-29
+6.49365e-29
+1.41049e-29
+6.48226e-29
+2.14081e-30
+9.02737e-30
+5.95921e-31
+2.97265e-29
+2.03178e-30
+2.89595e-29
+3.51933e-30
+2.27301e-31
+1.93149e-30
+8.48796e-31
+9.66047e-30
+2.11385e-30
+1.87627e-29
+8.23398e-30
+4.57138e-30
+1.80533e-29
+6.96271e-30
+1.75991e-29
+1.20673e-31
+3.44351e-29
+3.01217e-29
+1.86098e-30
+2.58128e-29
+1.9146e-29
+1.13926e-31
+2.23734e-30
+4.36457e-31
+9.72755e-30
+3.83151e-30
+4.63592e-29
+3.36394e-29
+5.025e-30
+4.07036e-31
+1.60276e-30
+3.95373e-29
+3.92337e-31
+1.63024e-29
+1.61035e-29
+1.5062e-30
+3.73722e-31
+9.19055e-30
+6.56117e-30
+1.51602e-29
+8.86376e-32
+3.15308e-30
+1.75261e-30
+1.1311e-29
+1.54762e-33
+1.69147e-30
+5.28485e-30
+3.44865e-30
+8.06999e-30
+2.87526e-30
+7.11614e-30
+9.0027e-29
+1.8518e-29
+2.07247e-29
+3.64141e-29
+5.02814e-29
+6.61847e-31
+1.04701e-29
+1.67021e-31
+0
+9.09688
+1.16372
+1.09762
+1.15492
+1.21993
+1.28177
+1.33905
+1.39203
+1.44126
+1.48724
+0.455945
+0.000939992
+2.1765e-30
+2.13994e-30
+9.44127e-29
+5.56063e-28
+1.57381e-28
+1.3505e-29
+7.54851e-29
+7.18255e-29
+1.89772e-30
+2.59685e-28
+5.87375e-28
+3.2355e-28
+1.77113e-30
+1.74086e-30
+4.82941e-28
+1.27299e-28
+6.3543e-29
+1.66384e-29
+2.22351e-28
+2.33608e-28
+6.92464e-29
+1.9018e-28
+1.49115e-30
+2.5833e-29
+3.5982e-29
+1.27317e-29
+1.33595e-29
+2.45321e-28
+9.07655e-30
+1.35159e-29
+4.98516e-29
+3.18596e-31
+2.53606e-29
+3.85994e-29
+8.1759e-30
+1.1894e-30
+1.87728e-31
+3.59927e-29
+1.9895e-29
+3.98981e-29
+7.36279e-30
+7.23419e-30
+2.30334e-28
+3.24046e-29
+1.41374e-28
+5.1719e-29
+8.82328e-30
+3.49578e-31
+2.36606e-29
+6.28626e-30
+2.33906e-30
+6.06941e-30
+6.46043e-34
+3.46723e-30
+3.20469e-28
+1.5022e-28
+8.21949e-31
+4.66448e-29
+5.33481e-29
+1.24718e-29
+2.40164e-29
+7.70478e-30
+1.75298e-28
+3.38798e-28
+7.30565e-30
+7.29155e-29
+2.75401e-30
+1.0822e-29
+2.65783e-30
+5.05502e-29
+1.25868e-30
+5.66917e-30
+5.46757e-29
+9.72558e-30
+2.29544e-29
+2.71216e-29
+8.2967e-31
+1.19757e-29
+3.2117e-29
+3.14539e-30
+3.09589e-30
+8.4315e-30
+1.86322e-29
+8.13321e-30
+5.19463e-29
+1.2569e-30
+2.77453e-30
+4.73116e-31
+1.67302e-29
+3.37576e-29
+6.24232e-29
+1.10122e-29
+5.04382e-29
+2.2018e-29
+1.22204e-33
+5.32405e-29
+2.08576e-29
+3.5575e-30
+6.20926e-30
+0
+5.99328e-30
+9.42132e-31
+4.52851e-29
+1.07339e-28
+6.82424e-31
+1.77255e-29
+7.75802e-29
+2.23301e-30
+6.86076e-30
+3.18939e-31
+2.11106e-30
+3.84685e-29
+1.15903e-29
+3.83261e-30
+7.43422e-31
+4.38472e-29
+8.78488e-30
+4.40284e-30
+1.03826e-29
+7.48339e-29
+4.53676e-29
+4.45573e-29
+6.79098e-30
+2.27175e-29
+2.82322e-29
+6.19574e-31
+3.73393e-30
+3.29974e-31
+6.08406e-30
+3.18164e-29
+1.24951e-30
+2.18362e-30
+4.83203e-29
+1.18636e-29
+1.29044e-29
+1.14266e-30
+7.77548e-31
+6.87327e-30
+1.0833e-29
+2.47591e-29
+3.14786e-29
+2.55454e-29
+1.36545e-30
+2.2162e-30
+3.87933e-29
+1.05504e-29
+8.39258e-30
+3.67164e-29
+1.32066e-29
+7.94359e-30
+2.18361e-31
+2.36467e-30
+9.45001e-32
+1.53985e-29
+6.46514e-30
+2.24858e-29
+4.23207e-30
+2.12304e-30
+5.3207e-30
+7.34636e-31
+5.12922e-30
+2.38034e-30
+1.93717e-30
+8.36335e-30
+1.5137e-30
+4.11891e-30
+5.25901e-33
+5.16362e-33
+9.09572
+1.16357
+1.09754
+1.15484
+1.21986
+1.28169
+1.33898
+1.39196
+1.44118
+1.48716
+0.455992
+0.000946353
+3.91163e-29
+8.18661e-30
+2.38416e-28
+4.09987e-29
+3.05966e-28
+3.39931e-29
+5.20365e-30
+1.20193e-29
+6.26999e-29
+1.97367e-29
+1.68885e-29
+1.11945e-29
+6.73537e-30
+8.3645e-29
+1.28385e-28
+7.10834e-31
+4.45974e-29
+1.49067e-29
+8.2367e-30
+4.12801e-30
+4.61299e-30
+8.67269e-29
+9.51982e-29
+4.97916e-29
+5.43384e-30
+6.58918e-30
+3.42346e-29
+2.05929e-29
+3.4473e-29
+8.10782e-30
+2.40883e-29
+1.47937e-30
+7.11382e-29
+2.0589e-29
+0
+2.31141e-29
+3.51253e-29
+2.07188e-28
+6.19944e-29
+2.94614e-29
+1.81319e-29
+5.87004e-29
+2.72756e-30
+1.65527e-28
+6.05117e-29
+1.32494e-29
+1.45857e-29
+9.35241e-29
+8.50568e-30
+4.09471e-29
+4.55566e-29
+1.02681e-30
+4.12929e-29
+1.59083e-31
+1.39923e-30
+8.07429e-29
+6.33157e-30
+1.47777e-31
+8.12318e-30
+1.23373e-28
+1.56183e-28
+8.88355e-29
+1.77365e-29
+2.962e-31
+2.06817e-30
+2.48623e-29
+7.00594e-30
+2.75542e-31
+1.58669e-29
+3.81515e-29
+1.52861e-29
+6.53389e-29
+4.7038e-30
+1.2049e-29
+1.67589e-29
+1.39199e-29
+5.95028e-29
+6.35484e-31
+0
+7.90906e-30
+5.75251e-29
+6.01837e-30
+2.30706e-30
+5.43596e-29
+8.01423e-31
+1.39686e-30
+8.7625e-29
+0
+8.39022e-32
+4.27682e-29
+3.17315e-29
+1.0656e-28
+6.18764e-30
+2.99742e-29
+4.13569e-30
+4.62205e-30
+3.42567e-29
+1.73597e-30
+7.31159e-32
+1.50384e-29
+1.6405e-30
+1.60942e-30
+5.69142e-31
+8.47574e-29
+3.21305e-29
+1.1678e-29
+2.70187e-29
+1.43444e-30
+6.90008e-31
+1.78753e-29
+1.21765e-29
+1.27535e-29
+2.75536e-29
+1.47604e-29
+9.81891e-30
+2.07963e-30
+3.25798e-29
+6.25151e-30
+6.00897e-29
+1.45158e-28
+4.46305e-30
+6.99835e-31
+4.39301e-29
+2.73565e-29
+7.4528e-29
+1.46191e-29
+1.83429e-29
+8.75587e-30
+3.66741e-29
+3.03133e-30
+2.34874e-30
+1.43951e-29
+4.27007e-30
+6.7851e-30
+6.65332e-30
+5.62564e-30
+5.51384e-30
+2.87922e-31
+5.27302e-29
+3.14953e-29
+1.08868e-29
+3.83234e-29
+4.18638e-29
+6.39565e-30
+6.42131e-29
+1.09297e-31
+6.71695e-31
+3.40389e-29
+1.13576e-29
+6.3114e-29
+1.19806e-29
+2.94299e-30
+4.66222e-30
+3.94266e-30
+2.28606e-30
+1.81526e-30
+8.78936e-30
+7.75315e-31
+6.84028e-30
+6.70536e-30
+1.07319e-29
+3.36083e-30
+7.07486e-31
+2.31212e-30
+6.74301e-31
+1.8806e-29
+6.53149e-31
+5.16802e-33
+9.09445
+1.16342
+1.09745
+1.15476
+1.21978
+1.28162
+1.3389
+1.39188
+1.44109
+1.48708
+0.456047
+0.000953303
+2.29878e-28
+2.63507e-28
+1.0896e-28
+2.87521e-30
+2.21331e-29
+5.8653e-29
+3.29307e-30
+1.1995e-28
+6.56349e-31
+2.08633e-28
+1.20394e-28
+2.86992e-29
+8.77429e-29
+1.24042e-28
+8.46066e-31
+1.00448e-28
+1.10922e-30
+5.55955e-31
+4.22333e-29
+1.67878e-29
+1.42089e-29
+2.67391e-29
+1.02089e-28
+2.31858e-28
+1.47679e-28
+1.50142e-29
+2.70663e-30
+1.18067e-30
+5.27972e-29
+1.39346e-29
+5.0855e-29
+4.29145e-31
+5.26761e-29
+7.18052e-29
+0
+1.33554e-29
+1.14099e-33
+1.46907e-29
+3.17416e-29
+1.36789e-31
+2.79638e-29
+2.26758e-29
+7.61491e-29
+7.47164e-29
+1.12588e-29
+3.36256e-30
+2.38362e-28
+1.63872e-29
+3.58585e-30
+6.43784e-30
+1.91028e-31
+5.74785e-31
+3.35069e-29
+1.46094e-29
+4.42305e-32
+4.41826e-32
+1.53298e-30
+4.01214e-29
+1.5238e-28
+1.00421e-30
+1.3715e-28
+3.13091e-30
+3.79101e-30
+6.87374e-29
+4.21488e-29
+3.64141e-32
+2.55671e-29
+3.74562e-29
+1.02036e-28
+2.11705e-30
+0
+9.19399e-30
+3.39715e-29
+1.22918e-31
+1.45199e-29
+2.99507e-32
+4.15503e-30
+1.62885e-29
+1.77448e-30
+1.0874e-29
+1.94384e-29
+7.34055e-29
+6.40512e-29
+4.64435e-29
+2.46432e-30
+5.43182e-30
+8.80635e-29
+2.32007e-30
+1.78309e-29
+2.69766e-30
+4.62455e-29
+3.09109e-30
+1.27756e-28
+3.45989e-29
+6.32675e-29
+1.97736e-32
+3.25802e-29
+1.28406e-29
+1.25849e-29
+2.91928e-29
+1.14572e-30
+7.00964e-30
+5.56551e-30
+4.04083e-29
+1.64925e-30
+1.61616e-30
+1.83076e-29
+3.9739e-30
+3.80156e-31
+6.10311e-29
+2.82655e-29
+1.43046e-30
+4.54206e-30
+3.57169e-29
+3.23028e-29
+1.52461e-29
+1.01281e-29
+1.26883e-30
+8.33381e-29
+2.73188e-30
+3.43744e-30
+1.97681e-30
+8.95168e-30
+5.32298e-29
+3.20848e-33
+1.71637e-31
+1.76628e-29
+3.46242e-29
+6.45134e-31
+5.1184e-29
+4.87447e-29
+6.08878e-31
+6.2699e-30
+2.04644e-30
+1.88233e-29
+1.25796e-29
+3.71619e-29
+5.64998e-30
+1.38498e-30
+8.72398e-30
+7.84442e-31
+2.49094e-30
+3.00844e-30
+2.94569e-32
+3.94847e-29
+1.49406e-29
+3.19699e-29
+9.74509e-31
+2.14863e-30
+2.59654e-30
+0
+8.97907e-30
+4.11601e-30
+3.08139e-32
+5.97237e-30
+1.46327e-30
+3.77801e-30
+6.32407e-30
+4.19825e-30
+3.01911e-30
+7.52306e-31
+1.93044e-29
+1.96597e-32
+6.23437e-30
+3.06838e-31
+1.65884e-31
+2.21027e-29
+1.80777e-29
+9.09307
+1.16325
+1.09736
+1.15468
+1.2197
+1.28153
+1.33881
+1.39179
+1.44101
+1.48699
+0.456098
+0.00096037
+4.14365e-29
+5.94516e-30
+3.04987e-28
+2.00814e-28
+2.51553e-28
+1.7251e-29
+3.20036e-30
+6.64335e-29
+1.0723e-28
+6.39533e-29
+2.96587e-30
+2.79583e-29
+1.25873e-29
+5.92531e-29
+6.87287e-31
+7.85862e-29
+3.42637e-29
+5.0211e-29
+1.4695e-28
+9.98258e-32
+2.99887e-29
+1.53725e-30
+1.98084e-29
+5.91464e-30
+1.53179e-29
+1.45817e-28
+8.11102e-29
+2.13826e-30
+1.88707e-29
+2.23945e-29
+1.63346e-28
+7.60212e-29
+6.08199e-29
+4.38189e-29
+7.45991e-32
+8.06628e-30
+1.72331e-29
+1.33091e-28
+2.08619e-30
+8.94404e-30
+2.38682e-28
+2.26282e-28
+2.69389e-30
+1.4059e-31
+3.98338e-29
+1.13643e-28
+1.33549e-31
+1.09216e-28
+1.27316e-29
+9.37344e-30
+1.35922e-30
+1.9243e-29
+3.13563e-29
+1.03688e-28
+2.89089e-29
+4.92265e-30
+6.24828e-29
+6.24907e-30
+1.76093e-29
+7.67015e-30
+1.1934e-32
+6.98215e-31
+4.23874e-29
+6.70504e-31
+1.05006e-29
+1.94543e-29
+1.66687e-30
+9.65471e-31
+6.05683e-31
+5.93447e-31
+3.63053e-30
+1.42261e-29
+6.82913e-30
+1.9201e-30
+2.00732e-29
+1.73311e-29
+8.02923e-31
+2.29188e-29
+1.97606e-30
+1.08656e-30
+5.79381e-30
+4.89357e-30
+1.02058e-30
+1.87709e-29
+1.31632e-29
+6.65886e-31
+2.50692e-29
+1.02208e-29
+8.10623e-30
+3.52819e-30
+2.01803e-29
+1.58848e-29
+3.31476e-30
+9.22798e-29
+5.51555e-29
+6.99986e-30
+1.02359e-29
+4.97164e-29
+8.10926e-32
+1.90757e-29
+1.02809e-29
+6.86244e-31
+3.65157e-30
+3.06468e-29
+3.0002e-29
+1.32233e-28
+1.09447e-28
+3.09504e-29
+6.55372e-30
+4.00918e-31
+3.93552e-31
+3.25077e-29
+1.44499e-29
+7.78405e-30
+2.19043e-29
+2.98214e-29
+9.3229e-30
+2.85581e-29
+2.11301e-29
+5.16909e-30
+4.09786e-30
+9.70377e-30
+6.40759e-30
+2.66506e-30
+7.24383e-30
+1.47016e-29
+2.83968e-30
+5.05611e-32
+3.82188e-31
+3.80726e-31
+6.86783e-30
+4.86968e-31
+8.74917e-32
+9.50896e-33
+1.0752e-29
+8.18761e-30
+1.42367e-29
+8.70261e-31
+0
+6.5261e-30
+2.6376e-30
+7.96122e-33
+7.00689e-30
+1.75411e-29
+6.70034e-32
+1.54042e-29
+5.99487e-30
+3.81163e-29
+5.51263e-29
+8.63132e-30
+4.39972e-30
+2.80682e-30
+3.88647e-30
+3.90854e-31
+6.87721e-30
+1.46949e-31
+2.93735e-32
+1.07483e-29
+7.81477e-31
+1.43439e-29
+1.99314e-29
+2.0272e-32
+1.79776e-31
+4.95756e-30
+1.70341e-31
+1.67833e-31
+9.56434e-30
+0
+9.09157
+1.16308
+1.09727
+1.15459
+1.21961
+1.28145
+1.33873
+1.39171
+1.44093
+1.48691
+0.456134
+0.000967076
+2.70576e-30
+4.65289e-29
+3.90696e-29
+1.03692e-28
+2.64259e-29
+2.02771e-29
+7.95293e-29
+5.32135e-29
+9.04787e-31
+4.46451e-29
+1.6536e-28
+5.17932e-29
+1.5894e-28
+2.56592e-29
+5.93236e-29
+7.55194e-29
+4.45218e-29
+2.72566e-31
+2.3227e-29
+1.1616e-31
+2.7355e-29
+2.18741e-29
+1.01754e-28
+7.8155e-29
+1.05078e-29
+8.07354e-29
+3.26994e-29
+3.15733e-28
+2.4236e-30
+2.14149e-31
+5.36131e-29
+1.78785e-29
+1.42999e-28
+1.19891e-28
+3.62579e-30
+1.11194e-29
+9.08196e-30
+1.06741e-29
+4.94205e-31
+6.27492e-30
+4.26904e-30
+4.66048e-31
+1.74986e-29
+5.20137e-29
+1.7473e-30
+1.20769e-28
+1.31439e-29
+1.64244e-30
+3.61896e-30
+3.93841e-31
+1.38864e-31
+4.89718e-30
+3.78974e-30
+7.66713e-30
+1.87713e-28
+2.69107e-29
+3.41278e-31
+2.46454e-29
+2.0882e-29
+6.76031e-30
+8.45963e-30
+6.70896e-29
+4.32712e-31
+1.97429e-29
+2.64922e-29
+1.90319e-30
+2.47949e-30
+3.75538e-29
+2.74689e-29
+3.97382e-29
+9.18143e-32
+2.57639e-29
+7.60388e-30
+3.88697e-29
+5.94431e-29
+5.81778e-31
+2.00239e-30
+2.73053e-29
+1.03103e-28
+3.41574e-29
+2.64444e-30
+9.66188e-31
+1.5127e-29
+2.75799e-31
+8.14725e-30
+1.29118e-29
+3.789e-30
+7.01189e-31
+1.45058e-29
+6.71139e-31
+3.47264e-30
+2.62898e-29
+1.60779e-30
+1.59788e-29
+2.30978e-29
+2.18664e-29
+2.81647e-31
+1.40549e-29
+2.25239e-29
+6.97593e-30
+2.02175e-29
+8.22982e-32
+2.89886e-30
+1.89089e-29
+1.40926e-33
+3.68774e-30
+8.7593e-29
+4.4973e-29
+3.44748e-30
+8.32362e-30
+2.17924e-29
+5.32736e-30
+8.50288e-30
+1.14548e-29
+3.99542e-29
+3.9053e-29
+1.1508e-29
+1.12479e-29
+9.48094e-30
+3.50902e-30
+9.05762e-30
+3.67828e-29
+2.47762e-29
+5.00293e-30
+2.70011e-29
+2.75252e-29
+2.80272e-29
+2.23659e-30
+1.44458e-29
+2.10869e-29
+9.57797e-30
+2.03881e-30
+1.01595e-32
+9.99139e-31
+9.31929e-30
+6.68485e-29
+1.19949e-29
+2.31462e-30
+1.27538e-29
+4.10763e-29
+8.09945e-30
+2.10974e-30
+2.01007e-29
+1.76693e-30
+4.05737e-30
+1.2592e-29
+6.79842e-32
+4.59334e-31
+6.48363e-32
+1.31923e-29
+1.01212e-29
+1.09206e-29
+1.42727e-30
+2.4775e-30
+1.58273e-31
+2.53474e-32
+2.54218e-30
+2.30518e-29
+2.42296e-30
+3.08945e-30
+1.90028e-31
+1.30995e-30
+4.63643e-32
+1.03063e-29
+6.84497e-31
+7.42334e-32
+5.49252e-31
+0
+9.08993
+1.16291
+1.09718
+1.15451
+1.21954
+1.28138
+1.33865
+1.39163
+1.44085
+1.48683
+0.456147
+0.000972943
+7.78584e-30
+1.14857e-28
+5.21051e-29
+3.8081e-29
+2.43012e-29
+1.37845e-29
+2.7563e-31
+2.69662e-28
+1.10108e-28
+5.01828e-28
+1.07763e-28
+2.54818e-30
+7.37846e-29
+1.19787e-28
+8.80145e-29
+1.4779e-28
+6.03497e-29
+3.16483e-31
+2.23963e-29
+2.74006e-29
+2.23348e-29
+7.77409e-30
+7.61372e-30
+4.48151e-29
+4.74939e-30
+3.24113e-29
+1.01452e-28
+1.78388e-29
+1.17458e-29
+7.11693e-29
+2.95373e-28
+1.24887e-28
+4.34078e-30
+2.26297e-31
+1.03455e-29
+2.65737e-30
+2.19469e-29
+9.45966e-29
+1.3404e-28
+1.21183e-28
+2.16656e-30
+6.87006e-30
+1.99439e-29
+1.64984e-29
+1.34391e-29
+3.27063e-29
+4.57178e-29
+7.45409e-30
+5.92479e-29
+4.56834e-30
+2.26311e-29
+4.10262e-29
+3.23693e-29
+1.2826e-29
+6.55627e-29
+9.78793e-30
+1.38178e-31
+3.59921e-29
+1.6168e-28
+9.18162e-31
+4.0924e-29
+1.07631e-29
+1.7404e-29
+1.19183e-31
+8.63924e-29
+8.49544e-30
+5.35425e-29
+2.88629e-29
+4.09262e-29
+2.43295e-29
+2.37928e-29
+4.85236e-30
+2.7558e-30
+8.89934e-29
+6.95304e-30
+5.79036e-30
+1.66111e-30
+9.61012e-31
+7.9025e-30
+5.03024e-29
+4.65541e-29
+3.51167e-32
+1.66152e-29
+3.35577e-30
+6.94106e-29
+9.69935e-29
+2.00579e-30
+9.26635e-29
+9.05672e-29
+4.33744e-29
+1.20823e-30
+6.71492e-30
+2.73168e-30
+8.64741e-30
+1.09609e-29
+2.06474e-30
+1.0465e-29
+1.02257e-29
+5.94762e-31
+3.73331e-31
+3.63496e-31
+5.15056e-32
+4.24502e-30
+5.28947e-31
+4.86187e-29
+1.58301e-29
+2.5559e-29
+6.14923e-29
+5.69149e-29
+2.02635e-30
+4.5001e-31
+5.67924e-30
+4.11271e-30
+2.40854e-30
+1.06155e-29
+1.24983e-29
+7.20029e-30
+2.56881e-30
+1.38074e-29
+0
+2.2637e-29
+2.32197e-29
+4.36926e-30
+1.03214e-29
+4.7823e-29
+2.95146e-29
+7.83784e-31
+8.081e-30
+5.14655e-30
+2.85555e-31
+1.11157e-30
+2.44097e-30
+5.60177e-30
+5.46613e-30
+2.42119e-29
+3.18899e-30
+4.97789e-29
+1.21434e-29
+1.93468e-29
+1.50828e-30
+3.48223e-30
+1.22349e-30
+3.37473e-32
+1.56491e-29
+3.15415e-32
+3.07752e-30
+1.08362e-29
+1.75753e-29
+3.77701e-30
+1.74616e-31
+4.23935e-29
+1.00787e-29
+2.09937e-29
+1.05935e-29
+4.81991e-30
+1.74777e-29
+2.88083e-31
+3.64735e-31
+4.35676e-30
+1.58005e-29
+1.83911e-29
+4.78701e-32
+1.93071e-29
+1.23845e-31
+8.08127e-31
+1.50776e-30
+2.68983e-29
+1.81134e-29
+9.08816
+1.16274
+1.09709
+1.15443
+1.21946
+1.28131
+1.33859
+1.39156
+1.44078
+1.48676
+0.456127
+0.000977505
+1.85685e-28
+9.65923e-29
+5.31981e-29
+3.52537e-30
+1.14116e-28
+4.28858e-29
+4.86348e-28
+6.55807e-29
+1.44449e-28
+5.28073e-29
+4.01763e-28
+1.16158e-30
+2.0112e-28
+2.84974e-30
+9.21919e-29
+4.26422e-30
+4.54483e-29
+1.28086e-28
+2.11448e-29
+1.64388e-29
+1.24024e-29
+1.19574e-28
+6.19433e-30
+6.02883e-29
+2.28185e-29
+5.7717e-29
+4.35368e-29
+3.57922e-29
+5.40524e-29
+7.55755e-30
+5.82314e-29
+6.37009e-29
+2.22894e-28
+2.71035e-28
+2.03575e-28
+7.16837e-29
+1.01955e-28
+1.39471e-29
+8.35449e-30
+2.52192e-30
+6.17012e-31
+5.79451e-30
+3.96472e-29
+3.33035e-29
+4.77214e-29
+4.66616e-29
+1.34859e-31
+5.06174e-29
+2.06119e-30
+5.03888e-31
+4.43291e-30
+6.04007e-29
+1.80947e-29
+6.84892e-29
+5.82983e-30
+7.39103e-30
+1.10147e-30
+4.20066e-31
+2.12839e-29
+2.0802e-29
+5.46067e-29
+5.70459e-29
+1.73138e-28
+8.12614e-29
+1.60565e-29
+2.70664e-29
+1.97263e-29
+5.60944e-30
+1.93314e-29
+3.06131e-30
+6.5865e-30
+5.11325e-30
+1.31084e-30
+2.73037e-29
+1.90615e-29
+6.94292e-32
+3.09675e-29
+1.16531e-30
+3.00999e-29
+5.33317e-30
+9.8536e-31
+6.46603e-29
+3.84669e-29
+1.5417e-29
+2.85901e-29
+3.04451e-29
+3.83355e-29
+2.85369e-29
+6.59491e-29
+3.5063e-30
+7.76135e-31
+2.45509e-30
+7.10923e-30
+3.24192e-29
+4.74042e-29
+2.23176e-30
+0
+6.56192e-31
+1.60005e-31
+6.80276e-30
+2.68872e-30
+4.02243e-30
+9.81403e-31
+5.66716e-31
+3.71867e-29
+1.29575e-29
+8.01011e-30
+8.68399e-31
+1.25711e-31
+7.0479e-31
+2.33868e-31
+1.25912e-29
+8.79528e-30
+4.82625e-30
+2.83668e-29
+1.05435e-31
+1.43217e-29
+1.80146e-29
+1.56676e-30
+1.37433e-31
+4.82575e-30
+1.02007e-29
+1.27494e-29
+2.70773e-30
+3.03147e-30
+9.57738e-30
+0
+3.12511e-31
+5.11939e-30
+2.97753e-31
+9.40443e-30
+8.85077e-30
+2.32884e-29
+1.59026e-29
+1.76924e-30
+2.15734e-29
+1.25245e-29
+3.87485e-30
+8.78424e-30
+1.43865e-30
+8.97623e-31
+9.64435e-31
+2.76286e-30
+2.1596e-29
+2.35935e-29
+8.69272e-29
+2.90589e-29
+1.68661e-30
+5.92491e-30
+2.30327e-30
+1.80129e-29
+7.79936e-30
+2.69218e-29
+6.40308e-29
+2.55493e-29
+6.08072e-31
+1.00029e-30
+6.35634e-31
+8.32383e-30
+1.71528e-29
+3.40943e-31
+4.82799e-30
+1.27803e-31
+8.27232e-30
+3.75839e-30
+6.91828e-30
+2.56934e-31
+1.81238e-29
+9.08624
+1.16258
+1.09701
+1.15437
+1.2194
+1.28125
+1.33853
+1.39151
+1.44072
+1.4867
+0.456065
+0.000980311
+1.31428e-28
+1.59706e-29
+3.49625e-29
+2.71706e-29
+1.74317e-30
+5.23618e-28
+2.88098e-28
+6.2184e-28
+1.87565e-29
+1.95426e-28
+6.12207e-29
+4.32201e-29
+5.56436e-30
+3.11106e-30
+1.33031e-28
+1.18988e-29
+6.18951e-29
+1.002e-28
+2.38359e-28
+4.28057e-29
+2.02608e-34
+1.25016e-28
+4.4448e-30
+2.32676e-30
+3.62959e-28
+2.37381e-30
+8.98455e-30
+1.09098e-28
+2.40012e-29
+2.82844e-29
+8.20037e-30
+2.16442e-28
+5.59285e-29
+1.93889e-28
+8.04159e-31
+7.47036e-29
+1.99736e-29
+1.13522e-28
+2.93276e-30
+6.06353e-29
+7.71726e-31
+1.30235e-28
+2.41193e-28
+2.08368e-29
+8.07042e-29
+1.28274e-28
+7.66871e-30
+2.21177e-29
+5.51934e-29
+1.4247e-28
+1.40032e-28
+3.20752e-29
+1.37426e-29
+1.30452e-28
+2.11783e-30
+8.06272e-29
+3.63732e-29
+3.17216e-30
+9.90751e-30
+4.47399e-31
+1.13621e-29
+1.88611e-29
+6.29975e-29
+5.1451e-29
+6.00427e-29
+4.94712e-29
+8.5103e-31
+4.65271e-30
+2.6394e-34
+8.34202e-29
+5.62499e-29
+7.09065e-30
+5.36421e-30
+2.15782e-30
+2.96102e-29
+9.53262e-30
+6.10815e-29
+1.21662e-30
+1.44389e-29
+3.4731e-30
+2.52999e-29
+1.98571e-29
+2.82239e-31
+2.49713e-31
+4.63935e-29
+3.99511e-30
+2.04495e-28
+9.04571e-29
+1.48323e-29
+6.89395e-29
+2.25776e-28
+2.61359e-29
+2.28552e-29
+2.52315e-30
+6.89076e-32
+6.89016e-30
+1.625e-30
+7.39911e-29
+1.72181e-31
+2.96108e-29
+1.48859e-28
+3.97258e-29
+5.25266e-29
+2.28834e-29
+2.41597e-29
+5.34887e-30
+9.42221e-30
+9.18469e-30
+1.70017e-29
+1.29873e-31
+3.96678e-30
+2.55644e-29
+1.13061e-29
+7.91593e-31
+1.7265e-29
+3.0071e-30
+9.75333e-31
+2.64774e-32
+0
+2.1215e-30
+6.61008e-31
+5.49767e-30
+1.79159e-29
+8.49991e-30
+6.81553e-30
+1.87793e-29
+3.00656e-32
+2.906e-29
+1.17944e-29
+5.65312e-35
+4.3422e-30
+1.49726e-29
+3.97169e-29
+4.20276e-29
+6.08691e-31
+1.36573e-29
+5.42843e-30
+6.49753e-30
+2.81099e-29
+3.58322e-29
+1.34961e-29
+2.8669e-29
+4.93264e-31
+2.0023e-29
+2.0717e-31
+2.01677e-31
+8.81345e-30
+4.80104e-29
+1.2576e-30
+1.37042e-29
+1.85158e-29
+1.25622e-34
+3.53229e-30
+4.92615e-32
+1.50291e-29
+6.90738e-30
+1.13319e-29
+3.78931e-30
+1.63816e-29
+9.27433e-30
+2.95943e-29
+8.77949e-30
+8.54171e-30
+2.02486e-29
+1.50816e-29
+4.67838e-29
+1.7213e-29
+1.8133e-29
+9.08574
+1.16904
+1.09997
+1.15606
+1.2205
+1.28201
+1.33909
+1.39194
+1.44106
+1.48698
+0.456215
+0.000980935
+0
+2.27044e-35
+3.17691e-28
+0
+0
+2.96541e-28
+0
+0
+2.76717e-28
+0
+2.64198e-28
+7.21235e-35
+0
+0
+6.72612e-35
+0
+2.29754e-28
+2.2444e-28
+0
+0
+2.09182e-28
+2.04316e-28
+0
+5.44549e-35
+0
+1.85896e-28
+1.81541e-28
+0
+0
+1.69043e-28
+0
+1.61166e-28
+0
+1.53635e-28
+1.49994e-28
+0
+3.99413e-35
+1.39554e-28
+1.36228e-28
+0
+3.62656e-35
+1.26693e-28
+1.23657e-28
+0
+1.17789e-28
+1.14955e-28
+1.12184e-28
+0
+1.06831e-28
+0
+1.01719e-28
+0
+0
+1.05592e-34
+1.03018e-34
+1.00504e-34
+8.7732e-29
+0
+0
+8.14386e-29
+7.94374e-29
+8.65934e-35
+7.55731e-29
+0
+7.18868e-29
+0
+6.83709e-29
+7.45143e-35
+0
+6.34e-29
+6.18203e-29
+0
+0
+0
+6.24354e-35
+5.44648e-29
+0
+5.17611e-29
+5.04574e-29
+4.91848e-29
+4.79426e-29
+4.67301e-29
+5.09024e-35
+0
+0
+0
+0
+0
+0
+3.80237e-29
+4.14071e-35
+0
+1.57242e-34
+0
+3.33886e-29
+3.25283e-29
+3.1689e-29
+1.38001e-34
+0
+2.9293e-29
+2.85332e-29
+0
+2.70696e-29
+0
+2.56773e-29
+2.5007e-29
+2.43533e-29
+9.48638e-29
+2.30944e-29
+2.24885e-29
+8.759e-29
+2.13215e-29
+9.28034e-35
+2.02122e-29
+1.96784e-29
+0
+0
+1.81565e-29
+0
+1.72047e-29
+1.67469e-29
+6.52025e-29
+0
+0
+0
+0
+0
+0
+0
+5.86375e-35
+0
+5.5518e-35
+0
+4.70274e-29
+4.57541e-29
+0
+0
+4.21278e-29
+4.09814e-29
+3.98649e-29
+0
+1.68613e-34
+1.64002e-34
+3.56821e-29
+0
+0
+0
+1.42698e-34
+1.38767e-34
+3.01855e-29
+1.31214e-34
+1.27587e-34
+1.24055e-34
+1.20618e-34
+0
+1.14014e-34
+2.47953e-29
+1.07757e-34
+0
+0
+0
+2.1523e-29
+2.09203e-29
+0
+1.97629e-29
+1.92075e-29
+0
+1.81411e-29
+0.267896
+1.30657
+1.04313
+1.13652
+1.21099
+1.27638
+1.33533
+1.38921
+1.43897
+1.48531
+0.439909
+0.000375163
+1.88585e-30
+2.67287e-29
+8.47629e-31
+1.53672e-30
+5.03994e-29
+1.96553e-28
+8.81303e-29
+1.76239e-28
+1.52081e-28
+5.86434e-31
+2.06372e-28
+1.59158e-28
+7.56337e-29
+6.17564e-29
+3.47001e-29
+1.13182e-30
+2.54135e-29
+7.11127e-29
+3.94108e-29
+1.74431e-29
+7.82219e-29
+6.41382e-29
+0
+3.68257e-30
+9.96712e-32
+3.73078e-29
+8.29035e-29
+2.85565e-29
+9.34445e-30
+3.64146e-29
+8.52445e-30
+2.2335e-29
+1.24383e-29
+1.26085e-30
+1.41924e-28
+1.1128e-29
+7.57646e-30
+2.40133e-29
+1.16124e-28
+1.1868e-30
+2.72679e-29
+2.16036e-29
+9.35484e-29
+7.41276e-29
+1.18817e-29
+2.38786e-29
+6.04286e-30
+1.00584e-28
+3.74767e-29
+1.74591e-29
+0
+3.12829e-30
+1.61107e-29
+1.56837e-29
+1.62358e-30
+1.75593e-31
+2.73491e-30
+6.39543e-30
+6.225e-30
+2.64972e-30
+1.62755e-29
+1.55341e-29
+0
+0
+4.65945e-29
+2.36909e-29
+1.35594e-29
+5.86232e-29
+6.81503e-29
+4.10961e-29
+3.15919e-30
+4.54703e-31
+2.87678e-30
+1.07604e-31
+4.7942e-29
+5.67231e-29
+3.96378e-31
+1.67934e-29
+1.21845e-29
+6.13236e-30
+6.27684e-29
+1.0824e-29
+2.84145e-29
+8.16897e-32
+3.17571e-31
+2.61418e-29
+1.78093e-29
+1.27247e-29
+2.15019e-29
+6.92656e-32
+1.18468e-30
+4.39109e-30
+1.01619e-30
+5.22615e-30
+3.06631e-29
+1.7672e-29
+9.88816e-30
+5.5174e-32
+1.11228e-29
+1.08132e-29
+1.0222e-29
+2.38518e-31
+9.65956e-30
+1.79001e-30
+9.38593e-30
+3.11302e-29
+6.57532e-30
+2.01291e-31
+1.08652e-29
+1.47765e-29
+1.43606e-29
+7.6893e-30
+2.4232e-30
+1.40078e-31
+8.50759e-31
+3.38715e-31
+7.62059e-30
+6.4742e-30
+1.14176e-29
+1.17903e-33
+1.48469e-30
+2.15034e-29
+2.73357e-29
+3.41296e-30
+6.86197e-30
+1.03143e-29
+9.6305e-32
+6.29034e-30
+9.45438e-30
+1.10724e-29
+2.14343e-32
+2.166e-30
+2.07297e-31
+1.20789e-29
+1.69383e-29
+1.53647e-29
+6.91101e-30
+0
+6.94919e-31
+1.71426e-30
+6.65782e-30
+1.28851e-29
+3.08177e-29
+5.06704e-30
+4.81459e-30
+8.83663e-31
+5.37785e-32
+2.29582e-31
+1.5302e-29
+6.64475e-29
+4.03165e-30
+2.03919e-31
+2.27241e-29
+4.35723e-32
+1.76014e-29
+1.5451e-29
+1.65832e-29
+3.86768e-32
+3.90555e-30
+5.60201e-30
+6.34929e-30
+8.58015e-31
+6.71529e-30
+2.7355e-30
+2.65459e-30
+0
+1.98581e-30
+1.87809e-29
+1.24946
+0.734744
+0.971222
+1.10452
+1.19484
+1.26707
+1.32938
+1.3851
+1.43595
+1.45097
+0.388878
+1.61118e-30
+6.29177e-30
+9.82764e-29
+1.49902e-28
+2.96319e-29
+3.77193e-30
+7.05843e-30
+1.01238e-28
+4.01819e-29
+1.05012e-28
+2.52447e-28
+4.22633e-28
+2.62191e-28
+2.14338e-28
+3.17205e-28
+7.71697e-28
+2.87034e-29
+1.60115e-29
+1.62576e-30
+3.96543e-31
+3.27466e-29
+0
+1.41469e-28
+2.53495e-29
+2.29685e-28
+2.03545e-28
+3.33562e-31
+1.68642e-29
+2.68573e-29
+9.15623e-29
+8.11908e-29
+4.71118e-30
+4.27382e-29
+1.45173e-29
+1.13652e-28
+1.79077e-29
+3.86547e-29
+1.70283e-29
+5.7053e-29
+2.40782e-31
+4.14136e-30
+1.06797e-28
+1.13988e-28
+1.06614e-29
+7.98337e-29
+4.28802e-29
+2.06443e-30
+2.04452e-29
+5.15213e-29
+2.98767e-30
+1.1648e-29
+1.50146e-29
+6.91595e-31
+2.42781e-31
+8.51374e-30
+4.8459e-29
+5.99206e-29
+1.52113e-31
+2.58087e-29
+2.14829e-29
+4.76159e-29
+1.77603e-28
+1.67492e-29
+3.16599e-29
+1.31871e-29
+5.98191e-28
+3.15371e-28
+1.74441e-29
+7.48243e-29
+2.99143e-29
+4.16464e-30
+7.57961e-29
+1.79106e-29
+6.45935e-29
+3.3015e-29
+8.03932e-30
+8.32553e-31
+1.29786e-31
+5.22305e-29
+1.97385e-29
+1.33167e-30
+8.29571e-31
+2.6708e-29
+3.58373e-29
+2.0116e-29
+7.45671e-31
+1.7162e-28
+2.82731e-30
+4.82667e-29
+8.20738e-30
+6.52362e-31
+1.62528e-28
+8.71497e-29
+1.58873e-30
+1.53806e-29
+3.56246e-30
+2.16705e-31
+4.46301e-30
+8.94254e-30
+1.54713e-29
+8.47002e-30
+3.10013e-29
+6.2341e-29
+1.04939e-28
+1.88592e-29
+6.522e-30
+6.3422e-29
+1.56368e-28
+1.96064e-29
+2.68253e-30
+1.91749e-30
+4.51379e-30
+1.1852e-29
+2.59432e-29
+1.78316e-29
+4.64075e-30
+5.01593e-29
+5.64019e-30
+9.70456e-29
+4.16598e-29
+1.56284e-29
+3.67239e-30
+1.47835e-29
+1.29527e-29
+5.59288e-29
+9.37944e-30
+2.9784e-30
+5.32192e-31
+7.86785e-29
+2.95625e-29
+1.39109e-29
+4.76828e-30
+3.21063e-31
+4.50779e-30
+1.33928e-30
+3.44153e-29
+2.24888e-30
+4.56882e-29
+1.73502e-29
+1.44304e-29
+5.99662e-29
+3.22702e-30
+1.06735e-28
+2.21348e-29
+7.17054e-30
+3.6982e-29
+9.40854e-30
+2.68043e-29
+2.60496e-29
+1.34037e-30
+2.24731e-29
+5.66846e-29
+2.10317e-30
+1.19509e-30
+2.08361e-31
+7.71813e-30
+6.16687e-29
+9.10196e-30
+1.37786e-30
+6.47913e-30
+6.99403e-31
+5.61647e-31
+5.94165e-30
+2.80341e-30
+1.31826e-30
+3.1258e-30
+8.20916e-31
+1.92186e-32
+0
+0.763795
+0.766885
+0.929771
+1.06886
+1.17124
+1.25138
+1.31845
+1.37712
+1.42988
+1.31409
+0.300903
+4.43281e-29
+4.60652e-30
+2.50983e-28
+2.72255e-28
+2.47632e-29
+8.38165e-29
+4.56122e-29
+6.41789e-31
+1.74191e-30
+5.33732e-29
+1.56458e-28
+4.22564e-29
+5.90594e-29
+2.48094e-31
+8.98112e-29
+4.00124e-29
+9.03428e-30
+1.82991e-29
+1.37944e-30
+1.34712e-30
+5.73146e-29
+1.28509e-30
+2.82396e-30
+3.13996e-30
+7.09746e-29
+1.05212e-29
+2.96927e-29
+3.0144e-29
+8.23913e-29
+3.33323e-29
+8.78408e-29
+6.33333e-30
+6.6523e-29
+7.144e-29
+4.10771e-29
+1.37023e-28
+6.95975e-29
+7.8959e-30
+8.57036e-31
+2.62159e-29
+3.26395e-30
+1.27579e-31
+4.49012e-29
+1.6619e-28
+1.41019e-28
+0
+9.03906e-28
+8.14463e-28
+2.68657e-30
+4.84893e-28
+8.02232e-29
+1.3205e-29
+6.23498e-30
+7.69936e-30
+2.68021e-29
+3.82283e-30
+5.51711e-31
+6.27796e-29
+1.64662e-29
+8.92478e-29
+5.91269e-28
+1.52844e-29
+4.75754e-31
+3.11795e-29
+6.73175e-29
+1.98257e-28
+9.42359e-29
+5.439e-30
+1.54005e-28
+4.65448e-29
+1.55769e-30
+1.75464e-29
+1.00056e-29
+8.31285e-30
+3.60268e-30
+2.5123e-34
+1.93171e-29
+4.09009e-29
+8.97221e-29
+6.55763e-30
+2.78435e-29
+9.23606e-30
+2.9401e-30
+2.51872e-30
+2.6199e-29
+1.70172e-29
+5.01761e-30
+1.16801e-29
+9.46347e-30
+1.01819e-28
+7.07952e-29
+9.11524e-29
+4.69901e-30
+1.12183e-29
+1.89848e-30
+3.58034e-29
+2.88313e-29
+4.99415e-31
+1.7518e-29
+2.84751e-29
+5.09258e-29
+3.3476e-29
+1.15813e-30
+1.7083e-30
+1.89556e-29
+4.96457e-30
+1.93443e-29
+3.46125e-30
+1.90002e-30
+1.98442e-29
+1.62654e-33
+1.14418e-29
+1.31657e-31
+1.33403e-29
+0
+7.00421e-31
+6.59531e-29
+2.65675e-30
+3.02026e-29
+8.46701e-30
+2.72527e-31
+5.98815e-30
+1.26596e-29
+5.65953e-29
+2.09531e-29
+1.20722e-30
+5.82896e-32
+1.27352e-31
+6.65366e-30
+1.92694e-30
+7.50303e-30
+2.13133e-29
+1.00053e-30
+1.92189e-31
+4.67727e-30
+1.13785e-32
+1.33995e-30
+1.55625e-29
+2.72809e-29
+2.75991e-29
+6.71509e-30
+6.1858e-31
+7.90965e-30
+1.32148e-29
+5.69895e-31
+8.66411e-31
+4.1368e-31
+2.95862e-31
+3.47594e-29
+1.64268e-29
+7.2584e-30
+6.21865e-29
+2.31783e-30
+1.80841e-29
+1.08217e-29
+2.29006e-29
+2.62126e-29
+5.49974e-29
+6.0539e-33
+4.15481e-29
+6.23636e-30
+1.4087e-31
+5.20571e-30
+6.82686e-30
+2.95104e-30
+1.61855e-29
+1.57095e-30
+2.07769e-30
+1.87626e-29
+0.706963
+0.881645
+0.927649
+1.04636
+1.14887
+1.23335
+1.30446
+1.36621
+1.42122
+1.11557
+0.187927
+1.81171e-28
+1.3192e-28
+1.12651e-29
+7.53768e-29
+4.28867e-28
+1.04876e-28
+3.90545e-30
+1.34293e-29
+3.94626e-29
+1.4616e-29
+1.50986e-28
+7.07742e-29
+3.41783e-30
+3.34235e-30
+1.48918e-28
+6.47211e-29
+1.96219e-31
+3.2277e-29
+3.15603e-29
+4.97088e-29
+4.0166e-31
+3.42081e-29
+0
+7.63606e-34
+5.88699e-29
+3.82996e-29
+2.81476e-28
+0
+1.34076e-30
+9.09618e-31
+1.45667e-28
+3.47842e-30
+1.35887e-31
+1.07579e-29
+1.43094e-29
+1.64386e-28
+2.60617e-29
+1.31909e-28
+1.84678e-28
+1.52959e-29
+8.23868e-29
+5.10438e-29
+1.00366e-28
+1.6447e-28
+1.02988e-31
+1.49138e-28
+8.26675e-29
+1.61421e-28
+2.43991e-28
+1.1876e-28
+8.95115e-30
+2.05668e-28
+5.46733e-30
+5.63889e-29
+1.61337e-28
+7.16151e-29
+2.51792e-29
+2.73226e-30
+6.45022e-29
+1.7391e-29
+7.06824e-32
+1.5531e-29
+2.83263e-29
+1.02826e-29
+4.01896e-31
+1.00496e-30
+9.80075e-31
+3.82856e-30
+5.97885e-29
+1.20612e-28
+1.80301e-29
+2.87358e-29
+2.80511e-29
+4.19269e-30
+4.09347e-30
+9.667e-30
+1.3105e-29
+1.12874e-29
+1.24838e-29
+2.79701e-31
+7.38113e-30
+4.36468e-29
+3.74355e-31
+1.46532e-29
+9.90952e-31
+9.66963e-31
+3.77134e-30
+5.03769e-29
+6.06782e-30
+8.96792e-30
+8.54446e-31
+7.50496e-30
+2.08196e-30
+5.07768e-31
+1.00307e-29
+2.4468e-30
+1.84146e-29
+2.32977e-30
+4.73709e-30
+2.93427e-32
+1.41071e-29
+3.7561e-29
+2.58309e-32
+7.21401e-29
+4.25598e-29
+5.89947e-31
+9.17808e-32
+6.46809e-30
+1.39801e-30
+5.33451e-31
+1.01805e-30
+7.28202e-31
+1.04332e-29
+1.23068e-30
+4.68699e-31
+2.7801e-29
+1.82485e-29
+2.12806e-29
+4.40494e-29
+2.37847e-30
+2.70519e-29
+1.0051e-30
+1.23966e-30
+1.34136e-29
+8.3674e-30
+0
+1.25206e-31
+1.93766e-30
+5.7803e-30
+2.82172e-29
+7.78113e-30
+3.80425e-29
+1.43124e-30
+4.1469e-29
+7.18376e-29
+1.9293e-29
+3.83641e-31
+1.03832e-30
+6.50422e-31
+9.47489e-30
+8.64243e-32
+4.01619e-32
+1.54293e-30
+1.15068e-29
+1.04655e-30
+8.42544e-31
+7.38713e-30
+5.12234e-31
+7.06539e-32
+4.85427e-31
+2.15444e-29
+3.94016e-29
+2.05309e-33
+6.55896e-30
+2.41239e-31
+2.90606e-29
+1.42025e-30
+1.20504e-30
+2.89342e-30
+1.89294e-30
+2.32183e-29
+8.99301e-32
+7.76061e-30
+1.70032e-29
+1.8342e-31
+3.10038e-30
+7.34588e-30
+7.52321e-30
+1.34111e-33
+0.814462
+0.936572
+0.947853
+1.04106
+1.13397
+1.21711
+1.28973
+1.35357
+1.41055
+0.865411
+0.0735513
+8.35259e-29
+3.62474e-30
+1.7968e-29
+3.47482e-30
+2.75567e-28
+6.74485e-29
+7.33686e-30
+2.23909e-28
+1.87703e-28
+4.59376e-29
+1.51608e-29
+4.12237e-31
+2.86946e-30
+1.01114e-28
+9.08942e-29
+3.29628e-29
+6.9573e-30
+3.15746e-29
+5.67656e-30
+1.94455e-28
+8.69775e-29
+2.7962e-28
+8.13476e-30
+2.26473e-30
+1.12158e-29
+7.80419e-29
+8.48527e-30
+3.97259e-29
+2.14494e-29
+1.35225e-28
+1.33945e-29
+2.00887e-29
+1.46539e-28
+1.92241e-29
+1.78046e-30
+2.7234e-30
+5.63296e-29
+1.66845e-30
+1.72201e-29
+3.22878e-29
+4.09624e-29
+2.2904e-29
+5.59682e-29
+5.12976e-30
+8.57026e-29
+5.46688e-31
+2.13263e-30
+2.13516e-29
+8.88196e-29
+9.49312e-29
+3.27725e-29
+4.76571e-31
+1.36516e-33
+1.3167e-28
+8.48356e-29
+9.2165e-30
+6.81233e-30
+6.65991e-30
+4.57216e-29
+3.82053e-29
+6.22178e-30
+0
+1.60752e-28
+1.67938e-29
+2.0458e-30
+3.55706e-30
+1.75802e-29
+6.87291e-29
+4.98072e-29
+6.56459e-29
+1.78698e-29
+6.96678e-30
+4.84067e-29
+0
+8.26518e-34
+3.21547e-29
+2.75822e-30
+2.03809e-29
+1.48115e-30
+2.57267e-30
+1.00569e-29
+3.83761e-30
+1.81452e-29
+5.27318e-30
+2.6201e-33
+2.36238e-29
+1.39824e-28
+9.63658e-30
+4.69253e-30
+5.37647e-30
+1.52486e-30
+3.10783e-29
+1.89706e-30
+2.60545e-31
+2.07076e-33
+1.33719e-29
+1.32322e-30
+8.85803e-29
+1.64567e-30
+1.00436e-31
+2.20664e-31
+5.38663e-30
+2.82849e-30
+3.66855e-31
+1.80504e-30
+1.59354e-33
+3.39867e-31
+7.48085e-31
+1.58725e-29
+1.77894e-29
+4.08264e-29
+5.44319e-30
+3.6049e-30
+4.48666e-31
+8.58371e-31
+1.156e-29
+2.80559e-29
+2.34565e-30
+5.3482e-29
+4.86606e-29
+1.83234e-30
+3.32631e-30
+2.07792e-30
+1.40747e-32
+1.66192e-30
+3.87736e-30
+1.40365e-32
+1.00062e-29
+1.24524e-32
+1.21505e-28
+9.97006e-30
+1.85067e-31
+1.54494e-29
+2.75254e-31
+1.55387e-30
+4.56511e-29
+2.9814e-29
+6.38282e-31
+9.35238e-30
+3.08604e-30
+1.07019e-29
+8.39185e-32
+1.0185e-29
+3.51938e-29
+5.66491e-30
+1.83903e-30
+2.5852e-30
+1.24399e-31
+2.72979e-31
+9.5841e-30
+5.65633e-30
+1.80051e-30
+2.46915e-31
+8.67017e-30
+3.3732e-32
+6.37859e-31
+6.2016e-31
+7.83699e-30
+0
+2.46804e-32
+0
+7.89178e-30
+3.7599e-29
+5.32116e-30
+3.25626e-31
+1.66116e-29
+0
+8.05815e-32
+5.36086e-33
+0.887491
+0.938828
+0.999701
+1.04993
+1.12919
+1.20615
+1.27695
+1.34102
+1.399
+0.463646
+0.00311087
+1.91966e-29
+2.57531e-28
+1.03699e-29
+4.51584e-30
+1.06243e-28
+2.18568e-28
+1.58081e-28
+2.59786e-28
+3.67802e-31
+8.99063e-30
+5.07366e-29
+5.53836e-29
+4.5466e-30
+2.88606e-29
+6.9818e-29
+2.7696e-29
+9.35762e-29
+1.85629e-28
+3.32052e-28
+2.34997e-28
+1.03227e-29
+3.24651e-28
+1.21306e-28
+1.07764e-30
+1.43657e-30
+1.36704e-28
+8.81856e-29
+1.86185e-29
+4.75758e-29
+2.91178e-28
+1.65521e-30
+3.65707e-29
+3.57107e-30
+1.15613e-28
+1.52346e-30
+2.09954e-31
+3.28409e-30
+5.3587e-29
+3.6731e-29
+6.23812e-29
+2.09592e-30
+0
+2.00873e-30
+2.82959e-30
+1.55809e-28
+2.71915e-29
+2.66156e-29
+1.21315e-28
+5.15013e-29
+1.86961e-28
+5.30577e-29
+2.64944e-29
+6.48268e-30
+4.06171e-30
+3.00542e-29
+1.96898e-29
+8.1414e-29
+5.23768e-29
+5.79927e-32
+2.00623e-30
+3.68638e-29
+1.72897e-29
+4.23013e-30
+1.27718e-30
+1.15167e-28
+5.00837e-29
+1.92273e-31
+9.17896e-30
+4.57999e-30
+2.58095e-29
+3.19557e-29
+2.47004e-29
+2.05546e-30
+2.77393e-29
+1.96685e-30
+1.13471e-29
+7.43529e-29
+5.71367e-29
+2.35219e-30
+3.59633e-30
+2.37627e-29
+2.32381e-29
+8.42956e-31
+9.50217e-30
+2.17366e-29
+5.03123e-31
+3.07731e-30
+3.89714e-29
+3.39942e-29
+3.08592e-32
+2.81154e-30
+9.89678e-31
+5.26847e-30
+4.41816e-29
+4.31974e-29
+1.69852e-29
+2.45625e-30
+2.40313e-30
+2.13009e-31
+1.12628e-30
+2.71646e-30
+1.97414e-29
+2.47869e-29
+5.88741e-29
+8.19627e-30
+3.87707e-29
+3.83792e-30
+2.91e-29
+2.56002e-29
+1.75696e-29
+5.60206e-29
+1.00561e-29
+1.63972e-29
+4.16881e-31
+1.04416e-30
+7.70919e-30
+1.41208e-31
+6.08338e-32
+1.79825e-30
+4.70521e-30
+2.27047e-29
+6.72021e-30
+5.42036e-30
+1.3238e-32
+9.79e-29
+5.84392e-29
+1.494e-30
+1.3945e-29
+1.182e-30
+1.15477e-30
+1.61978e-30
+1.09889e-30
+4.29404e-30
+3.2887e-29
+4.10072e-30
+3.13939e-29
+6.60801e-30
+2.78432e-29
+3.82052e-29
+2.46443e-29
+2.28056e-30
+5.56235e-31
+2.47557e-29
+9.58671e-30
+1.16928e-29
+2.30611e-29
+1.1153e-29
+4.84969e-31
+5.77542e-30
+1.8438e-30
+2.54977e-31
+1.45194e-29
+4.28783e-31
+1.91671e-33
+7.3871e-30
+2.39802e-29
+3.51049e-30
+3.42606e-30
+2.09082e-31
+3.2664e-30
+5.66988e-30
+9.53656e-30
+1.35283e-30
+4.04042e-30
+6.52247e-30
+7.08836e-31
+1.24044e-30
+9.91334e-30
+0
+0.949893
+0.977509
+1.05806
+1.07232
+1.13601
+1.2027
+1.26787
+1.32936
+0.988855
+0.102197
+4.05682e-28
+2.17864e-28
+5.63397e-29
+9.79575e-30
+7.93949e-29
+4.76852e-29
+2.8287e-29
+1.1463e-29
+3.46921e-30
+8.70836e-30
+1.16109e-28
+2.59049e-28
+6.78517e-29
+3.46618e-28
+1.18489e-28
+6.39478e-29
+2.90389e-28
+4.4183e-29
+6.02569e-29
+3.61809e-29
+3.95192e-29
+3.10136e-29
+2.08319e-28
+7.51749e-29
+1.20314e-28
+1.50707e-28
+4.44586e-34
+3.43675e-29
+1.97445e-28
+3.67489e-31
+9.12766e-32
+1.40723e-30
+1.37919e-30
+4.08416e-29
+5.59059e-29
+3.24199e-29
+1.7872e-29
+7.78481e-30
+6.17815e-30
+2.16021e-29
+7.32414e-32
+1.03347e-29
+1.06964e-28
+9.92259e-30
+1.08151e-30
+3.24154e-30
+4.14827e-30
+1.01725e-30
+3.98317e-30
+2.44948e-31
+1.49412e-30
+1.46269e-30
+3.66836e-30
+3.23432e-29
+1.07814e-29
+1.45706e-28
+2.58745e-30
+1.01355e-29
+2.02596e-29
+6.00304e-30
+4.85951e-30
+2.74165e-29
+3.65514e-29
+6.59362e-29
+5.41143e-30
+3.95015e-31
+9.65292e-30
+1.07561e-29
+3.46039e-29
+4.32457e-32
+6.00223e-29
+4.20829e-29
+1.3623e-30
+5.33881e-30
+1.30994e-29
+1.44729e-31
+4.2124e-30
+8.72122e-30
+1.20085e-30
+1.72798e-29
+2.33121e-29
+3.78844e-30
+1.7659e-29
+2.70106e-29
+6.61105e-30
+5.63808e-30
+3.40753e-30
+9.92493e-31
+3.88642e-30
+6.76365e-30
+2.34666e-31
+9.1471e-30
+2.23065e-29
+4.75655e-30
+7.69364e-30
+8.38448e-31
+1.53809e-29
+4.36611e-30
+8.71799e-30
+4.18261e-30
+2.13793e-29
+1.00275e-30
+8.14589e-32
+9.6047e-31
+4.30977e-30
+6.76211e-31
+4.58636e-29
+5.18959e-30
+1.68843e-29
+9.90754e-30
+8.25571e-31
+3.70522e-30
+1.0068e-29
+2.27097e-30
+5.3694e-29
+3.39672e-30
+1.47666e-30
+5.77932e-32
+3.61898e-30
+4.4814e-30
+1.38575e-29
+7.62632e-30
+2.98491e-29
+1.4654e-29
+3.17408e-30
+4.36679e-29
+1.89869e-31
+4.75548e-29
+2.90741e-30
+5.13768e-29
+4.3506e-30
+2.87489e-29
+3.36975e-30
+5.2741e-29
+6.72753e-30
+5.60726e-30
+1.84463e-29
+5.98843e-31
+7.14278e-30
+5.72943e-31
+2.00929e-29
+1.96454e-29
+0
+3.2648e-30
+1.14871e-30
+1.79761e-29
+4.88375e-31
+4.30102e-30
+6.57787e-30
+2.8555e-30
+1.00741e-30
+4.38998e-31
+6.67776e-31
+9.43029e-30
+2.00364e-29
+2.02369e-30
+6.25481e-30
+4.83866e-29
+9.34655e-30
+1.11967e-30
+1.81e-30
+2.83201e-29
+2.76294e-32
+2.70184e-32
+2.94253e-30
+7.99284e-30
+7.09159e-31
+3.28107e-31
+1.9138e-29
+1.87302e-29
+0.988319
+1.02622
+1.06239
+1.13882
+1.14874
+1.20771
+1.26734
+1.30437
+0.32635
+1.68421e-29
+6.58579e-29
+1.44848e-28
+5.78217e-28
+1.75163e-28
+2.35931e-31
+1.1248e-29
+4.74742e-28
+3.70576e-29
+3.08605e-29
+7.53968e-30
+5.11775e-30
+3.92023e-29
+5.64853e-29
+1.94485e-31
+2.55485e-28
+1.82349e-31
+5.773e-29
+1.57389e-30
+1.0885e-29
+1.06352e-29
+1.31491e-29
+2.9323e-28
+4.47758e-29
+1.74951e-28
+3.78479e-29
+3.05558e-28
+1.41049e-31
+2.52261e-33
+3.02784e-29
+4.25806e-29
+2.16916e-29
+1.44909e-28
+2.70419e-28
+8.71498e-29
+1.68107e-29
+4.1155e-29
+2.78489e-30
+8.80396e-30
+2.76034e-28
+7.00464e-29
+4.0467e-31
+3.55576e-30
+9.81942e-32
+3.76571e-29
+7.20496e-29
+2.59267e-29
+5.04437e-29
+1.23111e-29
+4.80612e-29
+7.34476e-31
+1.03022e-28
+6.52496e-29
+4.36149e-29
+3.6224e-30
+1.03905e-29
+1.75956e-28
+1.21154e-28
+1.93689e-29
+7.91798e-30
+9.21476e-29
+1.61951e-28
+6.22101e-29
+1.16188e-29
+6.68563e-29
+1.10584e-29
+6.36333e-29
+5.37363e-30
+2.14559e-28
+9.01422e-29
+4.98451e-30
+3.81221e-29
+3.84487e-30
+2.66472e-29
+6.49672e-30
+3.20809e-29
+1.71659e-29
+1.05858e-30
+6.53051e-29
+8.42236e-29
+1.40121e-29
+7.42958e-30
+1.19914e-28
+5.47471e-29
+1.42927e-31
+4.43394e-29
+1.63692e-30
+3.25213e-30
+1.02727e-29
+4.4634e-29
+1.20532e-29
+1.88215e-30
+1.03295e-30
+1.36772e-30
+5.51041e-29
+1.16973e-29
+1.05289e-31
+4.94542e-30
+4.81997e-30
+1.53161e-30
+1.4995e-30
+3.27302e-30
+1.07207e-29
+6.99514e-30
+5.38465e-30
+5.24697e-30
+3.86645e-29
+5.70104e-33
+0
+6.66394e-31
+1.1519e-30
+3.45742e-30
+5.53496e-30
+1.70419e-29
+6.48984e-30
+1.61772e-29
+3.01993e-30
+1.53458e-29
+2.82607e-29
+3.00903e-29
+1.38488e-30
+3.64727e-29
+6.81025e-29
+9.9084e-29
+1.24608e-28
+8.20313e-30
+1.06356e-29
+2.25554e-30
+7.30326e-31
+1.0944e-30
+4.25015e-30
+1.68566e-31
+2.58178e-30
+7.68954e-30
+1.52789e-31
+4.49982e-30
+2.63938e-29
+1.7297e-30
+7.7231e-30
+3.34038e-32
+1.30069e-31
+5.32113e-29
+1.23245e-31
+7.67987e-30
+2.36452e-30
+1.02286e-30
+1.35505e-30
+0
+1.06698e-31
+1.0384e-31
+0
+1.39069e-29
+1.58829e-29
+2.45382e-32
+7.20843e-30
+7.79359e-31
+1.70627e-30
+1.49419e-29
+1.34871e-29
+2.79977e-30
+1.69903e-29
+2.51492e-29
+4.57433e-30
+1.36489e-29
+1.95492e-29
+5.33497e-30
+2.6074e-31
+2.24167e-30
+2.19828e-30
+6.32321e-32
+1.46748e-29
+1.01323
+1.04789
+1.08868
+1.15512
+1.13261
+1.21352
+1.26922
+0.515456
+0.0127151
+5.5211e-28
+8.81064e-34
+4.24096e-29
+1.18112e-29
+3.54181e-29
+1.77007e-29
+2.7718e-30
+8.20938e-29
+5.38036e-29
+1.04049e-29
+2.29194e-29
+1.69682e-28
+3.81333e-30
+1.43493e-28
+4.22439e-29
+5.7229e-29
+2.24069e-30
+2.20322e-30
+2.62985e-29
+1.34462e-28
+4.62891e-30
+4.07537e-29
+1.77251e-29
+1.73462e-29
+3.01776e-29
+5.58337e-29
+2.89052e-29
+4.41811e-29
+1.55629e-29
+2.37929e-29
+5.95974e-29
+2.59164e-29
+1.28353e-28
+2.32638e-28
+3.79176e-29
+6.26872e-29
+3.62867e-29
+3.1945e-30
+2.22208e-29
+0
+6.72676e-30
+6.36821e-29
+1.34277e-29
+3.10815e-29
+2.21591e-28
+6.70216e-31
+1.04656e-29
+1.13718e-28
+5.06662e-29
+4.34955e-30
+2.67035e-31
+2.34399e-30
+3.11315e-30
+8.94966e-30
+1.75531e-29
+2.37553e-29
+2.09404e-30
+1.83911e-29
+9.37571e-30
+4.25219e-29
+8.48204e-31
+1.16593e-29
+2.02604e-31
+4.45568e-29
+3.52894e-29
+2.72408e-29
+3.7473e-30
+4.09857e-31
+1.94681e-29
+5.22001e-30
+4.21883e-30
+3.70788e-29
+4.38394e-29
+9.86199e-31
+2.47087e-30
+7.35973e-30
+8.25454e-30
+1.05008e-32
+6.86333e-30
+6.7075e-30
+3.00795e-29
+6.40098e-30
+4.13314e-29
+1.79447e-29
+7.01116e-29
+1.18876e-31
+2.97235e-29
+1.81647e-30
+4.88436e-29
+9.7346e-31
+2.07054e-29
+3.71352e-30
+4.10305e-31
+3.95257e-31
+6.14887e-30
+3.37625e-30
+2.29599e-30
+3.59267e-31
+7.07223e-30
+6.90934e-30
+5.33098e-30
+3.24899e-31
+1.98812e-30
+1.31039e-29
+5.53401e-33
+2.66303e-29
+7.19895e-32
+2.27661e-29
+5.55506e-30
+6.07313e-31
+2.6135e-29
+1.23431e-28
+9.46314e-29
+1.07101e-28
+1.16169e-29
+4.2151e-29
+5.77678e-29
+2.24213e-31
+5.37478e-30
+5.36752e-29
+1.65649e-29
+8.01727e-31
+7.7859e-31
+1.21668e-29
+4.16828e-29
+4.52086e-30
+7.05072e-31
+2.10938e-30
+1.07456e-29
+8.01527e-30
+3.58971e-31
+3.50107e-29
+5.47867e-29
+9.47196e-30
+1.74641e-29
+9.01053e-30
+2.32056e-29
+4.33633e-29
+6.39706e-30
+1.27249e-29
+3.10178e-30
+1.49073e-30
+2.95717e-30
+7.378e-30
+1.37322e-30
+2.22099e-30
+2.72728e-29
+2.60388e-30
+8.19982e-30
+3.55958e-30
+5.4173e-30
+7.60047e-30
+3.86719e-30
+6.52257e-33
+3.12454e-30
+2.89557e-29
+7.41891e-31
+2.01416e-30
+3.83577e-30
+9.40029e-31
+2.40828e-29
+3.19399e-29
+7.78024e-30
+1.72397e-30
+2.83525e-30
+4.73464e-30
+4.5987e-30
+6.19455e-32
+4.89245e-30
+6.30917e-32
+0
+1.05302
+1.08173
+1.11533
+1.11577
+1.19816
+1.01985
+0.409329
+0.0132371
+9.55936e-30
+2.87096e-29
+1.4366e-29
+5.63578e-29
+4.47629e-29
+2.50509e-28
+8.50537e-30
+4.22135e-29
+3.692e-29
+1.1274e-30
+9.9513e-30
+0
+5.20746e-29
+6.66868e-29
+1.16235e-28
+9.35923e-29
+1.09104e-31
+2.89227e-28
+5.54722e-29
+7.49372e-29
+3.26508e-29
+1.42261e-29
+3.37059e-28
+5.02084e-29
+2.05507e-28
+1.459e-28
+3.57568e-29
+1.26158e-29
+1.93172e-29
+1.21165e-29
+2.96867e-30
+3.91144e-29
+2.85256e-30
+7.76247e-30
+1.9471e-29
+4.77099e-30
+5.72526e-29
+1.20929e-29
+3.39343e-29
+4.64388e-29
+0
+9.5224e-29
+1.26631e-29
+6.33077e-30
+5.02391e-30
+6.51967e-32
+4.33834e-29
+1.14258e-29
+2.06145e-29
+8.94966e-31
+7.88967e-30
+6.95542e-29
+5.38283e-29
+5.52523e-32
+5.49125e-29
+9.67875e-30
+8.17664e-30
+3.83974e-30
+1.3404e-29
+8.01189e-29
+8.71726e-30
+1.41105e-29
+4.92969e-29
+1.50319e-30
+1.32583e-29
+8.47042e-29
+5.07916e-29
+1.42776e-28
+2.1637e-29
+2.48623e-29
+3.45992e-29
+1.43549e-31
+1.40519e-31
+3.37938e-30
+6.47867e-30
+2.07065e-30
+5.06678e-31
+4.95912e-29
+3.10652e-29
+1.18754e-31
+1.16242e-29
+2.84551e-30
+4.00693e-30
+1.56843e-29
+3.08042e-29
+3.75643e-30
+0
+4.89264e-30
+1.407e-29
+4.21547e-29
+3.37597e-29
+4.48474e-30
+5.15573e-29
+2.24222e-29
+3.42628e-29
+1.01387e-29
+1.18027e-29
+1.3555e-29
+3.36649e-31
+9.2808e-30
+3.68139e-30
+2.37774e-29
+4.48477e-29
+3.44375e-30
+3.6304e-29
+3.5507e-29
+1.27059e-28
+5.19804e-30
+3.61485e-29
+3.92678e-30
+3.84382e-30
+2.11743e-29
+2.29427e-29
+8.0734e-30
+1.77588e-29
+3.34935e-29
+8.85246e-30
+3.2018e-29
+1.25499e-30
+5.25089e-32
+3.0641e-30
+9.89087e-29
+1.14545e-30
+1.14303e-29
+6.63746e-29
+1.53524e-30
+1.20442e-29
+1.01815e-30
+3.22358e-30
+2.83609e-29
+1.67602e-29
+1.81929e-30
+5.80427e-31
+3.55473e-30
+1.25008e-29
+6.63081e-30
+7.61698e-29
+1.16556e-29
+5.33954e-30
+2.24603e-29
+7.70437e-30
+1.88997e-30
+1.26706e-29
+3.24516e-29
+1.17584e-31
+2.67502e-30
+6.53192e-29
+6.63589e-29
+4.39566e-29
+1.28703e-29
+9.50296e-30
+8.41924e-31
+2.61912e-29
+2.68254e-30
+2.49871e-29
+2.4377e-29
+2.05822e-30
+2.59803e-32
+2.83043e-30
+1.50183e-29
+1.87472e-30
+1.86895e-29
+2.56987e-30
+4.45025e-30
+6.78685e-32
+1.11994e-29
+4.04238e-29
+2.27762e-29
+1.53929e-30
+6.00859e-30
+1.47015e-30
+1.46472e-29
+1.09536
+1.09565
+0.953245
+0.799021
+0.465099
+0.114452
+0.00227104
+2.21456e-29
+1.95713e-28
+5.27326e-29
+1.71185e-30
+2.05942e-29
+4.9933e-29
+3.64697e-30
+9.94741e-30
+5.62624e-29
+5.9943e-29
+4.55772e-29
+1.26579e-28
+4.39376e-29
+2.00542e-29
+6.37934e-29
+2.1994e-29
+7.09364e-29
+3.31233e-29
+7.33146e-31
+6.25698e-29
+1.44866e-28
+1.69899e-28
+2.18197e-29
+1.85421e-30
+2.92339e-31
+1.60679e-29
+1.48327e-28
+3.37269e-30
+8.17168e-30
+5.5747e-29
+3.74747e-29
+1.02169e-30
+6.26716e-30
+2.2143e-30
+9.66957e-31
+9.47887e-31
+3.93036e-29
+1.20732e-28
+1.29005e-28
+9.23635e-29
+3.93062e-29
+1.0714e-28
+7.47604e-30
+3.44373e-29
+8.45127e-30
+9.61658e-30
+1.20659e-30
+2.4977e-29
+1.66768e-30
+1.52892e-28
+7.13438e-31
+1.09364e-28
+7.93555e-29
+2.69452e-30
+1.11684e-28
+1.76489e-28
+3.57703e-29
+5.05271e-29
+3.82708e-30
+1.83808e-30
+4.7688e-29
+1.29924e-28
+1.41589e-29
+2.3469e-29
+1.57448e-28
+3.34192e-30
+1.17907e-28
+1.66506e-28
+1.13626e-30
+3.16332e-29
+5.86531e-29
+5.75094e-29
+6.1636e-29
+9.25391e-30
+2.8686e-29
+9.23755e-29
+8.72546e-30
+2.07041e-29
+2.58822e-30
+1.70625e-28
+3.58243e-30
+3.92021e-31
+9.19129e-29
+5.40069e-29
+6.21323e-29
+3.6041e-29
+3.59743e-31
+3.11659e-30
+3.05486e-30
+2.40436e-29
+2.06197e-30
+1.99756e-30
+2.81923e-30
+9.28689e-30
+1.08617e-28
+4.71784e-30
+7.86761e-29
+1.30903e-28
+2.24771e-29
+2.769e-31
+1.70529e-29
+2.11526e-29
+3.38368e-29
+4.23604e-29
+1.0376e-29
+1.01659e-29
+2.40051e-31
+6.99043e-30
+2.73809e-29
+1.99484e-30
+1.06394e-29
+3.06287e-29
+3.33745e-30
+1.17558e-28
+3.19849e-30
+2.36922e-29
+1.22774e-29
+7.65094e-31
+2.64942e-29
+1.01378e-29
+3.57304e-30
+0
+1.72315e-31
+1.6874e-31
+5.85771e-29
+4.06753e-29
+1.26018e-29
+5.48678e-30
+7.3084e-30
+2.4682e-29
+4.32754e-30
+5.92414e-30
+1.4707e-31
+1.93178e-29
+3.28314e-32
+7.23126e-30
+6.09068e-29
+7.88345e-30
+5.17602e-31
+2.98489e-30
+1.03955e-30
+6.35901e-30
+1.10722e-29
+9.82462e-31
+1.93438e-29
+4.35806e-29
+4.97254e-30
+3.39867e-29
+9.33879e-29
+2.1393e-31
+3.35597e-30
+1.46307e-30
+3.92814e-29
+2.18468e-30
+3.07504e-30
+6.10803e-33
+4.00355e-30
+3.25078e-31
+8.37872e-32
+2.75476e-30
+6.28203e-29
+3.58542e-30
+1.40065e-29
+1.12341e-30
+5.35973e-29
+1.5042e-29
+1.67372e-29
+2.30812e-29
+1.56767e-30
+3.91742e-30
+5.97846e-32
+3.65359e-29
+0
+0.386145
+0.295297
+0.167726
+0.061381
+0.00351932
+2.16659e-30
+2.17976e-29
+9.67652e-29
+2.05734e-30
+3.96432e-30
+6.23592e-29
+2.63045e-28
+6.9184e-29
+0
+1.43828e-28
+1.22766e-28
+2.3261e-29
+6.78227e-29
+3.99623e-29
+0
+1.67719e-30
+1.64745e-30
+2.09875e-29
+2.063e-29
+3.06677e-30
+1.92926e-28
+1.51173e-30
+4.65991e-29
+1.40267e-28
+1.11166e-28
+1.41198e-30
+7.98779e-30
+3.14034e-29
+1.93002e-30
+2.10667e-29
+4.05795e-29
+9.84835e-29
+2.20484e-29
+3.14543e-30
+1.11253e-28
+2.73335e-29
+1.79265e-28
+3.59312e-29
+1.51506e-28
+8.18336e-29
+4.73637e-29
+1.70954e-31
+3.77978e-29
+5.95922e-29
+4.41643e-29
+1.02009e-29
+7.67426e-30
+2.46226e-30
+2.55546e-29
+3.71435e-30
+8.21146e-30
+4.14545e-29
+7.45495e-29
+1.3846e-29
+2.66631e-29
+1.76756e-29
+1.31309e-31
+1.04494e-29
+1.02658e-29
+1.37296e-29
+8.26881e-29
+2.70395e-29
+1.36465e-28
+9.75268e-29
+3.69114e-29
+2.51785e-29
+1.12564e-28
+1.39941e-28
+1.699e-30
+3.75067e-30
+2.00578e-29
+2.51294e-30
+1.66927e-29
+0
+9.52631e-30
+7.33428e-29
+1.32671e-28
+1.525e-29
+1.27633e-29
+1.53535e-28
+5.47214e-30
+1.64532e-29
+5.27606e-30
+9.42988e-32
+1.31015e-32
+6.32515e-30
+7.66641e-30
+4.33677e-29
+3.62762e-30
+2.61313e-30
+9.23762e-29
+1.57514e-29
+1.10448e-30
+2.97537e-29
+2.69826e-31
+4.06496e-29
+4.31713e-29
+7.2473e-29
+1.57613e-29
+1.51509e-30
+2.41635e-31
+9.31801e-31
+5.71714e-30
+6.02343e-32
+1.07984e-29
+1.3849e-29
+1.35905e-29
+2.08444e-31
+7.36948e-30
+2.43041e-29
+1.77939e-29
+7.73916e-31
+1.89899e-31
+2.28659e-30
+4.14933e-31
+1.12535e-30
+6.34622e-30
+1.72917e-31
+6.10907e-30
+1.50184e-30
+4.0886e-30
+3.72579e-31
+5.386e-29
+2.81436e-29
+3.7882e-32
+1.80016e-29
+1.31301e-30
+0
+7.90284e-30
+2.32884e-29
+2.11249e-29
+7.46124e-30
+3.25336e-32
+2.87349e-29
+1.95792e-29
+1.31869e-31
+7.71418e-30
+4.25664e-30
+4.72442e-31
+7.28987e-30
+9.04784e-30
+1.09547e-29
+3.25583e-30
+8.53031e-30
+3.13213e-30
+2.57619e-31
+3.60597e-30
+1.64751e-29
+2.15089e-29
+2.34983e-30
+1.5539e-29
+1.0912e-29
+3.2076e-30
+2.8086e-29
+1.0289e-29
+7.56058e-31
+2.96532e-30
+3.20446e-31
+2.83345e-30
+1.94784e-30
+3.07544e-31
+1.06648e-29
+1.22644e-29
+4.55324e-30
+8.43906e-30
+9.8503e-30
+1.13315e-29
+6.56972e-32
+1.26267e-29
+9.0896e-30
+6.20516e-30
+1.18902e-29
+9.68387e-31
+7.53187e-32
+0
+0.00239549
+3.60789e-29
+1.71835e-29
+1.65249e-30
+7.9627e-29
+1.63755e-29
+1.23392e-29
+4.18763e-29
+6.09613e-28
+4.05536e-29
+1.59632e-28
+5.23915e-31
+4.48204e-29
+6.12656e-29
+8.42046e-29
+1.76508e-29
+2.15416e-31
+1.89912e-30
+2.28967e-29
+8.63295e-30
+1.13137e-29
+1.2375e-30
+5.62673e-29
+1.91582e-29
+5.1325e-29
+5.05042e-29
+3.57779e-29
+4.49039e-28
+1.76748e-29
+9.19985e-29
+3.23812e-28
+1.51622e-30
+2.02964e-28
+3.91683e-29
+1.90934e-28
+4.56168e-29
+1.69131e-28
+4.95129e-29
+3.04483e-28
+2.13636e-28
+1.22424e-28
+5.15695e-30
+9.01938e-30
+3.77506e-29
+0
+4.28515e-28
+9.62821e-29
+1.24879e-28
+1.56624e-28
+5.81505e-29
+2.42581e-29
+5.11762e-29
+8.73386e-29
+4.71512e-29
+2.90137e-30
+1.14097e-29
+1.8973e-29
+1.51193e-28
+2.6088e-28
+6.68111e-31
+1.51863e-28
+2.328e-31
+2.29031e-31
+9.62373e-29
+1.57633e-28
+5.58298e-29
+4.674e-30
+1.83859e-29
+2.36313e-29
+5.81691e-30
+2.23441e-30
+5.93935e-29
+0
+2.45744e-29
+1.33831e-30
+3.26582e-28
+6.34658e-29
+3.90311e-30
+3.13313e-31
+3.72945e-29
+2.73621e-29
+2.68549e-30
+7.33423e-30
+5.6563e-29
+1.77417e-28
+6.9807e-30
+1.21127e-28
+3.26908e-29
+4.25689e-30
+5.92939e-31
+5.78522e-31
+1.01163e-30
+1.68164e-28
+2.44728e-29
+2.9121e-29
+2.86474e-29
+8.40524e-29
+5.72518e-30
+2.29368e-31
+5.94413e-32
+1.06808e-29
+4.50583e-29
+2.5859e-30
+1.86576e-30
+5.10097e-30
+8.05779e-31
+2.41592e-30
+4.39967e-31
+9.23309e-29
+7.13409e-29
+7.79872e-30
+1.4701e-29
+5.15754e-29
+8.59928e-30
+1.1667e-28
+1.22628e-29
+1.84052e-29
+6.89811e-29
+3.87807e-29
+2.53979e-30
+9.99031e-30
+5.52892e-30
+8.49365e-30
+5.34642e-30
+2.46679e-29
+2.42594e-29
+1.86681e-29
+1.38783e-31
+1.67172e-30
+6.49467e-29
+1.31969e-29
+3.74944e-29
+6.45905e-29
+2.54919e-30
+0
+3.66823e-30
+6.30728e-29
+4.68918e-31
+1.23703e-31
+1.13408e-29
+1.34899e-29
+3.55248e-29
+1.5509e-29
+2.54473e-29
+5.99635e-29
+2.55869e-30
+1.44894e-29
+4.85442e-30
+3.50102e-30
+1.05686e-29
+8.73439e-31
+3.33558e-29
+5.81333e-30
+8.10183e-31
+1.4109e-30
+5.52252e-30
+6.2127e-33
+2.7022e-29
+5.12338e-29
+7.31029e-31
+6.41502e-30
+1.25127e-30
+0
+6.11445e-30
+1.06514e-29
+4.672e-30
+1.60758e-29
+1.75506e-30
+1.10906e-30
+1.71532e-30
+1.06648e-30
+3.21005e-30
+2.62261e-31
+0
+7.54338e-30
+2.21827e-30
+2.64901e-29
+6.42869e-29
+5.22302e-29
+1.67031e-32
+2.69519e-29
+3.39219e-29
+9.56794e-29
+5.30096e-29
+2.99187e-28
+5.71299e-30
+3.1436e-29
+1.23842e-28
+4.51164e-30
+5.1358e-29
+7.3957e-30
+1.82083e-28
+1.06116e-30
+2.67864e-30
+7.97156e-29
+1.78845e-29
+1.60503e-31
+7.71079e-30
+1.21514e-28
+3.43481e-29
+4.87157e-29
+8.33005e-30
+9.33565e-30
+6.07039e-30
+3.60225e-32
+1.21286e-28
+6.34541e-29
+2.65002e-29
+3.3317e-30
+1.31167e-31
+1.67436e-28
+3.18127e-30
+1.57956e-28
+2.33605e-28
+3.93976e-29
+2.99427e-28
+2.9498e-30
+7.43669e-30
+1.56686e-28
+1.01461e-30
+1.03297e-28
+1.20591e-29
+2.9331e-29
+6.79344e-30
+1.91391e-33
+3.33601e-29
+2.00824e-28
+8.6934e-29
+1.30129e-29
+2.80103e-29
+1.52751e-30
+1.05536e-28
+1.96007e-28
+1.67073e-33
+4.75457e-29
+3.74053e-30
+6.35751e-29
+1.68388e-29
+4.75985e-30
+9.35459e-29
+1.08588e-29
+1.70068e-29
+2.87619e-29
+3.13931e-29
+1.05838e-28
+3.73725e-30
+5.07134e-29
+1.06417e-29
+1.89349e-28
+4.48215e-29
+9.15546e-29
+1.0021e-29
+4.38864e-30
+5.47129e-30
+7.6905e-29
+3.1719e-29
+1.45306e-29
+5.15151e-30
+4.23532e-29
+5.00051e-30
+1.19174e-29
+1.38009e-28
+5.90091e-32
+2.81361e-29
+5.16471e-31
+1.03306e-33
+1.80084e-29
+2.89663e-29
+8.67064e-31
+1.32862e-30
+1.31276e-30
+2.06324e-29
+1.64647e-29
+9.81626e-30
+1.77563e-30
+1.24434e-29
+1.10302e-28
+1.93193e-28
+7.43536e-29
+4.12039e-29
+1.12764e-30
+1.11424e-30
+1.57621e-30
+6.21178e-30
+4.08465e-29
+7.07674e-30
+6.6011e-31
+1.62626e-29
+3.36822e-29
+4.78627e-30
+5.0388e-29
+9.81796e-30
+3.77442e-30
+3.12762e-29
+1.3228e-29
+2.31069e-30
+5.79612e-31
+2.94815e-29
+1.38253e-29
+6.67266e-30
+2.44477e-29
+3.30413e-30
+4.22039e-29
+5.65929e-29
+1.26445e-31
+2.80341e-31
+7.85757e-30
+2.72206e-31
+6.70576e-30
+2.93898e-30
+2.96364e-29
+1.64262e-29
+2.8585e-31
+7.12174e-30
+1.17152e-31
+2.75375e-29
+1.6563e-29
+2.6192e-30
+6.43474e-29
+2.35689e-31
+3.60985e-29
+7.98774e-30
+8.76294e-30
+5.38951e-30
+2.36448e-30
+4.55394e-30
+8.31043e-31
+4.36964e-29
+3.20269e-30
+2.83414e-32
+7.84045e-31
+5.32351e-29
+1.41917e-29
+2.98711e-29
+1.37798e-29
+4.25126e-29
+6.41587e-30
+1.95746e-30
+6.92536e-31
+1.48654e-29
+6.05523e-30
+3.00134e-31
+6.53659e-31
+7.16415e-30
+3.11243e-29
+2.01221e-29
+1.71406e-30
+1.08134e-30
+1.70595e-29
+2.62729e-29
+5.82614e-31
+6.38602e-30
+4.03059e-30
+2.23909e-29
+3.91689e-30
+5.46791e-31
+9.67961e-31
+3.09997e-29
+9.77484e-30
+1.45889e-29
+3.59926e-29
+4.01982e-29
+1.26637e-28
+8.26095e-29
+5.97204e-30
+3.79285e-29
+2.03523e-28
+1.2589e-28
+2.13412e-30
+2.31903e-28
+3.52792e-29
+1.03448e-29
+4.78662e-29
+1.64095e-29
+4.65037e-29
+2.71224e-29
+2.32905e-29
+5.6685e-29
+7.38834e-30
+8.29556e-29
+1.7952e-30
+1.20408e-28
+8.54479e-29
+4.53967e-30
+1.78028e-28
+8.18481e-29
+6.17736e-29
+4.1554e-28
+1.68116e-28
+4.83133e-30
+7.87245e-30
+5.75118e-29
+1.22415e-28
+3.0171e-29
+2.06554e-31
+5.7927e-30
+2.89097e-29
+8.79672e-30
+4.87878e-30
+1.43734e-28
+4.26774e-29
+3.51162e-30
+1.96881e-29
+1.16361e-29
+8.78422e-30
+1.32745e-29
+8.43375e-29
+1.49723e-29
+1.69881e-28
+4.75141e-30
+3.07641e-29
+3.98632e-29
+2.84709e-29
+5.68509e-30
+1.73152e-30
+6.34878e-29
+2.84344e-30
+1.28488e-28
+4.59603e-29
+3.87419e-29
+1.59121e-30
+1.47653e-28
+1.61008e-28
+6.44827e-29
+1.35467e-31
+6.5509e-30
+3.66018e-31
+1.44396e-30
+9.62729e-30
+4.55206e-30
+7.98099e-30
+4.28525e-29
+1.94633e-29
+5.41504e-32
+8.86535e-30
+7.45123e-30
+1.03345e-28
+2.01367e-31
+4.77221e-29
+4.40911e-29
+1.23743e-29
+4.77052e-30
+3.00972e-30
+3.90164e-29
+7.35646e-31
+4.91749e-29
+1.11448e-30
+1.1251e-29
+4.33687e-30
+2.26311e-29
+2.7045e-30
+1.49931e-28
+1.38233e-28
+3.40987e-29
+2.70476e-29
+5.11644e-29
+1.01319e-28
+6.17835e-31
+2.97381e-29
+1.49725e-31
+3.32448e-31
+3.28106e-29
+4.35561e-30
+1.94419e-28
+3.58805e-29
+4.97982e-30
+1.36525e-31
+4.07615e-30
+3.56849e-32
+3.52222e-32
+5.20671e-31
+3.4317e-32
+5.07315e-31
+4.48651e-30
+3.07559e-30
+7.77475e-30
+9.71336e-30
+4.75603e-31
+2.29111e-29
+8.10153e-29
+1.02716e-30
+3.64348e-29
+1.22411e-29
+6.16862e-30
+2.12165e-29
+4.06457e-29
+1.92358e-29
+9.40822e-30
+6.45156e-31
+1.58833e-29
+1.83011e-29
+1.80669e-29
+4.80455e-30
+1.5116e-29
+6.0391e-31
+5.89583e-31
+3.01188e-32
+6.71028e-29
+1.30986e-29
+1.76029e-29
+8.87867e-30
+2.99977e-29
+7.0139e-30
+1.39386e-30
+1.02335e-29
+1.20258e-29
+6.68988e-30
+7.39789e-31
+3.22274e-29
+7.22376e-31
+6.37291e-30
+3.76327e-29
+9.41327e-31
+9.81958e-32
+1.87656e-30
+1.06836e-29
+8.98347e-31
+1.16515e-30
+4.59135e-30
+2.55536e-30
+1.79279e-29
+9.97502e-30
+1.34167e-29
+6.0913e-31
+1.69264e-30
+8.55596e-32
+4.77076e-29
+1.65658e-29
+1.08199e-29
+2.578e-31
+1.56495e-30
+3.9671e-30
+4.96515e-30
+9.69292e-31
+2.39759e-29
+2.90506e-30
+9.73193e-32
+6.22833e-32
+3.6791e-30
+1.45452e-29
+2.64574e-29
+1.4362e-29
+3.85544e-30
+4.43824e-29
+1.76012e-29
+6.5739e-30
+2.92735e-29
+1.32116e-29
+9.8519e-30
+1.9044e-29
+5.39073e-30
+1.02923e-28
+1.8876e-28
+1.47099e-30
+1.19939e-29
+7.78338e-29
+6.43103e-29
+1.35958e-29
+4.54024e-29
+2.70251e-28
+1.20586e-28
+1.85339e-29
+0
+5.00963e-31
+2.85444e-29
+3.29551e-30
+5.55979e-30
+1.596e-29
+1.26559e-29
+8.04554e-29
+2.91549e-29
+7.83096e-29
+1.05159e-28
+2.0411e-28
+1.30681e-28
+1.53317e-29
+6.2542e-29
+8.77302e-30
+9.45173e-29
+9.08258e-29
+2.0649e-29
+5.65984e-31
+3.00352e-29
+3.9192e-30
+6.04308e-30
+3.43506e-29
+3.82693e-29
+9.81676e-30
+7.8472e-29
+9.05143e-31
+2.35895e-30
+2.66722e-29
+3.06038e-30
+1.46152e-29
+1.00265e-28
+8.17208e-30
+8.72474e-30
+3.71498e-29
+2.43472e-29
+6.98312e-29
+1.27503e-28
+8.17848e-30
+4.77751e-30
+1.52817e-29
+1.16414e-30
+7.77297e-30
+7.09236e-30
+5.92703e-30
+2.34096e-29
+8.5639e-30
+8.54366e-29
+8.24786e-29
+9.46557e-32
+1.50003e-29
+6.57163e-31
+2.27973e-30
+1.29648e-29
+1.14205e-29
+6.2518e-31
+2.70711e-29
+1.55085e-31
+6.0447e-31
+3.71539e-30
+2.11356e-29
+3.48335e-29
+4.3333e-30
+2.3913e-29
+3.49525e-30
+3.51573e-32
+1.22797e-30
+1.09194e-29
+3.33235e-30
+2.10576e-30
+8.32297e-30
+6.29915e-30
+1.14607e-29
+4.53032e-29
+2.8813e-31
+2.40236e-29
+5.11815e-30
+2.02434e-29
+1.45188e-30
+2.6534e-31
+6.50631e-30
+4.12656e-29
+1.46444e-28
+2.99727e-32
+4.43786e-31
+0
+1.72936e-30
+9.29061e-29
+1.29305e-30
+6.52388e-29
+7.52497e-29
+6.63773e-29
+9.11312e-30
+2.26489e-31
+1.19499e-29
+6.25188e-30
+1.1837e-30
+6.11934e-30
+2.14496e-31
+7.57775e-30
+9.42532e-32
+8.24215e-31
+6.36348e-29
+5.83057e-29
+3.19599e-30
+4.25077e-29
+1.46889e-29
+4.83837e-30
+3.57792e-29
+1.21355e-29
+1.68934e-30
+7.43285e-31
+6.62286e-30
+4.56696e-30
+2.18239e-29
+7.20154e-31
+1.25758e-30
+6.30499e-30
+8.27385e-32
+1.95474e-29
+1.89639e-30
+9.06566e-30
+7.42235e-30
+3.11227e-30
+2.36065e-29
+1.46194e-30
+7.6781e-32
+0
+5.69166e-30
+8.42728e-30
+1.45353e-29
+4.38507e-30
+6.12347e-30
+3.78407e-30
+5.40309e-30
+5.98921e-30
+5.90408e-31
+2.60256e-31
+1.97646e-29
+4.09732e-30
+3.11217e-30
+7.90415e-31
+2.14052e-29
+4.35802e-29
+7.4516e-30
+3.86507e-31
+1.55374e-29
+8.6784e-30
+3.16416e-29
+7.67825e-32
+2.85429e-29
+5.31423e-31
+2.85067e-30
+5.7962e-30
+1.46989e-29
+8.2196e-30
+5.80552e-29
+3.4018e-29
+1.34252e-28
+2.3837e-30
+1.30691e-28
+2.21619e-28
+4.54608e-30
+2.34207e-28
+2.38767e-29
+5.80323e-29
+1.68783e-28
+2.97563e-29
+4.54346e-29
+4.48358e-29
+2.85959e-29
+1.57957e-28
+3.43548e-28
+8.47628e-29
+9.56772e-29
+6.12218e-29
+3.92978e-31
+5.58528e-31
+4.80223e-29
+7.83548e-29
+2.50791e-29
+3.98205e-29
+1.66429e-28
+3.03636e-29
+6.17032e-29
+8.73961e-30
+3.45362e-31
+2.88368e-29
+1.74366e-29
+8.93143e-29
+1.31238e-30
+5.8123e-29
+2.70513e-29
+1.90967e-28
+3.11588e-31
+9.31498e-29
+5.45526e-29
+1.92004e-29
+1.20671e-32
+7.86868e-29
+1.11061e-29
+2.0189e-28
+8.53173e-29
+4.45388e-30
+2.97316e-29
+1.04366e-29
+8.1192e-29
+8.20524e-29
+3.4005e-29
+2.59226e-31
+7.90909e-29
+2.13492e-29
+0
+1.27621e-29
+6.57694e-30
+1.24577e-29
+1.23086e-29
+6.34368e-30
+1.08155e-28
+1.93882e-29
+8.70124e-30
+5.16817e-29
+1.44877e-28
+1.84916e-29
+5.66674e-29
+2.67707e-29
+3.78752e-29
+3.3359e-30
+8.24362e-31
+1.90759e-28
+1.04424e-29
+1.65135e-28
+1.77146e-30
+1.64714e-29
+4.44527e-29
+1.49203e-30
+6.77186e-30
+2.17978e-33
+2.30739e-29
+9.42982e-30
+2.87886e-30
+1.82242e-30
+2.45025e-29
+1.00256e-30
+2.5626e-29
+3.60423e-30
+3.39717e-29
+3.2268e-30
+9.52498e-30
+6.52596e-31
+1.25014e-29
+3.69043e-29
+2.04894e-30
+9.00968e-31
+3.27737e-30
+2.49619e-32
+1.96567e-30
+3.46794e-29
+2.28447e-29
+3.78242e-31
+2.53719e-29
+2.11385e-31
+5.13825e-30
+3.6181e-29
+3.066e-29
+2.68464e-30
+7.12137e-30
+2.0901e-29
+2.15579e-30
+0
+5.28453e-31
+2.71412e-29
+3.33476e-31
+4.03063e-30
+1.17328e-29
+1.47209e-29
+5.78267e-30
+3.8385e-29
+3.97997e-29
+2.09062e-32
+2.78073e-30
+2.34537e-29
+2.46018e-29
+3.18226e-30
+1.86647e-30
+4.74002e-30
+4.6999e-30
+1.32754e-29
+3.99046e-29
+4.5879e-30
+2.85802e-31
+2.16134e-29
+1.57579e-29
+1.56389e-31
+1.1659e-29
+3.85205e-30
+8.32803e-31
+4.31984e-30
+4.20111e-31
+0
+4.77576e-30
+9.45559e-30
+7.89169e-30
+2.09986e-29
+1.26188e-29
+1.08133e-29
+1.62772e-29
+4.56726e-30
+1.00979e-30
+3.90378e-31
+7.60803e-31
+3.95279e-30
+2.10239e-29
+1.97516e-32
+2.43163e-31
+3.40683e-30
+3.76209e-29
+9.62947e-31
+2.15129e-30
+1.20232e-30
+1.91552e-29
+2.48762e-30
+1.40899e-29
+2.33701e-29
+3.07996e-29
+1.30532e-29
+9.03933e-30
+7.23052e-31
+3.31076e-29
+1.65703e-29
+2.28707e-31
+1.19933e-29
+2.04915e-30
+1.31985e-31
+8.86542e-30
+1.41565e-32
+5.79092e-29
+1.23617e-29
+8.19858e-30
+6.14272e-29
+9.8395e-29
+2.80951e-28
+1.24178e-28
+5.71291e-29
+1.37584e-28
+0
+3.70025e-29
+1.72516e-30
+5.43256e-29
+1.67886e-30
+3.90252e-28
+2.05924e-29
+1.69366e-28
+9.42968e-29
+6.56214e-28
+6.8273e-30
+1.15613e-28
+1.01337e-28
+5.62423e-29
+1.36488e-29
+9.78662e-30
+3.71563e-29
+7.30734e-29
+1.0528e-28
+1.37357e-30
+7.02149e-29
+1.84536e-28
+1.68427e-28
+1.10177e-28
+2.15947e-29
+1.91808e-28
+5.61682e-29
+1.41385e-28
+4.87616e-30
+9.10522e-29
+0
+2.93198e-31
+5.99674e-29
+3.58074e-29
+7.04425e-30
+5.76752e-29
+3.44414e-29
+2.81992e-29
+3.85494e-31
+4.74303e-29
+2.60965e-31
+3.95858e-29
+2.227e-28
+6.78591e-30
+9.32517e-29
+9.78737e-31
+4.20883e-29
+2.99188e-29
+3.76821e-30
+8.75262e-29
+4.76199e-29
+4.5728e-29
+2.33002e-29
+7.96355e-30
+1.01908e-28
+3.21079e-29
+1.18664e-28
+2.18933e-29
+3.62146e-29
+6.21551e-29
+1.01747e-28
+5.00821e-30
+3.44762e-29
+1.95461e-31
+6.9519e-30
+1.71683e-30
+5.06884e-29
+9.51002e-29
+7.07355e-30
+2.76455e-28
+1.81609e-28
+1.50197e-29
+1.1791e-29
+5.24613e-29
+6.16634e-30
+3.03852e-29
+1.41546e-29
+1.71956e-29
+5.88116e-30
+6.71908e-29
+2.55335e-30
+1.58204e-31
+1.10327e-28
+1.66716e-29
+3.15971e-29
+1.23218e-28
+1.21818e-28
+1.5321e-29
+7.54751e-30
+5.30656e-29
+5.46807e-29
+1.64942e-33
+1.09122e-30
+7.95084e-30
+1.05422e-29
+1.05553e-28
+7.92794e-29
+1.31711e-31
+6.75385e-30
+2.59899e-29
+3.99957e-30
+3.24357e-31
+3.20899e-31
+1.60144e-30
+1.42482e-29
+1.5162e-29
+2.34436e-29
+5.47424e-30
+6.74676e-31
+7.59717e-29
+1.76429e-29
+6.56078e-30
+1.03611e-29
+8.61856e-30
+1.5992e-31
+1.67703e-29
+2.92097e-30
+1.71058e-32
+4.33738e-30
+1.61187e-29
+4.32047e-29
+2.76543e-29
+7.887e-30
+1.65254e-29
+9.47794e-29
+3.64858e-29
+1.41195e-31
+1.21859e-29
+3.25889e-29
+3.90776e-30
+5.45511e-31
+1.44022e-29
+1.0828e-29
+2.47479e-29
+1.40241e-29
+1.44665e-32
+3.6726e-30
+1.02737e-28
+4.26519e-29
+2.23702e-29
+9.55229e-29
+1.88259e-29
+9.22145e-30
+1.06114e-29
+1.37444e-29
+3.4169e-31
+4.79531e-31
+4.73404e-30
+1.68231e-32
+1.56252e-30
+2.59565e-29
+7.95223e-30
+6.11366e-30
+1.2846e-29
+3.59895e-30
+4.95031e-30
+3.19604e-29
+3.96363e-29
+1.9745e-31
+3.2559e-29
+9.68971e-31
+1.19221e-30
+7.69928e-31
+4.7003e-30
+2.2601e-29
+1.67565e-29
+4.15368e-31
+1.9287e-29
+5.52289e-30
+3.67743e-30
+5.97298e-30
+1.15035e-29
+5.27297e-29
+5.82923e-28
+2.42442e-30
+3.91806e-28
+5.89715e-31
+5.59025e-30
+7.19782e-29
+9.51488e-30
+2.34651e-28
+1.30629e-28
+2.17346e-30
+5.36033e-31
+5.28808e-31
+5.21689e-33
+7.78652e-29
+4.56997e-30
+3.28306e-28
+1.01068e-28
+5.90037e-31
+3.96294e-28
+3.91007e-28
+8.57624e-35
+1.58169e-28
+4.64355e-33
+1.36228e-28
+6.71717e-29
+1.13955e-29
+2.01708e-28
+1.70651e-30
+7.44719e-29
+8.49592e-29
+0
+1.55542e-29
+5.09914e-29
+2.66423e-28
+1.17765e-28
+1.61336e-28
+2.24657e-29
+1.4376e-29
+0
+9.13562e-32
+1.33825e-29
+1.32098e-29
+1.48711e-28
+7.31987e-30
+5.25084e-29
+1.20421e-28
+3.81029e-29
+6.95246e-30
+3.24369e-31
+1.39498e-29
+1.21541e-29
+1.80321e-29
+7.3099e-29
+2.35681e-29
+3.76953e-29
+1.18691e-30
+1.6924e-29
+1.66744e-30
+1.92122e-29
+6.51915e-29
+5.89717e-30
+0
+1.40896e-29
+5.68006e-30
+2.54628e-29
+1.77021e-30
+6.62151e-31
+9.82094e-30
+7.6407e-29
+2.49477e-31
+4.29094e-29
+6.54332e-29
+4.98378e-29
+8.03889e-29
+6.87269e-34
+1.33875e-29
+1.77339e-29
+4.78788e-30
+3.94409e-30
+7.15803e-29
+1.32822e-29
+5.54818e-31
+1.36449e-31
+5.69735e-30
+1.20278e-29
+3.91946e-29
+2.64364e-29
+1.04237e-29
+1.98748e-29
+3.74135e-29
+1.37034e-29
+9.3144e-31
+7.14315e-29
+2.16966e-30
+9.30851e-29
+1.5525e-29
+1.24496e-28
+9.98823e-29
+3.75239e-30
+2.27272e-30
+1.10996e-29
+2.15149e-29
+5.31954e-30
+1.50996e-30
+2.65562e-30
+2.62633e-30
+4.1568e-29
+3.6141e-29
+4.07267e-31
+1.3307e-29
+6.22179e-33
+4.50884e-34
+1.37055e-30
+2.41104e-30
+5.4972e-29
+1.72133e-29
+3.94932e-30
+2.08166e-29
+5.19286e-32
+0
+7.41656e-29
+2.27413e-29
+2.04532e-29
+5.1201e-29
+3.3679e-30
+3.32967e-29
+3.99895e-29
+7.04024e-29
+2.50939e-30
+9.93699e-30
+3.01397e-29
+3.22252e-29
+1.85617e-29
+1.72014e-29
+4.89583e-31
+8.5584e-30
+5.23449e-30
+1.23906e-29
+4.5364e-30
+7.48557e-30
+4.7539e-30
+1.34049e-29
+1.95616e-32
+7.22791e-32
+5.03263e-29
+2.56528e-29
+4.41676e-31
+3.69664e-29
+6.93034e-30
+2.47464e-30
+3.34115e-30
+4.22774e-31
+1.359e-30
+2.93654e-29
+5.35332e-30
+6.55726e-32
+2.6033e-29
+1.95522e-30
+5.19512e-30
+2.69425e-30
+1.06816e-29
+1.14916e-33
+8.97927e-30
+1.21366e-29
+3.45835e-30
+8.79473e-30
+5.46089e-31
+1.84642e-29
+2.16269e-29
+4.18148e-29
+3.13045e-29
+9.19135e-30
+7.20684e-31
+5.23331e-31
+9.29405e-31
+3.68048e-30
+2.98459e-05
+0.000456563
+0.00141626
+6.24195e-28
+7.28448e-29
+1.61587e-29
+6.37544e-29
+7.13572e-29
+5.54731e-29
+9.36955e-30
+1.82579e-30
+6.76053e-30
+0
+2.1469e-29
+1.51956e-30
+5.63919e-29
+4.4196e-29
+2.49264e-29
+2.87182e-29
+6.31279e-31
+6.2271e-31
+5.90051e-29
+1.71086e-28
+2.63767e-30
+1.12382e-28
+2.61379e-29
+4.86286e-29
+2.85782e-29
+5.37244e-29
+1.24239e-30
+9.15654e-30
+3.61426e-29
+2.12213e-30
+9.39921e-29
+1.13152e-28
+2.69689e-28
+3.40127e-30
+1.24139e-31
+1.82357e-29
+4.55102e-29
+7.2225e-29
+2.37528e-29
+8.51592e-35
+5.94944e-30
+4.07815e-30
+6.22796e-29
+1.38461e-29
+1.62185e-29
+3.87256e-30
+6.7958e-30
+4.19306e-33
+5.76392e-29
+6.28388e-29
+1.50136e-29
+3.58554e-30
+1.41881e-31
+3.9769e-30
+4.64244e-31
+8.51877e-31
+3.74127e-31
+1.24984e-28
+1.31602e-28
+1.8662e-29
+4.45948e-29
+2.37359e-30
+5.59238e-29
+1.36974e-30
+1.35282e-30
+1.73165e-29
+5.54636e-30
+4.53758e-29
+1.85926e-29
+3.17964e-31
+1.81419e-29
+1.79217e-29
+7.84904e-31
+8.14439e-29
+2.72846e-28
+6.12878e-29
+1.51384e-29
+1.95064e-30
+3.57608e-29
+1.46031e-29
+3.49162e-29
+5.23827e-29
+4.79558e-30
+2.7947e-29
+8.98764e-29
+1.76415e-29
+9.75929e-29
+3.81468e-29
+0
+1.93911e-29
+6.65731e-29
+2.3818e-28
+9.68235e-31
+3.89607e-32
+3.06665e-30
+2.10362e-30
+2.08058e-30
+1.53646e-29
+1.37472e-29
+2.0591e-29
+5.65618e-31
+1.9665e-30
+1.67347e-29
+1.10791e-29
+4.14306e-31
+2.00799e-29
+5.29442e-29
+6.88197e-30
+1.10814e-28
+1.03795e-29
+3.49406e-30
+8.0271e-30
+1.31136e-30
+1.99622e-29
+7.90113e-29
+4.80975e-31
+8.59814e-30
+4.25154e-29
+6.16624e-29
+1.03889e-30
+5.59646e-30
+2.21583e-29
+6.72189e-30
+1.46535e-29
+4.39294e-31
+1.73834e-30
+6.72186e-31
+3.26179e-29
+1.27618e-29
+2.11566e-30
+6.08393e-29
+9.24112e-31
+1.58599e-31
+2.57416e-29
+6.4775e-29
+4.50888e-05
+0.000252998
+0.000637667
+0.00120803
+0.00197346
+0.00294375
+0.00412917
+0.00554047
+0.00718893
+0.00908635
+0.0112451
+0.0136782
+0.0163993
+0.0194225
+0.0227629
+0.0264361
+0.0304587
+0.0348479
+0.0396218
+0.0447996
+0.0504011
+0.0564475
+0.0629608
+0.0699641
+0.0774818
+0.0855396
+0.0941645
+0.103385
+0.11323
+0.123732
+0.134923
+0.146838
+0.159515
+0.172991
+0.187306
+0.202505
+0.218632
+0.235734
+0.253862
+0.273069
+0.29341
+0.314904
+0.335699
+0.353777
+0.372536
+1.14283e-28
+7.45738e-28
+1.33967e-28
+7.18318e-29
+2.9994e-28
+2.48356e-28
+2.2809e-31
+1.90125e-29
+1.34094e-28
+1.21745e-28
+4.4714e-29
+1.08651e-28
+7.10494e-29
+2.15398e-29
+2.47354e-28
+4.77893e-29
+1.0306e-29
+7.53967e-30
+9.70994e-29
+1.95529e-30
+2.71275e-31
+1.85875e-31
+9.50758e-30
+1.81098e-31
+1.51137e-29
+1.76328e-31
+2.78201e-30
+0
+4.01528e-29
+2.48678e-29
+6.59516e-31
+1.6319e-31
+1.44533e-30
+8.21545e-30
+1.40776e-30
+4.15178e-29
+4.61261e-29
+9.62378e-30
+1.92883e-29
+1.23992e-29
+5.20543e-30
+1.85488e-29
+3.78925e-29
+1.3022e-28
+4.94256e-30
+2.3613e-29
+1.92649e-31
+5.28292e-33
+6.00888e-06
+3.72846e-05
+9.61075e-05
+0.000183438
+0.000300266
+0.000447612
+0.000626531
+0.000838108
+0.00108346
+0.00136375
+0.00168017
+0.00203394
+0.00242634
+0.00285867
+0.00333228
+0.00384857
+0.00440898
+0.00501499
+0.00566813
+0.00636999
+0.00712218
+0.00792641
+0.00878441
+0.00969796
+0.0106689
+0.0116992
+0.0127908
+0.0139458
+0.0151662
+0.0164543
+0.0178122
+0.0192423
+0.020747
+0.0223289
+0.0239903
+0.0257341
+0.0275629
+0.0294795
+0.0314869
+0.0335882
+0.0357864
+0.0380847
+0.0404865
+0.0429954
+0.0456147
+0.0483483
+0.0511999
+0.0541736
+0.0572734
+0.0605035
+0.0638684
+0.0673726
+0.0710207
+0.0748177
+0.0787686
+0.0828786
+0.0871531
+0.0915978
+0.0962183
+0.101021
+0.106011
+0.111197
+0.116583
+0.122178
+0.127988
+0.134021
+0.140285
+0.146788
+0.153537
+0.160542
+0.167812
+0.175355
+0.183182
+0.191303
+0.199727
+0.208466
+0.217532
+0.226935
+0.236688
+0.246803
+0.257294
+0.268174
+0.279457
+0.291158
+0.303292
+0.315876
+0.328876
+0.339904
+0.350337
+0.361015
+0.371968
+0.383202
+0.394726
+0.406546
+0.418669
+0.431103
+0.443855
+0.456933
+0.470345
+0.484099
+0.498205
+0.51267
+0.527504
+0.542715
+0.558313
+0.574309
+0.590711
+0.607531
+0.624778
+0.642464
+0.6606
+0.679197
+0.698267
+0.717822
+0.737875
+0.758438
+0.779526
+0.80115
+0.823327
+0.846069
+0.869392
+0.893311
+0.917842
+0.943001
+0.968806
+0.995272
+1.02242
+1.05026
+1.07883
+1.09727
+1.09566
+1.09404
+0.164629
+0.16695
+0.169311
+0.171713
+0.174157
+0.176644
+0.179173
+0.181748
+0.184367
+0.187033
+0.189746
+0.192507
+0.195317
+0.198177
+0.201088
+0.204051
+0.207067
+0.210138
+0.213264
+0.216446
+0.219686
+0.222985
+0.226344
+0.229765
+0.233248
+0.236795
+0.240408
+0.244087
+0.247835
+0.251652
+0.25554
+0.259501
+0.263536
+0.267647
+0.271835
+0.276103
+0.280451
+0.284882
+0.289397
+0.293998
+0.298688
+0.303468
+0.30834
+0.313306
+0.318368
+0.323529
+0.32879
+0.334121
+0.338647
+0.342792
+0.346977
+0.351226
+0.355539
+0.359918
+0.364362
+0.368875
+0.373456
+0.378107
+0.38283
+0.387624
+0.392493
+0.397436
+0.402455
+0.407552
+0.412728
+0.417984
+0.423322
+0.428742
+0.434247
+0.439839
+0.445517
+0.451285
+0.457144
+0.463095
+0.469139
+0.475279
+0.481517
+0.487853
+0.494291
+0.500831
+0.507475
+0.514226
+0.521085
+0.528054
+0.535135
+0.542331
+0.549643
+0.557073
+0.564625
+0.572299
+0.580098
+0.588024
+0.596081
+0.604269
+0.612593
+0.621053
+0.629654
+0.638396
+0.647284
+0.65632
+0.665506
+0.674845
+0.684341
+0.693996
+0.703814
+0.713797
+0.723949
+0.734273
+0.744771
+0.755449
+0.766308
+0.777354
+0.788588
+0.800015
+0.811639
+0.823464
+0.835493
+0.847731
+0.860182
+0.872849
+0.885738
+0.898853
+0.912198
+0.925778
+0.939597
+0.953661
+0.967975
+0.982543
+0.997371
+1.01246
+1.02783
+1.04347
+1.05939
+1.0756
+1.0921
+1.0957
+1.09472
+1.09373
+1.09273
+1.09172
+1.0907
+1.08967
+1.08863
+1.08757
+1.08651
+1.08544
+1.08435
+1.08326
+1.08215
+1.08103
+1.0799
+1.07876
+1.0776
+1.07644
+1.07526
+1.07407
+1.07286
+1.07165
+1.07042
+1.06917
+1.06792
+1.06665
+1.06536
+1.06407
+1.06276
+1.06143
+1.06009
+1.05874
+1.05737
+1.05598
+1.05458
+1.05317
+1.05173
+1.05029
+1.04882
+1.04734
+1.04585
+1.04433
+1.0428
+1.04125
+0.854693
+0.858571
+0.862492
+0.866455
+0.870461
+0.87451
+0.878604
+0.882743
+0.886927
+0.891157
+0.895433
+0.899757
+0.904128
+0.908547
+0.913016
+0.917534
+0.922103
+0.926722
+0.931393
+0.936117
+0.940893
+0.945723
+0.950608
+0.955548
+0.960543
+0.965596
+0.970705
+0.975873
+0.9811
+0.986387
+0.991734
+0.997143
+1.00261
+1.00815
+1.01375
+1.01941
+1.02514
+1.03093
+1.0368
+1.04273
+1.04873
+1.0548
+1.06095
+1.06716
+1.07345
+1.07981
+1.08625
+1.09277
+1.09461
+1.09419
+1.09377
+1.09335
+1.09292
+1.09249
+1.09205
+1.09161
+1.09117
+1.09072
+1.09027
+1.08982
+1.08936
+1.0889
+1.08843
+1.08796
+1.08748
+1.087
+1.08652
+1.08603
+1.08554
+1.08504
+1.08454
+1.08403
+1.08352
+1.08301
+1.08249
+1.08197
+1.08144
+1.0809
+1.08036
+1.07982
+1.07927
+1.07872
+1.07816
+1.0776
+1.07703
+1.07645
+1.07588
+1.07529
+1.0747
+1.07411
+1.07351
+1.0729
+1.07229
+1.07167
+1.07105
+1.07042
+1.06979
+1.06915
+1.0685
+1.06785
+1.06719
+1.06652
+1.06585
+1.06518
+1.06449
+1.0638
+1.06311
+1.0624
+1.06169
+1.06098
+1.06025
+1.05952
+1.05879
+1.05804
+1.05729
+1.05653
+1.05577
+1.055
+1.05422
+1.05343
+1.05263
+1.05183
+1.05102
+1.0502
+1.04937
+1.04854
+1.04769
+1.04684
+1.04598
+1.04512
+1.04424
+1.04335
+1.04246
+1.04156
+1.04064
+1.03972
+1.03879
+1.03785
+1.0369
+1.03594
+1.03497
+1.034
+1.03301
+1.03201
+1.031
+1.02998
+1.02895
+1.02791
+1.02686
+1.0258
+1.02473
+1.02364
+1.02255
+1.02144
+1.02032
+1.01919
+1.01805
+1.0169
+1.01573
+1.01455
+1.01336
+1.01215
+1.01094
+1.0097
+1.00846
+1.0072
+1.00593
+1.00465
+1.00335
+1.00203
+1.0007
+0.99936
+0.998002
+0.996628
+0.995239
+0.993834
+0.992413
+0.990976
+0.989523
+0.988055
+1.05031
+1.05004
+1.04978
+1.04951
+1.04924
+1.04897
+1.0487
+1.04842
+1.04815
+1.04787
+1.04758
+1.0473
+1.04701
+1.04672
+1.04643
+1.04614
+1.04584
+1.04554
+1.04524
+1.04493
+1.04463
+1.04432
+1.044
+1.04369
+1.04337
+1.04305
+1.04273
+1.0424
+1.04207
+1.04174
+1.0414
+1.04107
+1.04073
+1.04038
+1.04004
+1.03969
+1.03934
+1.03898
+1.03862
+1.03826
+1.0379
+1.03753
+1.03716
+1.03678
+1.03641
+1.03603
+1.03564
+1.03525
+1.03486
+1.03447
+1.03407
+1.03367
+1.03327
+1.03286
+1.03245
+1.03203
+1.03161
+1.03119
+1.03076
+1.03033
+1.0299
+1.02946
+1.02902
+1.02858
+1.02813
+1.02767
+1.02721
+1.02675
+1.02629
+1.02582
+1.02534
+1.02487
+1.02438
+1.0239
+1.0234
+1.02291
+1.02241
+1.0219
+1.0214
+1.02088
+1.02036
+1.01984
+1.01931
+1.01878
+1.01824
+1.0177
+1.01715
+1.0166
+1.01604
+1.01548
+1.01491
+1.01434
+1.01376
+1.01318
+1.01259
+1.01199
+1.01139
+1.01079
+1.01018
+1.00956
+1.00894
+1.00831
+1.00768
+1.00704
+1.00639
+1.00574
+1.00508
+1.00441
+1.00374
+1.00307
+1.00238
+1.00169
+1.001
+1.00029
+0.999583
+0.998866
+0.998142
+0.997411
+0.996674
+0.995929
+0.995177
+0.994418
+0.993651
+0.992877
+0.992095
+0.991306
+0.990509
+0.989704
+0.988891
+0.98807
+0.987241
+0.986404
+0.985559
+0.984705
+0.983842
+0.982971
+0.982092
+0.981203
+0.980306
+0.979399
+0.978483
+0.977558
+0.976624
+0.97568
+0.974726
+0.973763
+0.97279
+0.971806
+0.970813
+0.969809
+0.968795
+0.96777
+0.966734
+0.965688
+0.96463
+0.963562
+0.962482
+0.961391
+0.960288
+0.959173
+0.958046
+0.956907
+0.955756
+0.954593
+0.953416
+0.952227
+0.951025
+0.94981
+0.948581
+0.947339
+0.946083
+0.944813
+0.943528
+0.94223
+0.940916
+0.939588
+0.938245
+0.936886
+0.935512
+0.934124
+0.988507
+0.988257
+0.988009
+0.987758
+0.987506
+0.987251
+0.986994
+0.986735
+0.986473
+0.98621
+0.985944
+0.985676
+0.985406
+0.985133
+0.984859
+0.984581
+0.984302
+0.98402
+0.983736
+0.983449
+0.98316
+0.982868
+0.982574
+0.982277
+0.981978
+0.981676
+0.981372
+0.981065
+0.980756
+0.980443
+0.980129
+0.979811
+0.979491
+0.979168
+0.978842
+0.978513
+0.978182
+0.977847
+0.97751
+0.97717
+0.976827
+0.976481
+0.976132
+0.97578
+0.975424
+0.975066
+0.974705
+0.97434
+0.973973
+0.973602
+0.973228
+0.97285
+0.972469
+0.972085
+0.971698
+0.971307
+0.970913
+0.970515
+0.970114
+0.969709
+0.969301
+0.968889
+0.968473
+0.968054
+0.967631
+0.967204
+0.966773
+0.966339
+0.965901
+0.965459
+0.965012
+0.964562
+0.964108
+0.96365
+0.963188
+0.962721
+0.96225
+0.961775
+0.961296
+0.960813
+0.960325
+0.959832
+0.959336
+0.958834
+0.958328
+0.957818
+0.957303
+0.956783
+0.956258
+0.955729
+0.955194
+0.954655
+0.954111
+0.953562
+0.953008
+0.952448
+0.951884
+0.951314
+0.950739
+0.950158
+0.949572
+0.948981
+0.948384
+0.947782
+0.947174
+0.94656
+0.94594
+0.945315
+0.944683
+0.944046
+0.943403
+0.942753
+0.942097
+0.941435
+0.940767
+0.940093
+0.939411
+0.938724
+0.938029
+0.937328
+0.936621
+0.935906
+0.935184
+0.934456
+0.93372
+0.932977
+0.932227
+0.93147
+0.930705
+0.929932
+0.929152
+0.928364
+0.927568
+0.926765
+0.925953
+0.925133
+0.924305
+0.923469
+0.922624
+0.921771
+0.920909
+0.920039
+0.919159
+0.918271
+0.917373
+0.916467
+0.915551
+0.914625
+0.91369
+0.912745
+0.911791
+0.910826
+0.909852
+0.908867
+0.907872
+0.906866
+0.90585
+0.904822
+0.903784
+0.902735
+0.901675
+0.900603
+0.899519
+0.898424
+0.897317
+0.896198
+0.895067
+0.893923
+0.892767
+0.891597
+0.890415
+0.88922
+0.888011
+0.886789
+0.885553
+0.884303
+0.883039
+0.88176
+0.880467
+0.879159
+0.925448
+0.925216
+0.924983
+0.924748
+0.924512
+0.924273
+0.924033
+0.92379
+0.923545
+0.923299
+0.92305
+0.922799
+0.922546
+0.922291
+0.922033
+0.921774
+0.921512
+0.921248
+0.920982
+0.920714
+0.920443
+0.92017
+0.919895
+0.919617
+0.919337
+0.919054
+0.918769
+0.918482
+0.918192
+0.9179
+0.917605
+0.917308
+0.917008
+0.916706
+0.9164
+0.916093
+0.915782
+0.915469
+0.915154
+0.914835
+0.914514
+0.91419
+0.913863
+0.913534
+0.913201
+0.912866
+0.912527
+0.912186
+0.911842
+0.911495
+0.911144
+0.910791
+0.910435
+0.910075
+0.909712
+0.909346
+0.908977
+0.908605
+0.908229
+0.90785
+0.907468
+0.907082
+0.906693
+0.906301
+0.905905
+0.905505
+0.905102
+0.904695
+0.904285
+0.903871
+0.903453
+0.903032
+0.902607
+0.902178
+0.901745
+0.901308
+0.900868
+0.900423
+0.899974
+0.899521
+0.899065
+0.898604
+0.898139
+0.897669
+0.897196
+0.896718
+0.896235
+0.895749
+0.895257
+0.894762
+0.894262
+0.893757
+0.893247
+0.892733
+0.892214
+0.891691
+0.891162
+0.890629
+0.89009
+0.889547
+0.888998
+0.888445
+0.887886
+0.887322
+0.886752
+0.886178
+0.885598
+0.885012
+0.884421
+0.883824
+0.883222
+0.882614
+0.882
+0.88138
+0.880755
+0.880123
+0.879485
+0.878842
+0.878192
+0.877535
+0.876873
+0.876204
+0.875528
+0.874846
+0.874157
+0.873462
+0.872759
+0.87205
+0.871334
+0.870611
+0.86988
+0.869143
+0.868398
+0.867646
+0.866886
+0.866118
+0.865343
+0.86456
+0.863769
+0.862971
+0.862164
+0.861349
+0.860525
+0.859694
+0.858853
+0.858004
+0.857147
+0.85628
+0.855405
+0.85452
+0.853627
+0.852724
+0.851811
+0.850889
+0.849958
+0.849016
+0.848064
+0.847103
+0.846131
+0.845149
+0.844156
+0.843152
+0.842138
+0.841113
+0.840076
+0.839029
+0.837969
+0.836899
+0.835816
+0.834721
+0.833615
+0.832496
+0.831364
+0.83022
+0.829062
+0.827892
+0.826709
+0.825511
+0.824301
+0.823076
+0.862269
+0.862053
+0.861837
+0.861618
+0.861398
+0.861175
+0.860951
+0.860725
+0.860497
+0.860267
+0.860036
+0.859802
+0.859566
+0.859328
+0.859089
+0.858847
+0.858603
+0.858357
+0.858109
+0.857859
+0.857607
+0.857352
+0.857096
+0.856837
+0.856576
+0.856313
+0.856047
+0.85578
+0.85551
+0.855237
+0.854963
+0.854686
+0.854406
+0.854124
+0.85384
+0.853553
+0.853264
+0.852973
+0.852678
+0.852382
+0.852082
+0.851781
+0.851476
+0.851169
+0.850859
+0.850547
+0.850231
+0.849913
+0.849593
+0.849269
+0.848943
+0.848614
+0.848282
+0.847947
+0.847609
+0.847268
+0.846924
+0.846577
+0.846227
+0.845874
+0.845517
+0.845158
+0.844796
+0.84443
+0.844061
+0.843689
+0.843313
+0.842934
+0.842552
+0.842166
+0.841777
+0.841384
+0.840988
+0.840588
+0.840185
+0.839778
+0.839368
+0.838953
+0.838535
+0.838113
+0.837688
+0.837258
+0.836825
+0.836388
+0.835946
+0.835501
+0.835052
+0.834598
+0.83414
+0.833679
+0.833213
+0.832742
+0.832268
+0.831788
+0.831305
+0.830817
+0.830325
+0.829828
+0.829326
+0.82882
+0.828309
+0.827793
+0.827272
+0.826747
+0.826216
+0.825681
+0.82514
+0.824595
+0.824044
+0.823488
+0.822927
+0.82236
+0.821788
+0.821211
+0.820628
+0.820039
+0.819445
+0.818845
+0.81824
+0.817628
+0.817011
+0.816387
+0.815758
+0.815122
+0.814481
+0.813833
+0.813178
+0.812517
+0.81185
+0.811176
+0.810496
+0.809809
+0.809114
+0.808413
+0.807705
+0.80699
+0.806268
+0.805539
+0.804802
+0.804058
+0.803306
+0.802546
+0.801779
+0.801004
+0.800221
+0.79943
+0.798631
+0.797824
+0.797008
+0.796184
+0.795352
+0.79451
+0.79366
+0.792801
+0.791933
+0.791056
+0.790169
+0.789273
+0.788368
+0.787452
+0.786527
+0.785592
+0.784647
+0.783692
+0.782726
+0.78175
+0.780763
+0.779766
+0.778757
+0.777737
+0.776706
+0.775663
+0.774609
+0.773542
+0.772464
+0.771374
+0.770271
+0.769156
+0.768027
+0.766886
+0.806955
+0.806753
+0.806551
+0.806346
+0.80614
+0.805932
+0.805722
+0.80551
+0.805297
+0.805082
+0.804865
+0.804646
+0.804426
+0.804203
+0.803979
+0.803752
+0.803524
+0.803294
+0.803062
+0.802828
+0.802592
+0.802354
+0.802114
+0.801872
+0.801627
+0.801381
+0.801133
+0.800882
+0.800629
+0.800374
+0.800117
+0.799858
+0.799597
+0.799333
+0.799067
+0.798799
+0.798528
+0.798255
+0.79798
+0.797702
+0.797422
+0.79714
+0.796855
+0.796567
+0.796277
+0.795985
+0.79569
+0.795392
+0.795092
+0.794789
+0.794484
+0.794176
+0.793865
+0.793551
+0.793235
+0.792916
+0.792594
+0.79227
+0.791942
+0.791612
+0.791278
+0.790942
+0.790603
+0.79026
+0.789915
+0.789567
+0.789215
+0.788861
+0.788503
+0.788142
+0.787778
+0.78741
+0.787039
+0.786665
+0.786288
+0.785907
+0.785523
+0.785135
+0.784744
+0.784349
+0.783951
+0.783549
+0.783143
+0.782734
+0.782321
+0.781904
+0.781484
+0.781059
+0.780631
+0.780199
+0.779763
+0.779323
+0.778878
+0.77843
+0.777977
+0.777521
+0.77706
+0.776595
+0.776125
+0.775651
+0.775173
+0.77469
+0.774203
+0.773711
+0.773215
+0.772714
+0.772208
+0.771698
+0.771182
+0.770662
+0.770137
+0.769606
+0.769071
+0.768531
+0.767985
+0.767434
+0.766878
+0.766317
+0.76575
+0.765178
+0.7646
+0.764017
+0.763428
+0.762833
+0.762232
+0.761626
+0.761014
+0.760395
+0.759771
+0.75914
+0.758503
+0.75786
+0.75721
+0.756554
+0.755892
+0.755223
+0.754547
+0.753864
+0.753174
+0.752478
+0.751774
+0.751064
+0.750346
+0.74962
+0.748888
+0.748148
+0.7474
+0.746644
+0.745881
+0.74511
+0.74433
+0.743543
+0.742747
+0.741943
+0.741131
+0.74031
+0.73948
+0.738642
+0.737794
+0.736938
+0.736072
+0.735197
+0.734312
+0.733418
+0.732515
+0.731601
+0.730677
+0.729744
+0.7288
+0.727845
+0.72688
+0.725904
+0.724917
+0.72392
+0.722911
+0.72189
+0.720858
+0.719814
+0.718758
+0.71769
+0.839961
+0.839751
+0.83954
+0.839327
+0.839112
+0.838896
+0.838678
+0.838457
+0.838235
+0.838011
+0.837786
+0.837558
+0.837328
+0.837097
+0.836863
+0.836628
+0.83639
+0.83615
+0.835909
+0.835665
+0.83542
+0.835172
+0.834922
+0.83467
+0.834416
+0.834159
+0.833901
+0.83364
+0.833377
+0.833111
+0.832844
+0.832574
+0.832302
+0.832027
+0.83175
+0.831471
+0.83119
+0.830905
+0.830619
+0.83033
+0.830038
+0.829744
+0.829448
+0.829148
+0.828847
+0.828542
+0.828235
+0.827925
+0.827613
+0.827298
+0.82698
+0.826659
+0.826336
+0.826009
+0.82568
+0.825348
+0.825013
+0.824675
+0.824334
+0.82399
+0.823643
+0.823293
+0.82294
+0.822584
+0.822224
+0.821862
+0.821496
+0.821127
+0.820754
+0.820378
+0.819999
+0.819617
+0.819231
+0.818842
+0.818449
+0.818052
+0.817652
+0.817249
+0.816842
+0.816431
+0.816016
+0.815598
+0.815176
+0.81475
+0.81432
+0.813886
+0.813448
+0.813006
+0.812561
+0.812111
+0.811657
+0.811198
+0.810736
+0.810269
+0.809798
+0.809323
+0.808843
+0.808359
+0.807871
+0.807377
+0.80688
+0.806377
+0.80587
+0.805358
+0.804841
+0.80432
+0.803793
+0.803262
+0.802725
+0.802184
+0.801637
+0.801085
+0.800528
+0.799965
+0.799398
+0.798824
+0.798246
+0.797661
+0.797071
+0.796476
+0.795874
+0.795267
+0.794654
+0.794035
+0.79341
+0.792778
+0.792141
+0.791497
+0.790847
+0.790191
+0.789528
+0.788859
+0.788182
+0.7875
+0.78681
+0.786113
+0.78541
+0.784699
+0.783982
+0.783257
+0.782524
+0.781785
+0.781037
+0.780282
+0.77952
+0.778749
+0.777971
+0.777185
+0.77639
+0.775587
+0.774776
+0.773957
+0.773129
+0.772292
+0.771446
+0.770592
+0.769728
+0.768855
+0.767973
+0.767082
+0.766181
+0.76527
+0.76435
+0.763419
+0.762479
+0.761528
+0.760566
+0.759595
+0.758612
+0.757619
+0.756614
+0.755599
+0.754572
+0.753533
+0.752483
+0.751421
+0.750347
+0.749261
+0.748162
+0.747051
+6.48071
+6.4791
+6.47747
+6.47583
+6.47417
+6.4725
+6.47081
+6.46911
+6.4674
+6.46567
+6.46393
+6.46217
+6.4604
+6.45862
+6.45681
+6.455
+6.45316
+6.45132
+6.44945
+6.44757
+6.44568
+6.44376
+6.44184
+6.43989
+6.43793
+6.43595
+6.43396
+6.43194
+6.42991
+6.42787
+6.4258
+6.42372
+6.42162
+6.4195
+6.41737
+6.41521
+6.41304
+6.41085
+6.40864
+6.40641
+6.40416
+6.40189
+6.3996
+6.39729
+6.39496
+6.39261
+6.39025
+6.38786
+6.38544
+6.38301
+6.38056
+6.37809
+6.37559
+6.37307
+6.37053
+6.36797
+6.36538
+6.36278
+6.36015
+6.35749
+6.35482
+6.35211
+6.34939
+6.34664
+6.34387
+6.34107
+6.33825
+6.3354
+6.33253
+6.32963
+6.3267
+6.32375
+6.32077
+6.31777
+6.31474
+6.31168
+6.30859
+6.30548
+6.30234
+6.29917
+6.29597
+6.29274
+6.28948
+6.2862
+6.28288
+6.27953
+6.27616
+6.27275
+6.26931
+6.26584
+6.26233
+6.2588
+6.25523
+6.25163
+6.248
+6.24433
+6.24063
+6.23689
+6.23312
+6.22932
+6.22547
+6.2216
+6.21769
+6.21374
+6.20975
+6.20572
+6.20166
+6.19756
+6.19342
+6.18924
+6.18503
+6.18077
+6.17647
+6.17213
+6.16775
+6.16332
+6.15886
+6.15435
+6.1498
+6.1452
+6.14056
+6.13588
+6.13115
+6.12637
+6.12155
+6.11668
+6.11176
+6.10679
+6.10178
+6.09671
+6.0916
+6.08643
+6.08122
+6.07595
+6.07063
+6.06525
+6.05982
+6.05434
+6.0488
+6.04321
+6.03756
+6.03185
+6.02609
+6.02026
+6.01438
+6.00843
+6.00243
+5.99636
+5.99023
+5.98403
+5.97778
+5.97145
+5.96506
+5.95861
+5.95208
+5.94549
+5.93883
+5.93209
+5.92529
+5.91841
+5.91145
+5.90443
+5.89732
+5.89014
+5.88289
+5.87555
+5.86813
+5.86063
+5.85305
+5.84539
+5.83764
+5.8298
+5.82188
+5.81386
+5.80576
+5.79756
+5.78928
+5.78089
+5.77241
+5.76384
+8.05809
+8.03547
+8.0119
+7.98724
+7.96141
+7.93435
+7.906
+7.87626
+7.84507
+7.81234
+7.77796
+7.74184
+7.70386
+7.6639
+7.62183
+7.5775
+7.53074
+7.48138
+7.42923
+7.37406
+7.31563
+7.25367
+7.18787
+7.11788
+6.96416
+1.04674
+1.04409
+1.04099
+1.03774
+1.03434
+1.03077
+1.02703
+1.02311
+1.01898
+1.01465
+1.0101
+1.00531
+1.00026
+0.994945
+0.989339
+0.983421
+0.977167
+0.97055
+0.963543
+0.956111
+0.948217
+0.93982
+0.930872
+0.921318
+0.951525
+0.980274
+0.978078
+0.975211
+0.97221
+0.969067
+0.965776
+0.962326
+0.958708
+0.954914
+0.950932
+0.946749
+0.942355
+0.937735
+0.932874
+0.927755
+0.922361
+0.916673
+0.910667
+0.90432
+0.897606
+0.890492
+0.882947
+0.87493
+0.866397
+0.951371
+1.0301
+1.02804
+1.02502
+1.02187
+1.01857
+1.01511
+1.01148
+1.00768
+1.00369
+0.999502
+0.995106
+0.990487
+0.98563
+0.980521
+0.975141
+0.969472
+0.963493
+0.957182
+0.950512
+0.943457
+0.935985
+0.928059
+0.919641
+0.910685
+1.01922
+1.08667
+1.08475
+1.08157
+1.07824
+1.07476
+1.07111
+1.06728
+1.06327
+1.05906
+1.05464
+1.05001
+1.04513
+1.04001
+1.03462
+1.02894
+1.02296
+1.01665
+1.01
+1.00296
+0.995518
+0.987636
+0.979277
+0.9704
+0.960957
+1.06561
+0.855268
+0.908403
+0.964365
+1.02483
+1.09023
+1.12419
+1.12017
+1.11596
+1.11154
+1.10691
+1.10204
+1.09693
+1.09155
+1.08589
+1.07994
+1.07366
+1.06704
+1.06005
+1.05267
+1.04486
+1.03659
+1.02782
+1.01851
+1.0086
+1.08828
+0.153354
+0.182996
+0.217546
+0.257802
+0.305628
+0.358659
+0.413016
+0.472446
+0.539229
+0.614241
+0.698471
+0.79304
+0.899222
+1.01847
+1.12697
+1.12042
+1.11352
+1.10623
+1.09852
+1.09038
+1.08175
+1.0726
+1.06288
+1.05255
+1.09537
+1.50336e-29
+2.69381e-30
+2.46729e-30
+3.35566e-31
+2.28575e-30
+0.000419671
+0.00425079
+0.012855
+0.0273549
+0.0491283
+0.0798718
+0.121683
+0.177164
+0.249875
+0.343535
+0.446996
+0.567615
+0.711104
+0.88094
+1.08119
+1.12333
+1.11383
+1.10374
+1.09301
+1.09792
+2.76127e-30
+7.2469e-30
+4.3863e-30
+9.41916e-30
+1.21244e-29
+3.80243e-30
+2.86663e-31
+8.43599e-31
+3.4498e-30
+8.98395e-31
+3.14476e-30
+9.06582e-31
+2.68947e-30
+6.00355e-30
+0.000190539
+0.00961903
+0.0364878
+0.0863518
+0.166508
+0.288464
+0.445776
+0.641151
+0.887347
+1.13042
+1.1081
+2.76127e-30
+1.4992e-30
+1.75452e-29
+1.6686e-29
+1.05592e-30
+3.80243e-30
+3.6123e-30
+8.43599e-31
+4.36326e-31
+1.94952e-30
+9.47149e-31
+2.39929e-30
+6.72368e-31
+0
+2.67045e-30
+7.76223e-31
+1.70166e-31
+7.28566e-31
+2.83553e-30
+6.27141e-31
+0.0102966
+0.0608818
+0.169538
+0.357702
+0.604626
+4.9314e-30
+1.24443e-30
+4.3863e-30
+9.34312e-30
+4.00751e-30
+1.00189e-30
+1.79585e-29
+6.17871e-32
+8.03593e-31
+2.47807e-31
+3.97745e-31
+9.96966e-31
+0
+2.58413e-30
+2.67045e-30
+1.0309e-29
+2.49351e-30
+2.41901e-30
+5.48259e-31
+6.27141e-31
+5.33222e-30
+1.11954e-30
+2.6327e-30
+0.00112813
+0.0530714
+2.78374e-30
+7.2469e-30
+0
+9.34312e-30
+1.05592e-30
+0
+8.86837e-31
+9.05386e-31
+3.21437e-30
+7.6663e-31
+2.14611e-31
+7.01163e-31
+0
+6.46031e-31
+0
+1.75881e-31
+7.51001e-31
+1.65083e-31
+2.19304e-30
+2.29743e-30
+5.33222e-30
+2.06189e-30
+5.96533e-31
+1.09693e-30
+5.90333e-31
+2.76127e-30
+2.89876e-31
+4.3863e-30
+2.33578e-30
+7.20602e-32
+2.16878e-30
+8.04649e-30
+1.35594e-29
+8.03593e-31
+8.2278e-31
+2.36787e-31
+3.8071e-31
+8.2365e-30
+5.81428e-30
+0
+0
+7.51001e-31
+1.65083e-31
+5.48259e-31
+8.71935e-30
+2.25043e-30
+2.66597e-30
+0
+6.91306e-30
+2.60534e-30
+4.90893e-30
+1.1595e-30
+1.75452e-29
+1.03812e-30
+1.20523e-29
+2.33379e-31
+2.24307e-29
+9.05386e-31
+1.80809e-30
+6.95582e-30
+4.79298e-30
+7.52518e-31
+0
+3.50775e-31
+5.7807e-30
+6.00342e-31
+7.51001e-31
+1.43292e-30
+4.93433e-30
+1.3379e-29
+1.13852e-30
+0
+5.09041e-31
+8.08102e-30
+2.015e-30
+5.18505e-29
+1.18073e-30
+4.3863e-30
+4.1525e-30
+6.14914e-32
+3.80243e-30
+4.81525e-31
+2.109e-31
+2.00898e-31
+2.47807e-31
+3.14476e-30
+7.52518e-31
+2.68947e-30
+1.64284e-30
+1.58186e-30
+7.76223e-31
+0
+1.22381e-30
+7.08882e-31
+1.3379e-29
+5.33222e-30
+6.66491e-31
+5.09041e-31
+5.91871e-31
+2.015e-30
+4.79387e-29
+1.05205e-29
+1.11665e-30
+4.1525e-30
+1.8015e-32
+1.50901e-29
+2.86209e-30
+5.2725e-32
+2.00898e-31
+1.78107e-30
+2.36787e-31
+6.31047e-30
+2.68947e-30
+2.58413e-30
+1.55513e-31
+5.57896e-30
+5.80835e-31
+1.22381e-30
+5.09495e-30
+2.29743e-30
+1.53578e-31
+2.21291e-30
+5.09041e-31
+1.26266e-31
+1.47583e-31
+6.90318e-31
+1.83296e-30
+4.40637e-30
+1.09842e-29
+2.2317e-30
+3.75116e-30
+1.80234e-29
+7.60784e-30
+4.06819e-30
+3.12267e-30
+2.2434e-30
+1.57762e-30
+1.51283e-30
+1.45357e-30
+4.55604e-32
+1.50085e-31
+7.11523e-30
+2.41901e-30
+5.09495e-30
+6.27141e-31
+6.7779e-31
+2.79886e-31
+4.58137e-30
+6.53031e-31
+2.16259e-30
+1.92317e-30
+4.64332e-30
+6.85359e-30
+4.17151e-30
+1.20703e-29
+0
+2.37948e-31
+8.59046e-31
+9.84402e-30
+4.3123e-31
+2.2434e-30
+3.54964e-30
+2.68947e-30
+7.91389e-30
+6.67612e-31
+6.00342e-31
+5.80835e-31
+6.04754e-31
+9.0966e-31
+6.91946e-31
+2.84631e-31
+2.79886e-31
+6.23576e-30
+3.15665e-30
+2.015e-30
+1.9111e-30
+1.38994e-29
+1.66493e-30
+1.83343e-32
+1.50818e-29
+1.41914e-29
+4.22344e-30
+8.31854e-30
+1.66837e-30
+8.5872e-30
+1.77443e-31
+6.25455e-31
+3.70081e-30
+6.87461e-30
+1.33122e-29
+1.13822e-30
+3.00766e-32
+4.58419e-31
+2.7804e-31
+0
+9.00063e-31
+3.83615e-31
+8.2936e-31
+4.58925e-31
+5.58146e-30
+3.99759e-29
+2.4276e-29
+4.26223e-30
+2.38148e-29
+2.12276e-30
+7.98977e-30
+5.21412e-32
+1.96548e-31
+1.66837e-30
+0
+1.77443e-31
+1.13087e-29
+0
+3.15671e-31
+1.2371e-30
+1.54925e-30
+2.7069e-31
+2.86512e-30
+1.41369e-31
+3.79182e-30
+1.29306e-31
+0
+9.21512e-32
+4.58925e-31
+1.00362e-31
+1.81584e-29
+7.61095e-32
+4.21111e-31
+5.06907e-30
+2.12276e-30
+4.98347e-31
+6.42548e-31
+4.56628e-31
+0
+4.44988e-31
+6.73444e-31
+3.63271e-31
+2.36852e-30
+3.25947e-31
+2.73472e-30
+3.16173e-30
+7.51915e-31
+2.57861e-31
+1.41369e-31
+1.22435e-31
+4.29327e-31
+9.59037e-32
+8.2936e-31
+1.52374e-30
+0
+2.44237e-32
+2.55815e-30
+7.34723e-30
+2.50324e-29
+4.76651e-30
+1.79445e-29
+4.70956e-30
+1.10558e-31
+4.63436e-32
+1.09367e-30
+5.96412e-30
+1.56364e-31
+1.00755e-29
+1.40298e-29
+2.70547e-30
+8.09402e-30
+0
+2.91436e-31
+2.46008e-31
+3.76121e-30
+6.25043e-31
+9.59037e-32
+2.34338e-31
+1.087e-30
+1.37027e-30
+1.37719e-29
+6.38239e-31
+1.49844e-29
+1.60253e-29
+3.38952e-29
+1.12534e-30
+6.3129e-30
+1.14157e-31
+1.66837e-30
+2.17243e-30
+1.65334e-31
+8.79546e-32
+2.99766e-30
+3.25947e-31
+1.13903e-29
+2.57026e-30
+3.63927e-30
+2.32914e-30
+1.74939e-30
+3.06088e-32
+2.25016e-31
+0
+1.15585e-30
+7.98613e-31
+1.39537e-30
+4.73624e-31
+3.99029e-30
+1.05278e-31
+7.71202e-31
+1.47115e-30
+2.33946e-30
+2.03772e-30
+1.14157e-31
+2.96599e-30
+3.96097e-30
+1.65334e-31
+9.80137e-31
+1.8134e-30
+2.21785e-31
+4.17437e-31
+9.19803e-32
+6.76724e-30
+1.4123e-30
+2.73342e-32
+2.42728e-31
+3.23265e-32
+2.39759e-32
+3.68605e-31
+5.54592e-31
+1.39537e-30
+1.18406e-31
+6.40142e-30
+1.60012e-29
+3.52019e-32
+3.67786e-31
+2.34048e-30
+9.50273e-30
+1.25791e-29
+1.80769e-29
+7.03154e-31
+2.02534e-30
+2.86311e-33
+6.01614e-30
+2.38983e-30
+1.33122e-31
+6.49513e-31
+2.43621e-30
+5.61773e-30
+3.34844e-31
+3.37717e-32
+1.07332e-31
+1.53446e-30
+2.82213e-31
+2.21837e-32
+6.27262e-33
+2.5531e-30
+2.49393e-31
+2.12789e-29
+3.75878e-30
+6.21559e-31
+3.76976e-30
+1.13442e-29
+2.32448e-29
+7.53374e-30
+8.57459e-30
+1.15966e-29
+4.73e-30
+8.74838e-30
+2.10667e-30
+1.87203e-30
+2.29951e-32
+3.97763e-30
+1.45922e-30
+7.1845e-31
+4.76028e-30
+1.26571e-31
+9.59037e-32
+0
+2.7175e-31
+1.37184e-30
+1.9343e-29
+8.11563e-35
+0
+0
+0
+0
+1.33484e-29
+0
+0
+2.00257e-34
+0
+0
+0
+0
+8.51982e-30
+8.0946e-30
+0
+5.24619e-34
+5.00504e-34
+6.6866e-30
+0
+0
+1.47442e-30
+1.41976e-30
+1.56816e-33
+6.33883e-30
+3.37049e-34
+1.8212e-30
+6.90278e-31
+9.24419e-30
+2.2712e-30
+2.1456e-32
+4.81172e-30
+3.44842e-30
+5.50974e-30
+1.51264e-29
+1.38874e-30
+2.32135e-30
+5.94155e-32
+5.80313e-31
+1.14623e-30
+1.99153e-30
+1.05099e-30
+3.86457e-30
+2.1258e-30
+3.01613e-31
+6.37215e-32
+3.74046e-31
+2.09546e-30
+1.61542e-30
+1.25211e-30
+9.73783e-30
+3.27957e-29
+2.00352e-31
+9.24419e-30
+8.18697e-31
+1.97738e-30
+5.49563e-31
+1.22911e-32
+2.91174e-33
+4.20472e-30
+1.5182e-30
+9.98161e-31
+5.94155e-30
+2.04016e-30
+1.04877e-30
+7.96854e-30
+4.20397e-30
+6.41995e-30
+7.36979e-31
+3.1286e-30
+1.75739e-30
+2.40054e-30
+1.61687e-31
+1.61542e-30
+9.46911e-30
+4.60184e-33
+1.40774e-29
+5.89544e-30
+2.21768e-30
+4.71915e-30
+3.47319e-31
+9.46694e-30
+9.63622e-30
+5.13972e-30
+3.59291e-30
+1.78596e-30
+6.74757e-30
+3.42233e-31
+4.38862e-30
+4.48004e-32
+6.93298e-31
+5.17922e-31
+1.22139e-31
+2.9393e-30
+2.55226e-31
+3.31877e-30
+2.39389e-31
+3.13026e-30
+1.61542e-30
+7.06271e-30
+9.73749e-30
+3.39696e-30
+1.02068e-29
+3.46513e-30
+1.45783e-30
+6.76883e-31
+3.32413e-30
+1.68265e-29
+1.26869e-29
+6.93492e-30
+6.99355e-31
+3.99264e-30
+2.13896e-30
+3.26426e-31
+1.24737e-30
+7.20142e-32
+2.07169e-30
+1.31085e-31
+2.9393e-32
+4.62044e-31
+1.75538e-30
+3.21845e-30
+2.58699e-32
+0
+7.04314e-31
+1.88491e-29
+1.08372e-29
+1.5694e-29
+2.10879e-29
+1.68075e-29
+3.51937e-30
+8.13078e-30
+4.91644e-30
+1.04823e-29
+2.84156e-30
+1.67921e-31
+3.99264e-32
+4.60113e-30
+1.3057e-30
+8.76383e-31
+8.38654e-31
+5.17922e-31
+2.8376e-31
+1.52017e-31
+1.02091e-30
+3.35091e-30
+1.06395e-31
+2.32829e-31
+1.61542e-30
+2.81726e-30
+1.0608e-29
+1.76293e-31
+6.53235e-32
+8.87523e-30
+2.0974e-30
+1.40976e-29
+4.22232e-30
+3.14652e-30
+4.65878e-30
+7.07152e-31
+3.77821e-31
+6.74757e-30
+3.80259e-32
+4.25034e-32
+5.54388e-31
+2.72462e-30
+3.72516e-32
+4.88558e-31
+5.04734e-31
+1.84817e-30
+1.09711e-31
+4.56751e-31
+4.13919e-31
+0
+6.33883e-30
+1.18346e-30
+7.44032e-32
+1.06431e-30
+2.23573e-30
+5.81428e-30
+1.38928e-30
+6.29991e-30
+1.25861e-29
+1.69081e-30
+1.13144e-29
+2.17116e-31
+2.55529e-30
+5.47573e-30
+3.66946e-30
+6.83186e-30
+1.07819e-29
+1.27525e-29
+1.09926e-30
+1.88116e-30
+1.05414e-30
+4.70988e-31
+3.11705e-32
+1.0348e-31
+6.46168e-30
+9.81012e-31
+5.79014e-32
+9.24951e-30
+2.07141e-29
+1.77215e-29
+2.29269e-30
+5.70934e-32
+2.68638e-30
+1.43836e-30
+2.43752e-30
+0
+6.82557e-30
+7.49512e-30
+3.23478e-30
+0
+2.96417e-30
+1.06462e-30
+5.47047e-30
+0
+8.50941e-30
+4.4094e-31
+9.0712e-31
+5.13601e-31
+1.15174e-31
+1.564e-30
+2.45253e-31
+2.48569e-31
+7.88124e-30
+5.17853e-30
+9.62819e-30
+1.99672e-31
+1.89564e-31
+2.69867e-30
+1.95776e-30
+2.53794e-30
+0
+1.39089e-31
+0
+1.03968e-29
+7.87234e-30
+3.47363e-32
+4.91809e-31
+1.03132e-30
+2.69527e-30
+1.23111e-31
+5.31214e-31
+1.73077e-30
+2.15681e-31
+3.65331e-30
+1.564e-30
+4.96637e-30
+2.10142e-30
+1.40111e-29
+2.9889e-29
+1.24062e-30
+4.65115e-30
+2.82604e-30
+4.24665e-30
+1.93379e-29
+2.21162e-29
+1.45446e-31
+5.00722e-30
+5.32986e-31
+2.04628e-30
+1.59042e-31
+2.96417e-30
+1.83298e-30
+5.73968e-31
+0
+1.43793e-30
+1.47905e-29
+3.7466e-30
+3.97226e-31
+0
+0
+1.53283e-30
+1.48228e-29
+1.77328e-29
+1.51715e-32
+2.83103e-29
+2.97673e-30
+3.46707e-29
+8.6835e-31
+1.43836e-30
+6.54011e-31
+1.88057e-31
+5.56358e-31
+5.72023e-31
+1.05092e-29
+1.59042e-31
+6.13212e-31
+5.61352e-30
+3.99523e-30
+2.69527e-30
+2.74947e-30
+2.23078e-31
+6.56875e-30
+0
+1.5725e-30
+2.02221e-30
+2.96756e-29
+9.26423e-31
+8.75693e-31
+8.28565e-31
+4.26123e-31
+2.97673e-30
+2.13719e-29
+1.70784e-30
+2.55708e-30
+1.96977e-31
+1.35163e-30
+2.22543e-30
+1.23826e-30
+1.85664e-29
+1.50278e-29
+2.03601e-30
+4.58246e-31
+1.77566e-30
+0
+0
+4.81463e-31
+1.18115e-31
+0
+3.99883e-30
+2.02221e-30
+2.96756e-29
+2.08445e-30
+7.94538e-30
+1.68391e-29
+3.19669e-30
+4.76277e-29
+6.41033e-30
+2.68638e-30
+6.39269e-31
+0
+9.30855e-30
+7.19353e-31
+8.52778e-30
+1.27892e-29
+1.78569e-29
+1.89707e-30
+4.12422e-30
+1.90571e-30
+5.57583e-31
+1.68087e-30
+1.03916e-29
+1.45139e-29
+1.5889e-30
+2.0332e-30
+0
+3.92405e-30
+5.79014e-30
+2.03445e-30
+3.557e-30
+3.85128e-29
+4.65115e-30
+2.13719e-29
+1.69866e-29
+0
+9.7947e-30
+5.81784e-31
+1.62995e-31
+4.79688e-30
+2.19615e-30
+4.57234e-30
+7.72721e-30
+0
+0
+1.85131e-30
+4.20218e-31
+4.10848e-31
+1.61266e-30
+0
+8.53821e-31
+1.564e-30
+3.53164e-29
+9.94276e-31
+8.75693e-31
+8.28565e-31
+1.7658e-30
+3.65195e-29
+1.76627e-31
+1.67899e-29
+4.18272e-30
+5.66294e-30
+5.81784e-31
+2.38843e-30
+2.13195e-30
+2.64577e-30
+2.11223e-30
+7.72721e-30
+1.96724e-30
+5.73968e-31
+1.72497e-30
+1.09979e-29
+2.12486e-30
+8.75623e-31
+6.35562e-30
+2.0332e-30
+1.564e-30
+3.92405e-30
+1.48906e-29
+7.88124e-30
+7.51777e-30
+1.82328e-30
+1.86046e-31
+1.76627e-29
+7.20783e-31
+1.38841e-30
+5.66294e-30
+1.45446e-29
+7.19353e-31
+5.32986e-31
+5.1157e-31
+4.42819e-30
+2.03601e-30
+1.15904e-29
+1.16181e-29
+1.07811e-29
+3.78196e-30
+2.12486e-30
+2.293e-30
+6.35562e-30
+0
+4.58204e-31
+3.92405e-30
+3.77355e-30
+8.75693e-31
+8.28565e-31
+9.6713e-30
+3.19476e-30
+8.70648e-30
+1.07455e-29
+1.6169e-29
+1.5413e-29
+5.81784e-31
+7.19353e-31
+2.13195e-30
+2.19615e-30
+0
+2.03601e-30
+4.58246e-31
+2.29587e-30
+9.36605e-31
+4.92443e-31
+4.10848e-31
+0.00123779
+0.0189615
+0.0640187
+0.146973
+7.77103e-31
+7.85716e-31
+6.90246e-31
+4.11857e-30
+1.0023e-29
+4.20608e-29
+3.52626e-29
+8.34175e-30
+0
+6.07057e-31
+4.46386e-31
+1.06246e-29
+1.98548e-29
+0.000377762
+0.00521932
+0.0168287
+0.0370337
+0.0681449
+0.113096
+0.175633
+0.261256
+0.371897
+0.500371
+0.655847
+0.832421
+0.00349171
+0.0073881
+0.0131212
+0.0210298
+0.0315137
+0.0450459
+0.0621866
+0.0836018
+0.110085
+0.142585
+0.182238
+0.230415
+0.28945
+0.355224
+0.419039
+0.489977
+0.570802
+0.66281
+0.767483
+0.886525
+1.0219
+1.1135
+1.10544
+1.09691
+1.09453
+0.404678
+0.437508
+0.472727
+0.511063
+0.552818
+0.598329
+0.647968
+0.702148
+0.761333
+0.826036
+0.896832
+0.974365
+1.05936
+1.1133
+1.10824
+1.10292
+1.09733
+1.09144
+1.08523
+1.07869
+1.07179
+1.0645
+1.05679
+1.04864
+1.08843
+1.1074
+1.1053
+1.10254
+1.09966
+1.09664
+1.09348
+1.09018
+1.08672
+1.0831
+1.07931
+1.07533
+1.07115
+1.06678
+1.06218
+1.05735
+1.05227
+1.04693
+1.04131
+1.03539
+1.02915
+1.02257
+1.01561
+1.00825
+1.00047
+1.07917
+1.05406
+1.05197
+1.04934
+1.0466
+1.04373
+1.04072
+1.03758
+1.03429
+1.03084
+1.02723
+1.02344
+1.01947
+1.0153
+1.01093
+1.00633
+1.0015
+0.996415
+0.991066
+0.98543
+0.979488
+0.973218
+0.966596
+0.959593
+0.952179
+1.05645
+1.00027
+0.998221
+0.99573
+0.993125
+0.9904
+0.98755
+0.984566
+0.981442
+0.97817
+0.974742
+0.971148
+0.967378
+0.963423
+0.95927
+0.954907
+0.950321
+0.945497
+0.940419
+0.93507
+0.92943
+0.923479
+0.917192
+0.910543
+0.903505
+1.01713
+0.945732
+0.943732
+0.941376
+0.938913
+0.936337
+0.933642
+0.930821
+0.927867
+0.924773
+0.921531
+0.918133
+0.914568
+0.910828
+0.906901
+0.902775
+0.898438
+0.893876
+0.889074
+0.884015
+0.87868
+0.873051
+0.867104
+0.860814
+0.854154
+0.962141
+0.890132
+0.888198
+0.885981
+0.883662
+0.881238
+0.8787
+0.876045
+0.873265
+0.870352
+0.867301
+0.864101
+0.860746
+0.857224
+0.853527
+0.849643
+0.84556
+0.841264
+0.836742
+0.831978
+0.826955
+0.821652
+0.816051
+0.810126
+0.803851
+0.894558
+0.833388
+0.831535
+0.829459
+0.827288
+0.825017
+0.822641
+0.820155
+0.817551
+0.814824
+0.811966
+0.80897
+0.805827
+0.802529
+0.799066
+0.795428
+0.791603
+0.787579
+0.783343
+0.778879
+0.774171
+0.769202
+0.76395
+0.758394
+0.752509
+0.818568
+0.776527
+0.774764
+0.772829
+0.770806
+0.76869
+0.766476
+0.764159
+0.761732
+0.75919
+0.756527
+0.753734
+0.750804
+0.74773
+0.744502
+0.741109
+0.737542
+0.733789
+0.729838
+0.725673
+0.721279
+0.716639
+0.711734
+0.706542
+0.701038
+0.739564
+0.726747
+0.725067
+0.723256
+0.721363
+0.719383
+0.717311
+0.715142
+0.712871
+0.710492
+0.707999
+0.705384
+0.702642
+0.699762
+0.696738
+0.69356
+0.690217
+0.686698
+0.68299
+0.67908
+0.674952
+0.670588
+0.665969
+0.66107
+0.655865
+0.668253
+0.760284
+0.758434
+0.756471
+0.754414
+0.752259
+0.749999
+0.747629
+0.745141
+0.742529
+0.739785
+0.7369
+0.733865
+0.73067
+0.727305
+0.723758
+0.720015
+0.716062
+0.711886
+0.707467
+0.702789
+0.697832
+0.692573
+0.686991
+0.681061
+0.671203
+5.76919
+5.75537
+5.74098
+5.72594
+5.71021
+5.69374
+5.67651
+5.65846
+5.63956
+5.61976
+5.59899
+5.57721
+5.55434
+5.53034
+5.50512
+5.47861
+5.45072
+5.42135
+5.39042
+5.3578
+5.32338
+5.28702
+5.24857
+5.20787
+5.13021
+)
+;
 
 boundaryField
 {
@@ -33,12 +12262,493 @@ boundaryField
     upperWall
     {
         type            kqRWallFunction;
-        value           uniform 0.375;
+        value           nonuniform List<scalar> 
+223
+(
+6.68646
+6.48152
+6.48152
+6.48152
+6.48152
+6.48152
+6.48152
+6.48152
+6.48152
+6.48152
+6.48152
+6.48152
+6.48152
+6.48152
+6.48152
+6.48152
+6.48152
+6.48152
+6.48071
+6.4791
+6.47747
+6.47583
+6.47417
+6.4725
+6.47081
+6.46911
+6.4674
+6.46567
+6.46393
+6.46217
+6.4604
+6.45862
+6.45681
+6.455
+6.45316
+6.45132
+6.44945
+6.44757
+6.44568
+6.44376
+6.44184
+6.43989
+6.43793
+6.43595
+6.43396
+6.43194
+6.42991
+6.42787
+6.4258
+6.42372
+6.42162
+6.4195
+6.41737
+6.41521
+6.41304
+6.41085
+6.40864
+6.40641
+6.40416
+6.40189
+6.3996
+6.39729
+6.39496
+6.39261
+6.39025
+6.38786
+6.38544
+6.38301
+6.38056
+6.37809
+6.37559
+6.37307
+6.37053
+6.36797
+6.36538
+6.36278
+6.36015
+6.35749
+6.35482
+6.35211
+6.34939
+6.34664
+6.34387
+6.34107
+6.33825
+6.3354
+6.33253
+6.32963
+6.3267
+6.32375
+6.32077
+6.31777
+6.31474
+6.31168
+6.30859
+6.30548
+6.30234
+6.29917
+6.29597
+6.29274
+6.28948
+6.2862
+6.28288
+6.27953
+6.27616
+6.27275
+6.26931
+6.26584
+6.26233
+6.2588
+6.25523
+6.25163
+6.248
+6.24433
+6.24063
+6.23689
+6.23312
+6.22932
+6.22547
+6.2216
+6.21769
+6.21374
+6.20975
+6.20572
+6.20166
+6.19756
+6.19342
+6.18924
+6.18503
+6.18077
+6.17647
+6.17213
+6.16775
+6.16332
+6.15886
+6.15435
+6.1498
+6.1452
+6.14056
+6.13588
+6.13115
+6.12637
+6.12155
+6.11668
+6.11176
+6.10679
+6.10178
+6.09671
+6.0916
+6.08643
+6.08122
+6.07595
+6.07063
+6.06525
+6.05982
+6.05434
+6.0488
+6.04321
+6.03756
+6.03185
+6.02609
+6.02026
+6.01438
+6.00843
+6.00243
+5.99636
+5.99023
+5.98403
+5.97778
+5.97145
+5.96506
+5.95861
+5.95208
+5.94549
+5.93883
+5.93209
+5.92529
+5.91841
+5.91145
+5.90443
+5.89732
+5.89014
+5.88289
+5.87555
+5.86813
+5.86063
+5.85305
+5.84539
+5.83764
+5.8298
+5.82188
+5.81386
+5.80576
+5.79756
+5.78928
+5.78089
+5.77241
+5.76384
+5.76919
+5.75537
+5.74098
+5.72594
+5.71021
+5.69374
+5.67651
+5.65846
+5.63956
+5.61976
+5.59899
+5.57721
+5.55434
+5.53034
+5.50512
+5.47861
+5.45072
+5.42135
+5.39042
+5.3578
+5.32338
+5.28702
+5.24857
+5.20787
+5.13021
+)
+;
     }
     lowerWall
     {
         type            kqRWallFunction;
-        value           uniform 0.375;
+        value           nonuniform List<scalar> 
+250
+(
+5.98297
+5.86414
+5.86414
+5.86414
+5.86414
+5.86414
+5.86414
+5.86414
+5.86414
+5.86414
+5.86414
+5.86414
+5.86414
+5.86414
+5.86414
+5.86414
+5.86414
+5.86798
+9.09688
+9.09572
+9.09445
+9.09307
+9.09157
+9.08993
+9.08816
+9.08624
+9.08574
+9.90703
+9.10222
+9.10222
+9.10222
+9.10223
+9.10223
+9.10224
+9.10225
+9.10226
+9.10227
+9.10228
+9.1023
+9.10231
+9.10233
+9.10235
+9.10236
+9.10238
+9.10241
+9.90703
+7.68929
+8.17517
+8.48587
+8.48478
+8.48367
+8.48255
+8.48143
+8.48029
+8.47915
+8.478
+8.47684
+8.47566
+8.47448
+8.47329
+8.47209
+8.47088
+8.46966
+8.46843
+8.46719
+8.46594
+8.46468
+8.46341
+8.46213
+8.46084
+8.45954
+8.45823
+8.4569
+8.45557
+8.45422
+8.45287
+8.4515
+8.45012
+8.44873
+8.44733
+8.44592
+8.4445
+8.44306
+8.44162
+8.44016
+8.43868
+8.4372
+8.43571
+8.4342
+8.43268
+8.43115
+8.4296
+8.42804
+8.42647
+8.42489
+8.42329
+8.42168
+8.42006
+8.41842
+8.41677
+8.41511
+8.41343
+8.41174
+8.41003
+8.40831
+8.40658
+8.40483
+8.40307
+8.40129
+8.3995
+8.39769
+8.39587
+8.39403
+8.39218
+8.39031
+8.38843
+8.38653
+8.38461
+8.38268
+8.38073
+8.37877
+8.37679
+8.37479
+8.37278
+8.37075
+8.3687
+8.36664
+8.36456
+8.36246
+8.36034
+8.3582
+8.35605
+8.35388
+8.35169
+8.34948
+8.34726
+8.34501
+8.34275
+8.34046
+8.33816
+8.33584
+8.3335
+8.33114
+8.32875
+8.32635
+8.32393
+8.32149
+8.31902
+8.31654
+8.31403
+8.31151
+8.30896
+8.30639
+8.30379
+8.30118
+8.29854
+8.29588
+8.2932
+8.29049
+8.28776
+8.28501
+8.28223
+8.27943
+8.27661
+8.27376
+8.27088
+8.26799
+8.26506
+8.26211
+8.25914
+8.25614
+8.25311
+8.25006
+8.24698
+8.24387
+8.24074
+8.23758
+8.23439
+8.23117
+8.22793
+8.22466
+8.22136
+8.21802
+8.21466
+8.21128
+8.20786
+8.20441
+8.20093
+8.19741
+8.19387
+8.1903
+8.18669
+8.18306
+8.17939
+8.17568
+8.17195
+8.16818
+8.16438
+8.16054
+8.15667
+8.15276
+8.14882
+8.14485
+8.14084
+8.13679
+8.1327
+8.12858
+8.12442
+8.12022
+8.11599
+8.11172
+8.1074
+8.10305
+8.09866
+8.09423
+8.08976
+8.08524
+8.08069
+8.07609
+8.07145
+8.06677
+8.06204
+8.05728
+8.05246
+8.04761
+8.05809
+8.03547
+8.0119
+7.98724
+7.96141
+7.93435
+7.906
+7.87626
+7.84507
+7.81234
+7.77796
+7.74184
+7.70386
+7.6639
+7.62183
+7.5775
+7.53074
+7.48138
+7.42923
+7.37406
+7.31563
+7.25367
+7.18787
+7.11788
+6.96416
+)
+;
     }
     frontAndBack
     {
diff --git a/tutorials/incompressible/simpleFoam/pitzDaily/0/nuTilda b/tutorials/incompressible/simpleFoam/pitzDaily/0/nuTilda
index be7ac0223a2e57d8151e9e89bff3773340dc5a5a..e116c8515b3fda310592397f29705ea6ba4b0eb4 100644
--- a/tutorials/incompressible/simpleFoam/pitzDaily/0/nuTilda
+++ b/tutorials/incompressible/simpleFoam/pitzDaily/0/nuTilda
@@ -1,8 +1,8 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  1.6                                   |
-|   \\  /    A nd           | Web:      http://www.OpenFOAM.org               |
+|  \\    /   O peration     | Version:  dev                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
 FoamFile
@@ -10,41 +10,12268 @@ FoamFile
     version     2.0;
     format      ascii;
     class       volScalarField;
+    location    "0";
     object      nuTilda;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 dimensions      [0 2 -1 0 0 0 0];
 
-internalField   uniform 0;
+internalField   nonuniform List<scalar> 
+12225
+(
+8.6071e-05
+8.5212e-05
+8.5212e-05
+8.5212e-05
+8.5212e-05
+8.5212e-05
+8.5212e-05
+8.5212e-05
+8.5212e-05
+8.5212e-05
+8.5212e-05
+8.5212e-05
+8.5212e-05
+8.5212e-05
+8.5212e-05
+8.5212e-05
+8.5212e-05
+8.52399e-05
+0.000128466
+9.50795e-05
+9.50795e-05
+9.50795e-05
+9.50795e-05
+9.50795e-05
+9.50795e-05
+9.50795e-05
+9.50795e-05
+9.50795e-05
+9.50795e-05
+9.50795e-05
+9.50795e-05
+9.50795e-05
+9.50795e-05
+9.50795e-05
+9.50795e-05
+9.61806e-05
+0.000267359
+0.000162603
+0.000162603
+0.000162603
+0.000162603
+0.000162603
+0.000162603
+0.000162603
+0.000162603
+0.000162603
+0.000162603
+0.000162603
+0.000162603
+0.000162603
+0.000162603
+0.000162603
+0.000162603
+0.000164969
+0.000450704
+0.000247055
+0.000247055
+0.000247055
+0.000247055
+0.000247055
+0.000247055
+0.000247055
+0.000247055
+0.000247055
+0.000247055
+0.000247055
+0.000247055
+0.000247055
+0.000247055
+0.000247055
+0.000247055
+0.000249266
+0.000663247
+0.000345956
+0.000345956
+0.000345956
+0.000345956
+0.000345956
+0.000345956
+0.000345956
+0.000345956
+0.000345956
+0.000345956
+0.000345956
+0.000345956
+0.000345956
+0.000345956
+0.000345956
+0.000345956
+0.000347899
+0.000887272
+0.000459888
+0.000459888
+0.000459888
+0.000459888
+0.000459888
+0.000459888
+0.000459888
+0.000459888
+0.000459888
+0.000459888
+0.000459888
+0.000459888
+0.000459888
+0.000459888
+0.000459888
+0.000459888
+0.000461585
+0.00110081
+0.000593431
+0.000593431
+0.000593431
+0.000593431
+0.000593431
+0.000593431
+0.000593431
+0.000593431
+0.000593431
+0.000593431
+0.000593431
+0.000593431
+0.000593431
+0.000593431
+0.000593431
+0.000593431
+0.000594918
+0.00124802
+0.000716859
+0.000716859
+0.000716859
+0.000716859
+0.000716859
+0.000716859
+0.000716859
+0.000716859
+0.000716859
+0.000716859
+0.000716859
+0.000716859
+0.000716859
+0.000716859
+0.000716859
+0.000716859
+0.00071822
+0.00133223
+0.000833363
+0.000833363
+0.000833363
+0.000833363
+0.000833363
+0.000833363
+0.000833363
+0.000833363
+0.000833363
+0.000833363
+0.000833363
+0.000833363
+0.000833363
+0.000833363
+0.000833363
+0.000833363
+0.000834646
+0.00136689
+0.000978336
+0.000978336
+0.000978336
+0.000978336
+0.000978336
+0.000978336
+0.000978336
+0.000978336
+0.000978336
+0.000978336
+0.000978336
+0.000978336
+0.000978336
+0.000978336
+0.000978336
+0.000978336
+0.000979537
+0.0013417
+0.0011509
+0.0011509
+0.0011509
+0.0011509
+0.0011509
+0.0011509
+0.0011509
+0.0011509
+0.0011509
+0.0011509
+0.0011509
+0.0011509
+0.0011509
+0.0011509
+0.0011509
+0.0011509
+0.00115203
+0.000824859
+0.00081561
+0.00081561
+0.00081561
+0.00081561
+0.00081561
+0.00081561
+0.00081561
+0.00081561
+0.00081561
+0.00081561
+0.00081561
+0.00081561
+0.00081561
+0.00081561
+0.00081561
+0.00081561
+0.000817369
+9.98102e-05
+9.98102e-05
+9.98102e-05
+9.98102e-05
+9.98102e-05
+9.98102e-05
+9.98102e-05
+9.98102e-05
+9.98102e-05
+9.98102e-05
+9.98102e-05
+9.98102e-05
+9.98102e-05
+9.98102e-05
+9.98102e-05
+9.98102e-05
+9.98102e-05
+9.98102e-05
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+7.89587e-18
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0.00052545
+0.00052545
+0.00052545
+0.00052545
+0.00052545
+0.00052545
+0.00052545
+0.00052545
+0.00052545
+0.00052545
+0.00052545
+0.00052545
+0.00052545
+0.00052545
+0.00052545
+0.00052545
+0.00052545
+0.00052545
+0.00121104
+0.00104324
+0.00104324
+0.00104324
+0.00104324
+0.00104324
+0.00104324
+0.00104324
+0.00104324
+0.00104324
+0.00104324
+0.00104324
+0.00104324
+0.00104324
+0.00104324
+0.00104324
+0.00104324
+0.00104324
+0.0013678
+0.000940151
+0.000940151
+0.000940151
+0.000940151
+0.000940151
+0.000940151
+0.000940151
+0.000940151
+0.000940151
+0.000940151
+0.000940151
+0.000940151
+0.000940151
+0.000940151
+0.000940151
+0.000940151
+0.000940152
+0.00125408
+0.000723913
+0.000723913
+0.000723913
+0.000723913
+0.000723913
+0.000723913
+0.000723913
+0.000723913
+0.000723913
+0.000723913
+0.000723913
+0.000723913
+0.000723913
+0.000723913
+0.000723913
+0.000723913
+0.000723913
+0.00101747
+0.000538246
+0.000538246
+0.000538246
+0.000538246
+0.000538246
+0.000538246
+0.000538246
+0.000538246
+0.000538246
+0.000538246
+0.000538246
+0.000538246
+0.000538246
+0.000538246
+0.000538246
+0.000538246
+0.000538246
+0.00072704
+0.000380067
+0.000380067
+0.000380067
+0.000380067
+0.000380067
+0.000380067
+0.000380067
+0.000380067
+0.000380067
+0.000380067
+0.000380067
+0.000380067
+0.000380067
+0.000380067
+0.000380067
+0.000380067
+0.000380067
+0.000442461
+0.000247463
+0.000247463
+0.000247463
+0.000247463
+0.000247463
+0.000247463
+0.000247463
+0.000247463
+0.000247463
+0.000247463
+0.000247463
+0.000247463
+0.000247463
+0.000247463
+0.000247463
+0.000247463
+0.000247463
+0.000211043
+0.000143208
+0.000143208
+0.000143208
+0.000143208
+0.000143208
+0.000143208
+0.000143208
+0.000143208
+0.000143208
+0.000143208
+0.000143208
+0.000143208
+0.000143208
+0.000143208
+0.000143208
+0.000143208
+0.000143208
+0.000129393
+0.000127395
+0.000127395
+0.000127395
+0.000127395
+0.000127395
+0.000127395
+0.000127395
+0.000127395
+0.000127395
+0.000127395
+0.000127395
+0.000127395
+0.000127395
+0.000127395
+0.000127395
+0.000127395
+0.000127395
+0.000186727
+0.000352637
+0.000363446
+0.000370122
+0.00036993
+0.000369737
+0.000369542
+0.000369346
+0.000369149
+0.00036895
+0.000368749
+0.000368547
+0.000368343
+0.000368138
+0.000367931
+0.000367723
+0.000367513
+0.000367301
+0.000367088
+0.000366873
+0.000366656
+0.000366438
+0.000366218
+0.000365997
+0.000365773
+0.000365548
+0.000365321
+0.000365093
+0.000364863
+0.00036463
+0.000364397
+0.000364161
+0.000363924
+0.000363684
+0.000363443
+0.0003632
+0.000362955
+0.000362709
+0.00036246
+0.000362209
+0.000361957
+0.000361703
+0.000361446
+0.000361188
+0.000360927
+0.000360665
+0.000360401
+0.000360134
+0.000359866
+0.000359596
+0.000359323
+0.000359048
+0.000358772
+0.000358493
+0.000358212
+0.000357929
+0.000357643
+0.000357356
+0.000357066
+0.000356774
+0.00035648
+0.000356183
+0.000355885
+0.000355584
+0.00035528
+0.000354975
+0.000354667
+0.000354356
+0.000354044
+0.000353728
+0.000353411
+0.000353091
+0.000352768
+0.000352443
+0.000352116
+0.000351786
+0.000351454
+0.000351119
+0.000350781
+0.000350441
+0.000350098
+0.000349753
+0.000349405
+0.000349054
+0.000348701
+0.000348345
+0.000347986
+0.000347625
+0.000347261
+0.000346894
+0.000346524
+0.000346151
+0.000345776
+0.000345397
+0.000345016
+0.000344632
+0.000344245
+0.000343854
+0.000343461
+0.000343065
+0.000342666
+0.000342264
+0.000341859
+0.000341451
+0.000341039
+0.000340625
+0.000340207
+0.000339786
+0.000339362
+0.000338935
+0.000338504
+0.000338071
+0.000337633
+0.000337193
+0.000336749
+0.000336302
+0.000335851
+0.000335397
+0.00033494
+0.000334479
+0.000334015
+0.000333547
+0.000333075
+0.0003326
+0.000332121
+0.000331639
+0.000331153
+0.000330663
+0.00033017
+0.000329673
+0.000329172
+0.000328667
+0.000328158
+0.000327646
+0.00032713
+0.000326609
+0.000326085
+0.000325557
+0.000325025
+0.000324489
+0.000323949
+0.000323404
+0.000322856
+0.000322303
+0.000321747
+0.000321186
+0.000320621
+0.000320051
+0.000319477
+0.000318899
+0.000318317
+0.00031773
+0.000317139
+0.000316543
+0.000315943
+0.000315338
+0.000314729
+0.000314115
+0.000313497
+0.000312874
+0.000312246
+0.000311613
+0.000310976
+0.000310334
+0.000309687
+0.000309035
+0.000308379
+0.000307717
+0.00030705
+0.000306379
+0.000305702
+0.000305021
+0.000304334
+0.000303642
+0.000302945
+0.000302243
+0.000301535
+0.000300822
+0.000300104
+0.00029938
+0.000178982
+0.00019322
+0.000301822
+0.000322411
+0.000353126
+0.000396413
+0.000396205
+0.000395995
+0.000395783
+0.000395569
+0.000395354
+0.000395138
+0.000394919
+0.000394699
+0.000394477
+0.000394254
+0.000394029
+0.000393802
+0.000393573
+0.000393343
+0.00039311
+0.000392876
+0.000392641
+0.000392403
+0.000392164
+0.000391922
+0.000391679
+0.000391434
+0.000391187
+0.000390938
+0.000390688
+0.000390435
+0.00039018
+0.000389924
+0.000389665
+0.000389405
+0.000389142
+0.000388878
+0.000388611
+0.000388343
+0.000388072
+0.000387799
+0.000387524
+0.000387247
+0.000386968
+0.000386687
+0.000386404
+0.000386118
+0.00038583
+0.00038554
+0.000385248
+0.000384954
+0.000384657
+0.000384358
+0.000384057
+0.000383753
+0.000383447
+0.000383139
+0.000382828
+0.000382515
+0.0003822
+0.000381882
+0.000381562
+0.000381239
+0.000380914
+0.000380586
+0.000380256
+0.000379923
+0.000379588
+0.00037925
+0.000378909
+0.000378566
+0.000378221
+0.000377872
+0.000377521
+0.000377167
+0.000376811
+0.000376452
+0.00037609
+0.000375725
+0.000375358
+0.000374988
+0.000374615
+0.000374239
+0.00037386
+0.000373478
+0.000373093
+0.000372706
+0.000372315
+0.000371922
+0.000371525
+0.000371126
+0.000370723
+0.000370317
+0.000369909
+0.000369497
+0.000369082
+0.000368663
+0.000368242
+0.000367817
+0.00036739
+0.000366958
+0.000366524
+0.000366086
+0.000365645
+0.000365201
+0.000364753
+0.000364302
+0.000363847
+0.000363389
+0.000362927
+0.000362462
+0.000361994
+0.000361521
+0.000361045
+0.000360566
+0.000360083
+0.000359596
+0.000359106
+0.000358612
+0.000358114
+0.000357612
+0.000357106
+0.000356597
+0.000356084
+0.000355566
+0.000355045
+0.00035452
+0.000353991
+0.000353458
+0.000352921
+0.00035238
+0.000351835
+0.000351285
+0.000350732
+0.000350174
+0.000349612
+0.000349046
+0.000348475
+0.000347901
+0.000347321
+0.000346738
+0.00034615
+0.000345557
+0.000344961
+0.000344359
+0.000343753
+0.000343143
+0.000342528
+0.000341908
+0.000341283
+0.000340654
+0.00034002
+0.000339382
+0.000338738
+0.00033809
+0.000337437
+0.000336778
+0.000336115
+0.000335447
+0.000334774
+0.000334096
+0.000333413
+0.000332724
+0.000332031
+0.000331332
+0.000330628
+0.000329919
+0.000329204
+0.000328484
+0.000327759
+0.000327028
+0.000326291
+0.00032555
+0.000324802
+0.000324049
+0.000323291
+0.000322526
+0.000321756
+0.000320981
+0.000178982
+0.000192482
+0.000312695
+0.000451804
+0.000569066
+0.000502569
+0.000545708
+0.000640583
+0.00064024
+0.000639895
+0.000639547
+0.000639197
+0.000638843
+0.000638487
+0.000638129
+0.000637767
+0.000637403
+0.000637036
+0.000636666
+0.000636293
+0.000635917
+0.000635539
+0.000635157
+0.000634773
+0.000634386
+0.000633995
+0.000633602
+0.000633206
+0.000632806
+0.000632404
+0.000631998
+0.00063159
+0.000631178
+0.000630763
+0.000630344
+0.000629923
+0.000629498
+0.00062907
+0.000628639
+0.000628205
+0.000627767
+0.000627326
+0.000626881
+0.000626433
+0.000625981
+0.000625527
+0.000625068
+0.000624606
+0.000624141
+0.000623671
+0.000623199
+0.000622722
+0.000622242
+0.000621759
+0.000621271
+0.00062078
+0.000620285
+0.000619787
+0.000619284
+0.000618778
+0.000618268
+0.000617753
+0.000617235
+0.000616713
+0.000616187
+0.000615657
+0.000615123
+0.000614585
+0.000614042
+0.000613496
+0.000612945
+0.00061239
+0.000611831
+0.000611267
+0.000610699
+0.000610127
+0.000609551
+0.00060897
+0.000608384
+0.000607794
+0.0006072
+0.000606601
+0.000605997
+0.000605389
+0.000604776
+0.000604159
+0.000603537
+0.00060291
+0.000602278
+0.000601641
+0.000601
+0.000600354
+0.000599702
+0.000599046
+0.000598385
+0.000597718
+0.000597047
+0.000596371
+0.000595689
+0.000595002
+0.00059431
+0.000593612
+0.00059291
+0.000592202
+0.000591488
+0.000590769
+0.000590045
+0.000589315
+0.000588579
+0.000587838
+0.000587092
+0.000586339
+0.000585581
+0.000584817
+0.000584047
+0.000583272
+0.00058249
+0.000581703
+0.000580909
+0.00058011
+0.000579304
+0.000578493
+0.000577675
+0.000576851
+0.000576021
+0.000575184
+0.000574341
+0.000573492
+0.000572636
+0.000571774
+0.000570905
+0.00057003
+0.000569148
+0.000568259
+0.000567363
+0.000566461
+0.000565552
+0.000564636
+0.000563713
+0.000562783
+0.000561846
+0.000560903
+0.000559951
+0.000558993
+0.000558028
+0.000557055
+0.000556074
+0.000555087
+0.000554092
+0.000553089
+0.000552079
+0.000551061
+0.000550036
+0.000549003
+0.000547962
+0.000546913
+0.000545856
+0.000544792
+0.000543719
+0.000542638
+0.000541549
+0.000540452
+0.000539347
+0.000538233
+0.000537111
+0.000535981
+0.000534842
+0.000533695
+0.000532539
+0.000531374
+0.0005302
+0.000529018
+0.000527827
+0.000526627
+0.000525418
+0.0005242
+0.000522973
+0.000521737
+0.000520491
+0.000519238
+0.000178982
+0.000192484
+0.000312697
+0.000450747
+0.000597902
+0.000753053
+0.000871165
+0.000710569
+0.000766914
+0.000918445
+0.000917946
+0.000917443
+0.000916936
+0.000916425
+0.00091591
+0.000915391
+0.000914868
+0.000914341
+0.00091381
+0.000913275
+0.000912736
+0.000912193
+0.000911645
+0.000911094
+0.000910538
+0.000909977
+0.000909413
+0.000908844
+0.000908271
+0.000907693
+0.000907111
+0.000906524
+0.000905933
+0.000905338
+0.000904737
+0.000904132
+0.000903523
+0.000902909
+0.00090229
+0.000901666
+0.000901038
+0.000900404
+0.000899766
+0.000899123
+0.000898475
+0.000897822
+0.000897164
+0.000896501
+0.000895833
+0.00089516
+0.000894481
+0.000893797
+0.000893108
+0.000892414
+0.000891715
+0.00089101
+0.000890299
+0.000889584
+0.000888862
+0.000888136
+0.000887403
+0.000886665
+0.000885922
+0.000885172
+0.000884417
+0.000883656
+0.00088289
+0.000882117
+0.000881338
+0.000880554
+0.000879763
+0.000878967
+0.000878164
+0.000877355
+0.00087654
+0.000875719
+0.000874892
+0.000874058
+0.000873218
+0.000872371
+0.000871518
+0.000870658
+0.000869792
+0.000868919
+0.000868039
+0.000867153
+0.00086626
+0.00086536
+0.000864453
+0.00086354
+0.000862619
+0.000861691
+0.000860756
+0.000859815
+0.000858865
+0.000857909
+0.000856945
+0.000855974
+0.000854996
+0.00085401
+0.000853017
+0.000852016
+0.000851007
+0.000849991
+0.000848967
+0.000847935
+0.000846895
+0.000845847
+0.000844792
+0.000843728
+0.000842656
+0.000841576
+0.000840488
+0.000839392
+0.000838287
+0.000837174
+0.000836052
+0.000834922
+0.000833783
+0.000832635
+0.000831479
+0.000830314
+0.00082914
+0.000827958
+0.000826766
+0.000825565
+0.000824355
+0.000823136
+0.000821908
+0.00082067
+0.000819423
+0.000818167
+0.000816901
+0.000815625
+0.00081434
+0.000813045
+0.00081174
+0.000810426
+0.000809101
+0.000807766
+0.000806422
+0.000805067
+0.000803702
+0.000802326
+0.00080094
+0.000799544
+0.000798137
+0.00079672
+0.000795291
+0.000793852
+0.000792403
+0.000790942
+0.00078947
+0.000787987
+0.000786493
+0.000784988
+0.000783471
+0.000781943
+0.000780403
+0.000778852
+0.000777289
+0.000775715
+0.000774128
+0.00077253
+0.000770919
+0.000769297
+0.000767662
+0.000766015
+0.000764356
+0.000762684
+0.000761
+0.000759303
+0.000757594
+0.000755871
+0.000754136
+0.000752388
+0.000750626
+0.000748852
+0.000747064
+0.000745267
+0.000178982
+0.000192486
+0.000312699
+0.00045075
+0.000597906
+0.000751958
+0.000911842
+0.00107812
+0.00118677
+0.000925529
+0.00100711
+0.00102172
+0.00102248
+0.00102324
+0.00102401
+0.00102479
+0.00102557
+0.00102636
+0.00102715
+0.00102795
+0.00102875
+0.00102956
+0.00103038
+0.00103119
+0.00103202
+0.00103285
+0.00103369
+0.00103453
+0.00103538
+0.00103623
+0.00103709
+0.00103795
+0.00103882
+0.0010397
+0.00104058
+0.00104147
+0.00104236
+0.00104326
+0.00104417
+0.00104508
+0.001046
+0.00104692
+0.00104785
+0.00104879
+0.00104973
+0.00105068
+0.00105163
+0.00105259
+0.00105356
+0.00105453
+0.00105551
+0.0010565
+0.00105749
+0.00105849
+0.00105949
+0.0010605
+0.00106152
+0.00106255
+0.00106358
+0.00106461
+0.00106566
+0.00106671
+0.00106776
+0.00106883
+0.0010699
+0.00107098
+0.00107206
+0.00107315
+0.00107425
+0.00107535
+0.00107646
+0.00107758
+0.00107871
+0.00107984
+0.00108098
+0.00108212
+0.00108327
+0.00108443
+0.0010856
+0.00108677
+0.00108795
+0.00108914
+0.00109034
+0.00109154
+0.00109275
+0.00109396
+0.00109519
+0.00109642
+0.00109766
+0.0010989
+0.00110015
+0.00110141
+0.00110268
+0.00110396
+0.00110524
+0.00110653
+0.00110782
+0.00110913
+0.00111044
+0.00111176
+0.00111308
+0.00111441
+0.00111576
+0.0011171
+0.00111846
+0.00111982
+0.00111849
+0.00111711
+0.00111572
+0.00111431
+0.0011129
+0.00111147
+0.00111003
+0.00110858
+0.00110712
+0.00110565
+0.00110417
+0.00110268
+0.00110118
+0.00109966
+0.00109813
+0.0010966
+0.00109505
+0.00109348
+0.00109191
+0.00109032
+0.00108873
+0.00108712
+0.00108549
+0.00108386
+0.00108221
+0.00108055
+0.00107888
+0.0010772
+0.0010755
+0.00107379
+0.00107206
+0.00107033
+0.00106858
+0.00106682
+0.00106504
+0.00106325
+0.00106145
+0.00105963
+0.0010578
+0.00105596
+0.0010541
+0.00105223
+0.00105034
+0.00104844
+0.00104653
+0.0010446
+0.00104265
+0.00104069
+0.00103872
+0.00103673
+0.00103473
+0.00103271
+0.00103068
+0.00102863
+0.00102657
+0.00102449
+0.00102239
+0.00102028
+0.00101815
+0.00101601
+0.00101385
+0.00101168
+0.00100948
+0.00100728
+0.00100505
+0.00100281
+0.00100055
+0.000998279
+0.000995987
+0.000993678
+0.000991352
+0.000989008
+0.000986647
+0.000984277
+0.000178982
+0.000192488
+0.000312702
+0.000450755
+0.000597912
+0.000751966
+0.000911851
+0.00107692
+0.00124675
+0.00142267
+0.000981517
+0.000467492
+0.000467392
+0.000469329
+0.000471284
+0.000473257
+0.000475247
+0.000477256
+0.000479283
+0.000481329
+0.000483394
+0.000485478
+0.000487581
+0.000489703
+0.000491845
+0.000494007
+0.000496189
+0.000498391
+0.000500614
+0.000502857
+0.000505122
+0.000507407
+0.000509714
+0.000512043
+0.000514393
+0.000516765
+0.00051916
+0.000521577
+0.000524017
+0.00052648
+0.000528966
+0.000531476
+0.00053401
+0.000536568
+0.00053915
+0.000541757
+0.000544388
+0.000547045
+0.000549727
+0.000552435
+0.000555169
+0.000557929
+0.000560716
+0.00056353
+0.00056637
+0.000569239
+0.000572135
+0.000575059
+0.000578012
+0.000580993
+0.000584004
+0.000587044
+0.000590114
+0.000593214
+0.000596344
+0.000599505
+0.000602697
+0.000605921
+0.000609177
+0.000612465
+0.000615786
+0.00061914
+0.000622527
+0.000625948
+0.000629403
+0.000632893
+0.000636418
+0.000639978
+0.000643575
+0.000647207
+0.000650877
+0.000654583
+0.000658328
+0.00066211
+0.000665931
+0.000669791
+0.000673691
+0.00067763
+0.00068161
+0.000685632
+0.000689694
+0.000693799
+0.000697946
+0.000702137
+0.000706371
+0.000710649
+0.000714972
+0.00071934
+0.000723754
+0.000728215
+0.000732723
+0.000737278
+0.000741882
+0.000746534
+0.000751237
+0.000755978
+0.000759187
+0.000762378
+0.000765589
+0.000768819
+0.00077207
+0.00077534
+0.000778631
+0.000781942
+0.000785273
+0.000788624
+0.000791995
+0.000795387
+0.000798799
+0.000802232
+0.000805686
+0.00080916
+0.000812654
+0.00081617
+0.000819706
+0.000823263
+0.000826841
+0.00083044
+0.00083406
+0.0008377
+0.000841362
+0.000845045
+0.00084875
+0.000852475
+0.000856222
+0.00085999
+0.000863779
+0.000867589
+0.000871421
+0.000875275
+0.000879149
+0.000883046
+0.000886963
+0.000890902
+0.000894863
+0.000898845
+0.000902848
+0.000906874
+0.00091092
+0.000914988
+0.000919078
+0.000923189
+0.000927322
+0.000931476
+0.000935652
+0.000939849
+0.000944067
+0.000948307
+0.000952569
+0.000956851
+0.000961156
+0.000965481
+0.000969828
+0.000974195
+0.000978584
+0.000982994
+0.000987425
+0.000991877
+0.00099635
+0.00100084
+0.00100536
+0.00100989
+0.00101445
+0.00101903
+0.00102362
+0.00102824
+0.00103288
+0.00103753
+0.00104221
+0.00104693
+0.000178982
+0.000192491
+0.000312706
+0.00045076
+0.000597919
+0.000751974
+0.000911861
+0.00107694
+0.00124677
+0.00142104
+0.000874384
+4.0891e-05
+1.97534e-18
+4.05281e-18
+1.66133e-17
+5.92727e-18
+1.56706e-17
+9.08054e-18
+6.30655e-19
+1.86513e-17
+5.71665e-18
+4.4417e-18
+2.25387e-17
+9.91139e-18
+3.07883e-18
+1.47442e-17
+6.66464e-18
+1.21112e-17
+2.76268e-17
+7.16296e-18
+2.01209e-17
+1.81974e-17
+5.24351e-18
+6.96027e-18
+1.74171e-18
+5.68985e-18
+5.09543e-18
+2.13913e-17
+5.4599e-19
+7.1558e-18
+1.04421e-17
+6.03904e-18
+2.49929e-17
+1.72813e-17
+1.61126e-17
+8.51866e-18
+8.97411e-18
+3.68716e-18
+1.25088e-17
+1.70655e-17
+1.07787e-17
+6.12293e-18
+7.06837e-18
+4.90812e-19
+7.50535e-18
+1.14209e-17
+2.97933e-18
+4.38992e-18
+1.01398e-17
+2.39956e-18
+3.83111e-18
+9.46442e-18
+7.5555e-18
+4.66635e-18
+1.76721e-17
+1.98497e-17
+2.29371e-17
+1.68162e-17
+1.08679e-17
+2.28133e-18
+2.70118e-18
+1.59217e-17
+1.80458e-18
+9.3879e-19
+1.47463e-17
+1.51495e-17
+1.11166e-17
+1.14551e-17
+1.64878e-18
+7.94144e-18
+1.33346e-17
+7.83284e-18
+5.77428e-18
+6.13297e-18
+2.05675e-18
+8.48497e-18
+7.80359e-19
+5.11486e-18
+8.62063e-18
+1.29195e-17
+7.59348e-19
+3.84607e-18
+1.26585e-17
+1.75574e-17
+1.69954e-17
+7.92662e-18
+1.53103e-18
+2.9688e-18
+1.79807e-18
+6.21531e-18
+8.72824e-18
+9.72707e-18
+1.03623e-17
+2.43423e-18
+1.72709e-18
+1.01563e-17
+4.04126e-06
+8.19318e-06
+1.23904e-05
+1.66335e-05
+2.09232e-05
+2.52599e-05
+2.96445e-05
+3.40775e-05
+3.85597e-05
+4.30915e-05
+4.76739e-05
+5.23073e-05
+5.69926e-05
+6.17305e-05
+6.65217e-05
+7.13669e-05
+7.6267e-05
+8.12226e-05
+8.62345e-05
+9.13036e-05
+9.64307e-05
+0.000101617
+0.000106862
+0.000112168
+0.000117535
+0.000122965
+0.000128458
+0.000134014
+0.000139636
+0.000145324
+0.000151079
+0.000156901
+0.000162793
+0.000168754
+0.000174787
+0.000180891
+0.000187069
+0.000193321
+0.000199648
+0.000206052
+0.000212534
+0.000219095
+0.000225735
+0.000232457
+0.000239262
+0.000246151
+0.000253125
+0.000260185
+0.000267333
+0.000274571
+0.0002819
+0.000289321
+0.000296835
+0.000304445
+0.000312152
+0.000319956
+0.000327861
+0.000335868
+0.000343978
+0.000352193
+0.000360514
+0.000368944
+0.000377485
+0.000386137
+0.000394904
+0.000403787
+0.000412788
+0.000421909
+0.000431153
+0.00044052
+0.000450014
+0.000459637
+0.00046939
+0.000479277
+0.000178982
+0.000192494
+0.00031271
+0.000450766
+0.000597927
+0.000751984
+0.000911873
+0.00107695
+0.00124678
+0.00142106
+0.000874346
+4.08405e-05
+6.1235e-18
+3.2684e-18
+1.40174e-17
+9.92173e-18
+1.5095e-17
+4.57202e-18
+1.89129e-18
+5.75811e-18
+2.54763e-17
+8.2048e-18
+9.3707e-18
+3.29569e-17
+1.05042e-17
+1.89996e-17
+7.91426e-18
+9.09816e-18
+5.98287e-18
+6.58061e-18
+1.21422e-18
+7.11823e-18
+9.34713e-18
+1.1657e-17
+1.1237e-18
+2.39866e-17
+2.49233e-17
+1.85868e-17
+6.00771e-19
+1.66427e-17
+2.31448e-17
+7.10791e-18
+6.47374e-18
+2.68704e-18
+3.7666e-18
+2.49846e-17
+1.3958e-20
+2.61174e-18
+5.18656e-18
+1.49954e-17
+2.05547e-18
+2.04097e-17
+3.06464e-18
+5.00628e-18
+2.92419e-18
+2.90361e-18
+9.61161e-19
+4.38992e-18
+1.1656e-17
+1.49619e-17
+9.53105e-18
+9.55721e-18
+1.8428e-17
+3.75138e-18
+6.99614e-18
+4.60154e-18
+4.48154e-19
+7.29593e-18
+3.62264e-18
+1.84261e-18
+7.14506e-18
+4.41309e-18
+1.28039e-17
+8.53459e-19
+1.30513e-17
+8.58471e-18
+2.59112e-18
+7.63677e-18
+1.13763e-17
+3.76606e-18
+1.74813e-17
+2.90703e-18
+6.97721e-18
+7.32771e-18
+4.42987e-18
+3.22121e-18
+4.83778e-18
+1.54998e-18
+6.77338e-18
+4.28107e-18
+1.0478e-17
+1.003e-17
+3.07106e-18
+9.52268e-18
+1.06406e-17
+1.1011e-18
+8.28938e-20
+1.88265e-18
+3.59614e-19
+4.42932e-18
+3.54811e-18
+3.59484e-18
+6.09132e-18
+5.35514e-18
+1.72719e-18
+8.44073e-18
+1.70418e-18
+5.4849e-18
+7.93739e-18
+2.40561e-18
+4.38104e-18
+7.781e-18
+8.05725e-18
+1.63339e-17
+1.55154e-17
+6.55087e-18
+5.23182e-18
+1.2994e-17
+1.5491e-17
+1.60156e-17
+1.96407e-17
+6.6691e-18
+5.3988e-18
+1.21905e-18
+6.05585e-19
+4.57278e-18
+5.85847e-18
+1.55618e-17
+1.08587e-17
+6.91914e-18
+5.65142e-18
+5.79113e-19
+7.59282e-18
+1.71467e-18
+1.4539e-17
+1.46727e-18
+1.57015e-17
+2.00694e-18
+3.43323e-18
+2.53114e-18
+8.75379e-19
+3.04293e-18
+3.23993e-18
+3.32721e-18
+1.38656e-18
+4.34589e-18
+2.10684e-19
+3.76902e-18
+2.70523e-18
+8.47954e-18
+1.02775e-18
+5.10734e-19
+2.84268e-18
+8.47617e-18
+1.26372e-17
+1.45545e-17
+4.06263e-18
+3.54575e-18
+7.24453e-18
+2.2382e-18
+1.74197e-18
+3.17316e-18
+1.92913e-19
+6.84143e-18
+3.11715e-18
+1.31465e-17
+9.33525e-19
+1.85613e-18
+6.64311e-18
+7.06319e-18
+4.92468e-18
+1.08805e-18
+2.16358e-18
+7.17057e-19
+2.67359e-18
+6.02604e-18
+2.73835e-19
+2.63898e-19
+4.00763e-18
+0
+0.000178982
+0.000192498
+0.000312715
+0.000450773
+0.000597936
+0.000751996
+0.000911887
+0.00107697
+0.0012468
+0.00142108
+0.000874303
+4.07828e-05
+6.05765e-18
+8.62857e-18
+1.29791e-18
+7.86008e-18
+2.22587e-17
+6.35061e-19
+6.30424e-19
+5.75812e-18
+7.64292e-18
+6.39094e-20
+2.38249e-17
+4.31724e-18
+3.74289e-18
+9.82947e-18
+1.94584e-17
+6.61685e-18
+1.85938e-17
+1.30447e-17
+1.12746e-17
+2.98506e-18
+7.63729e-18
+1.6977e-18
+6.34875e-18
+3.40278e-18
+9.08316e-18
+1.01183e-17
+1.11382e-17
+4.44537e-18
+3.3372e-18
+1.60335e-18
+1.68742e-17
+2.73973e-18
+1.33923e-17
+1.11158e-17
+1.135e-18
+1.53638e-18
+1.41359e-17
+2.12061e-18
+2.00533e-18
+7.56654e-18
+9.09497e-18
+8.54013e-18
+3.50899e-18
+4.93613e-18
+2.06631e-17
+3.08249e-17
+1.21298e-17
+4.79911e-18
+3.3639e-18
+7.60865e-18
+1.07804e-17
+1.37246e-18
+1.81718e-18
+8.3008e-18
+1.97115e-17
+3.56103e-19
+2.2973e-18
+5.79106e-18
+4.44388e-18
+1.29802e-18
+8.59402e-19
+1.22887e-17
+6.52569e-18
+2.18826e-18
+5.09861e-18
+3.32222e-19
+9.31538e-18
+4.09952e-19
+1.12206e-17
+6.62165e-18
+5.69404e-18
+4.7838e-19
+1.74821e-17
+4.871e-18
+3.97952e-18
+1.55009e-18
+3.92552e-18
+6.72735e-18
+1.1617e-17
+1.54597e-17
+4.94356e-18
+9.89466e-18
+8.64553e-18
+3.00918e-18
+3.71811e-18
+6.73411e-18
+6.97651e-18
+5.50088e-18
+7.23803e-18
+1.08549e-17
+3.5708e-18
+6.81566e-18
+7.04653e-18
+2.05879e-18
+6.68043e-18
+4.19832e-18
+1.74891e-18
+6.14752e-18
+7.8327e-18
+9.49546e-18
+9.03986e-18
+7.02812e-18
+8.21022e-18
+2.95432e-18
+2.55794e-19
+5.83148e-18
+8.31226e-18
+9.88467e-18
+1.68437e-17
+1.07445e-17
+6.25769e-18
+4.9981e-18
+5.32918e-18
+1.50428e-18
+7.65188e-18
+4.27663e-18
+1.06227e-17
+4.80822e-18
+3.02978e-18
+9.26771e-19
+2.07077e-18
+2.30706e-19
+3.52117e-18
+2.59612e-18
+2.32377e-19
+5.68385e-18
+5.98031e-18
+4.73213e-18
+1.42199e-18
+9.99818e-18
+1.40397e-17
+2.79061e-18
+2.13317e-18
+6.25385e-18
+7.26859e-18
+6.38627e-18
+6.3469e-18
+8.27268e-19
+9.4553e-18
+6.23102e-18
+6.80212e-18
+9.28347e-18
+9.22712e-18
+5.88159e-18
+5.8461e-18
+1.57584e-18
+7.8364e-19
+3.30864e-18
+2.70863e-18
+2.88469e-19
+4.78627e-19
+2.66056e-18
+7.93473e-18
+3.75622e-18
+6.62803e-18
+1.85613e-18
+4.98258e-18
+9.53997e-18
+1.82396e-19
+6.07517e-18
+2.70448e-19
+4.84013e-18
+1.42591e-18
+4.9625e-18
+6.78455e-18
+1.40177e-18
+1.74488e-18
+1.10883e-17
+0.000178982
+0.000192502
+0.00031272
+0.000450781
+0.000597946
+0.000752009
+0.000911903
+0.00107699
+0.00124682
+0.0014211
+0.000874253
+4.07178e-05
+6.05765e-18
+1.30739e-18
+2.66073e-18
+9.21304e-18
+7.16372e-18
+1.90503e-18
+3.03865e-17
+1.9903e-17
+5.09527e-18
+4.9969e-18
+1.24943e-17
+1.05803e-17
+1.23153e-17
+3.11667e-18
+1.28532e-17
+9.09819e-18
+0
+8.26944e-18
+7.05387e-18
+4.70724e-18
+8.77718e-18
+1.6977e-18
+4.60705e-18
+5.68986e-18
+5.64928e-18
+1.12181e-17
+1.68165e-17
+1.05169e-17
+9.90388e-18
+2.07358e-17
+2.12254e-17
+1.72813e-17
+3.76668e-18
+3.22047e-18
+8.97412e-18
+1.0447e-17
+9.96634e-18
+8.7852e-18
+1.18315e-17
+5.6749e-18
+9.88583e-20
+1.06015e-17
+1.55955e-18
+7.83974e-18
+1.28784e-17
+6.87118e-18
+1.07084e-17
+1.43973e-17
+9.06385e-18
+2.96923e-18
+4.23846e-18
+1.82994e-18
+7.99559e-18
+1.71429e-17
+1.14685e-17
+1.00542e-17
+7.68704e-18
+4.38717e-19
+1.8734e-17
+6.66291e-18
+6.18714e-18
+5.29108e-18
+4.40717e-18
+3.02998e-18
+3.00901e-18
+5.56154e-18
+4.61647e-18
+6.30407e-18
+6.58599e-18
+2.18538e-20
+2.17041e-20
+3.215e-19
+2.76874e-18
+6.36372e-18
+1.95083e-18
+3.88053e-19
+1.5394e-18
+1.09319e-17
+7.06132e-18
+1.16136e-17
+4.49871e-19
+1.14569e-17
+1.24141e-17
+8.66059e-18
+2.25999e-18
+0
+7.19228e-19
+9.4301e-18
+4.32863e-18
+2.18515e-18
+7.84166e-18
+1.09885e-17
+1.79627e-18
+5.97026e-18
+7.70294e-18
+5.55264e-18
+1.0628e-17
+0
+1.1218e-17
+9.09981e-18
+1.00225e-17
+1.19739e-17
+6.46474e-19
+1.61843e-17
+3.57299e-18
+4.94418e-18
+1.25944e-17
+1.57654e-17
+4.47521e-18
+3.21101e-18
+1.16565e-17
+6.82676e-18
+5.93483e-18
+3.25668e-20
+5.98678e-19
+1.05725e-17
+8.49819e-18
+7.27096e-18
+2.35171e-19
+2.66294e-18
+5.29196e-18
+4.11533e-18
+2.04455e-18
+1.68173e-17
+1.52529e-17
+3.34339e-19
+1.2182e-18
+1.76079e-18
+1.75001e-18
+4.12979e-18
+4.31991e-19
+2.79061e-18
+6.07954e-18
+1.37797e-18
+7.58462e-18
+8.79412e-18
+4.78627e-18
+7.65228e-18
+2.36382e-18
+1.83885e-18
+7.20822e-18
+8.57708e-18
+9.22712e-18
+4.7851e-18
+1.2884e-18
+3.743e-18
+1.17509e-18
+7.68773e-18
+1.93464e-18
+2.11544e-18
+1.00365e-17
+1.71036e-18
+6.99072e-18
+6.38543e-18
+5.05285e-20
+1.42922e-17
+1.41167e-17
+3.11919e-18
+6.38384e-18
+7.27028e-19
+2.70448e-18
+4.66087e-18
+7.12957e-19
+2.12669e-18
+5.37464e-18
+3.41713e-18
+5.05297e-18
+0
+0.000178982
+0.000192507
+0.000312726
+0.000450789
+0.000597958
+0.000752023
+0.000911921
+0.00107701
+0.00124685
+0.00142113
+0.000874199
+4.06457e-05
+1.42223e-17
+1.33351e-17
+8.78143e-21
+7.2158e-18
+1.24086e-17
+3.17502e-17
+3.15212e-18
+1.41449e-17
+1.24286e-18
+5.0586e-18
+1.06569e-17
+1.21612e-18
+6.03913e-19
+1.17474e-17
+1.34483e-17
+6.73502e-18
+8.91564e-18
+2.63224e-17
+4.16294e-18
+1.05625e-17
+9.91708e-18
+8.71448e-18
+5.16889e-18
+1.0264e-17
+7.97546e-18
+3.09047e-17
+2.00924e-17
+1.73474e-18
+1.31334e-17
+1.92394e-17
+1.69803e-18
+1.83351e-17
+1.49617e-17
+9.55752e-18
+6.29219e-18
+1.53632e-18
+3.66121e-18
+6.66463e-18
+1.00267e-18
+1.79207e-17
+5.9315e-19
+3.04315e-18
+2.92416e-18
+6.48473e-18
+6.43919e-18
+7.34834e-18
+1.40251e-17
+2.11726e-17
+1.10261e-17
+1.00211e-17
+1.8428e-17
+6.03885e-18
+1.86261e-17
+1.34437e-17
+5.0175e-18
+5.87234e-18
+2.20905e-18
+5.44009e-18
+4.36312e-19
+6.66294e-18
+3.09365e-18
+3.4136e-18
+9.91559e-18
+9.42646e-18
+8.10761e-18
+8.05178e-18
+1.64874e-18
+3.35669e-18
+3.74019e-18
+4.52205e-18
+7.05753e-18
+3.21499e-19
+2.05683e-18
+4.39966e-18
+1.17043e-18
+1.93743e-18
+7.08123e-18
+7.49179e-18
+1.21502e-18
+3.09194e-18
+6.06713e-18
+8.03477e-18
+8.27606e-18
+3.37615e-18
+1.45814e-18
+4.77903e-18
+5.8977e-18
+4.00069e-18
+7.09611e-19
+6.76669e-18
+5.74121e-18
+7.09385e-18
+1.79627e-18
+7.68587e-18
+4.22638e-18
+6.22979e-18
+1.58747e-17
+2.69718e-19
+1.24792e-17
+9.49546e-18
+1.24464e-17
+1.5618e-17
+1.25416e-17
+1.02757e-18
+5.61463e-18
+6.46531e-18
+7.43096e-18
+2.87781e-18
+1.11878e-17
+3.21118e-18
+1.96347e-18
+5.36422e-18
+6.06472e-19
+3.37003e-18
+1.49451e-17
+8.79084e-18
+2.36081e-18
+3.28381e-18
+4.54443e-18
+4.51554e-18
+1.15043e-18
+5.71557e-19
+1.07907e-17
+7.44928e-18
+2.24307e-19
+1.44912e-18
+4.43993e-19
+5.61252e-18
+2.26588e-19
+3.26041e-18
+2.15996e-18
+3.64906e-18
+2.98644e-18
+2.12014e-18
+3.16039e-18
+6.17682e-18
+5.5148e-18
+2.89598e-18
+3.90545e-18
+5.0052e-18
+3.04622e-18
+7.77002e-18
+1.2236e-17
+9.97245e-19
+1.99979e-19
+5.81116e-18
+5.38444e-18
+6.22803e-18
+1.06534e-18
+5.76938e-18
+6.11748e-18
+1.23633e-18
+6.0456e-18
+4.50736e-18
+3.36107e-18
+7.61013e-18
+5.16711e-18
+4.58646e-19
+1.09437e-18
+3.26453e-18
+4.77816e-18
+7.17057e-19
+8.92501e-19
+1.32918e-18
+1.14641e-18
+2.62831e-19
+1.30675e-18
+0
+0.000178982
+0.000192512
+0.000312732
+0.000450799
+0.00059797
+0.000752039
+0.00091194
+0.00107703
+0.00124687
+0.00142116
+0.000874139
+4.05664e-05
+2.63376e-18
+6.01385e-18
+0
+5.92727e-18
+1.97002e-17
+4.57202e-18
+5.79991e-18
+1.21421e-17
+1.24286e-18
+8.88338e-18
+8.81948e-18
+3.64837e-18
+1.2919e-17
+9.82948e-18
+6.66466e-18
+9.09817e-18
+2.46353e-18
+1.36271e-17
+5.78186e-18
+2.58323e-17
+8.09325e-18
+1.44864e-17
+6.40493e-18
+1.31647e-17
+4.5416e-18
+6.81889e-18
+4.36792e-18
+4.33685e-18
+1.37793e-17
+1.36814e-17
+1.95274e-17
+1.02213e-17
+1.44386e-17
+9.14197e-18
+7.42685e-18
+6.14527e-19
+1.35258e-17
+4.64504e-18
+1.28341e-17
+5.6749e-18
+1.26539e-17
+5.00628e-18
+2.04695e-18
+4.4522e-18
+1.03796e-17
+2.86311e-18
+1.64889e-17
+7.71622e-18
+4.76559e-18
+5.289e-18
+9.54548e-20
+5.21539e-18
+5.08816e-18
+2.21054e-17
+1.97115e-17
+7.74081e-18
+1.04261e-17
+7.72145e-18
+7.14506e-18
+4.8458e-18
+2.23436e-18
+6.14434e-18
+8.22065e-18
+4.21435e-19
+3.0091e-18
+8.46682e-18
+4.28678e-18
+7.53208e-18
+1.58551e-17
+8.31734e-18
+3.28818e-18
+2.86744e-18
+6.80303e-18
+5.18526e-18
+3.58932e-18
+7.51723e-18
+1.15455e-18
+2.2935e-18
+3.49274e-18
+4.22318e-18
+7.64007e-18
+1.41352e-17
+1.13796e-17
+8.2202e-18
+1.97292e-20
+2.92278e-19
+1.87009e-18
+9.85872e-18
+9.08302e-18
+7.1896e-18
+3.64082e-18
+2.50399e-18
+3.17807e-18
+3.15674e-18
+3.40837e-18
+1.24595e-17
+9.41722e-19
+1.33641e-18
+1.5931e-17
+1.12099e-17
+1.33634e-17
+1.0412e-17
+9.30929e-18
+1.66981e-18
+3.45342e-20
+6.84562e-18
+1.00812e-18
+6.13099e-18
+4.2266e-18
+1.34617e-17
+1.20246e-17
+7.07057e-18
+5.93483e-18
+1.92564e-18
+2.15209e-18
+1.33047e-17
+3.06894e-18
+8.6783e-18
+3.49585e-18
+1.27358e-18
+6.21231e-18
+4.11533e-18
+7.83744e-18
+1.00452e-17
+1.45831e-18
+3.1205e-18
+1.10745e-18
+2.64119e-18
+4.38439e-19
+2.28219e-18
+1.24197e-17
+9.44463e-18
+2.13317e-18
+2.86864e-20
+1.02182e-17
+8.06148e-18
+5.61863e-18
+3.11485e-19
+1.02925e-18
+1.5332e-18
+8.52821e-18
+1.61543e-18
+6.01769e-19
+5.01352e-19
+6.83697e-18
+7.89722e-19
+2.74168e-18
+4.89408e-19
+7.15837e-18
+2.88516e-18
+2.91387e-19
+4.56124e-18
+5.10105e-18
+3.66223e-18
+7.84177e-18
+2.69139e-18
+7.75046e-18
+8.89773e-18
+7.75181e-18
+2.08775e-18
+2.43403e-18
+3.94381e-18
+2.94135e-18
+2.65836e-18
+5.90348e-18
+4.9071e-18
+3.31076e-18
+0
+0.000178983
+0.000192517
+0.00031274
+0.000450809
+0.000597984
+0.000752056
+0.000911961
+0.00107705
+0.0012469
+0.00142119
+0.000874073
+4.04798e-05
+1.31688e-18
+1.54268e-17
+0
+5.92729e-18
+2.16191e-17
+3.83542e-17
+7.06077e-18
+2.05289e-17
+3.72824e-18
+3.08451e-18
+1.20043e-17
+1.11883e-17
+1.2075e-18
+2.99683e-18
+2.38023e-17
+5.43529e-18
+1.86525e-17
+5.35768e-18
+6.47569e-18
+2.22732e-17
+5.81346e-18
+3.50846e-18
+8.09044e-18
+1.59539e-17
+6.86777e-18
+2.70553e-17
+2.79547e-17
+4.55369e-18
+4.95194e-18
+2.13771e-18
+1.63435e-17
+6.95469e-18
+2.08208e-17
+2.45171e-17
+4.74495e-18
+3.78961e-18
+6.20355e-18
+1.55508e-17
+1.39371e-17
+2.98679e-18
+4.94473e-19
+5.59527e-18
+1.00396e-17
+5.51686e-18
+6.91973e-18
+3.91284e-18
+1.49727e-17
+2.44661e-18
+7.66226e-18
+1.24337e-17
+2.39577e-18
+1.07966e-17
+2.74394e-17
+2.21956e-17
+1.70236e-17
+8.89748e-19
+2.29777e-18
+1.31636e-18
+7.49363e-18
+4.49968e-18
+1.22884e-17
+3.92555e-18
+9.0681e-18
+4.21435e-19
+6.01806e-18
+3.81837e-18
+1.02223e-17
+2.94742e-18
+8.13382e-19
+5.3296e-18
+5.77424e-18
+6.05336e-18
+1.58224e-18
+6.44229e-18
+7.80287e-19
+6.81975e-18
+4.31036e-18
+5.50421e-18
+8.20023e-18
+1.20678e-18
+1.10856e-17
+9.82026e-18
+6.50263e-18
+7.33946e-19
+4.51981e-18
+2.17237e-18
+4.02768e-18
+3.71508e-18
+8.37341e-18
+2.53778e-18
+1.12024e-17
+7.51121e-18
+2.90151e-18
+2.19627e-18
+8.31642e-18
+2.43773e-18
+1.00899e-17
+3.20759e-18
+8.09853e-18
+1.14737e-17
+6.81272e-18
+1.1323e-17
+1.21538e-17
+2.3123e-18
+2.04198e-18
+2.28213e-18
+5.79348e-18
+9.88465e-18
+5.46955e-18
+2.84051e-18
+7.60765e-18
+5.60773e-18
+6.54032e-18
+9.63235e-19
+5.26067e-18
+1.21168e-17
+1.03866e-17
+3.28381e-18
+2.09766e-18
+1.1578e-18
+2.07077e-18
+5.25832e-18
+2.95324e-18
+1.80587e-18
+8.99281e-19
+4.79257e-18
+2.87953e-18
+4.84218e-18
+6.23351e-18
+5.8685e-18
+3.56393e-18
+3.32721e-18
+5.97316e-18
+7.44197e-19
+2.52821e-18
+2.09384e-18
+6.13906e-18
+1.03409e-17
+2.67273e-18
+4.8009e-18
+7.10691e-18
+8.27436e-18
+8.52506e-18
+1.59592e-18
+3.96346e-18
+1.57674e-18
+7.84982e-19
+3.21133e-18
+2.03137e-18
+1.15388e-18
+5.75842e-19
+4.9413e-18
+5.57332e-18
+5.25859e-18
+9.33579e-18
+1.12296e-17
+5.44389e-18
+2.5689e-18
+4.01301e-18
+2.35949e-18
+6.49093e-18
+4.30234e-18
+6.7731e-18
+5.49394e-18
+4.05329e-18
+8.81222e-19
+1.04646e-18
+0
+0.000178983
+0.000192523
+0.000312747
+0.00045082
+0.000597999
+0.000752075
+0.000911983
+0.00107708
+0.00124693
+0.00142123
+0.000874002
+4.0386e-05
+1.31688e-18
+2.34017e-17
+3.89377e-18
+4.63876e-18
+2.55847e-17
+3.04801e-17
+8.44771e-18
+5.00705e-18
+7.70506e-18
+6.41578e-18
+1.22504e-18
+8.75608e-18
+1.32822e-18
+1.16275e-17
+9.16388e-18
+9.68895e-18
+8.44641e-18
+1.37436e-17
+1.73456e-18
+2.2962e-17
+5.24351e-18
+1.62972e-17
+1.73045e-17
+1.26069e-17
+1.12986e-17
+5.05915e-18
+8.95429e-18
+1.08431e-18
+8.28908e-18
+8.12331e-18
+1.04004e-17
+1.51739e-17
+1.7682e-17
+5.81762e-18
+2.53751e-17
+6.75981e-18
+4.1698e-18
+1.00979e-18
+5.61493e-18
+9.95597e-20
+5.63499e-18
+8.44197e-18
+5.45849e-18
+1.58731e-17
+1.27823e-17
+9.5433e-19
+1.74366e-17
+1.29858e-17
+1.40163e-18
+7.60869e-18
+7.55549e-18
+5.4954e-19
+5.63326e-18
+1.25415e-17
+7.88476e-18
+1.4147e-17
+1.04261e-17
+9.65469e-19
+3.13694e-18
+4.8458e-18
+6.53089e-18
+9.21655e-18
+1.25428e-17
+1.21196e-17
+1.23704e-17
+9.79495e-18
+4.61669e-18
+1.04794e-17
+8.29346e-18
+9.5287e-18
+1.47564e-17
+6.53125e-18
+7.27762e-18
+2.04268e-18
+7.80573e-19
+5.5798e-18
+9.85223e-18
+5.50417e-18
+7.44096e-18
+2.26239e-18
+7.19074e-18
+1.0713e-17
+1.01973e-17
+6.45873e-18
+3.06206e-18
+7.82022e-18
+9.92542e-18
+9.4304e-18
+5.39304e-18
+7.61249e-18
+6.86145e-18
+2.78189e-18
+3.45418e-18
+6.86236e-18
+1.29518e-17
+1.40847e-17
+1.10318e-17
+4.81121e-18
+9.55862e-18
+9.23176e-18
+5.63352e-18
+1.43165e-17
+1.29295e-18
+1.67125e-18
+7.784e-18
+9.50787e-18
+1.05794e-17
+1.57654e-17
+1.44199e-17
+1.01271e-17
+5.1538e-18
+2.19454e-18
+3.27783e-20
+5.77648e-18
+1.19561e-19
+9.14698e-18
+8.26213e-18
+1.9939e-18
+8.62281e-18
+4.39965e-18
+2.07077e-18
+1.82924e-18
+1.47694e-18
+3.44068e-19
+2.01899e-18
+9.91877e-18
+6.53396e-18
+1.76079e-18
+2.1872e-18
+5.4338e-19
+5.39989e-19
+7.51277e-19
+4.69333e-18
+3.18044e-18
+2.10761e-18
+3.9787e-18
+6.24285e-18
+5.48065e-18
+5.24152e-18
+4.70006e-18
+2.63963e-18
+7.4673e-18
+8.04193e-19
+8.17442e-18
+1.18904e-18
+1.9698e-19
+2.54537e-18
+2.53014e-18
+2.7085e-18
+1.7316e-18
+7.64685e-19
+1.71113e-18
+1.88918e-18
+2.06587e-18
+8.21517e-18
+1.67127e-18
+6.6433e-18
+1.1008e-17
+7.29582e-19
+6.89118e-18
+5.94985e-18
+7.88763e-18
+3.56479e-19
+4.07615e-18
+2.11515e-18
+2.80393e-18
+4.35608e-18
+0
+0.000178983
+0.00019253
+0.000312756
+0.000450832
+0.000598015
+0.000752095
+0.000912008
+0.00107711
+0.00124697
+0.00142127
+0.000873926
+4.0285e-05
+6.5844e-19
+2.54935e-17
+3.37457e-18
+2.49976e-17
+3.21088e-17
+2.92101e-17
+2.19388e-17
+1.15162e-17
+2.08782e-17
+0
+3.18481e-18
+8.63447e-18
+3.01851e-18
+1.19872e-19
+8.44982e-18
+1.70147e-17
+1.61889e-17
+5.82568e-19
+4.16294e-18
+6.42938e-18
+2.96376e-18
+1.78817e-17
+6.40493e-18
+6.35924e-18
+5.09545e-18
+5.05915e-18
+7.42553e-18
+4.98746e-18
+1.36716e-17
+3.74111e-18
+1.69803e-18
+6.32244e-19
+1.28691e-17
+9.03809e-18
+1.43381e-17
+7.78401e-18
+1.03731e-17
+5.25099e-18
+1.90507e-17
+1.43366e-17
+9.58926e-18
+5.10451e-18
+1.30613e-17
+3.38754e-18
+9.61073e-19
+4.00819e-18
+1.26984e-17
+3.85811e-18
+4.85897e-18
+1.85577e-18
+1.47424e-18
+3.69324e-19
+2.36246e-18
+8.30093e-18
+2.86754e-18
+1.4236e-18
+7.59871e-18
+6.31752e-18
+5.22809e-19
+9.17231e-18
+1.58116e-17
+3.07217e-18
+1.72887e-17
+2.1546e-17
+2.50761e-18
+1.47754e-17
+1.6982e-17
+1.3918e-17
+1.62632e-18
+1.00131e-17
+1.28316e-18
+6.53125e-18
+4.90467e-18
+1.72842e-17
+1.95072e-17
+3.10017e-18
+4.00249e-18
+2.75216e-18
+1.97509e-18
+1.65909e-18
+2.24744e-18
+4.31495e-18
+9.45841e-18
+1.61517e-18
+4.51998e-18
+2.3171e-18
+2.87718e-18
+7.18574e-19
+6.81227e-18
+5.07557e-18
+1.4003e-18
+7.7893e-18
+7.46112e-18
+1.19405e-17
+5.18072e-18
+3.79203e-18
+7.26508e-18
+1.06974e-18
+7.43443e-18
+5.53913e-18
+3.79935e-18
+6.89795e-18
+9.05064e-18
+7.7068e-18
+3.06272e-18
+1.01417e-17
+1.89038e-18
+4.25415e-18
+5.09707e-18
+1.482e-17
+6.13506e-18
+3.65715e-18
+1.45377e-18
+2.49329e-19
+5.85847e-18
+5.34564e-18
+1.12128e-17
+1.07892e-17
+1.10698e-17
+2.3156e-19
+5.29196e-18
+2.05761e-18
+1.13587e-17
+1.24155e-17
+3.1403e-18
+3.34339e-18
+6.67168e-19
+3.96178e-18
+3.39015e-18
+8.69407e-18
+3.88792e-18
+5.39762e-19
+2.13317e-18
+4.1343e-18
+2.18263e-19
+2.09384e-19
+2.60119e-18
+2.3784e-18
+3.08325e-18
+5.51621e-18
+3.65528e-18
+8.27454e-18
+8.62603e-18
+7.97504e-19
+5.74726e-18
+1.57584e-18
+1.56638e-18
+2.14089e-18
+3.28889e-18
+0
+9.57255e-19
+3.23067e-18
+1.13351e-18
+5.07078e-18
+1.6811e-18
+3.52701e-18
+3.50644e-18
+3.11919e-18
+6.74864e-18
+1.45074e-18
+3.60597e-18
+3.40602e-18
+7.12957e-19
+4.25337e-18
+2.11676e-18
+6.65839e-18
+3.51642e-19
+0
+0.000178983
+0.000192537
+0.000312765
+0.000450845
+0.000598032
+0.000752117
+0.000912034
+0.00107714
+0.001247
+0.00142131
+0.000873844
+4.01768e-05
+2.028e-17
+2.09185e-18
+2.59588e-18
+1.93288e-18
+9.85011e-18
+5.84203e-18
+1.81562e-17
+0
+1.46645e-17
+1.44355e-17
+4.40974e-18
+1.87283e-17
+1.11079e-17
+2.5173e-18
+2.38023e-18
+9.21633e-18
+3.05013e-18
+1.54906e-17
+1.01761e-17
+7.69229e-18
+1.28808e-17
+7.58275e-18
+6.29256e-18
+5.13202e-18
+1.12986e-17
+8.46859e-18
+1.90005e-17
+2.38527e-17
+3.33716e-18
+4.38231e-18
+3.82057e-18
+1.13804e-17
+4.81293e-18
+1.11158e-17
+8.45841e-18
+1.79237e-17
+8.33923e-18
+3.63535e-18
+1.9552e-17
+5.07762e-18
+6.52465e-18
+1.60987e-17
+2.45629e-17
+2.41967e-17
+1.42239e-17
+9.5433e-19
+1.3646e-17
+1.82554e-17
+2.99024e-18
+1.00211e-17
+4.79129e-18
+1.26266e-17
+4.1798e-18
+7.39857e-18
+7.88462e-18
+1.51257e-17
+1.71412e-17
+7.19499e-18
+9.7591e-18
+1.24605e-17
+6.53085e-18
+1.36541e-18
+7.79691e-18
+5.55486e-18
+1.03644e-17
+1.32813e-18
+1.31899e-17
+3.43856e-18
+4.55327e-18
+2.74562e-18
+2.08525e-18
+4.7838e-19
+1.32896e-17
+8.79922e-18
+2.02919e-18
+3.25515e-18
+1.21612e-17
+7.03323e-18
+5.92252e-18
+9.95461e-18
+4.05421e-20
+7.29078e-18
+6.35482e-18
+1.17499e-18
+8.8939e-18
+6.66167e-18
+2.44568e-18
+6.85835e-18
+7.37996e-18
+8.31744e-18
+5.88124e-18
+1.59959e-17
+3.86868e-18
+4.94104e-18
+1.18611e-17
+1.11053e-17
+9.95534e-18
+5.07836e-18
+3.98273e-19
+5.80289e-18
+6.55061e-19
+9.1105e-19
+2.97378e-18
+5.5232e-18
+4.59379e-18
+8.74719e-18
+9.69768e-18
+1.2262e-17
+8.82593e-18
+7.2866e-18
+6.13497e-19
+3.29915e-20
+1.07795e-17
+9.2659e-18
+5.97803e-19
+8.43423e-18
+4.60315e-18
+8.44393e-18
+5.12743e-18
+3.93653e-18
+9.4335e-18
+1.14311e-17
+4.31627e-18
+4.40181e-18
+6.95353e-18
+1.56142e-18
+5.09462e-18
+1.32059e-17
+2.84336e-18
+6.52055e-19
+2.15996e-19
+1.07325e-18
+5.54625e-18
+2.75653e-18
+4.21368e-18
+2.93137e-18
+2.49714e-18
+1.07545e-17
+6.57784e-18
+2.24791e-18
+5.8884e-18
+2.22062e-18
+1.20476e-18
+1.79438e-18
+7.94504e-19
+3.93961e-19
+8.22352e-18
+9.3422e-18
+4.06309e-18
+1.53938e-18
+9.6144e-19
+1.04523e-17
+3.77836e-19
+4.13175e-18
+7.48527e-19
+7.42452e-18
+9.24005e-19
+3.66917e-19
+1.6423e-18
+7.25369e-18
+1.80562e-18
+2.86987e-18
+3.92245e-18
+2.65836e-18
+3.17335e-18
+1.75221e-18
+5.05275e-18
+5.54414e-18
+0.000178983
+0.000192544
+0.000312774
+0.000450859
+0.00059805
+0.00075214
+0.000912062
+0.00107717
+0.00124704
+0.00142135
+0.000873756
+4.00614e-05
+6.5844e-19
+3.92208e-18
+6.48955e-18
+1.85549e-17
+1.63742e-17
+2.92101e-17
+1.41215e-17
+6.38399e-18
+1.19304e-17
+5.05859e-18
+3.91977e-18
+1.33784e-18
+6.2784e-18
+6.71281e-18
+7.37872e-18
+6.73502e-18
+7.27329e-18
+8.85179e-18
+6.93823e-19
+5.28129e-18
+1.92642e-17
+4.0743e-18
+1.38212e-17
+1.48382e-17
+1.1178e-19
+1.07782e-17
+7.20707e-18
+9.43269e-18
+5.05966e-18
+1.9667e-17
+1.06127e-18
+5.37438e-18
+1.65311e-17
+1.12197e-17
+3.71343e-18
+3.68727e-18
+2.03395e-18
+9.89596e-18
+1.18315e-17
+2.58869e-18
+5.9315e-19
+2.3565e-18
+2.53427e-18
+6.58157e-18
+1.09562e-17
+1.90883e-18
+4.92779e-18
+1.35505e-17
+5.79361e-18
+1.11374e-18
+9.21739e-19
+4.20886e-18
+1.27203e-18
+9.20305e-18
+6.80961e-18
+4.09284e-18
+4.94803e-18
+8.77433e-19
+1.02819e-17
+7.09556e-18
+1.32337e-17
+9.21655e-18
+2.0341e-18
+8.41638e-19
+3.35099e-19
+2.65626e-18
+2.96807e-18
+1.21169e-17
+9.75701e-18
+1.2922e-18
+4.17028e-18
+3.66411e-18
+5.37911e-18
+4.39982e-18
+5.46266e-18
+9.60965e-18
+4.46425e-18
+3.82256e-18
+1.16929e-17
+1.50827e-17
+4.05421e-20
+7.43958e-19
+4.43359e-19
+1.46789e-18
+2.91627e-18
+1.10062e-17
+1.0357e-17
+4.00083e-18
+5.39318e-18
+1.40972e-19
+5.32126e-18
+7.7893e-18
+1.10597e-18
+4.25531e-18
+2.99936e-18
+2.16687e-18
+9.95541e-18
+1.44332e-17
+6.63788e-19
+1.31882e-17
+4.71644e-18
+1.5622e-18
+4.26673e-18
+7.19309e-18
+3.06272e-18
+1.03952e-17
+1.1209e-17
+4.5044e-18
+3.85355e-18
+7.5336e-18
+3.19018e-18
+3.9011e-18
+1.81942e-18
+3.1294e-18
+1.55563e-18
+1.54563e-18
+6.13787e-18
+7.7411e-18
+2.09743e-18
+1.4241e-17
+4.71675e-18
+7.54481e-18
+2.27172e-19
+2.25734e-19
+6.28061e-18
+9.1386e-18
+6.20201e-18
+2.20099e-18
+0
+3.91233e-18
+8.63982e-19
+4.50804e-18
+6.39977e-18
+3.81591e-18
+3.16026e-18
+8.79412e-18
+4.36999e-18
+8.29159e-19
+8.2408e-19
+2.86011e-18
+1.01673e-18
+9.68705e-18
+5.21533e-18
+9.9688e-19
+1.98245e-18
+1.9698e-18
+1.95798e-18
+7.39579e-18
+5.80416e-18
+2.69288e-18
+1.98048e-19
+3.61112e-18
+3.21202e-18
+3.19271e-18
+1.93421e-19
+3.8982e-18
+1.29557e-18
+2.2015e-18
+3.64925e-18
+3.26416e-18
+2.65711e-19
+3.76455e-18
+1.96301e-18
+1.24057e-18
+1.00444e-17
+1.92743e-18
+7.03283e-19
+0
+0.000178984
+0.000192552
+0.000312785
+0.000450874
+0.00059807
+0.000752164
+0.000912092
+0.00107721
+0.00124708
+0.0014214
+0.000873663
+3.99388e-05
+2.08067e-17
+1.46424e-17
+1.29791e-18
+1.39162e-17
+2.68645e-18
+2.66701e-17
+2.19388e-17
+7.13505e-18
+9.56917e-18
+2.14682e-17
+7.59455e-18
+4.98613e-18
+7.96876e-18
+1.19872e-18
+1.93989e-17
+1.21703e-17
+5.39633e-18
+4.19298e-18
+5.31941e-18
+1.12514e-17
+3.64766e-18
+1.56182e-17
+1.38212e-17
+1.3611e-17
+7.86469e-18
+5.05913e-18
+3.93113e-18
+6.72218e-18
+7.10499e-18
+7.69599e-18
+7.64119e-18
+1.13804e-17
+1.54848e-17
+1.01808e-17
+1.58852e-17
+2.04861e-18
+1.22037e-18
+9.89596e-18
+6.6176e-18
+8.76125e-18
+1.38427e-18
+1.57082e-18
+5.45843e-18
+6.96871e-18
+5.38207e-18
+2.58273e-20
+6.82301e-18
+9.41002e-19
+5.79344e-18
+5.75293e-18
+1.47445e-18
+5.12407e-18
+8.35906e-18
+3.60904e-18
+4.48016e-18
+2.49129e-18
+1.41371e-18
+8.07242e-18
+1.49872e-17
+1.19413e-17
+1.09994e-17
+1.263e-17
+2.71205e-18
+4.8815e-18
+8.1912e-18
+2.65626e-18
+1.53333e-17
+1.03158e-17
+1.13917e-18
+5.32974e-18
+6.09503e-18
+3.18596e-18
+2.05672e-18
+9.74237e-18
+1.17046e-17
+2.47991e-18
+4.00243e-18
+3.5168e-18
+7.6039e-19
+6.48552e-18
+8.38916e-18
+4.46375e-18
+2.21716e-18
+2.05543e-18
+3.0618e-18
+5.50312e-18
+1.72615e-18
+6.85835e-18
+4.27496e-19
+1.83303e-18
+1.37229e-17
+2.50399e-18
+2.48813e-18
+8.26828e-19
+1.39062e-17
+1.11053e-17
+5.91939e-18
+5.21213e-18
+1.06267e-18
+3.29703e-18
+8.12283e-18
+1.15834e-17
+1.04729e-17
+4.88097e-18
+1.04637e-17
+1.90156e-18
+3.90483e-18
+1.00327e-18
+7.08587e-18
+1.85251e-18
+6.99386e-18
+2.4381e-18
+6.19616e-19
+1.80621e-18
+1.19736e-18
+4.03944e-18
+1.88955e-18
+5.62949e-18
+3.72929e-18
+2.77872e-18
+5.52205e-18
+3.42934e-18
+5.45213e-18
+4.51468e-19
+7.62645e-18
+7.13282e-18
+1.77293e-18
+6.60297e-18
+5.68671e-18
+4.38665e-19
+1.94396e-18
+8.58603e-19
+4.05344e-18
+2.54394e-18
+8.8489e-18
+7.53782e-18
+2.91333e-18
+8.29159e-19
+1.64534e-18
+8.17194e-18
+8.1405e-19
+5.24744e-18
+5.21533e-18
+1.59501e-18
+7.94504e-19
+3.93997e-18
+3.32899e-18
+5.06028e-18
+3.86928e-19
+2.30775e-18
+1.72054e-18
+4.37091e-18
+5.11275e-20
+1.69026e-18
+2.98771e-18
+2.41349e-18
+3.69197e-18
+2.20374e-18
+3.46692e-18
+1.23313e-17
+5.59266e-18
+5.91652e-18
+7.84253e-18
+9.21564e-18
+1.05731e-18
+4.2053e-18
+5.31138e-19
+0
+0.000178965
+0.000192537
+0.000312774
+0.000450864
+0.000598059
+0.000752153
+0.000912079
+0.0010772
+0.00124707
+0.00142138
+0.000873254
+3.98459e-05
+1.91735e-18
+1.90117e-18
+1.26281e-17
+3.06467e-17
+1.63041e-17
+4.77604e-18
+1.12915e-17
+1.10144e-17
+1.79035e-18
+2.09433e-17
+3.14977e-17
+2.33772e-17
+1.7296e-18
+1.71476e-18
+2.85607e-17
+1.46634e-17
+1.03599e-17
+5.30124e-18
+1.93795e-17
+1.98639e-17
+1.08148e-17
+1.79227e-17
+1.58702e-18
+6.60556e-18
+7.79586e-18
+4.6373e-18
+4.75026e-18
+2.03558e-17
+3.91545e-18
+4.77798e-18
+9.17617e-18
+7.33571e-19
+6.54488e-18
+8.07443e-18
+3.71612e-18
+1.41738e-18
+5.63101e-19
+7.79702e-18
+5.79688e-18
+8.20914e-18
+3.52649e-18
+3.49556e-18
+1.97243e-17
+7.39818e-18
+1.54527e-17
+9.34645e-18
+3.86044e-18
+7.68411e-19
+6.32171e-18
+3.2585e-18
+1.98766e-18
+3.20181e-18
+3.30333e-20
+2.41999e-18
+2.32656e-17
+1.59289e-17
+1.17827e-18
+8.87612e-18
+9.49252e-18
+4.58972e-18
+6.36906e-18
+3.60746e-18
+1.72072e-17
+2.39217e-17
+3.51278e-18
+1.10977e-17
+2.15677e-18
+4.27539e-18
+2.11878e-18
+9.24024e-18
+1.45807e-18
+3.09443e-18
+9.6099e-18
+4.05303e-18
+6.22665e-18
+6.7683e-18
+1.18379e-18
+4.4975e-18
+7.36528e-18
+2.30494e-18
+2.28673e-18
+3.77376e-18
+5.60988e-18
+3.7064e-18
+9.36697e-18
+1.45704e-18
+2.16479e-18
+8.93934e-19
+5.31585e-18
+7.55105e-18
+1.02682e-17
+4.31279e-18
+9.22999e-18
+6.09833e-18
+4.54322e-20
+9.48294e-18
+5.93545e-18
+2.45129e-18
+3.23848e-18
+0
+3.18166e-18
+1.26147e-18
+8.7458e-18
+1.34648e-17
+1.07362e-18
+5.47168e-18
+1.14471e-17
+1.94208e-18
+3.40414e-18
+7.33965e-19
+1.88831e-18
+8.06073e-18
+4.42454e-18
+2.5443e-18
+1.12057e-18
+8.60582e-18
+3.85203e-18
+2.72702e-18
+4.18768e-18
+1.12427e-17
+8.75376e-18
+8.67523e-18
+3.38679e-18
+6.19444e-18
+6.90548e-18
+1.02298e-18
+2.51134e-18
+7.46555e-19
+3.20567e-18
+7.33073e-18
+1.45275e-18
+1.92048e-18
+9.03413e-18
+4.47641e-18
+4.66864e-18
+1.38925e-18
+1.146e-18
+3.40724e-18
+4.27756e-18
+6.4668e-18
+7.29171e-18
+6.56867e-18
+1.51866e-18
+1.93476e-18
+8.09469e-18
+4.2214e-18
+3.76504e-18
+7.87502e-18
+4.72298e-18
+3.66294e-18
+6.07309e-19
+1.99851e-18
+3.99519e-19
+5.09989e-18
+3.30454e-18
+6.16277e-18
+2.67361e-18
+1.89366e-18
+2.99782e-18
+1.11393e-18
+2.94339e-18
+2.00512e-18
+1.80886e-18
+3.75848e-18
+1.59898e-18
+2.63762e-18
+9.42484e-20
+9.33897e-20
+0.000178961
+0.000192524
+0.000312759
+0.000450843
+0.000598032
+0.000752119
+0.000912039
+0.00107715
+0.00124701
+0.00142132
+0.000873285
+3.99805e-05
+8.12832e-18
+3.71855e-18
+2.00673e-17
+8.3216e-18
+2.27331e-17
+7.57735e-18
+2.96467e-18
+4.50568e-18
+1.02909e-17
+5.77377e-18
+5.34094e-18
+4.34835e-18
+3.37289e-18
+1.18862e-17
+1.47258e-17
+1.09574e-18
+8.67913e-18
+5.01778e-18
+3.72991e-18
+2.64053e-18
+2.79134e-18
+1.21032e-17
+1.26805e-17
+9.17064e-18
+3.02953e-18
+3.33609e-18
+7.60421e-18
+5.89767e-18
+7.63064e-18
+3.70061e-18
+6.3786e-18
+1.58074e-18
+1.09616e-17
+5.89712e-18
+0
+6.24827e-18
+7.7025e-18
+1.8707e-17
+1.02329e-17
+7.05421e-18
+5.53405e-18
+9.95732e-18
+2.14639e-18
+1.67208e-17
+1.01098e-17
+4.73064e-18
+4.96346e-18
+1.25685e-17
+3.79032e-18
+8.31636e-18
+8.77197e-18
+1.31694e-18
+8.3514e-18
+5.18362e-19
+1.53733e-18
+1.16781e-17
+3.27022e-18
+4.99603e-19
+3.70412e-18
+1.44355e-17
+1.6242e-17
+1.22494e-17
+5.47337e-18
+7.07317e-19
+1.86902e-18
+6.48026e-18
+3.43997e-18
+6.82206e-19
+5.17687e-18
+8.02745e-18
+5.08125e-18
+1.05053e-17
+2.81868e-18
+4.51126e-18
+5.3204e-18
+4.84887e-18
+1.00251e-17
+1.03603e-18
+0
+3.65497e-18
+9.85713e-18
+3.18831e-18
+1.97402e-18
+9.58208e-18
+1.16346e-18
+1.53602e-18
+1.21657e-17
+0
+3.76451e-19
+8.49928e-18
+7.32094e-18
+1.34159e-17
+3.23284e-18
+7.11533e-18
+2.64299e-18
+2.79408e-18
+7.60666e-18
+1.71235e-18
+3.51421e-19
+5.03991e-18
+1.6646e-18
+1.64875e-18
+9.80465e-19
+1.19649e-17
+7.36682e-18
+4.44126e-18
+6.75545e-18
+1.55655e-18
+1.07956e-18
+5.49476e-18
+4.53507e-18
+4.64127e-18
+6.82199e-18
+4.99311e-18
+4.07243e-18
+1.8742e-18
+7.41815e-18
+3.24948e-18
+1.00745e-17
+1.56582e-17
+2.7456e-18
+1.08722e-18
+8.61396e-18
+6.79755e-18
+1.12197e-17
+4.96915e-18
+5.56617e-18
+3.84566e-18
+7.87048e-18
+2.26276e-18
+1.99177e-18
+4.93093e-18
+2.68559e-18
+3.38532e-18
+3.35229e-18
+3.08253e-18
+3.05175e-18
+6.97364e-19
+9.43738e-18
+7.29364e-18
+4.28817e-18
+8.04552e-18
+8.40893e-18
+3.28673e-18
+1.04144e-17
+4.2966e-19
+1.06514e-18
+7.58245e-18
+4.3799e-18
+1.03249e-17
+4.49842e-18
+2.22955e-18
+2.8062e-18
+2.58057e-18
+1.96501e-18
+1.75102e-18
+3.85301e-18
+1.14435e-18
+3.39906e-18
+3.36537e-18
+4.25755e-18
+2.38257e-18
+1.09315e-18
+1.97618e-18
+1.06721e-18
+5.63599e-18
+1.05034e-18
+9.34295e-20
+0.000178956
+0.000192509
+0.000312743
+0.000450821
+0.000598004
+0.000752084
+0.000911996
+0.0010771
+0.00124695
+0.00142125
+0.000873321
+4.0127e-05
+1.97047e-17
+2.10968e-17
+1.35661e-17
+2.20372e-18
+6.11424e-18
+9.95329e-18
+2.35843e-18
+1.42338e-17
+1.0529e-18
+1.87721e-17
+1.42602e-17
+6.96237e-18
+1.21738e-17
+1.44746e-17
+1.19543e-18
+1.30255e-17
+1.36877e-18
+9.69039e-19
+8.44596e-18
+5.32498e-18
+4.89893e-18
+6.72039e-18
+1.31314e-17
+1.97894e-17
+1.57936e-17
+5.03585e-18
+2.13814e-18
+1.41216e-18
+9.44337e-18
+4.85142e-18
+9.26806e-18
+8.5138e-19
+9.43253e-18
+1.10128e-17
+0
+4.74953e-18
+4.38998e-20
+4.98131e-18
+7.32211e-18
+4.80671e-19
+6.87257e-18
+6.18874e-18
+1.13411e-17
+1.12339e-17
+4.36081e-18
+2.38318e-18
+2.0065e-17
+5.26106e-18
+2.46103e-18
+3.29755e-18
+5.68029e-19
+9.85314e-19
+7.52296e-18
+4.9675e-18
+2.73327e-19
+2.73179e-19
+1.60912e-18
+8.23208e-18
+1.6043e-17
+1.30237e-18
+1.52202e-17
+2.29962e-18
+2.53046e-18
+1.0775e-17
+8.43751e-18
+2.48003e-19
+6.57147e-18
+7.95396e-18
+1.3128e-17
+1.89098e-18
+0
+3.9407e-18
+7.57493e-18
+4.55647e-19
+4.95226e-18
+2.24918e-19
+2.64916e-18
+5.24521e-18
+1.73124e-18
+4.28565e-18
+5.72996e-18
+1.11349e-17
+1.04012e-17
+8.85695e-18
+2.04019e-18
+3.02897e-18
+1.21961e-17
+1.97958e-18
+5.48792e-18
+2.13459e-18
+8.83805e-18
+2.28495e-18
+1.46897e-17
+7.64457e-18
+1.03374e-17
+1.82753e-19
+7.4182e-18
+4.65709e-18
+4.61048e-18
+7.02198e-18
+1.39111e-18
+3.44088e-18
+3.06601e-18
+8.26146e-18
+1.66903e-18
+1.6522e-18
+5.5608e-18
+2.59078e-18
+8.01314e-19
+1.01531e-17
+6.90955e-18
+1.55439e-18
+2.7698e-18
+7.76709e-18
+7.38655e-18
+5.07459e-18
+4.13604e-18
+1.46394e-18
+1.18643e-17
+2.14809e-18
+2.40957e-18
+1.82727e-18
+3.88843e-18
+9.48198e-18
+7.36158e-20
+5.38427e-19
+5.462e-18
+7.64736e-18
+1.04387e-18
+9.29798e-18
+9.07372e-18
+1.01411e-18
+3.25426e-18
+1.85918e-18
+5.63858e-18
+4.60952e-18
+7.92266e-18
+3.08919e-18
+1.52948e-18
+3.83865e-18
+1.15107e-18
+2.05118e-18
+2.2542e-18
+2.23057e-19
+8.1665e-18
+5.0235e-18
+7.34839e-18
+1.28296e-18
+1.90503e-18
+2.09421e-18
+0
+3.89437e-18
+2.6367e-18
+2.28137e-19
+3.17611e-18
+1.57211e-18
+2.52612e-18
+3.26829e-18
+2.6629e-18
+2.25819e-18
+1.12725e-18
+5.71018e-18
+1.82226e-19
+3.24502e-18
+7.19907e-19
+5.29327e-19
+6.11005e-18
+5.52577e-18
+0.000178952
+0.000192495
+0.000312727
+0.000450798
+0.000597974
+0.000752047
+0.000911952
+0.00107705
+0.0012469
+0.00142118
+0.000873353
+4.02755e-05
+8.36591e-18
+3.16886e-18
+2.26967e-17
+1.8417e-17
+2.06128e-17
+5.39795e-18
+2.32499e-18
+1.05929e-17
+1.3458e-17
+1.03933e-17
+2.23819e-18
+6.87191e-18
+4.61093e-18
+1.00041e-17
+1.07743e-18
+1.15211e-17
+7.60744e-18
+9.20918e-18
+1.57546e-17
+4.10623e-19
+7.11706e-18
+1.61136e-18
+5.78424e-18
+3.16072e-18
+5.08652e-18
+1.56937e-17
+1.17047e-17
+1.90043e-18
+5.64567e-18
+6.15024e-18
+1.66102e-17
+1.13315e-17
+1.01355e-17
+8.60305e-18
+3.54967e-19
+3.69112e-18
+5.39515e-18
+1.49933e-17
+1.87715e-18
+3.88677e-18
+2.00785e-17
+1.955e-17
+2.1331e-18
+4.87303e-19
+8.20253e-18
+1.38546e-17
+4.74944e-19
+1.3582e-17
+4.63727e-18
+3.97897e-18
+1.51519e-18
+5.70109e-18
+7.27753e-18
+1.32338e-17
+6.98775e-18
+2.88351e-18
+1.02731e-17
+3.24885e-18
+5.45372e-18
+3.59935e-18
+1.41976e-19
+1.08597e-18
+8.46136e-18
+1.0642e-18
+4.21143e-18
+5.73231e-18
+1.67793e-18
+1.277e-18
+1.01145e-18
+1.00118e-18
+2.47632e-18
+4.9019e-18
+3.39629e-18
+1.80088e-18
+5.82277e-18
+5.41047e-18
+1.16455e-18
+6.22183e-18
+1.82693e-18
+1.35472e-18
+3.12827e-18
+2.87498e-18
+1.31294e-18
+5.63073e-18
+4.71522e-18
+1.06053e-18
+6.50717e-18
+4.15494e-18
+3.70025e-18
+2.44117e-18
+5.83829e-18
+5.17979e-18
+2.36618e-18
+1.24846e-17
+9.65197e-18
+3.43848e-18
+4.15801e-18
+9.16371e-18
+3.70094e-19
+5.67625e-18
+4.16713e-18
+1.07662e-18
+2.48349e-18
+7.19473e-18
+7.11863e-18
+1.49448e-17
+1.35964e-17
+7.23027e-18
+3.3271e-18
+8.22905e-19
+8.1531e-19
+7.40995e-18
+4.94031e-18
+3.62597e-18
+6.08256e-18
+7.09718e-18
+3.96823e-18
+6.94523e-18
+5.9741e-18
+2.9548e-18
+2.63087e-18
+4.04848e-18
+3.2898e-18
+2.12166e-18
+3.49789e-18
+4.98315e-18
+2.19006e-18
+2.92234e-19
+8.03452e-19
+8.01914e-19
+3.4059e-18
+9.06926e-19
+3.84419e-19
+1.26733e-19
+4.26153e-18
+3.71878e-18
+4.90372e-18
+1.2124e-18
+0
+3.32008e-18
+2.1107e-18
+1.15961e-19
+3.4402e-18
+5.44315e-18
+3.36411e-19
+5.10083e-18
+3.18208e-18
+8.02375e-18
+9.64941e-18
+3.81821e-18
+2.72605e-18
+2.17736e-18
+2.56212e-18
+8.1251e-19
+3.40822e-18
+4.98201e-19
+2.22741e-19
+4.26081e-18
+1.14889e-18
+4.92215e-18
+5.80217e-18
+1.85042e-19
+5.51045e-19
+2.89372e-18
+5.36391e-19
+5.32427e-19
+4.01929e-18
+0
+0.000178946
+0.00019248
+0.00031271
+0.000450776
+0.000597945
+0.000752011
+0.000911909
+0.001077
+0.00124684
+0.00142112
+0.000873372
+4.04159e-05
+2.1378e-18
+8.86509e-18
+8.12347e-18
+1.32341e-17
+6.68092e-18
+5.85227e-18
+1.159e-17
+9.48053e-18
+1.23622e-18
+8.68378e-18
+1.67124e-17
+9.35315e-18
+1.63847e-17
+6.58329e-18
+1.001e-17
+1.12941e-17
+8.67177e-18
+6.78512e-19
+6.26352e-18
+4.42945e-19
+6.79736e-18
+6.07836e-18
+1.31098e-17
+1.14895e-17
+4.21286e-18
+1.16776e-17
+7.43175e-18
+2.30931e-17
+2.02326e-18
+6.01422e-19
+9.51606e-18
+5.49525e-18
+1.55413e-17
+1.42303e-17
+2.4747e-18
+4.33373e-18
+3.91662e-18
+4.24607e-18
+9.1364e-19
+3.25556e-18
+2.68526e-18
+8.87231e-19
+5.43656e-18
+9.37304e-18
+1.71793e-18
+1.42823e-17
+4.71177e-18
+1.66559e-18
+2.47237e-18
+8.15609e-19
+4.84302e-19
+2.87604e-18
+2.53004e-18
+3.59864e-18
+1.78061e-17
+6.74193e-18
+7.59235e-19
+6.45193e-18
+5.93892e-18
+3.37913e-18
+3.78005e-18
+1.06451e-17
+8.54912e-19
+5.77467e-18
+6.6893e-18
+1.79293e-18
+2.04646e-18
+7.96432e-18
+6.81149e-18
+8.19267e-18
+3.93801e-19
+6.59671e-18
+3.58376e-18
+8.10265e-18
+1.00201e-17
+9.91289e-19
+1.83906e-18
+6.79118e-18
+1.31965e-17
+7.59563e-18
+2.11344e-18
+1.27748e-18
+5.05474e-18
+6.82524e-19
+3.7096e-18
+4.66998e-18
+2.52979e-18
+1.08828e-18
+4.94986e-18
+1.0647e-18
+2.42187e-18
+6.6637e-18
+1.64792e-18
+5.1951e-18
+6.24607e-18
+6.07729e-18
+6.89722e-19
+4.87231e-18
+6.16799e-18
+3.4326e-18
+5.84367e-18
+3.72835e-19
+2.21276e-18
+5.65139e-18
+4.87885e-20
+2.49575e-18
+1.21634e-17
+8.71561e-18
+2.41309e-18
+3.74954e-18
+6.067e-18
+2.9997e-18
+3.7897e-18
+4.39862e-18
+8.21491e-18
+8.12173e-18
+4.40881e-18
+4.35871e-18
+4.00173e-18
+2.43453e-18
+3.91137e-18
+7.88214e-18
+6.46903e-18
+2.90693e-18
+6.75324e-18
+6.81847e-18
+6.88037e-18
+1.94364e-18
+4.93961e-18
+5.96799e-18
+4.02215e-18
+1.85571e-18
+1.30996e-19
+1.29908e-18
+3.96747e-18
+1.06259e-17
+4.50112e-18
+1.97725e-18
+4.64132e-18
+8.32946e-18
+3.6987e-18
+1.88771e-18
+5.82676e-18
+1.72755e-18
+2.61785e-18
+4.61179e-18
+3.38864e-19
+8.80818e-19
+3.30926e-19
+4.72043e-18
+4.13465e-18
+4.29482e-18
+1.55265e-18
+2.04564e-18
+5.17041e-19
+2.06913e-19
+2.07217e-18
+6.23984e-18
+2.023e-18
+2.28435e-18
+5.6654e-19
+1.48747e-18
+2.79842e-19
+4.17227e-18
+1.07525e-18
+3.54096e-19
+9.6318e-19
+0
+0.000178941
+0.000192466
+0.000312695
+0.000450755
+0.000597919
+0.000751979
+0.00091187
+0.00107695
+0.00124679
+0.00142106
+0.000873371
+4.05383e-05
+3.62639e-18
+1.39284e-17
+9.38127e-18
+8.02002e-18
+6.40672e-18
+4.82522e-18
+6.82315e-19
+2.13418e-17
+1.36374e-17
+2.91138e-17
+1.34914e-17
+2.07461e-18
+1.11636e-17
+1.42242e-17
+1.21927e-17
+1.57995e-17
+1.00962e-17
+7.31133e-19
+6.15049e-18
+6.80303e-18
+6.14204e-18
+3.62365e-18
+3.58608e-18
+8.7003e-18
+2.83231e-18
+7.39895e-18
+1.30904e-17
+5.48915e-18
+4.45414e-18
+1.0964e-17
+2.23361e-17
+1.45238e-17
+2.70773e-18
+6.18245e-19
+4.1802e-18
+2.11859e-18
+6.08847e-18
+1.26404e-17
+1.50466e-17
+1.43068e-17
+1.91297e-18
+3.40645e-18
+5.80398e-18
+5.27888e-18
+4.76438e-18
+7.43254e-18
+8.78748e-18
+3.54829e-18
+1.00036e-17
+2.7778e-18
+6.18264e-18
+8.32438e-18
+7.39415e-18
+4.65445e-18
+1.05233e-17
+4.066e-18
+4.83104e-19
+7.79696e-18
+1.65253e-17
+1.24532e-18
+8.31401e-18
+4.26374e-18
+5.42183e-18
+4.48672e-19
+1.20798e-17
+3.78804e-18
+9.5098e-18
+6.98219e-18
+8.31424e-18
+6.41045e-18
+6.33935e-18
+2.86285e-18
+2.15747e-18
+1.22603e-17
+3.42696e-18
+3.12734e-18
+1.67503e-18
+1.27405e-18
+3.65346e-18
+9.21756e-18
+8.86749e-18
+2.43545e-19
+5.29754e-18
+2.38077e-18
+1.08277e-17
+1.27995e-17
+1.84062e-18
+1.25105e-17
+1.23682e-17
+8.55931e-18
+1.42856e-18
+3.36777e-18
+2.14801e-18
+3.82177e-18
+4.30273e-18
+1.86747e-18
+4.20427e-18
+4.15592e-18
+1.00229e-18
+7.94088e-19
+7.83558e-19
+2.9495e-19
+2.6777e-18
+9.45209e-19
+9.06199e-18
+5.17087e-18
+6.57042e-18
+1.01914e-17
+9.80471e-18
+1.85003e-18
+8.71832e-19
+3.09718e-18
+2.63564e-18
+2.01696e-18
+4.2344e-18
+4.5946e-18
+3.48736e-18
+2.08299e-18
+4.82922e-18
+0
+6.18346e-18
+6.26253e-18
+2.7166e-18
+4.17533e-18
+8.98753e-18
+7.06058e-18
+1.15059e-18
+3.69449e-18
+2.94836e-18
+6.9449e-19
+1.37022e-18
+2.0305e-18
+3.07599e-18
+3.03852e-18
+6.39494e-18
+2.32086e-18
+9.16948e-18
+4.5289e-18
+5.71645e-18
+1.59611e-18
+2.42522e-18
+1.43754e-18
+2.38749e-19
+5.14122e-18
+2.30814e-19
+2.27993e-18
+4.27819e-18
+5.44845e-18
+2.52578e-18
+5.4308e-19
+8.46197e-18
+4.12595e-18
+5.95479e-18
+4.23001e-18
+2.85326e-18
+5.43331e-18
+6.97559e-19
+7.84893e-19
+2.71271e-18
+5.16603e-18
+5.57347e-18
+2.8435e-19
+5.71058e-18
+4.57363e-19
+1.16832e-18
+1.59584e-18
+6.74037e-18
+5.53123e-18
+0.000178935
+0.000192453
+0.000312682
+0.000450737
+0.000597896
+0.000751951
+0.000911837
+0.00107691
+0.00124674
+0.00142101
+0.000873341
+4.06332e-05
+1.77096e-17
+1.2773e-17
+9.47916e-18
+2.44019e-18
+1.38834e-17
+8.51095e-18
+2.86613e-17
+1.05247e-17
+1.56199e-17
+9.44428e-18
+2.60499e-17
+1.4007e-18
+1.8431e-17
+2.19394e-18
+1.24787e-17
+2.68375e-18
+8.76154e-18
+1.47086e-17
+5.97618e-18
+5.26935e-18
+4.57693e-18
+1.42115e-17
+3.23459e-18
+1.00911e-17
+6.20819e-18
+9.87355e-18
+8.57531e-18
+7.77528e-18
+9.55496e-18
+3.57283e-18
+9.91746e-18
+1.03728e-17
+1.94031e-17
+2.13961e-17
+1.85432e-17
+1.10035e-17
+1.31228e-17
+4.85359e-18
+3.75648e-18
+2.0639e-18
+1.02087e-18
+3.12846e-18
+8.18329e-18
+7.5001e-18
+8.97797e-18
+8.87772e-18
+4.77267e-19
+9.24638e-18
+1.86587e-18
+9.22548e-19
+2.73632e-18
+1.01005e-17
+5.52838e-18
+1.07556e-17
+3.13797e-18
+3.53325e-18
+1.36398e-18
+8.42326e-19
+5.9958e-18
+5.92753e-18
+9.60383e-18
+9.81598e-18
+1.71009e-17
+1.17156e-17
+5.20771e-18
+6.7614e-18
+5.77225e-18
+3.07809e-18
+5.71417e-18
+2.27392e-18
+3.33541e-18
+2.9388e-18
+1.48798e-18
+6.79098e-18
+5.67414e-18
+3.42447e-19
+7.23227e-18
+1.40295e-18
+7.13025e-18
+3.00133e-18
+1.29009e-18
+1.04506e-17
+8.06057e-18
+5.10295e-18
+6.94912e-18
+7.17101e-18
+8.04678e-18
+6.94265e-18
+1.05542e-17
+2.43358e-18
+1.14496e-18
+2.03636e-18
+3.46524e-18
+7.39985e-18
+8.94809e-18
+1.94153e-18
+0
+1.05278e-18
+5.19862e-19
+3.38972e-18
+2.13105e-18
+2.60655e-18
+1.28749e-18
+9.78373e-19
+7.92529e-18
+4.67824e-18
+3.67825e-18
+1.2111e-18
+4.60795e-19
+1.09107e-18
+6.28503e-19
+4.61163e-18
+3.85431e-18
+2.85513e-18
+6.92192e-18
+4.22001e-19
+4.91834e-18
+5.51612e-18
+1.62676e-18
+4.818e-19
+2.85499e-18
+4.15085e-18
+4.64051e-18
+2.13857e-18
+2.26281e-18
+4.02203e-18
+0
+7.26531e-19
+2.94056e-18
+7.09169e-19
+3.98555e-18
+3.86645e-18
+6.27179e-18
+5.1827e-18
+1.72868e-18
+6.03644e-18
+4.59941e-18
+2.55829e-18
+3.85189e-18
+1.55883e-18
+1.23131e-18
+1.27632e-18
+2.16023e-18
+6.0396e-18
+6.31274e-18
+1.21171e-17
+7.00586e-18
+1.68783e-18
+3.16346e-18
+1.97239e-18
+5.51587e-18
+3.62954e-18
+6.74332e-18
+1.03996e-17
+6.56918e-18
+1.01344e-18
+1.29983e-18
+1.03616e-18
+3.74958e-18
+5.38257e-18
+7.58862e-19
+2.85565e-18
+4.64615e-19
+3.73797e-18
+2.51955e-18
+3.41838e-18
+6.58768e-19
+5.53281e-18
+0.000178928
+0.000192443
+0.000312671
+0.000450723
+0.000597879
+0.00075193
+0.000911812
+0.00107688
+0.00124671
+0.00142097
+0.000873274
+4.06915e-05
+1.48993e-17
+5.19376e-18
+7.68463e-18
+6.77441e-18
+1.7159e-18
+2.97392e-17
+2.20593e-17
+3.24086e-17
+5.62857e-18
+1.81682e-17
+1.01688e-17
+8.54406e-18
+3.0657e-18
+2.29232e-18
+1.49899e-17
+4.48305e-18
+1.02247e-17
+1.30094e-17
+2.00649e-17
+8.503e-18
+1.84991e-20
+1.45313e-17
+2.73998e-18
+1.98243e-18
+2.476e-17
+2.00237e-18
+3.89556e-18
+1.35747e-17
+6.36705e-18
+6.91186e-18
+3.72168e-18
+1.91202e-17
+9.71937e-18
+1.80967e-17
+1.16545e-18
+1.12329e-17
+5.80831e-18
+1.38472e-17
+2.22567e-18
+1.01201e-17
+1.1417e-18
+1.48315e-17
+2.01839e-17
+5.93249e-18
+1.16753e-17
+1.47194e-17
+3.59901e-18
+6.11212e-18
+9.65529e-18
+1.55125e-17
+1.53793e-17
+7.36049e-18
+4.81788e-18
+1.48438e-17
+1.89133e-18
+1.16698e-17
+7.83813e-18
+2.31472e-18
+4.09076e-18
+8.69299e-19
+4.38078e-18
+5.64424e-18
+1.03153e-17
+9.32221e-18
+1.00705e-17
+9.14109e-18
+1.19893e-18
+2.80333e-18
+2.11142e-20
+1.18702e-17
+9.74726e-18
+3.46071e-18
+3.01006e-18
+1.9091e-18
+7.072e-18
+4.01262e-18
+1.01573e-17
+1.4335e-18
+4.93843e-18
+2.42204e-18
+6.53703e-18
+5.79135e-18
+6.90447e-19
+6.49444e-19
+8.85218e-18
+2.59768e-18
+1.8585e-17
+1.23607e-17
+5.00525e-18
+1.07909e-17
+1.95281e-17
+6.64417e-18
+6.21318e-18
+2.0644e-18
+3.41158e-19
+3.41143e-18
+1.65672e-18
+1.11792e-17
+5.39281e-19
+7.07208e-18
+1.58566e-17
+8.1914e-18
+9.41914e-18
+6.21702e-18
+6.38804e-18
+3.00575e-18
+3.98931e-18
+3.93871e-18
+5.3588e-18
+4.68361e-19
+2.58846e-18
+6.57112e-18
+4.36997e-18
+1.15631e-18
+5.40013e-18
+2.2537e-18
+1.28351e-18
+2.11475e-19
+0
+1.89297e-18
+1.05663e-18
+3.04727e-18
+5.50098e-18
+3.78904e-18
+3.3929e-18
+5.63198e-18
+2.2535e-19
+7.00599e-18
+4.46333e-18
+9.7716e-21
+2.70817e-18
+5.02887e-18
+8.19048e-18
+8.42537e-18
+1.01396e-18
+4.80291e-18
+3.02802e-18
+3.3128e-18
+6.89051e-18
+7.77962e-18
+4.77448e-18
+6.9587e-18
+9.1277e-19
+5.81548e-18
+5.91542e-19
+5.83646e-19
+3.85829e-18
+9.00512e-18
+1.45745e-18
+4.81115e-18
+5.59233e-18
+1.45665e-20
+2.44259e-18
+2.88453e-19
+5.03835e-18
+3.41569e-18
+4.37496e-18
+2.52989e-18
+5.26017e-18
+3.95788e-18
+7.07011e-18
+3.85085e-18
+3.79834e-18
+5.84817e-18
+5.04714e-18
+8.88934e-18
+5.392e-18
+5.53422e-18
+0.000178937
+0.00019298
+0.000313096
+0.000451056
+0.000598148
+0.000752155
+0.000912004
+0.00107705
+0.00124685
+0.0014211
+0.000873416
+4.07044e-05
+0
+6.19265e-21
+2.31645e-17
+0
+0
+2.23802e-17
+0
+0
+2.16192e-17
+0
+2.11245e-17
+1.10372e-20
+0
+0
+1.06587e-20
+0
+1.96994e-17
+1.94703e-17
+0
+0
+1.87968e-17
+1.85769e-17
+0
+9.59047e-21
+0
+1.77197e-17
+1.75109e-17
+0
+0
+1.68974e-17
+0
+1.6499e-17
+0
+1.61089e-17
+1.59169e-17
+0
+8.21359e-21
+1.5353e-17
+1.51689e-17
+0
+7.82653e-21
+1.46285e-17
+1.44521e-17
+0
+1.41051e-17
+1.39343e-17
+1.37654e-17
+0
+1.34329e-17
+0
+1.31076e-17
+0
+0
+1.33548e-20
+1.3191e-20
+1.30291e-20
+1.21731e-17
+0
+0
+1.17283e-17
+1.15833e-17
+1.20938e-20
+1.12981e-17
+0
+1.10191e-17
+0
+1.07463e-17
+1.12187e-20
+0
+1.03482e-17
+1.02185e-17
+0
+0
+0
+1.02692e-20
+9.59135e-18
+0
+9.35025e-18
+9.23175e-18
+9.11459e-18
+8.99876e-18
+8.88423e-18
+9.27237e-21
+0
+0
+0
+0
+0
+0
+8.01399e-18
+8.36294e-21
+0
+1.62969e-20
+0
+7.50967e-18
+7.41229e-18
+7.31604e-18
+1.52673e-20
+0
+7.03402e-18
+6.94219e-18
+0
+6.7618e-18
+0
+6.58561e-18
+6.49908e-18
+6.41358e-18
+1.26582e-17
+6.24561e-18
+6.16314e-18
+1.21632e-17
+6.0011e-18
+1.252e-20
+5.8429e-18
+5.76523e-18
+0
+0
+5.5378e-18
+0
+5.3907e-18
+5.3185e-18
+1.04943e-17
+0
+0
+0
+0
+0
+0
+0
+9.95198e-21
+0
+9.68364e-21
+0
+8.91246e-18
+8.79096e-18
+0
+0
+8.43541e-18
+8.31984e-18
+8.20573e-18
+0
+1.68759e-20
+1.66436e-20
+7.76331e-18
+0
+0
+0
+1.55249e-20
+1.53096e-20
+7.14038e-18
+1.48872e-20
+1.46799e-20
+1.44754e-20
+1.42734e-20
+0
+1.38771e-20
+6.47152e-18
+1.3491e-20
+0
+0
+0
+6.02939e-18
+5.94437e-18
+0
+5.7776e-18
+5.69583e-18
+0
+5.53545e-18
+3.5745e-05
+0.00022287
+0.000315308
+0.000455061
+0.00060213
+0.000755821
+0.000915333
+0.00108008
+0.00124962
+0.00142364
+0.000859313
+2.51728e-05
+1.78474e-18
+6.71909e-18
+1.19653e-18
+1.61109e-18
+9.22645e-18
+1.82205e-17
+1.22007e-17
+1.72533e-17
+1.60273e-17
+9.95248e-19
+1.86701e-17
+1.63959e-17
+1.13026e-17
+1.02132e-17
+7.65574e-18
+1.38264e-18
+6.5517e-18
+1.09596e-17
+8.15886e-18
+5.42792e-18
+1.14944e-17
+1.04083e-17
+0
+2.494e-18
+4.10305e-19
+7.93819e-18
+1.18334e-17
+6.94503e-18
+3.97282e-18
+7.84259e-18
+3.7945e-18
+6.14207e-18
+4.58355e-18
+1.45933e-18
+1.54828e-17
+4.33542e-18
+3.5773e-18
+6.36865e-18
+1.4005e-17
+1.41583e-18
+6.78653e-18
+6.04066e-18
+1.25701e-17
+1.11895e-17
+4.47982e-18
+6.35076e-18
+3.19479e-18
+1.30343e-17
+7.95614e-18
+5.43041e-18
+0
+2.29866e-18
+5.2165e-18
+5.1469e-18
+1.65599e-18
+5.44596e-19
+2.14928e-18
+3.28667e-18
+3.24259e-18
+2.11554e-18
+5.24311e-18
+5.1223e-18
+0
+0
+8.87134e-18
+6.32576e-18
+4.78567e-18
+9.95077e-18
+1.07289e-17
+8.33148e-18
+2.30999e-18
+8.76366e-19
+2.20432e-18
+4.2632e-19
+8.9987e-18
+9.78817e-18
+8.18232e-19
+5.32588e-18
+4.53656e-18
+3.21837e-18
+1.02966e-17
+4.27578e-18
+6.92775e-18
+3.71454e-19
+7.32389e-19
+6.64492e-18
+5.4846e-18
+4.63602e-18
+6.02644e-18
+3.42043e-19
+1.41456e-18
+2.72338e-18
+1.31011e-18
+2.97107e-18
+7.19663e-18
+5.46342e-18
+4.08676e-18
+3.05273e-19
+4.33439e-18
+4.27365e-18
+4.15518e-18
+6.34721e-19
+4.03925e-18
+1.7388e-18
+3.98162e-18
+7.25125e-18
+3.33258e-18
+5.83088e-19
+4.28392e-18
+4.99582e-18
+4.92502e-18
+3.60384e-18
+2.02309e-18
+4.86415e-19
+1.19874e-18
+7.56378e-19
+3.5877e-18
+3.30685e-18
+4.39146e-18
+4.46255e-20
+1.58358e-18
+6.02664e-18
+6.79495e-18
+2.40097e-18
+3.40444e-18
+4.17389e-18
+4.03317e-19
+3.25956e-18
+3.99612e-18
+4.32457e-18
+1.90273e-19
+1.91272e-18
+5.91723e-19
+4.51684e-18
+5.3488e-18
+5.09429e-18
+3.41659e-18
+0
+1.0834e-18
+1.70161e-18
+3.35342e-18
+4.66515e-18
+7.21476e-18
+2.92549e-18
+2.85168e-18
+1.2217e-18
+3.01388e-19
+6.22716e-19
+5.08389e-18
+1.0594e-17
+2.60953e-18
+5.86882e-19
+6.19533e-18
+2.71286e-19
+5.4525e-18
+5.10858e-18
+5.29244e-18
+2.55592e-19
+2.5684e-18
+3.07605e-18
+3.2748e-18
+1.20384e-18
+3.36786e-18
+2.14951e-18
+2.11749e-18
+0
+1.83143e-18
+5.63222e-18
+0.000182879
+0.000201481
+0.000330793
+0.000469636
+0.00061544
+0.000767837
+0.000926203
+0.00108997
+0.00125869
+0.00141648
+0.000810454
+1.64966e-18
+3.25993e-18
+1.28839e-17
+1.5912e-17
+7.07459e-18
+2.52408e-18
+3.45283e-18
+1.30766e-17
+8.23829e-18
+1.3318e-17
+2.06494e-17
+2.6718e-17
+2.10441e-17
+1.90271e-17
+2.31469e-17
+3.61031e-17
+6.96287e-18
+5.2004e-18
+1.6571e-18
+8.18402e-19
+7.43712e-18
+0
+1.5458e-17
+6.54345e-18
+1.96964e-17
+1.85418e-17
+7.50602e-19
+5.33708e-18
+6.73524e-18
+1.2436e-17
+1.17105e-17
+2.82089e-18
+8.4963e-18
+4.95181e-18
+1.38551e-17
+5.49973e-18
+8.08021e-18
+5.363e-18
+9.81659e-18
+6.37726e-19
+2.6448e-18
+1.34308e-17
+1.38756e-17
+4.24355e-18
+1.16122e-17
+8.51041e-18
+1.86733e-18
+5.87648e-18
+9.32857e-18
+2.2464e-18
+4.43556e-18
+5.03592e-18
+1.08081e-18
+6.40367e-19
+3.79212e-18
+9.04709e-18
+1.00603e-17
+5.06879e-19
+6.60244e-18
+6.02377e-18
+8.96805e-18
+1.73199e-17
+5.31887e-18
+7.31268e-18
+4.7195e-18
+3.17864e-17
+2.30798e-17
+5.42807e-18
+1.1242e-17
+7.10822e-18
+2.65222e-18
+1.13148e-17
+5.50018e-18
+1.04452e-17
+7.46754e-18
+3.68495e-18
+1.18584e-18
+4.68205e-19
+9.39255e-18
+5.77402e-18
+1.49975e-18
+1.18372e-18
+6.71649e-18
+7.78017e-18
+5.82898e-18
+1.12226e-18
+1.70257e-17
+2.18529e-18
+9.02912e-18
+3.72326e-18
+1.0497e-18
+1.65686e-17
+1.21326e-17
+1.63812e-18
+5.09692e-18
+2.453e-18
+6.05001e-19
+2.74559e-18
+3.88644e-18
+5.11194e-18
+3.78237e-18
+7.23621e-18
+1.02614e-17
+1.33134e-17
+5.64396e-18
+3.31904e-18
+1.035e-17
+1.62516e-17
+5.75467e-18
+2.1286e-18
+1.79965e-18
+2.76116e-18
+4.47421e-18
+6.61963e-18
+5.48804e-18
+2.79973e-18
+9.20444e-18
+3.08652e-18
+1.28029e-17
+8.38842e-18
+5.13781e-18
+2.49056e-18
+4.99702e-18
+4.67737e-18
+9.7194e-18
+3.98025e-18
+2.24292e-18
+9.48104e-19
+1.15279e-17
+7.0663e-18
+4.84728e-18
+2.83794e-18
+7.36405e-19
+2.75933e-18
+1.50403e-18
+7.62426e-18
+1.94897e-18
+8.78464e-18
+5.41345e-18
+4.93697e-18
+1.00641e-17
+2.33465e-18
+1.34269e-17
+6.11448e-18
+3.48015e-18
+7.90345e-18
+3.98642e-18
+6.72859e-18
+6.63318e-18
+1.50464e-18
+6.16103e-18
+9.78485e-18
+1.88477e-18
+1.42077e-18
+5.93239e-19
+3.61059e-18
+1.0206e-17
+3.92093e-18
+1.52554e-18
+3.30811e-18
+1.08689e-18
+9.73987e-19
+3.16793e-18
+2.17603e-18
+1.49218e-18
+2.29775e-18
+1.17753e-18
+1.8017e-19
+0
+0.000211433
+0.00025844
+0.000366842
+0.000497962
+0.000639836
+0.000789481
+0.000945687
+0.00110769
+0.00127495
+0.00136436
+0.00071291
+8.65289e-18
+2.78938e-18
+2.05894e-17
+2.14442e-17
+6.46733e-18
+1.18983e-17
+8.77732e-18
+1.04116e-18
+1.71528e-18
+9.49474e-18
+1.62563e-17
+8.44827e-18
+9.98772e-18
+6.47336e-19
+1.23165e-17
+8.22089e-18
+3.90633e-18
+5.55951e-18
+1.52642e-18
+1.50843e-18
+9.83907e-18
+1.47329e-18
+2.18399e-18
+2.30295e-18
+1.0949e-17
+4.21555e-18
+7.08184e-18
+7.13547e-18
+1.17967e-17
+7.50333e-18
+1.21806e-17
+3.27068e-18
+1.06e-17
+1.09848e-17
+8.32955e-18
+1.52131e-17
+1.08422e-17
+3.65193e-18
+1.20315e-18
+6.65433e-18
+2.34797e-18
+4.64207e-19
+8.70865e-18
+1.67542e-17
+1.54334e-17
+0
+3.90736e-17
+3.709e-17
+2.1302e-18
+2.86184e-17
+1.16405e-17
+4.7227e-18
+3.24518e-18
+3.60619e-18
+6.72831e-18
+2.54105e-18
+9.65333e-19
+1.02975e-17
+5.27374e-18
+1.22778e-17
+3.1602e-17
+5.08097e-18
+8.96423e-19
+7.25699e-18
+1.06632e-17
+1.82994e-17
+1.26162e-17
+3.03097e-18
+1.61283e-17
+8.8666e-18
+1.62204e-18
+5.44398e-18
+4.11097e-18
+3.74711e-18
+2.4668e-18
+2.05995e-20
+5.71206e-18
+8.31167e-18
+1.23104e-17
+3.32809e-18
+6.85778e-18
+3.94971e-18
+2.22845e-18
+2.06258e-18
+6.65218e-18
+5.36125e-18
+2.91119e-18
+4.44165e-18
+3.99804e-18
+1.31141e-17
+1.09351e-17
+1.24081e-17
+2.81725e-18
+4.35297e-18
+1.79071e-18
+7.77649e-18
+6.97837e-18
+9.18444e-19
+5.43956e-18
+6.93512e-18
+9.27451e-18
+7.51949e-18
+1.39862e-18
+1.69865e-18
+5.65836e-18
+2.89576e-18
+5.71608e-18
+2.4179e-18
+1.79144e-18
+5.78947e-18
+5.24148e-20
+4.39612e-18
+4.71567e-19
+4.74684e-18
+0
+1.08768e-18
+1.05545e-17
+2.11835e-18
+7.1424e-18
+3.7817e-18
+6.78463e-19
+3.1803e-18
+4.62414e-18
+9.77714e-18
+5.94903e-18
+1.42796e-18
+3.13774e-19
+4.63793e-19
+3.35237e-18
+1.80408e-18
+3.55992e-18
+5.99994e-18
+1.29998e-18
+5.69752e-19
+2.81072e-18
+1.38632e-19
+1.50441e-18
+5.12697e-18
+6.78814e-18
+6.82761e-18
+3.36781e-18
+1.02216e-18
+3.65511e-18
+4.72446e-18
+9.81113e-19
+1.20972e-18
+8.359e-19
+7.06914e-19
+7.66227e-18
+5.26742e-18
+3.5014e-18
+1.02487e-17
+1.97862e-18
+5.52675e-18
+4.27533e-18
+6.21936e-18
+6.65391e-18
+9.63813e-18
+1.0112e-19
+8.37717e-18
+3.24554e-18
+4.87788e-19
+2.96525e-18
+3.39572e-18
+2.23259e-18
+5.22859e-18
+1.62893e-18
+1.87332e-18
+5.62949e-18
+0.000267393
+0.000348552
+0.000426167
+0.000544535
+0.000678982
+0.000823741
+0.00097635
+0.00113553
+0.00130047
+0.00128063
+0.000563399
+1.74931e-17
+1.49271e-17
+4.36203e-18
+1.12834e-17
+2.69143e-17
+1.33095e-17
+2.56837e-18
+4.76264e-18
+8.16422e-18
+4.96862e-18
+1.59694e-17
+1.09335e-17
+2.40268e-18
+2.376e-18
+1.58597e-17
+1.04555e-17
+5.75694e-19
+7.3836e-18
+7.30117e-18
+9.16302e-18
+8.23666e-19
+7.60127e-18
+0
+3.59134e-20
+9.97168e-18
+8.04301e-18
+2.18043e-17
+0
+1.50486e-18
+1.23951e-18
+1.56856e-17
+2.42389e-18
+4.79083e-19
+4.2627e-18
+4.91624e-18
+1.6663e-17
+6.63473e-18
+1.49265e-17
+1.76616e-17
+5.08287e-18
+1.17964e-17
+9.28524e-18
+1.30201e-17
+1.66673e-17
+4.17076e-19
+1.58714e-17
+1.18165e-17
+1.65121e-17
+2.03006e-17
+1.4163e-17
+3.88831e-18
+1.86382e-17
+3.03885e-18
+9.7593e-18
+1.65078e-17
+1.09983e-17
+6.52142e-18
+2.14824e-18
+1.04378e-17
+5.41981e-18
+3.45523e-19
+5.12179e-18
+6.91698e-18
+4.16748e-18
+8.23908e-19
+1.30286e-18
+1.28662e-18
+2.54296e-18
+1.00492e-17
+1.42731e-17
+5.51849e-18
+6.9668e-18
+6.8833e-18
+2.66114e-18
+2.62946e-18
+4.0408e-18
+4.70479e-18
+4.36635e-18
+4.59193e-18
+6.87335e-19
+3.53088e-18
+8.58614e-18
+7.95176e-19
+4.97494e-18
+1.29374e-18
+1.27799e-18
+2.52389e-18
+9.22438e-18
+3.20139e-18
+3.89195e-18
+1.20133e-18
+3.56038e-18
+1.87524e-18
+9.26093e-19
+4.11612e-18
+2.03292e-18
+5.57703e-18
+1.98371e-18
+2.82864e-18
+2.22624e-19
+4.88136e-18
+7.96508e-18
+2.08877e-19
+1.10385e-17
+8.47855e-18
+9.98225e-19
+3.93729e-19
+3.30529e-18
+1.53665e-18
+9.49224e-19
+1.31131e-18
+1.10904e-18
+4.19789e-18
+1.44176e-18
+8.89752e-19
+6.85254e-18
+5.55181e-18
+5.99534e-18
+8.62565e-18
+2.00434e-18
+6.75959e-18
+1.30295e-18
+1.44701e-18
+4.75986e-18
+3.75939e-18
+0
+4.5987e-19
+1.80909e-18
+3.12462e-18
+6.90364e-18
+3.62529e-18
+8.01597e-18
+1.55481e-18
+8.36919e-18
+1.10153e-17
+5.70849e-18
+8.04979e-19
+1.32431e-18
+1.04814e-18
+4.00045e-18
+3.82067e-19
+2.60453e-19
+1.61434e-18
+4.40857e-18
+1.32954e-18
+1.19294e-18
+3.53232e-18
+9.30156e-19
+3.45453e-19
+9.0549e-19
+6.03238e-18
+8.1579e-18
+5.88878e-20
+3.32843e-18
+6.3833e-19
+7.00607e-18
+1.54883e-18
+1.42667e-18
+2.21069e-18
+1.78809e-18
+6.26234e-18
+3.89739e-19
+3.62051e-18
+5.35904e-18
+5.56602e-19
+2.28838e-18
+3.52244e-18
+3.5647e-18
+4.75941e-20
+0.000368765
+0.000446269
+0.000506909
+0.000611481
+0.00073587
+0.000873503
+0.00102082
+0.00117588
+0.00133748
+0.00115774
+0.000352466
+1.18777e-17
+2.47435e-18
+5.50899e-18
+2.42263e-18
+2.15742e-17
+1.06735e-17
+3.52028e-18
+1.94472e-17
+1.78056e-17
+8.80858e-18
+5.06037e-18
+8.3444e-19
+2.20152e-18
+1.30685e-17
+1.23905e-17
+7.46162e-18
+3.42801e-18
+7.30283e-18
+3.09645e-18
+1.8123e-17
+1.21206e-17
+2.17323e-17
+3.70676e-18
+1.95582e-18
+4.35248e-18
+1.14812e-17
+3.78577e-18
+8.19141e-18
+6.01907e-18
+1.5113e-17
+4.75647e-18
+5.82503e-18
+1.57325e-17
+5.6983e-18
+1.73415e-18
+2.14475e-18
+9.75416e-18
+1.67872e-18
+5.39311e-18
+7.38483e-18
+8.31791e-18
+6.21982e-18
+9.72282e-18
+2.94354e-18
+1.20315e-17
+9.6093e-19
+1.89793e-18
+6.00533e-18
+1.22483e-17
+1.26627e-17
+7.44006e-18
+8.97193e-19
+4.8019e-20
+1.4913e-17
+1.19705e-17
+3.94552e-18
+3.39211e-18
+3.35394e-18
+8.78784e-18
+8.0331e-18
+3.24175e-18
+0
+1.64778e-17
+5.32594e-18
+1.85889e-18
+2.45114e-18
+5.44921e-18
+1.07744e-17
+9.17208e-18
+1.05299e-17
+5.4939e-18
+3.43034e-18
+9.0422e-18
+0
+3.73635e-20
+7.3696e-18
+2.15842e-18
+5.86724e-18
+1.58169e-18
+2.08456e-18
+4.12148e-18
+2.54596e-18
+5.53609e-18
+2.98441e-18
+6.65244e-20
+6.31679e-18
+1.53678e-17
+4.03444e-18
+2.8153e-18
+3.01349e-18
+1.60486e-18
+7.2452e-18
+1.79004e-18
+6.63381e-19
+5.91407e-20
+4.75245e-18
+1.49499e-18
+1.22318e-17
+1.66722e-18
+4.11877e-19
+6.10502e-19
+3.01634e-18
+2.18574e-18
+7.87171e-19
+1.74608e-18
+5.18804e-20
+7.57663e-19
+1.12408e-18
+5.1778e-18
+5.48154e-18
+8.30409e-18
+3.03214e-18
+2.46756e-18
+8.70529e-19
+1.20409e-18
+4.41876e-18
+6.88389e-18
+1.99046e-18
+9.50442e-18
+9.06589e-18
+1.75924e-18
+2.3703e-18
+1.87342e-18
+1.54185e-19
+1.67543e-18
+2.55911e-18
+1.53975e-19
+4.11108e-18
+1.45027e-19
+1.43258e-17
+4.10365e-18
+5.59096e-19
+5.10831e-18
+6.81849e-19
+1.62005e-18
+8.78107e-18
+7.0963e-18
+1.03831e-18
+3.9745e-18
+2.28309e-18
+4.25159e-18
+3.76487e-19
+4.14766e-18
+7.71001e-18
+3.09327e-18
+1.76245e-18
+2.08963e-18
+4.58385e-19
+6.79026e-19
+4.02344e-18
+3.09093e-18
+1.74389e-18
+6.45796e-19
+3.8268e-18
+2.38695e-19
+1.03797e-18
+1.02347e-18
+3.63828e-18
+0
+2.04173e-19
+0
+3.65098e-18
+7.96911e-18
+2.99795e-18
+7.41619e-19
+5.29697e-18
+0
+3.68926e-19
+9.51566e-20
+0.000482643
+0.000542601
+0.000614093
+0.000699397
+0.000812668
+0.00094146
+0.00108185
+0.00123138
+0.00138847
+0.000877109
+7.24874e-05
+5.69422e-18
+2.08563e-17
+4.18513e-18
+2.76179e-18
+1.33959e-17
+1.92139e-17
+1.63404e-17
+2.09474e-17
+7.88186e-19
+3.89688e-18
+9.25725e-18
+9.67191e-18
+2.77118e-18
+6.98191e-18
+1.08594e-17
+6.8396e-18
+1.2572e-17
+1.7707e-17
+2.36824e-17
+1.99229e-17
+4.1756e-18
+2.34169e-17
+1.43141e-17
+1.34914e-18
+1.55771e-18
+1.51954e-17
+1.22045e-17
+5.60782e-18
+8.96426e-18
+2.21769e-17
+1.67205e-18
+7.85938e-18
+2.45596e-18
+1.39741e-17
+1.60412e-18
+5.95503e-19
+2.35521e-18
+9.51374e-18
+7.87659e-18
+1.02647e-17
+1.88152e-18
+0
+1.84197e-18
+2.18617e-18
+1.62225e-17
+6.77701e-18
+6.70486e-18
+1.43146e-17
+9.32676e-18
+1.77704e-17
+9.46664e-18
+6.68958e-18
+3.30902e-18
+2.61924e-18
+7.12483e-18
+5.7669e-18
+1.17266e-17
+9.4057e-18
+3.12974e-19
+1.84082e-18
+7.89081e-18
+5.40399e-18
+2.673e-18
+1.46875e-18
+1.39471e-17
+9.1975e-18
+5.69877e-19
+3.93748e-18
+2.78134e-18
+6.60254e-18
+7.34676e-18
+6.45912e-18
+1.86327e-18
+6.84494e-18
+1.82266e-18
+4.37789e-18
+1.12065e-17
+9.82379e-18
+1.99323e-18
+2.46463e-18
+6.33534e-18
+6.26501e-18
+1.19323e-18
+4.0062e-18
+6.05923e-18
+9.21846e-19
+2.27985e-18
+8.11325e-18
+7.57747e-18
+2.28304e-19
+2.17918e-18
+1.29291e-18
+2.98307e-18
+8.63858e-18
+8.54182e-18
+5.35621e-18
+2.03685e-18
+2.0147e-18
+5.99819e-19
+1.37925e-18
+2.14202e-18
+5.77446e-18
+6.47042e-18
+9.97204e-18
+3.72074e-18
+8.09233e-18
+2.54607e-18
+7.01081e-18
+6.57572e-18
+5.44756e-18
+9.72737e-18
+4.12133e-18
+5.26267e-18
+8.39127e-19
+1.32802e-18
+3.60849e-18
+4.88372e-19
+3.20549e-19
+1.7428e-18
+2.81911e-18
+6.19269e-18
+3.36909e-18
+3.02577e-18
+1.49531e-19
+1.28592e-17
+9.93513e-18
+1.58853e-18
+4.85323e-18
+1.41296e-18
+1.39659e-18
+1.65406e-18
+1.36238e-18
+2.69311e-18
+7.45305e-18
+2.63179e-18
+7.2819e-18
+3.34085e-18
+6.85774e-18
+8.03309e-18
+6.45179e-18
+1.96265e-18
+9.69284e-19
+6.46635e-18
+4.02399e-18
+4.44407e-18
+6.24111e-18
+4.34028e-18
+9.05062e-19
+3.1233e-18
+1.76473e-18
+6.56254e-19
+4.95217e-18
+8.51021e-19
+5.68984e-20
+3.53231e-18
+6.36426e-18
+2.43504e-18
+2.40558e-18
+5.94264e-19
+2.34886e-18
+3.09463e-18
+4.01345e-18
+1.51162e-18
+2.61237e-18
+3.31916e-18
+1.09419e-18
+1.44747e-18
+4.09196e-18
+0
+0.000613057
+0.000661384
+0.000743371
+0.000809891
+0.000911537
+0.00103004
+0.00116181
+0.00130422
+0.00122908
+0.000415471
+2.61767e-17
+1.91829e-17
+9.75504e-18
+4.06762e-18
+1.15803e-17
+8.97456e-18
+6.91218e-18
+4.40019e-18
+2.42068e-18
+3.83522e-18
+1.40041e-17
+2.09176e-17
+1.07054e-17
+2.41962e-17
+1.41469e-17
+1.03928e-17
+2.21469e-17
+8.63872e-18
+1.00885e-17
+7.81738e-18
+8.17007e-18
+7.23766e-18
+1.8758e-17
+1.12683e-17
+1.42554e-17
+1.59547e-17
+2.74031e-20
+7.61896e-18
+1.82618e-17
+7.87851e-19
+3.92646e-19
+1.54171e-18
+1.52628e-18
+8.30564e-18
+9.71741e-18
+7.39992e-18
+5.49424e-18
+3.62615e-18
+3.23036e-18
+6.04045e-18
+3.51722e-19
+4.17802e-18
+1.34413e-17
+4.09387e-18
+1.35156e-18
+2.3399e-18
+2.64701e-18
+1.3108e-18
+2.5938e-18
+6.43218e-19
+1.5886e-18
+1.5718e-18
+2.48919e-18
+7.39117e-18
+4.26737e-18
+1.56878e-17
+2.09054e-18
+4.13755e-18
+5.84975e-18
+3.18425e-18
+2.86495e-18
+6.80499e-18
+7.8573e-18
+1.05532e-17
+3.02328e-18
+8.16824e-19
+4.03786e-18
+4.26235e-18
+7.64512e-18
+2.70267e-19
+1.00688e-17
+8.43091e-18
+1.5169e-18
+3.00292e-18
+4.70378e-18
+4.94425e-19
+2.66739e-18
+3.83805e-18
+1.42418e-18
+5.40246e-18
+6.27498e-18
+2.5296e-18
+5.46141e-18
+6.75443e-18
+3.34162e-18
+3.08594e-18
+2.39906e-18
+1.29475e-18
+2.5621e-18
+3.37997e-18
+6.29573e-19
+3.93064e-18
+6.13815e-18
+2.83444e-18
+3.60485e-18
+1.19004e-18
+5.09697e-18
+2.71562e-18
+3.83734e-18
+2.65794e-18
+6.00922e-18
+1.30142e-18
+3.70929e-19
+1.27369e-18
+2.69804e-18
+1.06872e-18
+8.80148e-18
+2.96066e-18
+5.34028e-18
+4.09076e-18
+1.18086e-18
+2.50166e-18
+4.12375e-18
+1.95852e-18
+9.52324e-18
+2.39525e-18
+1.57929e-18
+3.12435e-19
+2.47238e-18
+2.75124e-18
+4.83797e-18
+3.58905e-18
+7.10048e-18
+4.97508e-18
+2.31542e-18
+8.58821e-18
+5.66303e-19
+8.96229e-18
+2.21602e-18
+9.31548e-18
+2.71079e-18
+6.96839e-18
+2.38572e-18
+9.43834e-18
+3.37093e-18
+3.07749e-18
+5.58183e-18
+1.00572e-18
+3.4734e-18
+9.83733e-19
+5.82563e-18
+5.7604e-18
+0
+2.34828e-18
+1.39292e-18
+5.51023e-18
+9.08235e-19
+2.6953e-18
+3.33322e-18
+2.19616e-18
+1.30445e-18
+8.61099e-19
+1.06203e-18
+3.99102e-18
+5.81743e-18
+1.84882e-18
+3.25034e-18
+9.04033e-18
+3.97326e-18
+1.3752e-18
+1.74848e-18
+6.91623e-18
+2.16026e-19
+2.13625e-19
+2.22937e-18
+3.67428e-18
+1.09444e-18
+7.4444e-19
+5.68552e-18
+5.62461e-18
+0.000734948
+0.000784176
+0.000850607
+0.000939433
+0.0010143
+0.00112463
+0.00124886
+0.00137361
+0.000742444
+5.33359e-18
+1.05469e-17
+1.56415e-17
+3.12512e-17
+1.72005e-17
+6.31268e-19
+4.35872e-18
+2.83172e-17
+7.91153e-18
+7.21977e-18
+3.5686e-18
+2.94009e-18
+8.13725e-18
+9.76764e-18
+5.73146e-19
+2.07733e-17
+5.54975e-19
+9.87467e-18
+1.63045e-18
+4.28781e-18
+4.23833e-18
+4.71269e-18
+2.22549e-17
+8.69647e-18
+1.71901e-17
+7.99545e-18
+2.27179e-17
+4.88098e-19
+6.5275e-20
+7.15135e-18
+8.48062e-18
+6.05296e-18
+1.56448e-17
+2.13718e-17
+1.21326e-17
+5.32861e-18
+8.33744e-18
+2.16883e-18
+3.85621e-18
+2.15925e-17
+1.08771e-17
+8.26747e-19
+2.45069e-18
+4.07253e-19
+7.97527e-18
+1.10316e-17
+6.61753e-18
+9.2305e-18
+4.56005e-18
+9.00988e-18
+1.11381e-18
+1.31913e-17
+1.04981e-17
+8.583e-18
+2.47355e-18
+4.18927e-18
+1.72394e-17
+1.43051e-17
+5.71972e-18
+3.65703e-18
+1.24757e-17
+1.65392e-17
+1.02507e-17
+4.42999e-18
+1.06266e-17
+4.32182e-18
+1.03673e-17
+3.0127e-18
+1.90369e-17
+1.23392e-17
+2.90157e-18
+8.02435e-18
+2.54837e-18
+6.70884e-18
+3.3126e-18
+7.36114e-18
+5.38461e-18
+1.33716e-18
+1.05026e-17
+1.19272e-17
+4.86489e-18
+3.54245e-18
+1.42317e-17
+9.61617e-18
+4.91336e-19
+8.65399e-18
+1.66278e-18
+2.34372e-18
+4.16547e-18
+8.68269e-18
+4.51205e-18
+1.78299e-18
+1.32088e-18
+1.51992e-18
+9.64747e-18
+4.44493e-18
+4.2171e-19
+2.89017e-18
+2.85328e-18
+1.60841e-18
+1.59146e-18
+2.35124e-18
+4.25532e-18
+3.43732e-18
+3.01578e-18
+2.97698e-18
+8.08124e-18
+9.81293e-20
+0
+1.06093e-18
+1.39485e-18
+2.41656e-18
+3.05759e-18
+5.36514e-18
+3.31084e-18
+5.22726e-18
+2.2585e-18
+5.09116e-18
+6.90896e-18
+7.12911e-18
+1.52942e-18
+7.84884e-18
+1.07251e-17
+1.29367e-17
+1.45076e-17
+3.7223e-18
+4.23841e-18
+1.95185e-18
+1.11066e-18
+1.3596e-18
+2.67932e-18
+5.33589e-19
+2.08825e-18
+3.60389e-18
+5.08005e-19
+2.75689e-18
+6.67687e-18
+1.70926e-18
+3.61175e-18
+2.37531e-19
+4.68714e-19
+9.48033e-18
+4.56254e-19
+3.60163e-18
+1.99845e-18
+1.31441e-18
+1.51286e-18
+0
+4.24521e-19
+4.18797e-19
+0
+4.8466e-18
+5.17948e-18
+2.03584e-19
+3.48933e-18
+1.14734e-18
+1.69764e-18
+5.02371e-18
+4.77288e-18
+2.17462e-18
+5.357e-18
+6.51754e-18
+2.77962e-18
+4.80144e-18
+5.74627e-18
+3.00184e-18
+6.6363e-19
+1.94584e-18
+1.92692e-18
+3.26806e-19
+4.97861e-18
+0.000850286
+0.000896652
+0.000962011
+0.00105455
+0.00110398
+0.00122114
+0.00133933
+0.000916696
+0.000146548
+3.05376e-17
+3.85767e-20
+8.46357e-18
+4.46651e-18
+7.73454e-18
+5.46786e-18
+2.16373e-18
+1.17754e-17
+9.53295e-18
+4.1922e-18
+6.2219e-18
+1.69293e-17
+2.5379e-18
+1.55682e-17
+8.44702e-18
+9.83173e-18
+1.94542e-18
+1.92908e-18
+6.6648e-18
+1.50703e-17
+2.79615e-18
+8.29669e-18
+5.47162e-18
+5.41282e-18
+7.13944e-18
+9.71113e-18
+6.98731e-18
+8.63853e-18
+5.12704e-18
+6.33936e-18
+1.00331e-17
+6.6162e-18
+1.4724e-17
+1.98227e-17
+8.0028e-18
+1.02899e-17
+7.8288e-18
+2.32286e-18
+6.12635e-18
+0
+3.37074e-18
+1.03712e-17
+4.76237e-18
+7.24557e-18
+1.93463e-17
+1.06397e-18
+4.20441e-18
+1.38591e-17
+9.25083e-18
+2.71046e-18
+6.71592e-19
+1.98975e-18
+2.29309e-18
+3.88799e-18
+5.44501e-18
+6.33435e-18
+1.88068e-18
+5.57348e-18
+3.97946e-18
+8.47477e-18
+1.19694e-18
+4.43771e-18
+5.84986e-19
+8.67519e-18
+7.72047e-18
+6.78316e-18
+2.51583e-18
+8.32028e-19
+5.73434e-18
+2.96932e-18
+2.66942e-18
+7.91379e-18
+8.60506e-18
+1.29064e-18
+2.0429e-18
+3.52576e-18
+3.73395e-18
+1.33178e-19
+3.40478e-18
+3.36591e-18
+7.12782e-18
+3.2881e-18
+8.35529e-18
+5.50541e-18
+1.08822e-17
+4.48093e-19
+7.08551e-18
+1.7516e-18
+9.08292e-18
+1.28227e-18
+5.91375e-18
+2.50446e-18
+8.32482e-19
+8.17074e-19
+3.2227e-18
+2.38803e-18
+1.96928e-18
+7.78987e-19
+3.45621e-18
+3.41617e-18
+3.00072e-18
+7.40791e-19
+1.8325e-18
+4.7046e-18
+9.66811e-20
+6.70671e-18
+3.48703e-19
+6.20106e-18
+3.06313e-18
+1.01281e-18
+6.64405e-18
+1.44389e-17
+1.26427e-17
+1.34499e-17
+4.42963e-18
+8.43773e-18
+9.8779e-18
+6.15393e-19
+3.01302e-18
+9.52157e-18
+5.28951e-18
+1.16368e-18
+1.14677e-18
+4.53326e-18
+8.39074e-18
+2.76333e-18
+1.09129e-18
+1.88755e-18
+4.26026e-18
+3.67943e-18
+7.78666e-19
+7.68993e-18
+9.61965e-18
+3.99983e-18
+5.43118e-18
+3.90119e-18
+6.26063e-18
+8.55821e-18
+3.28709e-18
+4.63605e-18
+2.2889e-18
+1.5868e-18
+2.23491e-18
+3.53013e-18
+1.52297e-18
+1.93685e-18
+6.78713e-18
+2.09716e-18
+3.72155e-18
+2.452e-18
+3.02491e-18
+3.58296e-18
+2.55576e-18
+1.04962e-19
+2.29729e-18
+6.9934e-18
+1.11942e-18
+1.84446e-18
+2.54535e-18
+1.26006e-18
+6.37787e-18
+7.34494e-18
+3.62508e-18
+1.70642e-18
+2.18835e-18
+2.82791e-18
+2.78701e-18
+3.23464e-19
+2.87465e-18
+3.26443e-19
+0
+0.000993534
+0.00103603
+0.00109563
+0.00115235
+0.00125547
+0.0012242
+0.000823128
+0.000149527
+4.01824e-18
+6.96363e-18
+4.92594e-18
+9.7566e-18
+8.69522e-18
+2.05699e-17
+3.79025e-18
+8.44398e-18
+7.89682e-18
+1.37994e-18
+4.09979e-18
+0
+9.37853e-18
+1.06131e-17
+1.40117e-17
+1.25731e-17
+4.29282e-19
+2.21025e-17
+9.67964e-18
+1.12505e-17
+7.42623e-18
+4.9019e-18
+2.38602e-17
+9.20895e-18
+1.8631e-17
+1.56982e-17
+7.77143e-18
+4.61613e-18
+5.71207e-18
+4.52388e-18
+2.23925e-18
+8.12811e-18
+2.19502e-18
+3.62094e-18
+5.73477e-18
+2.83874e-18
+9.83375e-18
+4.51946e-18
+7.57079e-18
+8.8565e-18
+0
+1.26822e-17
+4.62479e-18
+3.27002e-18
+2.91301e-18
+3.31844e-19
+8.56019e-18
+4.39304e-18
+5.90076e-18
+1.22949e-18
+3.65049e-18
+1.08389e-17
+9.53514e-18
+3.0549e-19
+9.63069e-18
+4.04326e-18
+3.71628e-18
+2.54667e-18
+4.75816e-18
+1.16329e-17
+3.83717e-18
+4.88195e-18
+9.12497e-18
+1.59341e-18
+4.73222e-18
+1.19612e-17
+9.26227e-18
+1.55292e-17
+6.04533e-18
+6.48026e-18
+7.6446e-18
+4.92404e-19
+4.8718e-19
+2.38913e-18
+3.30799e-18
+1.87015e-18
+9.25098e-19
+9.15217e-18
+7.24367e-18
+4.47864e-19
+4.43101e-18
+2.19231e-18
+2.60152e-18
+5.147e-18
+7.21317e-18
+2.51889e-18
+0
+2.8747e-18
+4.87493e-18
+8.4381e-18
+7.55128e-18
+2.75227e-18
+9.33182e-18
+6.15405e-18
+7.60734e-18
+4.13821e-18
+4.4649e-18
+4.78489e-18
+7.54068e-19
+3.95926e-18
+2.4936e-18
+6.33729e-18
+8.70346e-18
+2.41178e-18
+7.83067e-18
+7.74423e-18
+1.46495e-17
+2.96307e-18
+7.81388e-18
+2.57537e-18
+2.54802e-18
+5.98035e-18
+6.22507e-18
+3.69275e-18
+5.47682e-18
+7.52146e-18
+3.86682e-18
+7.35392e-18
+1.45593e-18
+2.97809e-19
+2.27496e-18
+1.29253e-17
+1.39095e-18
+4.3939e-18
+1.05882e-17
+1.61031e-18
+4.51036e-18
+1.31138e-18
+2.33341e-18
+6.9212e-18
+5.32061e-18
+1.75296e-18
+9.90138e-19
+2.45033e-18
+4.59505e-18
+3.34661e-18
+1.13426e-17
+4.437e-18
+3.00313e-18
+6.15927e-18
+3.60736e-18
+1.78669e-18
+4.62616e-18
+7.40354e-18
+4.45651e-19
+2.12562e-18
+1.05037e-17
+1.0587e-17
+8.61655e-18
+4.66247e-18
+4.00637e-18
+1.1925e-18
+6.65119e-18
+2.1286e-18
+6.4965e-18
+6.4167e-18
+1.86452e-18
+2.09481e-19
+2.18649e-18
+5.03654e-18
+1.77947e-18
+5.6185e-18
+2.08342e-18
+2.74166e-18
+3.38576e-19
+4.34929e-18
+8.26305e-18
+6.20244e-18
+1.61243e-18
+3.18572e-18
+1.5758e-18
+4.97391e-18
+0.00116452
+0.0011908
+0.00114676
+0.00109285
+0.000873483
+0.000439677
+6.19347e-05
+6.11597e-18
+1.81816e-17
+9.4376e-18
+1.70041e-18
+5.89785e-18
+9.18366e-18
+2.48192e-18
+4.09899e-18
+9.74834e-18
+1.00622e-17
+8.77396e-18
+1.46218e-17
+8.6147e-18
+5.82002e-18
+1.03803e-17
+6.095e-18
+1.0946e-17
+7.47977e-18
+1.1128e-18
+1.02803e-17
+1.56424e-17
+1.69401e-17
+6.0708e-18
+1.76971e-18
+7.02692e-19
+5.20956e-18
+1.58282e-17
+2.38677e-18
+3.71516e-18
+9.70359e-18
+7.95593e-18
+1.31365e-18
+3.25355e-18
+1.93393e-18
+1.27798e-18
+1.26532e-18
+8.14776e-18
+1.42801e-17
+1.47613e-17
+1.24903e-17
+8.14803e-18
+1.34523e-17
+3.55351e-18
+7.6267e-18
+3.77818e-18
+4.03025e-18
+1.42758e-18
+6.49519e-18
+1.67833e-18
+1.60699e-17
+1.09774e-18
+1.35912e-17
+1.15774e-17
+2.13335e-18
+1.37346e-17
+1.72656e-17
+7.7729e-18
+9.23813e-18
+2.54247e-18
+1.76199e-18
+8.97483e-18
+1.48138e-17
+4.89031e-18
+6.29607e-18
+1.63076e-17
+2.37585e-18
+1.41121e-17
+1.67702e-17
+1.38536e-18
+7.3096e-18
+9.9533e-18
+9.85578e-18
+1.02033e-17
+3.95352e-18
+6.96076e-18
+1.24911e-17
+3.83898e-18
+5.91358e-18
+2.09085e-18
+1.69763e-17
+2.45986e-18
+8.13722e-19
+1.24598e-17
+9.55095e-18
+1.02443e-17
+7.80226e-18
+7.79503e-19
+2.29436e-18
+2.27153e-18
+6.37267e-18
+1.86622e-18
+1.83684e-18
+2.18216e-18
+3.96056e-18
+1.35447e-17
+2.82289e-18
+1.15277e-17
+1.48695e-17
+6.16157e-18
+6.83885e-19
+5.36686e-18
+5.97728e-18
+7.5599e-18
+8.45866e-18
+4.18635e-18
+4.14376e-18
+6.36756e-19
+3.43616e-18
+6.80057e-18
+1.83559e-18
+4.23916e-18
+7.1926e-18
+2.37426e-18
+1.40912e-17
+2.32431e-18
+6.32593e-18
+4.55382e-18
+1.13679e-18
+6.68955e-18
+4.13802e-18
+2.45663e-18
+0
+5.39489e-19
+5.33864e-19
+9.94685e-18
+8.28872e-18
+4.61359e-18
+3.04425e-18
+3.51344e-18
+6.45671e-18
+2.7036e-18
+3.16326e-18
+4.98407e-19
+5.71216e-18
+2.35487e-19
+3.49485e-18
+1.01427e-17
+3.64905e-18
+9.35018e-19
+2.24536e-18
+1.32509e-18
+3.2773e-18
+4.32453e-18
+1.28819e-18
+5.716e-18
+8.57963e-18
+2.89808e-18
+7.57663e-18
+1.25593e-17
+6.01116e-19
+2.38084e-18
+1.57201e-18
+8.14545e-18
+1.92095e-18
+2.27901e-18
+1.01572e-19
+2.60042e-18
+7.40995e-19
+3.76193e-19
+2.15707e-18
+1.03008e-17
+2.46089e-18
+4.86392e-18
+1.3775e-18
+9.51466e-18
+5.0405e-18
+5.31696e-18
+6.24383e-18
+1.62723e-18
+2.5723e-18
+3.17772e-19
+7.85564e-18
+0
+0.000796382
+0.000706238
+0.000532257
+0.000321987
+7.70994e-05
+1.91298e-18
+6.06773e-18
+1.27844e-17
+1.86412e-18
+2.58765e-18
+1.02629e-17
+2.10783e-17
+1.081e-17
+0
+1.55863e-17
+1.44e-17
+6.2681e-18
+1.07031e-17
+8.21575e-18
+0
+1.68311e-18
+1.66812e-18
+5.95391e-18
+5.90297e-18
+2.27595e-18
+1.80517e-17
+1.59793e-18
+8.87177e-18
+1.53921e-17
+1.37028e-17
+1.54431e-18
+3.67312e-18
+7.28299e-18
+1.80552e-18
+5.96513e-18
+8.27894e-18
+1.28974e-17
+6.10253e-18
+2.30495e-18
+1.37081e-17
+6.79468e-18
+1.74008e-17
+7.79036e-18
+1.59969e-17
+1.17568e-17
+8.94426e-18
+5.37356e-19
+7.99015e-18
+1.00327e-17
+8.63689e-18
+4.1509e-18
+3.60031e-18
+2.03934e-18
+6.56986e-18
+2.50474e-18
+3.72419e-18
+8.36773e-18
+1.12213e-17
+4.83598e-18
+6.71084e-18
+5.46397e-18
+4.70944e-19
+4.20114e-18
+4.16408e-18
+4.8156e-18
+1.1818e-17
+6.75804e-18
+1.51821e-17
+1.28346e-17
+7.89591e-18
+6.52134e-18
+1.37886e-17
+1.53743e-17
+1.69402e-18
+2.51696e-18
+5.82055e-18
+2.06022e-18
+5.30988e-18
+0
+4.01129e-18
+1.11301e-17
+1.49696e-17
+5.07523e-18
+4.64305e-18
+1.61037e-17
+3.04019e-18
+5.27166e-18
+2.98522e-18
+3.99094e-19
+1.48758e-19
+3.26857e-18
+3.59847e-18
+8.55864e-18
+2.47533e-18
+2.10088e-18
+1.24911e-17
+5.158e-18
+1.36584e-18
+7.08912e-18
+6.75093e-19
+8.28609e-18
+8.53924e-18
+1.10639e-17
+5.15961e-18
+1.59971e-18
+6.38854e-19
+1.25454e-18
+3.1075e-18
+3.18965e-19
+4.27073e-18
+4.8365e-18
+4.79115e-18
+5.93357e-19
+3.52809e-18
+6.4071e-18
+5.48223e-18
+1.14332e-18
+5.66348e-19
+1.96524e-18
+8.37164e-19
+1.37869e-18
+3.27401e-18
+5.40431e-19
+3.21225e-18
+1.5927e-18
+2.6279e-18
+7.93288e-19
+9.53795e-18
+6.89464e-18
+2.52952e-19
+5.51414e-18
+1.48921e-18
+0
+3.65353e-18
+6.27178e-18
+5.97337e-18
+3.54999e-18
+2.34416e-19
+6.9667e-18
+5.75067e-18
+4.71947e-19
+3.60966e-18
+2.68136e-18
+8.93297e-19
+3.50899e-18
+3.90926e-18
+4.30152e-18
+2.34505e-18
+3.79581e-18
+2.30007e-18
+6.59645e-19
+2.46793e-18
+5.27516e-18
+6.02741e-18
+1.99223e-18
+5.1231e-18
+4.29313e-18
+2.32762e-18
+6.88758e-18
+4.16877e-18
+1.13005e-18
+2.23799e-18
+7.35698e-19
+2.18766e-18
+1.81384e-18
+7.20735e-19
+4.24422e-18
+4.5514e-18
+2.7732e-18
+3.77545e-18
+4.07893e-18
+4.37487e-18
+3.33116e-19
+4.61813e-18
+3.91827e-18
+3.23741e-18
+4.48143e-18
+1.27893e-18
+3.56675e-19
+0
+6.36091e-05
+7.80636e-18
+5.38737e-18
+1.67067e-18
+1.15972e-17
+5.25919e-18
+4.56525e-18
+8.41019e-18
+3.20884e-17
+8.2763e-18
+1.64203e-17
+9.40702e-19
+8.7008e-18
+1.01726e-17
+1.19259e-17
+5.46014e-18
+6.032e-19
+1.79101e-18
+6.21882e-18
+3.81857e-18
+4.37143e-18
+1.44575e-18
+9.74877e-18
+5.68851e-18
+9.31079e-18
+9.23603e-18
+7.77372e-18
+2.754e-17
+5.46385e-18
+1.24656e-17
+2.33866e-17
+1.6003e-18
+1.85153e-17
+8.13372e-18
+1.79582e-17
+8.77777e-18
+1.69018e-17
+9.14494e-18
+2.26779e-17
+1.89959e-17
+1.43799e-17
+2.95133e-18
+3.9031e-18
+7.98515e-18
+0
+2.69032e-17
+1.27525e-17
+1.45234e-17
+1.62649e-17
+9.91056e-18
+6.40104e-18
+9.29727e-18
+1.21458e-17
+8.92418e-18
+2.21372e-18
+4.38995e-18
+5.66096e-18
+1.59804e-17
+2.09914e-17
+1.0623e-18
+1.60158e-17
+6.27065e-19
+6.21969e-19
+1.27495e-17
+1.63172e-17
+9.71079e-18
+2.80974e-18
+5.57268e-18
+6.3178e-18
+3.1345e-18
+1.94269e-18
+1.00159e-17
+0
+6.44263e-18
+1.50349e-18
+2.34865e-17
+1.03536e-17
+2.5676e-18
+7.27463e-19
+7.93677e-18
+6.79824e-18
+2.12977e-18
+3.51965e-18
+9.77435e-18
+1.73109e-17
+3.43377e-18
+1.43035e-17
+7.43078e-18
+2.68144e-18
+1.00075e-18
+9.88511e-19
+1.30717e-18
+1.68534e-17
+6.4293e-18
+7.01334e-18
+6.95607e-18
+1.19151e-17
+3.10968e-18
+6.22426e-19
+3.16859e-19
+4.24741e-18
+8.72387e-18
+2.08991e-18
+1.77521e-18
+2.93527e-18
+1.16662e-18
+2.02005e-18
+8.62049e-19
+1.24881e-17
+1.09772e-17
+3.62939e-18
+4.98305e-18
+9.33347e-18
+3.81112e-18
+1.40378e-17
+4.5511e-18
+5.5756e-18
+1.07941e-17
+8.09337e-18
+2.07119e-18
+4.10782e-18
+3.05592e-18
+3.78764e-18
+3.00506e-18
+6.45487e-18
+6.40121e-18
+5.61528e-18
+4.84162e-19
+1.68036e-18
+1.04737e-17
+4.72126e-18
+7.95802e-18
+1.04449e-17
+2.07502e-18
+0
+2.48915e-18
+1.03215e-17
+8.89959e-19
+4.57101e-19
+4.37666e-18
+4.77339e-18
+7.74618e-18
+5.11816e-18
+6.55605e-18
+1.00639e-17
+2.07889e-18
+4.94706e-18
+2.86345e-18
+2.43175e-18
+4.22504e-18
+1.21461e-18
+7.50598e-18
+3.13353e-18
+1.1698e-18
+1.54372e-18
+3.05415e-18
+1.02438e-19
+6.75586e-18
+9.30251e-18
+1.11119e-18
+3.2917e-18
+1.45378e-18
+0
+3.21366e-18
+4.24156e-18
+2.80914e-18
+5.21084e-18
+1.72174e-18
+1.36867e-18
+1.70214e-18
+1.34214e-18
+2.32851e-18
+6.65562e-19
+0
+3.56948e-18
+1.93566e-18
+6.68904e-18
+1.04204e-17
+9.39253e-18
+1.67966e-19
+6.74709e-18
+7.5694e-18
+1.27125e-17
+9.46235e-18
+2.24798e-17
+3.10637e-18
+7.28678e-18
+1.44629e-17
+2.76051e-18
+9.31377e-18
+3.53436e-18
+1.7537e-17
+1.33879e-18
+2.12706e-18
+1.16036e-17
+5.49617e-18
+5.20671e-19
+3.60887e-18
+1.43263e-17
+7.61681e-18
+9.07102e-18
+3.75099e-18
+3.97095e-18
+3.20206e-18
+2.46666e-19
+1.43129e-17
+1.03526e-17
+6.6903e-18
+2.37222e-18
+4.70689e-19
+1.68169e-17
+2.31805e-18
+1.63339e-17
+1.98638e-17
+8.15749e-18
+2.24889e-17
+2.23212e-18
+3.54415e-18
+1.62681e-17
+1.30909e-18
+1.32089e-17
+4.51314e-18
+7.03858e-18
+3.3874e-18
+5.68569e-20
+7.50647e-18
+1.84175e-17
+1.21176e-17
+4.68822e-18
+6.87829e-18
+1.60625e-18
+1.33512e-17
+1.81952e-17
+5.31221e-20
+8.96143e-18
+2.51356e-18
+1.03625e-17
+5.33307e-18
+2.83542e-18
+1.257e-17
+4.28266e-18
+5.3596e-18
+6.96996e-18
+7.2818e-18
+1.33704e-17
+2.51245e-18
+9.25514e-18
+4.23961e-18
+1.78835e-17
+8.70091e-18
+1.24355e-17
+4.11411e-18
+2.72262e-18
+3.03995e-18
+1.13972e-17
+7.3195e-18
+4.95409e-18
+2.94977e-18
+8.45794e-18
+2.90622e-18
+4.48655e-18
+1.52678e-17
+3.15705e-19
+6.89372e-18
+9.33995e-19
+4.17719e-20
+5.51517e-18
+6.99469e-18
+1.21017e-18
+1.49803e-18
+1.48906e-18
+5.90332e-18
+5.27349e-18
+4.07188e-18
+1.7318e-18
+4.58449e-18
+1.36494e-17
+1.80641e-17
+1.12066e-17
+8.3424e-18
+1.38009e-18
+1.37187e-18
+1.63165e-18
+3.23914e-18
+8.30614e-18
+3.45731e-18
+1.05592e-18
+5.24102e-18
+7.54261e-18
+2.84329e-18
+9.2254e-18
+4.07223e-18
+2.52491e-18
+7.26823e-18
+4.72682e-18
+1.97557e-18
+9.89442e-19
+7.05661e-18
+4.83236e-18
+3.35715e-18
+6.426e-18
+2.36238e-18
+8.44302e-18
+9.77693e-18
+4.6214e-19
+6.88121e-19
+3.64306e-18
+6.78064e-19
+3.36547e-18
+2.22803e-18
+7.07513e-18
+5.26733e-18
+6.94849e-19
+3.46828e-18
+4.44832e-19
+6.81999e-18
+5.28922e-18
+2.10332e-18
+1.04253e-17
+6.30945e-19
+7.80848e-18
+3.67311e-18
+3.84722e-18
+3.01715e-18
+1.99843e-18
+2.77342e-18
+1.18477e-18
+8.59102e-18
+2.32584e-18
+2.18793e-19
+1.15078e-18
+9.48246e-18
+4.89597e-18
+7.10309e-18
+4.8244e-18
+8.47384e-18
+3.29192e-18
+1.81831e-18
+1.08154e-18
+5.01083e-18
+3.19806e-18
+7.11999e-19
+1.05074e-18
+3.4786e-18
+7.25056e-18
+5.82987e-18
+1.70151e-18
+1.35146e-18
+5.36791e-18
+6.66155e-18
+9.92001e-19
+3.28426e-18
+2.60919e-18
+6.14975e-18
+2.57213e-18
+9.6102e-19
+1.27865e-18
+7.23603e-18
+4.06328e-18
+4.96401e-18
+7.79701e-18
+8.23995e-18
+1.46252e-17
+1.18124e-17
+3.17602e-18
+8.00396e-18
+1.85408e-17
+1.4582e-17
+1.89859e-18
+1.97913e-17
+7.71936e-18
+4.18007e-18
+8.99158e-18
+5.26465e-18
+8.86269e-18
+6.7684e-18
+6.27207e-18
+9.78488e-18
+3.53261e-18
+1.18371e-17
+1.74132e-18
+1.4261e-17
+1.20136e-17
+2.76907e-18
+1.73407e-17
+1.17578e-17
+1.02146e-17
+2.64928e-17
+1.6851e-17
+2.85664e-18
+3.6465e-18
+9.85599e-18
+1.43793e-17
+7.13865e-18
+5.90662e-19
+3.12797e-18
+6.98785e-18
+3.85462e-18
+2.87063e-18
+1.55812e-17
+8.49025e-18
+2.43543e-18
+5.76665e-18
+4.43328e-18
+3.85188e-18
+4.73512e-18
+1.19353e-17
+5.02882e-18
+1.69392e-17
+2.83291e-18
+7.20849e-18
+8.20555e-18
+6.93462e-18
+3.09878e-18
+1.71015e-18
+1.03554e-17
+2.19151e-18
+1.47317e-17
+8.81075e-18
+8.08933e-18
+1.6394e-18
+1.57922e-17
+1.64909e-17
+1.04362e-17
+4.78343e-19
+3.32638e-18
+7.86272e-19
+1.56171e-18
+4.03249e-18
+2.77285e-18
+3.67155e-18
+8.50765e-18
+5.73363e-18
+3.02428e-19
+3.86963e-18
+3.54761e-18
+1.32119e-17
+5.83197e-19
+8.97804e-18
+8.62972e-18
+4.57174e-18
+2.8386e-18
+2.25468e-18
+8.11793e-18
+1.11469e-18
+9.11367e-18
+1.37201e-18
+4.35931e-18
+2.70651e-18
+6.18264e-18
+2.1373e-18
+1.59135e-17
+1.52802e-17
+7.5891e-18
+6.75906e-18
+9.2962e-18
+1.30818e-17
+1.02155e-18
+7.08726e-18
+5.02885e-19
+7.49348e-19
+7.44438e-18
+2.71235e-18
+1.81214e-17
+7.78486e-18
+2.9002e-18
+4.80207e-19
+2.6239e-18
+2.45507e-19
+2.4391e-19
+9.37785e-19
+2.40756e-19
+9.25679e-19
+2.75281e-18
+2.27922e-18
+3.62381e-18
+4.05048e-18
+8.96281e-19
+6.22077e-18
+1.16978e-17
+1.31717e-18
+7.84476e-18
+4.54707e-18
+3.22787e-18
+5.98631e-18
+8.28569e-18
+5.70002e-18
+3.98635e-18
+1.04389e-18
+5.17954e-18
+5.55982e-18
+5.52412e-18
+2.84871e-18
+5.0529e-18
+1.00997e-18
+9.97916e-19
+2.25549e-19
+1.06461e-17
+4.70364e-18
+5.45273e-18
+3.87254e-18
+7.11813e-18
+3.44193e-18
+1.53437e-18
+4.15752e-18
+4.50691e-18
+3.36148e-18
+1.11783e-18
+7.37793e-18
+1.1046e-18
+3.28088e-18
+7.97268e-18
+1.26093e-18
+4.07257e-19
+1.78034e-18
+4.24797e-18
+1.23181e-18
+1.40285e-18
+2.78479e-18
+2.07753e-18
+5.50284e-18
+4.10467e-18
+4.76041e-18
+1.01432e-18
+1.69085e-18
+3.80151e-19
+8.97667e-18
+5.28966e-18
+4.27497e-18
+6.59877e-19
+1.62582e-18
+2.58856e-18
+2.89593e-18
+1.27953e-18
+6.3637e-18
+2.21513e-18
+4.05435e-19
+3.24345e-19
+2.49283e-18
+4.95657e-18
+6.68491e-18
+4.92525e-18
+2.55187e-18
+8.65819e-18
+5.45246e-18
+3.33222e-18
+7.03168e-18
+4.72389e-18
+4.07926e-18
+5.67153e-18
+3.01749e-18
+1.31849e-17
+1.78557e-17
+1.57626e-18
+4.50092e-18
+1.14658e-17
+1.04223e-17
+4.79207e-18
+8.75712e-18
+2.13651e-17
+1.42715e-17
+5.59506e-18
+0
+9.19866e-19
+6.94355e-18
+2.3593e-18
+3.06444e-18
+5.19204e-18
+4.62348e-18
+1.16573e-17
+7.01742e-18
+1.15008e-17
+1.33274e-17
+1.85675e-17
+1.48569e-17
+5.08881e-18
+1.0278e-17
+3.84943e-18
+1.26351e-17
+1.23859e-17
+5.90569e-18
+9.77741e-19
+7.12258e-18
+2.57289e-18
+3.19485e-18
+7.61708e-18
+8.03983e-18
+4.07198e-18
+1.15127e-17
+1.23646e-18
+1.9961e-18
+6.71199e-18
+2.27358e-18
+4.96848e-18
+1.30135e-17
+3.71525e-18
+3.83882e-18
+7.92137e-18
+6.41277e-18
+1.08604e-17
+1.46751e-17
+3.7167e-18
+2.84068e-18
+5.08052e-18
+1.40224e-18
+3.62339e-18
+3.46112e-18
+3.16403e-18
+6.28808e-18
+3.80327e-18
+1.20128e-17
+1.1803e-17
+3.99848e-19
+5.03351e-18
+1.05356e-18
+1.96229e-18
+4.67956e-18
+4.39201e-18
+1.0276e-18
+6.76199e-18
+5.11808e-19
+1.01044e-18
+2.50509e-18
+5.97488e-18
+7.67044e-18
+2.7054e-18
+6.35534e-18
+2.42975e-18
+2.43685e-19
+1.44018e-18
+4.29458e-18
+2.37245e-18
+1.88593e-18
+3.74939e-18
+3.26184e-18
+4.39975e-18
+8.74754e-18
+6.97615e-19
+6.37002e-18
+2.94021e-18
+5.8474e-18
+1.56598e-18
+6.69457e-19
+3.31504e-18
+8.34864e-18
+1.57274e-17
+2.25001e-19
+8.65782e-19
+0
+1.70909e-18
+1.25269e-17
+1.47785e-18
+1.04972e-17
+1.12739e-17
+1.05884e-17
+3.92333e-18
+6.18508e-19
+4.49266e-18
+3.24958e-18
+1.41398e-18
+3.21495e-18
+6.0191e-19
+3.5776e-18
+3.98997e-19
+1.17989e-18
+1.03674e-17
+9.92378e-18
+2.3234e-18
+8.47335e-18
+4.98099e-18
+2.85872e-18
+7.77387e-18
+4.52741e-18
+1.68919e-18
+1.12047e-18
+3.3446e-18
+2.77738e-18
+6.07139e-18
+1.1029e-18
+1.45744e-18
+3.26335e-18
+3.73831e-19
+5.74601e-18
+1.78972e-18
+3.9131e-18
+3.54073e-18
+2.29277e-18
+6.31448e-18
+1.5714e-18
+3.60121e-19
+0
+3.10057e-18
+3.77281e-18
+4.95489e-18
+2.72151e-18
+3.21603e-18
+2.52814e-18
+3.02095e-18
+3.18058e-18
+9.98614e-19
+6.63013e-19
+5.77784e-18
+2.6307e-18
+2.29273e-18
+1.15545e-18
+6.01286e-18
+8.57959e-18
+3.5477e-18
+8.0798e-19
+5.12285e-18
+3.82861e-18
+7.31056e-18
+3.60125e-19
+6.94337e-18
+9.47418e-19
+2.1943e-18
+3.12891e-18
+4.98269e-18
+3.72603e-18
+9.90244e-18
+7.58012e-18
+1.50585e-17
+2.00654e-18
+1.48574e-17
+1.93475e-17
+2.77102e-18
+1.98894e-17
+6.35051e-18
+9.90049e-18
+1.68844e-17
+7.08943e-18
+8.76022e-18
+8.70231e-18
+6.94981e-18
+1.63339e-17
+2.40888e-17
+1.19653e-17
+1.27123e-17
+1.01689e-17
+8.14715e-19
+9.71279e-19
+9.00623e-18
+1.15041e-17
+6.50845e-18
+8.20116e-18
+1.67663e-17
+7.16141e-18
+1.02088e-17
+3.84209e-18
+7.63764e-19
+6.97903e-18
+5.42691e-18
+1.22824e-17
+1.48885e-18
+9.90822e-18
+6.75951e-18
+1.79598e-17
+7.25457e-19
+1.25433e-17
+9.59907e-18
+5.69478e-18
+1.42766e-19
+1.15285e-17
+4.33114e-18
+1.84663e-17
+1.20044e-17
+2.74278e-18
+7.08648e-18
+4.19857e-18
+1.17106e-17
+1.17725e-17
+7.57867e-18
+6.617e-19
+1.15581e-17
+6.00499e-18
+0
+4.64283e-18
+3.33299e-18
+4.58713e-18
+4.55959e-18
+3.27335e-18
+1.35159e-17
+5.72256e-18
+3.83365e-18
+9.34308e-18
+1.5643e-17
+5.58868e-18
+9.78337e-18
+6.72437e-18
+7.99833e-18
+2.37371e-18
+1.18e-18
+1.795e-17
+4.19974e-18
+1.6701e-17
+1.72977e-18
+5.27458e-18
+8.66504e-18
+1.58749e-18
+3.38202e-18
+6.06775e-20
+6.24284e-18
+3.99092e-18
+2.20512e-18
+1.75447e-18
+6.4332e-18
+1.3013e-18
+6.57903e-18
+2.46733e-18
+7.57496e-18
+2.33458e-18
+4.01101e-18
+1.04989e-18
+4.59516e-18
+7.89515e-18
+1.86032e-18
+1.23361e-18
+2.3528e-18
+2.05334e-19
+1.82212e-18
+7.65345e-18
+6.21175e-18
+7.99294e-19
+6.54634e-18
+5.97529e-19
+2.94598e-18
+7.81739e-18
+7.19627e-18
+2.12943e-18
+3.4682e-18
+5.94162e-18
+1.9082e-18
+0
+9.44767e-19
+6.77073e-18
+7.50506e-19
+2.6092e-18
+4.45166e-18
+4.98643e-18
+3.12526e-18
+8.05198e-18
+8.19901e-18
+1.87914e-19
+2.16721e-18
+6.29401e-18
+6.44622e-18
+2.31841e-18
+1.77555e-18
+2.82951e-18
+2.81751e-18
+4.73527e-18
+8.20981e-18
+2.78374e-18
+6.94791e-19
+6.04204e-18
+5.15906e-18
+5.13955e-19
+4.43765e-18
+2.55075e-18
+1.18602e-18
+2.70119e-18
+8.42372e-19
+0
+2.84016e-18
+3.99637e-18
+3.65096e-18
+5.95549e-18
+4.61668e-18
+4.27367e-18
+5.24338e-18
+2.77747e-18
+1.30598e-18
+8.12015e-19
+1.13359e-18
+2.58389e-18
+5.95907e-18
+1.82651e-19
+6.40871e-19
+2.39881e-18
+7.97143e-18
+1.27533e-18
+1.90621e-18
+1.42505e-18
+5.68807e-18
+2.04981e-18
+4.87837e-18
+6.28278e-18
+7.21264e-18
+4.69547e-18
+3.90742e-18
+1.10511e-18
+7.478e-18
+5.29037e-18
+6.2153e-19
+4.50082e-18
+1.86041e-18
+4.72154e-19
+3.86965e-18
+1.54632e-19
+9.88998e-18
+4.56942e-18
+3.72127e-18
+1.0186e-17
+1.28916e-17
+2.1784e-17
+1.44825e-17
+9.82314e-18
+1.52442e-17
+0
+7.90565e-18
+1.70701e-18
+9.57908e-18
+1.68395e-18
+2.5674e-17
+5.8976e-18
+1.69136e-17
+1.26203e-17
+3.32924e-17
+3.39583e-18
+1.39742e-17
+1.30829e-17
+9.7466e-18
+4.80141e-18
+4.06573e-18
+7.92206e-18
+1.11097e-17
+1.33351e-17
+1.52316e-18
+1.08902e-17
+1.76548e-17
+1.68666e-17
+1.36416e-17
+6.03943e-18
+1.79993e-17
+9.74018e-18
+1.54534e-17
+2.86986e-18
+1.24013e-17
+0
+7.03724e-19
+1.00642e-17
+7.77693e-18
+3.44936e-18
+9.86998e-18
+7.62714e-18
+6.90145e-18
+8.0692e-19
+8.95054e-18
+6.63916e-19
+8.17695e-18
+1.93947e-17
+3.38552e-18
+1.25502e-17
+1.28574e-18
+8.43145e-18
+7.10875e-18
+2.52284e-18
+1.21588e-17
+8.96842e-18
+8.78846e-18
+6.27338e-18
+3.66754e-18
+1.31198e-17
+7.36423e-18
+1.41573e-17
+6.08103e-18
+7.82103e-18
+1.02461e-17
+1.31094e-17
+2.90846e-18
+7.631e-18
+5.74582e-19
+3.42668e-18
+1.70288e-18
+9.25286e-18
+1.2674e-17
+3.45653e-18
+2.1609e-17
+1.75142e-17
+5.03678e-18
+4.46269e-18
+9.41328e-18
+3.22727e-18
+7.16396e-18
+4.88958e-18
+5.38927e-18
+3.15176e-18
+1.06531e-17
+2.07671e-18
+5.16928e-19
+1.3651e-17
+5.30652e-18
+7.30542e-18
+1.44264e-17
+1.43442e-17
+5.08704e-18
+3.57045e-18
+9.46735e-18
+9.61034e-18
+5.27821e-20
+1.35762e-18
+3.66461e-18
+4.21976e-18
+1.33523e-17
+1.15718e-17
+4.71664e-19
+3.37752e-18
+6.62558e-18
+2.59913e-18
+7.40173e-19
+7.36217e-19
+1.64466e-18
+4.9057e-18
+5.06057e-18
+6.29265e-18
+3.04077e-18
+1.0675e-18
+1.13279e-17
+5.45893e-18
+3.32889e-18
+4.18336e-18
+3.81539e-18
+5.19725e-19
+5.32221e-18
+2.22119e-18
+1.69978e-19
+2.70667e-18
+5.2178e-18
+8.54254e-18
+6.83444e-18
+3.64987e-18
+5.28321e-18
+1.26526e-17
+7.85025e-18
+4.88351e-19
+4.53682e-18
+7.41918e-18
+2.56913e-18
+9.59895e-19
+4.93214e-18
+4.27658e-18
+6.46533e-18
+4.86697e-18
+1.56316e-19
+2.49063e-18
+1.3173e-17
+8.48771e-18
+6.14691e-18
+1.27021e-17
+5.63896e-18
+3.94658e-18
+4.23359e-18
+4.81819e-18
+7.59693e-19
+8.99974e-19
+2.82773e-18
+1.68568e-19
+1.62456e-18
+6.62132e-18
+3.66493e-18
+3.21345e-18
+4.65807e-18
+2.46552e-18
+2.8916e-18
+7.3473e-18
+8.18216e-18
+5.77498e-19
+7.41579e-18
+1.27931e-18
+1.41905e-18
+1.14037e-18
+2.81763e-18
+6.17853e-18
+5.32002e-18
+8.37603e-19
+5.70761e-18
+3.05425e-18
+2.49226e-18
+3.17627e-18
+4.40794e-18
+9.43733e-18
+3.13782e-17
+2.0236e-18
+2.57251e-17
+9.98028e-19
+3.07282e-18
+1.10261e-17
+4.00888e-18
+1.99082e-17
+1.4854e-17
+1.91601e-18
+9.51518e-19
+9.45084e-19
+9.38702e-20
+1.14682e-17
+2.7783e-18
+2.35484e-17
+1.30656e-17
+9.98301e-19
+2.5872e-17
+2.56989e-17
+1.20357e-20
+1.63449e-17
+8.85618e-20
+1.51689e-17
+1.06516e-17
+4.38722e-18
+1.8458e-17
+1.69776e-18
+1.12155e-17
+1.19792e-17
+0
+5.12561e-18
+9.28048e-18
+2.12133e-17
+1.41036e-17
+1.65077e-17
+6.16002e-18
+4.92767e-18
+0
+3.92817e-19
+4.75434e-18
+4.72357e-18
+1.58487e-17
+3.5162e-18
+9.41751e-18
+1.42617e-17
+8.02233e-18
+3.42682e-18
+7.40187e-19
+4.85407e-18
+4.53089e-18
+5.51879e-18
+1.11116e-17
+6.30934e-18
+7.97931e-18
+1.41589e-18
+5.34655e-18
+1.67821e-18
+5.69653e-18
+1.04934e-17
+3.15605e-18
+0
+4.87834e-18
+3.0974e-18
+6.55805e-18
+1.72916e-18
+1.05755e-18
+4.07285e-18
+1.13603e-17
+6.49138e-19
+8.5133e-18
+1.05129e-17
+9.17489e-18
+1.16525e-17
+3.4071e-20
+4.75522e-18
+5.47298e-18
+2.84376e-18
+2.58104e-18
+1.09956e-17
+4.73648e-18
+9.68048e-19
+4.80072e-19
+3.10212e-18
+4.50729e-18
+8.13645e-18
+6.68225e-18
+4.19598e-18
+5.79393e-18
+7.94942e-18
+4.81101e-18
+1.25429e-18
+1.09842e-17
+1.91433e-18
+1.2539e-17
+5.1208e-18
+1.4501e-17
+1.29887e-17
+2.51753e-18
+1.95927e-18
+4.32987e-18
+6.02825e-18
+2.9975e-18
+1.597e-18
+2.1179e-18
+2.10619e-18
+8.37917e-18
+7.81307e-18
+8.29395e-19
+4.7409e-18
+1.02513e-19
+2.75965e-20
+1.52149e-18
+2.01801e-18
+9.63591e-18
+5.39204e-18
+2.58275e-18
+5.92961e-18
+2.96159e-19
+0
+1.11924e-17
+6.19769e-18
+5.87763e-18
+9.29953e-18
+2.38507e-18
+7.49932e-18
+8.21854e-18
+1.09047e-17
+2.05876e-18
+4.09684e-18
+7.13495e-18
+7.37768e-18
+5.59926e-18
+5.39019e-18
+9.09358e-19
+3.80205e-18
+2.97344e-18
+4.57475e-18
+2.76807e-18
+3.55577e-18
+2.83365e-18
+4.75833e-18
+1.81771e-19
+3.49404e-19
+9.21975e-18
+6.58247e-18
+8.63721e-19
+7.90178e-18
+3.42136e-18
+2.04445e-18
+2.37558e-18
+8.45037e-19
+1.51506e-18
+7.04271e-18
+3.007e-18
+3.328e-19
+6.63108e-18
+1.81727e-18
+2.96223e-18
+2.13324e-18
+4.24756e-18
+4.40568e-20
+3.89441e-18
+4.52762e-18
+2.41689e-18
+3.85419e-18
+9.60402e-19
+5.58454e-18
+6.04392e-18
+8.40402e-18
+7.27151e-18
+3.94014e-18
+1.1033e-18
+9.40177e-19
+1.25292e-18
+2.4933e-18
+7.10009e-06
+2.77698e-05
+4.89095e-05
+3.247e-17
+1.10923e-17
+5.22426e-18
+1.03771e-17
+1.09784e-17
+9.67973e-18
+3.97815e-18
+1.75609e-18
+3.37919e-18
+0
+6.02181e-18
+1.60207e-18
+9.75956e-18
+8.63999e-18
+6.48861e-18
+6.96466e-18
+1.0326e-18
+1.02557e-18
+9.98312e-18
+1.69992e-17
+2.11073e-18
+1.37775e-17
+6.64442e-18
+9.06291e-18
+6.94767e-18
+9.52593e-18
+1.44861e-18
+3.93267e-18
+7.81324e-18
+1.89325e-18
+1.25999e-17
+1.38246e-17
+2.13429e-17
+2.39686e-18
+4.57905e-19
+5.54986e-18
+8.7675e-18
+1.1045e-17
+6.33402e-18
+1.19933e-20
+3.17e-18
+2.62454e-18
+1.02564e-17
+4.83599e-18
+5.23391e-18
+2.55753e-18
+3.38799e-18
+8.41564e-20
+9.86689e-18
+1.03023e-17
+5.03574e-18
+2.46093e-18
+4.89535e-19
+2.59175e-18
+8.85513e-19
+1.19953e-18
+7.94935e-19
+1.45295e-17
+1.49091e-17
+5.61436e-18
+8.67889e-18
+2.00228e-18
+9.71896e-18
+1.52104e-18
+1.51162e-18
+5.40818e-18
+3.06073e-18
+8.75455e-18
+5.60392e-18
+7.32842e-19
+5.53558e-18
+5.50189e-18
+1.15141e-18
+1.17287e-17
+2.14674e-17
+1.01744e-17
+5.05663e-18
+1.81514e-18
+7.77186e-18
+4.96643e-18
+7.67954e-18
+9.40623e-18
+2.84605e-18
+6.87052e-18
+1.2321e-17
+5.4587e-18
+1.2839e-17
+8.02695e-18
+0
+5.72299e-18
+1.0604e-17
+2.00574e-17
+1.27883e-18
+2.56528e-19
+2.2759e-18
+1.88497e-18
+1.87462e-18
+5.09428e-18
+4.8187e-18
+5.8974e-18
+9.77425e-19
+1.8225e-18
+5.31656e-18
+4.32588e-18
+8.36532e-19
+5.82375e-18
+9.45651e-18
+3.4094e-18
+1.3681e-17
+4.18706e-18
+2.42933e-18
+3.68215e-18
+1.48827e-18
+5.80666e-18
+1.15522e-17
+9.01328e-19
+3.81087e-18
+8.47412e-18
+1.02054e-17
+1.32467e-18
+3.07453e-18
+6.11772e-18
+3.36952e-18
+4.97499e-18
+8.61389e-19
+1.71352e-18
+1.06553e-18
+7.42249e-18
+4.64277e-18
+1.89036e-18
+1.01371e-17
+1.24935e-18
+5.17573e-19
+6.59385e-18
+1.04599e-17
+8.72682e-06
+2.06719e-05
+3.28185e-05
+4.51712e-05
+5.77346e-05
+7.05135e-05
+8.35128e-05
+9.67375e-05
+0.000110193
+0.000123884
+0.000137817
+0.000151998
+0.000166431
+0.000181123
+0.000196081
+0.00021131
+0.000226818
+0.000242611
+0.000258695
+0.00027508
+0.000291771
+0.000308776
+0.000326104
+0.000343763
+0.000361761
+0.000380107
+0.000398809
+0.000417878
+0.000437323
+0.000457153
+0.00047738
+0.000498014
+0.000519065
+0.000540546
+0.000562468
+0.000584843
+0.000607684
+0.000631005
+0.000654818
+0.000679137
+0.000703979
+0.000729307
+0.000751667
+0.000767686
+0.000783688
+1.38935e-17
+3.54907e-17
+1.50425e-17
+1.10149e-17
+2.25081e-17
+2.04814e-17
+6.2069e-19
+5.66684e-18
+1.50497e-17
+1.43399e-17
+8.69047e-18
+1.35469e-17
+1.09547e-17
+6.03174e-18
+2.044e-17
+8.98435e-18
+4.17222e-18
+3.5686e-18
+1.28065e-17
+1.8173e-18
+6.76903e-19
+5.60316e-19
+4.00734e-18
+5.53068e-19
+5.05251e-18
+5.45735e-19
+2.16771e-18
+0
+8.2353e-18
+6.48097e-18
+1.05544e-18
+5.25011e-19
+1.56245e-18
+3.72509e-18
+1.54201e-18
+8.37411e-18
+8.82663e-18
+4.03176e-18
+5.7078e-18
+4.57634e-18
+2.96517e-18
+5.59732e-18
+8.00015e-18
+1.48307e-17
+2.88933e-18
+6.31535e-18
+5.70433e-19
+9.44623e-20
+3.1858e-06
+7.93572e-06
+1.27409e-05
+1.76022e-05
+2.25203e-05
+2.74962e-05
+3.25307e-05
+3.76246e-05
+4.27788e-05
+4.79943e-05
+5.32719e-05
+5.86126e-05
+6.40173e-05
+6.9487e-05
+7.50227e-05
+8.06253e-05
+8.6296e-05
+9.20358e-05
+9.78457e-05
+0.000103727
+0.00010968
+0.000115707
+0.000121809
+0.000127986
+0.00013424
+0.000140573
+0.000146984
+0.000153477
+0.000160052
+0.00016671
+0.000173452
+0.000180281
+0.000187197
+0.000194203
+0.000201298
+0.000208486
+0.000215766
+0.000223142
+0.000230615
+0.000238185
+0.000245856
+0.000253628
+0.000261503
+0.000269484
+0.000277571
+0.000285767
+0.000294074
+0.000302493
+0.000311027
+0.000319677
+0.000328447
+0.000337336
+0.000346349
+0.000355487
+0.000364752
+0.000374148
+0.000383675
+0.000393336
+0.000403135
+0.000413073
+0.000423154
+0.000433379
+0.000443751
+0.000454274
+0.000464951
+0.000475783
+0.000486774
+0.000497928
+0.000509247
+0.000520734
+0.000532393
+0.000544228
+0.000556241
+0.000568437
+0.000580818
+0.000593389
+0.000606154
+0.000619116
+0.00063228
+0.000645649
+0.000659229
+0.000673023
+0.000687035
+0.000701271
+0.000715735
+0.000730432
+0.000745311
+0.000755963
+0.000765076
+0.000774191
+0.000783334
+0.000792505
+0.000801704
+0.00081093
+0.000820181
+0.000829459
+0.000838761
+0.000848088
+0.000857438
+0.000866811
+0.000876207
+0.000885623
+0.00089506
+0.000904516
+0.000913991
+0.000923484
+0.000932994
+0.00094252
+0.000952061
+0.000961616
+0.000971184
+0.000980764
+0.000990354
+0.000999954
+0.00100956
+0.00101918
+0.0010288
+0.00103843
+0.00104806
+0.00105769
+0.00106732
+0.00107695
+0.00108658
+0.00109621
+0.00110583
+0.00111544
+0.00112504
+0.00113464
+0.00114422
+0.00114812
+0.00114139
+0.00113463
+0.000527321
+0.000531025
+0.000534767
+0.000538547
+0.000542366
+0.000546224
+0.000550121
+0.000554059
+0.000558038
+0.000562058
+0.000566119
+0.000570223
+0.00057437
+0.00057856
+0.000582793
+0.000587071
+0.000591394
+0.000595763
+0.000600178
+0.000604639
+0.000609148
+0.000613705
+0.00061831
+0.000622965
+0.000627669
+0.000632424
+0.00063723
+0.000642087
+0.000646998
+0.000651961
+0.000656979
+0.000662051
+0.000667178
+0.000672361
+0.000677602
+0.0006829
+0.000688256
+0.000693672
+0.000699147
+0.000704684
+0.000710282
+0.000715942
+0.000721666
+0.000727454
+0.000733308
+0.000739227
+0.000745214
+0.000751231
+0.000755625
+0.000759222
+0.000762816
+0.000766431
+0.000770067
+0.000773724
+0.000777401
+0.0007811
+0.000784819
+0.000788559
+0.000792321
+0.000796103
+0.000799907
+0.000803732
+0.000807577
+0.000811444
+0.000815332
+0.000819241
+0.000823172
+0.000827123
+0.000831096
+0.00083509
+0.000839105
+0.000843141
+0.000847199
+0.000851277
+0.000855377
+0.000859498
+0.00086364
+0.000867803
+0.000871987
+0.000876193
+0.000880419
+0.000884666
+0.000888934
+0.000893223
+0.000897533
+0.000901864
+0.000906215
+0.000910587
+0.000914979
+0.000919392
+0.000923826
+0.00092828
+0.000932754
+0.000937248
+0.000941763
+0.000946297
+0.000950851
+0.000955425
+0.000960019
+0.000964632
+0.000969265
+0.000973916
+0.000978587
+0.000983277
+0.000987986
+0.000992713
+0.000997459
+0.00100222
+0.001007
+0.0010118
+0.00101662
+0.00102146
+0.00102631
+0.00103118
+0.00103607
+0.00104097
+0.00104589
+0.00105082
+0.00105577
+0.00106074
+0.00106572
+0.00107072
+0.00107573
+0.00108075
+0.00108579
+0.00109085
+0.00109591
+0.00110099
+0.00110608
+0.00111119
+0.0011163
+0.00112143
+0.00112656
+0.00113171
+0.00113687
+0.00113522
+0.00113116
+0.00112707
+0.00112295
+0.0011188
+0.00111462
+0.00111041
+0.00110617
+0.0011019
+0.0010976
+0.00109327
+0.0010889
+0.00108451
+0.00108008
+0.00107562
+0.00107113
+0.0010666
+0.00106204
+0.00105745
+0.00105283
+0.00104817
+0.00104348
+0.00103875
+0.00103399
+0.0010292
+0.00102437
+0.00101951
+0.00101461
+0.00100968
+0.00100471
+0.000999711
+0.000994672
+0.000989598
+0.000984487
+0.000979339
+0.000974155
+0.000968935
+0.000963677
+0.000958382
+0.000953049
+0.000947679
+0.000942271
+0.000936825
+0.00093134
+0.000925818
+0.00104397
+0.00104542
+0.00104688
+0.00104835
+0.00104983
+0.00105132
+0.00105282
+0.00105433
+0.00105584
+0.00105737
+0.0010589
+0.00106045
+0.001062
+0.00106356
+0.00106514
+0.00106672
+0.00106831
+0.00106991
+0.00107151
+0.00107313
+0.00107476
+0.0010764
+0.00107804
+0.0010797
+0.00108136
+0.00108304
+0.00108472
+0.00108642
+0.00108812
+0.00108983
+0.00109155
+0.00109329
+0.00109503
+0.00109678
+0.00109854
+0.00110031
+0.00110209
+0.00110388
+0.00110568
+0.00110749
+0.0011093
+0.00111113
+0.00111297
+0.00111482
+0.00111667
+0.00111854
+0.00112041
+0.0011223
+0.00112176
+0.00112005
+0.00111833
+0.0011166
+0.00111485
+0.00111309
+0.00111132
+0.00110953
+0.00110773
+0.00110592
+0.00110409
+0.00110225
+0.00110039
+0.00109852
+0.00109664
+0.00109474
+0.00109283
+0.0010909
+0.00108896
+0.001087
+0.00108503
+0.00108305
+0.00108105
+0.00107903
+0.001077
+0.00107496
+0.00107289
+0.00107082
+0.00106872
+0.00106662
+0.00106449
+0.00106235
+0.00106019
+0.00105802
+0.00105583
+0.00105363
+0.00105141
+0.00104917
+0.00104691
+0.00104464
+0.00104235
+0.00104004
+0.00103772
+0.00103538
+0.00103302
+0.00103064
+0.00102825
+0.00102584
+0.00102341
+0.00102096
+0.00101849
+0.00101601
+0.0010135
+0.00101098
+0.00100844
+0.00100588
+0.0010033
+0.0010007
+0.000998084
+0.000995447
+0.00099279
+0.000990114
+0.000987417
+0.000984701
+0.000981964
+0.000979207
+0.00097643
+0.000973632
+0.000970813
+0.000967973
+0.000965113
+0.000962231
+0.000959328
+0.000956403
+0.000953457
+0.000950489
+0.000947499
+0.000944487
+0.000941453
+0.000938397
+0.000935318
+0.000932216
+0.000929092
+0.000925944
+0.000922774
+0.00091958
+0.000916363
+0.000913122
+0.000909858
+0.000906569
+0.000903257
+0.00089992
+0.000896559
+0.000893173
+0.000889763
+0.000886328
+0.000882867
+0.000879382
+0.000875871
+0.000872335
+0.000868773
+0.000865185
+0.000861572
+0.000857932
+0.000854265
+0.000850572
+0.000846853
+0.000843106
+0.000839333
+0.000835532
+0.000831704
+0.000827849
+0.000823966
+0.000820055
+0.000816115
+0.000812148
+0.000808152
+0.000804128
+0.000800075
+0.000795993
+0.000791882
+0.000787742
+0.000783572
+0.000779372
+0.000775143
+0.000770884
+0.000766595
+0.000762275
+0.000757925
+0.000753544
+0.000749133
+0.000744691
+0.000939687
+0.000938748
+0.000937804
+0.000936853
+0.000935895
+0.000934929
+0.000933956
+0.000932976
+0.000931988
+0.000930993
+0.00092999
+0.000928979
+0.00092796
+0.000926934
+0.0009259
+0.000924858
+0.000923808
+0.00092275
+0.000921684
+0.00092061
+0.000919528
+0.000918437
+0.000917338
+0.000916231
+0.000915115
+0.000913991
+0.000912858
+0.000911717
+0.000910567
+0.000909408
+0.00090824
+0.000907064
+0.000905878
+0.000904684
+0.00090348
+0.000902267
+0.000901045
+0.000899814
+0.000898573
+0.000897323
+0.000896064
+0.000894794
+0.000893516
+0.000892227
+0.000890929
+0.000889621
+0.000888303
+0.000886975
+0.000885636
+0.000884288
+0.00088293
+0.000881561
+0.000880182
+0.000878792
+0.000877392
+0.000875981
+0.00087456
+0.000873127
+0.000871684
+0.00087023
+0.000868765
+0.000867289
+0.000865802
+0.000864304
+0.000862794
+0.000861273
+0.00085974
+0.000858196
+0.00085664
+0.000855072
+0.000853493
+0.000851902
+0.000850298
+0.000848683
+0.000847055
+0.000845415
+0.000843763
+0.000842099
+0.000840421
+0.000838732
+0.000837029
+0.000835314
+0.000833586
+0.000831845
+0.00083009
+0.000828323
+0.000826542
+0.000824748
+0.000822941
+0.00082112
+0.000819285
+0.000817437
+0.000815574
+0.000813698
+0.000811808
+0.000809903
+0.000807985
+0.000806052
+0.000804104
+0.000802143
+0.000800166
+0.000798175
+0.000796168
+0.000794147
+0.000792111
+0.00079006
+0.000787993
+0.000785911
+0.000783813
+0.0007817
+0.000779571
+0.000777427
+0.000775266
+0.000773089
+0.000770897
+0.000768688
+0.000766462
+0.00076422
+0.000761962
+0.000759687
+0.000757395
+0.000755086
+0.00075276
+0.000750416
+0.000748056
+0.000745678
+0.000743282
+0.000740869
+0.000738438
+0.00073599
+0.000733523
+0.000731038
+0.000728535
+0.000726013
+0.000723473
+0.000720915
+0.000718337
+0.000715741
+0.000713126
+0.000710492
+0.000707838
+0.000705165
+0.000702473
+0.00069976
+0.000697029
+0.000694277
+0.000691505
+0.000688713
+0.000685901
+0.000683068
+0.000680215
+0.000677342
+0.000674447
+0.000671531
+0.000668595
+0.000665637
+0.000662658
+0.000659657
+0.000656635
+0.000653591
+0.000650525
+0.000647438
+0.000644328
+0.000641195
+0.000638041
+0.000634863
+0.000631663
+0.000628441
+0.000625195
+0.000621926
+0.000618634
+0.000615319
+0.00061198
+0.000608617
+0.000605231
+0.00060182
+0.000598386
+0.000594927
+0.000591444
+0.000587937
+0.000723555
+0.000722832
+0.000722105
+0.000721373
+0.000720635
+0.000719892
+0.000719143
+0.000718388
+0.000717627
+0.00071686
+0.000716088
+0.00071531
+0.000714526
+0.000713735
+0.000712939
+0.000712137
+0.000711328
+0.000710514
+0.000709693
+0.000708866
+0.000708033
+0.000707193
+0.000706347
+0.000705494
+0.000704635
+0.000703769
+0.000702897
+0.000702018
+0.000701133
+0.00070024
+0.000699341
+0.000698435
+0.000697522
+0.000696603
+0.000695676
+0.000694742
+0.000693801
+0.000692853
+0.000691898
+0.000690935
+0.000689965
+0.000688988
+0.000688003
+0.000687011
+0.000686012
+0.000685004
+0.000683989
+0.000682967
+0.000681936
+0.000680898
+0.000679852
+0.000678798
+0.000677736
+0.000676666
+0.000675588
+0.000674502
+0.000673407
+0.000672304
+0.000671193
+0.000670074
+0.000668946
+0.000667809
+0.000666664
+0.00066551
+0.000664348
+0.000663177
+0.000661996
+0.000660807
+0.000659609
+0.000658402
+0.000657186
+0.000655961
+0.000654726
+0.000653482
+0.000652229
+0.000650966
+0.000649694
+0.000648412
+0.000647121
+0.00064582
+0.000644509
+0.000643188
+0.000641858
+0.000640517
+0.000639166
+0.000637805
+0.000636434
+0.000635053
+0.000633661
+0.000632259
+0.000630846
+0.000629423
+0.000627989
+0.000626544
+0.000625089
+0.000623622
+0.000622145
+0.000620657
+0.000619157
+0.000617646
+0.000616124
+0.000614591
+0.000613046
+0.00061149
+0.000609922
+0.000608343
+0.000606751
+0.000605148
+0.000603533
+0.000601906
+0.000600267
+0.000598615
+0.000596952
+0.000595276
+0.000593587
+0.000591886
+0.000590173
+0.000588446
+0.000586707
+0.000584956
+0.000583191
+0.000581413
+0.000579622
+0.000577817
+0.000576
+0.000574169
+0.000572324
+0.000570466
+0.000568595
+0.000566709
+0.00056481
+0.000562896
+0.000560969
+0.000559027
+0.000557072
+0.000555101
+0.000553117
+0.000551118
+0.000549104
+0.000547076
+0.000545032
+0.000542974
+0.000540901
+0.000538813
+0.000536709
+0.00053459
+0.000532456
+0.000530306
+0.000528141
+0.00052596
+0.000523763
+0.00052155
+0.000519321
+0.000517076
+0.000514815
+0.000512538
+0.000510244
+0.000507933
+0.000505606
+0.000503262
+0.000500902
+0.000498524
+0.00049613
+0.000493718
+0.000491289
+0.000488842
+0.000486378
+0.000483897
+0.000481398
+0.000478881
+0.000476346
+0.000473793
+0.000471222
+0.000468633
+0.000466025
+0.000463399
+0.000460755
+0.000458092
+0.00045541
+0.000452709
+0.000537979
+0.000537442
+0.000536902
+0.000536358
+0.000535809
+0.000535256
+0.000534699
+0.000534138
+0.000533572
+0.000533002
+0.000532428
+0.000531849
+0.000531266
+0.000530679
+0.000530087
+0.00052949
+0.000528889
+0.000528284
+0.000527673
+0.000527058
+0.000526439
+0.000525814
+0.000525185
+0.000524551
+0.000523912
+0.000523269
+0.00052262
+0.000521967
+0.000521308
+0.000520645
+0.000519976
+0.000519303
+0.000518624
+0.00051794
+0.000517251
+0.000516557
+0.000515857
+0.000515152
+0.000514442
+0.000513726
+0.000513005
+0.000512279
+0.000511546
+0.000510809
+0.000510065
+0.000509317
+0.000508562
+0.000507802
+0.000507035
+0.000506264
+0.000505486
+0.000504702
+0.000503913
+0.000503117
+0.000502315
+0.000501508
+0.000500694
+0.000499874
+0.000499048
+0.000498215
+0.000497377
+0.000496532
+0.00049568
+0.000494822
+0.000493958
+0.000493087
+0.00049221
+0.000491326
+0.000490435
+0.000489537
+0.000488633
+0.000487722
+0.000486804
+0.000485879
+0.000484947
+0.000484009
+0.000483063
+0.00048211
+0.000481149
+0.000480182
+0.000479207
+0.000478225
+0.000477236
+0.000476239
+0.000475235
+0.000474223
+0.000473204
+0.000472176
+0.000471142
+0.000470099
+0.000469049
+0.00046799
+0.000466924
+0.00046585
+0.000464768
+0.000463678
+0.000462579
+0.000461473
+0.000460358
+0.000459234
+0.000458103
+0.000456963
+0.000455814
+0.000454657
+0.000453491
+0.000452317
+0.000451134
+0.000449942
+0.000448741
+0.000447531
+0.000446312
+0.000445084
+0.000443847
+0.000442601
+0.000441346
+0.000440081
+0.000438807
+0.000437524
+0.000436231
+0.000434928
+0.000433616
+0.000432294
+0.000430962
+0.000429621
+0.000428269
+0.000426908
+0.000425536
+0.000424155
+0.000422763
+0.000421361
+0.000419949
+0.000418526
+0.000417093
+0.00041565
+0.000414196
+0.000412731
+0.000411255
+0.000409769
+0.000408272
+0.000406763
+0.000405244
+0.000403714
+0.000402172
+0.00040062
+0.000399056
+0.00039748
+0.000395893
+0.000394295
+0.000392685
+0.000391063
+0.00038943
+0.000387785
+0.000386127
+0.000384458
+0.000382777
+0.000381084
+0.000379378
+0.00037766
+0.00037593
+0.000374187
+0.000372432
+0.000370664
+0.000368884
+0.000367091
+0.000365284
+0.000363465
+0.000361634
+0.000359788
+0.00035793
+0.000356059
+0.000354174
+0.000352276
+0.000350364
+0.000348439
+0.000346501
+0.000344548
+0.000342582
+0.000340602
+0.000338608
+0.0003366
+0.000379879
+0.0003795
+0.000379119
+0.000378734
+0.000378347
+0.000377956
+0.000377563
+0.000377167
+0.000376767
+0.000376365
+0.000375959
+0.000375551
+0.000375139
+0.000374724
+0.000374306
+0.000373885
+0.00037346
+0.000373033
+0.000372602
+0.000372168
+0.00037173
+0.000371289
+0.000370845
+0.000370397
+0.000369946
+0.000369492
+0.000369034
+0.000368572
+0.000368107
+0.000367639
+0.000367167
+0.000366691
+0.000366212
+0.000365729
+0.000365243
+0.000364752
+0.000364258
+0.00036376
+0.000363259
+0.000362754
+0.000362244
+0.000361731
+0.000361214
+0.000360693
+0.000360169
+0.00035964
+0.000359107
+0.00035857
+0.000358029
+0.000357484
+0.000356935
+0.000356381
+0.000355824
+0.000355262
+0.000354696
+0.000354126
+0.000353551
+0.000352972
+0.000352389
+0.000351801
+0.000351209
+0.000350612
+0.000350011
+0.000349405
+0.000348795
+0.00034818
+0.00034756
+0.000346936
+0.000346307
+0.000345673
+0.000345035
+0.000344391
+0.000343743
+0.00034309
+0.000342432
+0.000341769
+0.000341101
+0.000340428
+0.00033975
+0.000339067
+0.000338379
+0.000337686
+0.000336987
+0.000336283
+0.000335574
+0.000334859
+0.000334139
+0.000333414
+0.000332684
+0.000331947
+0.000331206
+0.000330458
+0.000329706
+0.000328947
+0.000328183
+0.000327413
+0.000326637
+0.000325856
+0.000325069
+0.000324276
+0.000323477
+0.000322672
+0.00032186
+0.000321043
+0.00032022
+0.000319391
+0.000318555
+0.000317714
+0.000316866
+0.000316012
+0.000315151
+0.000314284
+0.00031341
+0.000312531
+0.000311644
+0.000310751
+0.000309851
+0.000308945
+0.000308032
+0.000307112
+0.000306186
+0.000305252
+0.000304312
+0.000303365
+0.00030241
+0.000301449
+0.000300481
+0.000299505
+0.000298522
+0.000297533
+0.000296535
+0.000295531
+0.000294519
+0.0002935
+0.000292473
+0.000291438
+0.000290396
+0.000289347
+0.00028829
+0.000287225
+0.000286152
+0.000285071
+0.000283983
+0.000282886
+0.000281782
+0.00028067
+0.000279549
+0.00027842
+0.000277284
+0.000276139
+0.000274985
+0.000273823
+0.000272653
+0.000271475
+0.000270287
+0.000269092
+0.000267887
+0.000266674
+0.000265453
+0.000264222
+0.000262983
+0.000261734
+0.000260477
+0.000259211
+0.000257935
+0.000256651
+0.000255357
+0.000254055
+0.000252742
+0.000251421
+0.00025009
+0.00024875
+0.0002474
+0.000246041
+0.000244672
+0.000243293
+0.000241905
+0.000240506
+0.000239098
+0.000237681
+0.00024734
+0.000247093
+0.000246845
+0.000246595
+0.000246342
+0.000246088
+0.000245832
+0.000245574
+0.000245314
+0.000245052
+0.000244788
+0.000244522
+0.000244254
+0.000243984
+0.000243712
+0.000243437
+0.000243161
+0.000242883
+0.000242602
+0.000242319
+0.000242034
+0.000241747
+0.000241458
+0.000241167
+0.000240873
+0.000240577
+0.000240279
+0.000239978
+0.000239676
+0.000239371
+0.000239063
+0.000238754
+0.000238442
+0.000238127
+0.00023781
+0.000237491
+0.000237169
+0.000236845
+0.000236519
+0.00023619
+0.000235858
+0.000235524
+0.000235187
+0.000234848
+0.000234507
+0.000234162
+0.000233815
+0.000233466
+0.000233114
+0.000232759
+0.000232401
+0.000232041
+0.000231678
+0.000231312
+0.000230943
+0.000230572
+0.000230198
+0.000229821
+0.000229441
+0.000229058
+0.000228673
+0.000228284
+0.000227893
+0.000227498
+0.000227101
+0.000226701
+0.000226297
+0.000225891
+0.000225481
+0.000225069
+0.000224653
+0.000224234
+0.000223812
+0.000223387
+0.000222958
+0.000222527
+0.000222092
+0.000221654
+0.000221212
+0.000220767
+0.000220319
+0.000219868
+0.000219413
+0.000218955
+0.000218493
+0.000218028
+0.000217559
+0.000217087
+0.000216611
+0.000216132
+0.000215649
+0.000215162
+0.000214672
+0.000214178
+0.000213681
+0.000213179
+0.000212674
+0.000212166
+0.000211653
+0.000211137
+0.000210616
+0.000210092
+0.000209564
+0.000209032
+0.000208496
+0.000207956
+0.000207412
+0.000206864
+0.000206312
+0.000205756
+0.000205196
+0.000204631
+0.000204062
+0.000203489
+0.000202912
+0.000202331
+0.000201745
+0.000201155
+0.00020056
+0.000199962
+0.000199358
+0.00019875
+0.000198138
+0.000197521
+0.0001969
+0.000196274
+0.000195644
+0.000195009
+0.000194369
+0.000193724
+0.000193075
+0.000192421
+0.000191762
+0.000191098
+0.00019043
+0.000189756
+0.000189078
+0.000188394
+0.000187706
+0.000187013
+0.000186314
+0.000185611
+0.000184902
+0.000184188
+0.000183469
+0.000182745
+0.000182015
+0.00018128
+0.00018054
+0.000179794
+0.000179043
+0.000178287
+0.000177525
+0.000176758
+0.000175985
+0.000175206
+0.000174422
+0.000173632
+0.000172837
+0.000172036
+0.000171229
+0.000170416
+0.000169597
+0.000168773
+0.000167942
+0.000167106
+0.000166264
+0.000165416
+0.000164561
+0.000163701
+0.000162834
+0.000161962
+0.000161083
+0.000160198
+0.000159306
+0.000158409
+0.000157505
+0.000156594
+0.000155677
+0.000154754
+0.000143137
+0.000142994
+0.00014285
+0.000142705
+0.00014256
+0.000142412
+0.000142264
+0.000142115
+0.000141964
+0.000141813
+0.00014166
+0.000141506
+0.000141351
+0.000141195
+0.000141037
+0.000140878
+0.000140718
+0.000140557
+0.000140395
+0.000140231
+0.000140066
+0.0001399
+0.000139733
+0.000139564
+0.000139394
+0.000139223
+0.00013905
+0.000138877
+0.000138701
+0.000138525
+0.000138347
+0.000138168
+0.000137987
+0.000137805
+0.000137622
+0.000137437
+0.000137251
+0.000137063
+0.000136875
+0.000136684
+0.000136492
+0.000136299
+0.000136104
+0.000135908
+0.00013571
+0.000135511
+0.00013531
+0.000135108
+0.000134904
+0.000134699
+0.000134492
+0.000134283
+0.000134073
+0.000133861
+0.000133648
+0.000133433
+0.000133217
+0.000132998
+0.000132779
+0.000132557
+0.000132334
+0.000132109
+0.000131883
+0.000131654
+0.000131424
+0.000131193
+0.000130959
+0.000130724
+0.000130487
+0.000130248
+0.000130008
+0.000129765
+0.000129521
+0.000129275
+0.000129027
+0.000128777
+0.000128526
+0.000128272
+0.000128017
+0.000127759
+0.0001275
+0.000127239
+0.000126975
+0.00012671
+0.000126443
+0.000126174
+0.000125902
+0.000125629
+0.000125354
+0.000125076
+0.000124797
+0.000124515
+0.000124232
+0.000123946
+0.000123658
+0.000123368
+0.000123076
+0.000122781
+0.000122485
+0.000122186
+0.000121885
+0.000121581
+0.000121276
+0.000120968
+0.000120658
+0.000120345
+0.00012003
+0.000119713
+0.000119394
+0.000119072
+0.000118748
+0.000118421
+0.000118092
+0.00011776
+0.000117426
+0.00011709
+0.000116751
+0.000116409
+0.000116065
+0.000115719
+0.00011537
+0.000115018
+0.000114664
+0.000114307
+0.000113947
+0.000113585
+0.00011322
+0.000112852
+0.000112482
+0.000112109
+0.000111733
+0.000111355
+0.000110974
+0.00011059
+0.000110203
+0.000109813
+0.00010942
+0.000109025
+0.000108626
+0.000108225
+0.000107821
+0.000107414
+0.000107004
+0.000106591
+0.000106174
+0.000105755
+0.000105333
+0.000104908
+0.000104479
+0.000104048
+0.000103613
+0.000103176
+0.000102735
+0.000102291
+0.000101843
+0.000101393
+0.000100939
+0.000100482
+0.000100022
+9.95579e-05
+9.9091e-05
+9.86206e-05
+9.81469e-05
+9.76698e-05
+9.71893e-05
+9.67053e-05
+9.62179e-05
+9.5727e-05
+9.52326e-05
+9.47347e-05
+9.42333e-05
+9.37282e-05
+9.32197e-05
+9.27075e-05
+9.21916e-05
+9.16722e-05
+9.11491e-05
+9.06222e-05
+9.00917e-05
+8.95575e-05
+0.000127332
+0.000127205
+0.000127077
+0.000126948
+0.000126818
+0.000126687
+0.000126555
+0.000126422
+0.000126289
+0.000126154
+0.000126018
+0.000125881
+0.000125743
+0.000125604
+0.000125464
+0.000125322
+0.00012518
+0.000125037
+0.000124892
+0.000124747
+0.0001246
+0.000124452
+0.000124303
+0.000124153
+0.000124002
+0.00012385
+0.000123696
+0.000123542
+0.000123386
+0.000123229
+0.000123071
+0.000122911
+0.000122751
+0.000122589
+0.000122426
+0.000122261
+0.000122096
+0.000121929
+0.000121761
+0.000121591
+0.000121421
+0.000121249
+0.000121075
+0.000120901
+0.000120725
+0.000120548
+0.000120369
+0.000120189
+0.000120008
+0.000119825
+0.000119641
+0.000119455
+0.000119269
+0.00011908
+0.000118891
+0.000118699
+0.000118507
+0.000118313
+0.000118117
+0.00011792
+0.000117722
+0.000117522
+0.00011732
+0.000117117
+0.000116912
+0.000116706
+0.000116499
+0.000116289
+0.000116079
+0.000115866
+0.000115652
+0.000115437
+0.000115219
+0.000115
+0.00011478
+0.000114558
+0.000114334
+0.000114108
+0.000113881
+0.000113652
+0.000113421
+0.000113189
+0.000112955
+0.000112719
+0.000112481
+0.000112242
+0.000112
+0.000111757
+0.000111512
+0.000111265
+0.000111017
+0.000110766
+0.000110514
+0.00011026
+0.000110004
+0.000109746
+0.000109486
+0.000109224
+0.00010896
+0.000108694
+0.000108426
+0.000108156
+0.000107884
+0.000107611
+0.000107335
+0.000107057
+0.000106777
+0.000106494
+0.00010621
+0.000105924
+0.000105635
+0.000105345
+0.000105052
+0.000104757
+0.00010446
+0.000104161
+0.000103859
+0.000103555
+0.000103249
+0.000102941
+0.00010263
+0.000102318
+0.000102002
+0.000101685
+0.000101365
+0.000101043
+0.000100718
+0.000100391
+0.000100062
+9.97299e-05
+9.93957e-05
+9.9059e-05
+9.87198e-05
+9.83781e-05
+9.80339e-05
+9.76872e-05
+9.7338e-05
+9.69862e-05
+9.66318e-05
+9.62748e-05
+9.59153e-05
+9.55531e-05
+9.51882e-05
+9.48207e-05
+9.44505e-05
+9.40777e-05
+9.37021e-05
+9.33238e-05
+9.29427e-05
+9.25589e-05
+9.21723e-05
+9.17828e-05
+9.13906e-05
+9.09955e-05
+9.05976e-05
+9.01968e-05
+8.97931e-05
+8.93866e-05
+8.8977e-05
+8.85646e-05
+8.81491e-05
+8.77307e-05
+8.73093e-05
+8.68849e-05
+8.64574e-05
+8.60269e-05
+8.55933e-05
+8.51566e-05
+8.47168e-05
+8.42738e-05
+8.38277e-05
+8.33785e-05
+8.2926e-05
+8.24704e-05
+8.20115e-05
+8.15494e-05
+8.1084e-05
+8.06154e-05
+8.01434e-05
+7.96681e-05
+0.000296215
+0.000292916
+0.000289496
+0.000285947
+0.000282267
+0.00027845
+0.000274491
+0.000270386
+0.000266129
+0.000261715
+0.00025714
+0.000252397
+0.000247482
+0.000242388
+0.00023711
+0.000231642
+0.000225979
+0.000220114
+0.000214041
+0.000207755
+0.00020125
+0.00019452
+0.000187558
+0.00018036
+0.000171945
+0.000321995
+0.000318449
+0.00031472
+0.000310852
+0.000306839
+0.000302677
+0.000298359
+0.00029388
+0.000289236
+0.00028442
+0.000279426
+0.000274248
+0.00026888
+0.000263317
+0.00025755
+0.000251575
+0.000245383
+0.000238969
+0.000232326
+0.000225446
+0.000218323
+0.00021095
+0.000203321
+0.000195427
+0.000191374
+0.000519365
+0.000513724
+0.000507721
+0.000501494
+0.000495035
+0.000488335
+0.000481386
+0.00047418
+0.000466708
+0.000458961
+0.000450928
+0.000442602
+0.000433972
+0.000425028
+0.00041576
+0.000406158
+0.000396211
+0.000385909
+0.000375241
+0.000364197
+0.000352766
+0.000340936
+0.000328699
+0.000316042
+0.000319146
+0.000745376
+0.00073737
+0.000728755
+0.000719819
+0.00071055
+0.000700936
+0.000690964
+0.000680624
+0.000669901
+0.000658783
+0.000647258
+0.00063531
+0.000622927
+0.000610093
+0.000596795
+0.000583018
+0.000568747
+0.000553967
+0.000538663
+0.000522819
+0.000506421
+0.000489453
+0.000471899
+0.000453747
+0.000462603
+0.000984316
+0.000973859
+0.000962483
+0.000950682
+0.000938442
+0.000925745
+0.000912578
+0.000898923
+0.000884763
+0.000870083
+0.000854863
+0.000839086
+0.000822734
+0.000805789
+0.00078823
+0.000770039
+0.000751195
+0.00073168
+0.000711474
+0.000690555
+0.000668905
+0.000646503
+0.000623329
+0.000599365
+0.000608265
+0.00106731
+0.00108924
+0.00111081
+0.00113281
+0.00115522
+0.00115918
+0.00114269
+0.00112559
+0.00110787
+0.00108949
+0.00107043
+0.00105068
+0.00103021
+0.00100899
+0.000987007
+0.000964232
+0.000940642
+0.00091621
+0.000890913
+0.000864725
+0.000837622
+0.000809578
+0.000780569
+0.000750571
+0.000751387
+0.000508944
+0.000555958
+0.000606174
+0.00065988
+0.000718486
+0.000773794
+0.00082002
+0.000865543
+0.00091194
+0.00095916
+0.00100714
+0.00105581
+0.00110508
+0.00115485
+0.00119162
+0.00116413
+0.00113565
+0.00110616
+0.00107562
+0.00104401
+0.00101129
+0.000977443
+0.000942427
+0.000906218
+0.000890961
+5.0391e-18
+2.13307e-18
+2.04142e-18
+7.52853e-19
+1.96488e-18
+2.66242e-05
+8.47337e-05
+0.000147353
+0.000214951
+0.000288063
+0.000367298
+0.000453352
+0.000547027
+0.000649656
+0.00075914
+0.000848432
+0.000935578
+0.00102334
+0.00111144
+0.00119958
+0.00118913
+0.00114933
+0.00110817
+0.0010656
+0.00102929
+2.15961e-18
+3.49863e-18
+2.72189e-18
+3.98867e-18
+4.52534e-18
+2.53427e-18
+6.95837e-19
+1.19369e-18
+2.4139e-18
+1.23184e-18
+2.30471e-18
+1.23744e-18
+2.13135e-18
+3.18439e-18
+1.79396e-05
+0.000127464
+0.000248253
+0.000381907
+0.000530321
+0.000698019
+0.000848992
+0.000988297
+0.00112614
+0.00122822
+0.00117197
+2.15961e-18
+1.5913e-18
+5.44378e-18
+5.30882e-18
+1.33548e-18
+2.53427e-18
+2.4701e-18
+1.19369e-18
+8.58474e-19
+1.81462e-18
+1.26483e-18
+2.01309e-18
+1.06568e-18
+0
+2.1238e-18
+1.14503e-18
+5.36116e-19
+1.10932e-18
+2.18846e-18
+1.02921e-18
+0.000131877
+0.000320675
+0.000535125
+0.000772208
+0.000967588
+2.88607e-18
+1.4498e-18
+2.72189e-18
+3.97253e-18
+2.60171e-18
+1.30086e-18
+5.50752e-18
+3.23051e-19
+1.16504e-18
+6.46962e-19
+8.19642e-19
+1.29766e-18
+0
+2.08919e-18
+2.1238e-18
+4.17282e-18
+2.05223e-18
+2.02135e-18
+9.62309e-19
+1.02921e-18
+3.00107e-18
+1.37513e-18
+2.10874e-18
+4.36517e-05
+0.0002994
+2.16838e-18
+3.49863e-18
+0
+3.97253e-18
+1.33548e-18
+0
+1.22389e-18
+1.23663e-18
+2.33007e-18
+1.13793e-18
+6.02071e-19
+1.08826e-18
+0
+1.0446e-18
+0
+5.45044e-19
+1.12627e-18
+5.28047e-19
+1.92462e-18
+1.96989e-18
+3.00107e-18
+1.86619e-18
+1.00378e-18
+1.36117e-18
+9.98551e-19
+2.15961e-18
+6.99726e-19
+2.72189e-18
+1.98627e-18
+3.48875e-19
+1.91395e-18
+3.68659e-18
+4.78566e-18
+1.16504e-18
+1.17886e-18
+6.32413e-19
+8.01897e-19
+3.72986e-18
+3.13379e-18
+0
+0
+1.12627e-18
+5.28047e-19
+9.62309e-19
+3.83764e-18
+1.94964e-18
+2.12202e-18
+0
+3.41709e-18
+2.09775e-18
+2.87949e-18
+1.39945e-18
+5.44378e-18
+1.32418e-18
+4.51187e-18
+6.27845e-19
+6.15522e-18
+1.23663e-18
+1.74756e-18
+3.42765e-18
+2.84527e-18
+1.12741e-18
+0
+7.69726e-19
+3.12473e-18
+1.00698e-18
+1.12627e-18
+1.55572e-18
+2.88693e-18
+4.75372e-18
+1.38673e-18
+0
+9.27253e-19
+3.69449e-18
+1.84484e-18
+9.35833e-18
+1.41221e-18
+2.72189e-18
+2.64836e-18
+3.22277e-19
+2.53427e-18
+9.01843e-19
+5.96843e-19
+5.82519e-19
+6.46962e-19
+2.30471e-18
+1.12741e-18
+2.13135e-18
+1.66579e-18
+1.63458e-18
+1.14503e-18
+0
+1.43774e-18
+1.09423e-18
+4.75372e-18
+3.00107e-18
+1.06101e-18
+9.27253e-19
+9.99851e-19
+1.84484e-18
+8.99839e-18
+4.2154e-18
+1.37335e-18
+2.64836e-18
+1.74437e-19
+5.04856e-18
+2.19868e-18
+2.98421e-19
+5.82519e-19
+1.73445e-18
+6.32413e-19
+3.26477e-18
+2.13135e-18
+2.08919e-18
+5.12513e-19
+3.06972e-18
+9.90485e-19
+1.43774e-18
+2.93354e-18
+1.96989e-18
+5.09314e-19
+1.93332e-18
+9.27253e-19
+4.61811e-19
+4.99275e-19
+1.07981e-18
+1.75953e-18
+2.72811e-18
+4.30731e-18
+1.94151e-18
+2.51712e-18
+5.51747e-18
+3.5847e-18
+2.62133e-18
+2.2966e-18
+1.94659e-18
+1.63238e-18
+1.59851e-18
+1.56689e-18
+2.77406e-19
+5.0349e-19
+3.4667e-18
+2.02135e-18
+2.93354e-18
+1.02921e-18
+1.06996e-18
+6.87563e-19
+2.78176e-18
+1.05024e-18
+1.91121e-18
+1.80231e-18
+2.8005e-18
+3.40236e-18
+2.65441e-18
+4.51524e-18
+0
+6.33961e-19
+1.20456e-18
+4.07763e-18
+8.53446e-19
+1.94659e-18
+2.44858e-18
+2.13135e-18
+3.65609e-18
+1.0619e-18
+1.00698e-18
+9.90485e-19
+1.01067e-18
+1.23954e-18
+1.08108e-18
+6.93366e-19
+6.87563e-19
+3.24539e-18
+2.30906e-18
+1.84484e-18
+1.79665e-18
+4.84529e-18
+1.67695e-18
+1.75976e-19
+5.04717e-18
+4.89592e-18
+2.67088e-18
+3.74839e-18
+1.67868e-18
+3.80844e-18
+5.47458e-19
+1.02783e-18
+2.50017e-18
+3.40758e-18
+4.74184e-18
+1.38655e-18
+2.25391e-19
+8.7994e-19
+6.85291e-19
+0
+1.23299e-18
+8.04951e-19
+1.18357e-18
+8.80425e-19
+3.0704e-18
+8.21715e-18
+6.4034e-18
+2.68312e-18
+6.34228e-18
+1.89353e-18
+3.67357e-18
+2.96765e-19
+5.76177e-19
+1.67868e-18
+0
+5.47458e-19
+4.37048e-18
+0
+7.30195e-19
+1.44552e-18
+1.61764e-18
+6.76172e-19
+2.19985e-18
+4.88651e-19
+2.53073e-18
+4.67338e-19
+0
+3.94523e-19
+8.80425e-19
+4.11724e-19
+5.5381e-18
+3.58543e-19
+8.43373e-19
+2.92608e-18
+1.89353e-18
+9.17461e-19
+1.04178e-18
+8.78219e-19
+0
+8.66953e-19
+1.06653e-18
+7.83316e-19
+2.00014e-18
+7.41985e-19
+2.14921e-18
+2.31091e-18
+1.12695e-18
+6.59955e-19
+4.88651e-19
+4.54752e-19
+8.51561e-19
+4.02475e-19
+1.18357e-18
+1.60427e-18
+0
+2.03108e-19
+2.07867e-18
+3.52276e-18
+6.50239e-18
+2.83741e-18
+5.50539e-18
+2.82041e-18
+4.32133e-19
+2.7978e-19
+1.35914e-18
+3.17391e-18
+5.13913e-19
+4.12529e-18
+4.86797e-18
+2.13768e-18
+3.69746e-18
+0
+7.01606e-19
+6.44608e-19
+2.52049e-18
+1.02749e-18
+4.02475e-19
+6.29133e-19
+1.35499e-18
+1.52134e-18
+4.82302e-18
+1.03828e-18
+5.03085e-18
+5.20266e-18
+7.56642e-18
+1.37868e-18
+3.2654e-18
+4.3911e-19
+1.67868e-18
+1.91556e-18
+5.28448e-19
+3.85435e-19
+2.25016e-18
+7.41985e-19
+4.3862e-18
+2.08358e-18
+2.4793e-18
+1.98344e-18
+1.71896e-18
+2.27376e-19
+6.16493e-19
+0
+1.39724e-18
+1.16142e-18
+1.5352e-18
+8.94414e-19
+2.59612e-18
+4.21687e-19
+1.14132e-18
+1.57634e-18
+1.98783e-18
+1.85521e-18
+4.3911e-19
+2.23824e-18
+2.58656e-18
+5.28448e-19
+1.28666e-18
+1.75012e-18
+6.12051e-19
+8.39686e-19
+3.94157e-19
+3.38086e-18
+1.54449e-18
+2.14869e-19
+6.40297e-19
+2.33669e-19
+2.01238e-19
+7.89046e-19
+9.67851e-19
+1.5352e-18
+4.47207e-19
+3.28821e-18
+5.19874e-18
+2.4384e-19
+7.88169e-19
+1.98826e-18
+4.00632e-18
+4.60941e-18
+5.52565e-18
+1.0898e-18
+1.84957e-18
+6.95409e-20
+3.18772e-18
+2.00912e-18
+4.74184e-19
+1.04741e-18
+2.02852e-18
+3.08036e-18
+7.52043e-19
+2.38835e-19
+4.2578e-19
+1.6099e-18
+6.90415e-19
+1.9357e-19
+1.02931e-19
+2.07661e-18
+6.49029e-19
+5.99509e-18
+2.51968e-18
+1.02462e-18
+2.52336e-18
+4.37732e-18
+6.26592e-18
+3.56719e-18
+3.80565e-18
+4.42575e-18
+2.82652e-18
+3.84402e-18
+1.88634e-18
+1.77819e-18
+1.97078e-19
+2.59199e-18
+1.56993e-18
+1.10159e-18
+2.83556e-18
+4.6237e-19
+4.02475e-19
+0
+6.77496e-19
+1.52221e-18
+5.71588e-18
+1.1708e-20
+0
+0
+0
+0
+4.74828e-18
+0
+0
+1.83914e-20
+0
+0
+0
+0
+3.79347e-18
+3.6976e-18
+0
+2.97676e-20
+2.90754e-20
+3.36066e-18
+0
+0
+1.57809e-18
+1.54856e-18
+5.14655e-20
+3.2721e-18
+2.38599e-20
+1.75388e-18
+1.07978e-18
+3.95145e-18
+1.95862e-18
+1.90369e-19
+2.85083e-18
+2.41341e-18
+3.05061e-18
+5.05464e-18
+1.53155e-18
+1.98012e-18
+3.1679e-19
+9.9004e-19
+1.39142e-18
+1.83407e-18
+1.33236e-18
+2.55489e-18
+1.89489e-18
+7.13751e-19
+3.28069e-19
+7.94848e-19
+1.88132e-18
+1.65183e-18
+1.45427e-18
+4.05558e-18
+7.44269e-18
+5.81726e-19
+3.95145e-18
+1.17594e-18
+1.82754e-18
+9.63453e-19
+1.44084e-19
+7.0129e-20
+2.66496e-18
+1.60135e-18
+1.29844e-18
+3.1679e-18
+1.85633e-18
+1.33095e-18
+3.66869e-18
+2.66472e-18
+3.29297e-18
+1.1157e-18
+2.29878e-18
+1.72288e-18
+2.01361e-18
+5.22588e-19
+1.65183e-18
+3.99923e-18
+8.81632e-20
+4.87622e-18
+3.15559e-18
+1.9354e-18
+2.82328e-18
+7.65924e-19
+3.99877e-18
+4.03436e-18
+2.9464e-18
+2.46346e-18
+1.73683e-18
+3.37594e-18
+7.60296e-19
+2.72261e-18
+2.75082e-19
+1.08214e-18
+9.35306e-19
+4.54203e-19
+2.22815e-18
+6.56575e-19
+2.36761e-18
+6.35878e-19
+2.29939e-18
+1.65183e-18
+3.45388e-18
+4.05551e-18
+2.39534e-18
+4.15209e-18
+2.41925e-18
+1.56919e-18
+1.06925e-18
+2.36952e-18
+5.33112e-18
+4.62914e-18
+3.42249e-18
+1.08685e-18
+2.59688e-18
+1.90074e-18
+7.4253e-19
+1.45151e-18
+3.48763e-19
+1.87061e-18
+4.70542e-19
+2.22815e-19
+8.83412e-19
+1.7219e-18
+2.33155e-18
+2.09035e-19
+0
+1.0907e-18
+5.64244e-18
+4.27839e-18
+5.14859e-18
+5.96813e-18
+5.32811e-18
+2.43812e-18
+3.70585e-18
+2.88169e-18
+4.20774e-18
+2.19079e-18
+5.32566e-19
+2.59688e-19
+2.78775e-18
+1.48506e-18
+1.21666e-18
+1.19018e-18
+9.35306e-19
+6.92304e-19
+5.0672e-19
+1.31315e-18
+2.37905e-18
+4.23919e-19
+6.27105e-19
+1.65183e-18
+2.1814e-18
+4.23291e-18
+5.45681e-19
+3.32167e-19
+3.87179e-18
+1.88218e-18
+4.87971e-18
+2.67053e-18
+2.30535e-18
+2.80516e-18
+1.09289e-18
+7.98849e-19
+3.37594e-18
+2.53432e-19
+2.67938e-19
+9.67673e-19
+2.14523e-18
+2.50839e-19
+9.08405e-19
+9.23321e-19
+1.76682e-18
+4.30475e-19
+8.78338e-19
+8.3614e-19
+0
+3.2721e-18
+1.41384e-18
+3.54501e-19
+1.34078e-18
+1.94326e-18
+3.13379e-18
+1.53185e-18
+3.26204e-18
+4.6107e-18
+1.68993e-18
+4.37158e-18
+6.05575e-19
+2.0775e-18
+3.04118e-18
+2.48956e-18
+3.39697e-18
+4.26746e-18
+4.64108e-18
+1.36261e-18
+1.78252e-18
+1.33435e-18
+8.91921e-19
+2.29453e-19
+4.1807e-19
+3.30365e-18
+1.28724e-18
+3.12728e-19
+3.95258e-18
+5.915e-18
+5.47106e-18
+1.96786e-18
+3.10538e-19
+2.13013e-18
+1.55867e-18
+2.02906e-18
+0
+3.3954e-18
+3.55804e-18
+2.33746e-18
+0
+2.23755e-18
+1.34097e-18
+3.03972e-18
+0
+3.79115e-18
+8.63001e-19
+1.23781e-18
+9.31397e-19
+4.41061e-19
+1.62533e-18
+6.43619e-19
+6.47956e-19
+3.64854e-18
+2.9575e-18
+4.03268e-18
+5.80738e-19
+5.65848e-19
+2.135e-18
+1.81845e-18
+2.07044e-18
+0
+4.84695e-19
+0
+4.19055e-18
+3.64648e-18
+2.42222e-19
+9.11423e-19
+1.31983e-18
+2.13365e-18
+4.56005e-19
+9.47232e-19
+1.70979e-18
+6.03571e-19
+2.48408e-18
+1.62533e-18
+2.89629e-18
+1.88399e-18
+4.86472e-18
+7.10522e-18
+1.44758e-18
+2.80286e-18
+2.18479e-18
+2.67821e-18
+5.71513e-18
+6.11191e-18
+4.95647e-19
+2.90817e-18
+9.48811e-19
+1.85911e-18
+5.18296e-19
+2.23755e-18
+1.75955e-18
+9.84613e-19
+0
+1.55844e-18
+4.9982e-18
+2.51559e-18
+8.19107e-19
+0
+0
+1.60905e-18
+5.00364e-18
+5.47281e-18
+1.60079e-19
+6.91503e-18
+2.24229e-18
+7.65249e-18
+1.21107e-18
+1.55867e-18
+1.05103e-18
+5.63594e-19
+9.6939e-19
+9.82943e-19
+4.21314e-18
+5.18296e-19
+1.01772e-18
+3.07921e-18
+2.59772e-18
+2.13365e-18
+2.155e-18
+6.13832e-19
+3.33091e-18
+0
+1.62974e-18
+1.84814e-18
+7.07981e-18
+1.25091e-18
+1.21618e-18
+1.183e-18
+8.48377e-19
+2.24229e-18
+6.00818e-18
+1.69842e-18
+2.07823e-18
+5.76806e-19
+1.51095e-18
+1.93878e-18
+1.4462e-18
+5.59997e-18
+5.03813e-18
+1.85444e-18
+8.79774e-19
+1.73181e-18
+0
+0
+9.01785e-19
+4.46656e-19
+0
+2.59889e-18
+1.84814e-18
+7.07981e-18
+1.87637e-18
+3.66335e-18
+5.33312e-18
+2.32366e-18
+8.96916e-18
+3.2905e-18
+2.13013e-18
+1.03911e-18
+0
+3.96518e-18
+1.10228e-18
+3.79524e-18
+4.64776e-18
+5.49193e-18
+1.79004e-18
+2.63932e-18
+1.79412e-18
+9.70458e-19
+1.68496e-18
+4.1895e-18
+4.95124e-18
+1.63821e-18
+1.85315e-18
+0
+2.57448e-18
+3.12728e-18
+1.85372e-18
+2.45112e-18
+8.06536e-18
+2.80286e-18
+6.00818e-18
+5.35643e-18
+0
+4.0674e-18
+9.91294e-19
+5.24698e-19
+2.84643e-18
+1.92599e-18
+2.77901e-18
+3.61271e-18
+0
+0
+1.76832e-18
+8.42479e-19
+8.33033e-19
+1.65041e-18
+0
+1.2009e-18
+1.62533e-18
+7.72343e-18
+1.29591e-18
+1.21618e-18
+1.183e-18
+1.727e-18
+7.85388e-18
+5.46199e-19
+5.32531e-18
+2.65798e-18
+3.09273e-18
+9.91294e-19
+2.00853e-18
+1.89762e-18
+2.11397e-18
+1.88883e-18
+3.61271e-18
+1.82285e-18
+9.84613e-19
+1.70692e-18
+4.30999e-18
+1.89446e-18
+1.21613e-18
+3.27643e-18
+1.85315e-18
+1.62533e-18
+2.57448e-18
+5.01508e-18
+3.64854e-18
+3.56341e-18
+1.75489e-18
+5.60572e-19
+5.46199e-18
+1.10338e-18
+1.53137e-18
+3.09273e-18
+4.95647e-18
+1.10228e-18
+9.48811e-19
+9.29553e-19
+2.73486e-18
+1.85444e-18
+4.42457e-18
+4.42985e-18
+4.26729e-18
+2.52744e-18
+1.89446e-18
+1.96799e-18
+3.27643e-18
+0
+8.79734e-19
+2.57448e-18
+2.52462e-18
+1.21618e-18
+1.183e-18
+4.0417e-18
+2.32295e-18
+3.8348e-18
+4.26025e-18
+5.22593e-18
+5.10229e-18
+9.91294e-19
+1.10228e-18
+1.89762e-18
+1.92599e-18
+0
+1.85444e-18
+8.79774e-19
+1.96923e-18
+1.25777e-18
+9.1201e-19
+8.33033e-19
+4.5724e-05
+0.000178961
+0.000328833
+0.000498241
+1.14567e-18
+1.15201e-18
+1.07975e-18
+2.63751e-18
+4.11453e-18
+8.4287e-18
+7.71753e-18
+3.75362e-18
+0
+1.0126e-18
+8.68315e-19
+4.23622e-18
+5.79101e-18
+2.52599e-05
+9.3892e-05
+0.000168596
+0.000250104
+0.000339264
+0.000437065
+0.000544659
+0.000664285
+0.000785418
+0.000888122
+0.000989528
+0.0010829
+7.67963e-05
+0.000111709
+0.00014887
+0.000188469
+0.000230713
+0.000275835
+0.000324093
+0.000375776
+0.000431207
+0.000490748
+0.000554807
+0.000623845
+0.000699211
+0.000769961
+0.000823025
+0.000875088
+0.000927827
+0.000981136
+0.00103489
+0.00108894
+0.00114312
+0.00116505
+0.00113162
+0.00109703
+0.00106447
+0.00081133
+0.000836584
+0.000862029
+0.000888118
+0.000914844
+0.0009422
+0.000970171
+0.000998743
+0.00102789
+0.0010576
+0.00108783
+0.00111854
+0.00114969
+0.0011609
+0.00113991
+0.00111816
+0.00109562
+0.00107226
+0.00104806
+0.00102299
+0.000997024
+0.000970136
+0.000942298
+0.000913485
+0.000904014
+0.00113389
+0.0011234
+0.00111222
+0.00110062
+0.00108859
+0.00107611
+0.00106315
+0.00104972
+0.00103579
+0.00102133
+0.00100635
+0.000990806
+0.000974691
+0.000957984
+0.000940665
+0.000922713
+0.000904109
+0.00088483
+0.000864856
+0.000844164
+0.000822733
+0.000800541
+0.000777565
+0.000753783
+0.000760454
+0.00092525
+0.000916647
+0.000907526
+0.000898062
+0.000888243
+0.000878056
+0.000867488
+0.000856526
+0.000845155
+0.000833362
+0.000821131
+0.000808448
+0.000795298
+0.000781664
+0.00076753
+0.00075288
+0.000737697
+0.000721964
+0.000705663
+0.000688777
+0.000671287
+0.000653175
+0.000634423
+0.000615013
+0.000629258
+0.000744254
+0.000737307
+0.00072997
+0.000722357
+0.000714458
+0.000706263
+0.000697762
+0.000688943
+0.000679796
+0.000670309
+0.00066047
+0.000650267
+0.000639687
+0.000628719
+0.000617349
+0.000605563
+0.000593348
+0.000580691
+0.000567576
+0.00055399
+0.000539919
+0.000525346
+0.000510259
+0.000494642
+0.000509786
+0.000587604
+0.0005821
+0.000576307
+0.000570296
+0.000564059
+0.000557588
+0.000550875
+0.000543912
+0.000536689
+0.000529198
+0.000521428
+0.000513372
+0.000505018
+0.000496356
+0.000487378
+0.000478071
+0.000468425
+0.000458429
+0.000448072
+0.000437343
+0.000426229
+0.000414721
+0.000402805
+0.00039047
+0.000402537
+0.000452458
+0.000448207
+0.000443745
+0.000439116
+0.000434313
+0.000429329
+0.00042416
+0.000418797
+0.000413234
+0.000407465
+0.000401481
+0.000395276
+0.000388842
+0.000382171
+0.000375255
+0.000368086
+0.000360657
+0.000352957
+0.000344979
+0.000336715
+0.000328154
+0.000319288
+0.000310108
+0.000300605
+0.000308014
+0.000336414
+0.000333244
+0.000329926
+0.000326483
+0.000322911
+0.000319205
+0.00031536
+0.000311371
+0.000307234
+0.000302943
+0.000298493
+0.000293877
+0.000289092
+0.00028413
+0.000278986
+0.000273653
+0.000268126
+0.000262399
+0.000256464
+0.000250315
+0.000243946
+0.000237349
+0.000230519
+0.000223447
+0.000226356
+0.000237547
+0.000235302
+0.000232958
+0.000230526
+0.000228003
+0.000225385
+0.000222669
+0.000219852
+0.000216929
+0.000213897
+0.000210753
+0.000207493
+0.000204111
+0.000200605
+0.000196971
+0.000193203
+0.000189297
+0.00018525
+0.000181055
+0.00017671
+0.000172208
+0.000167545
+0.000162716
+0.000157716
+0.000157333
+0.000154662
+0.000153196
+0.000151669
+0.000150085
+0.000148441
+0.000146736
+0.000144966
+0.00014313
+0.000141226
+0.00013925
+0.000137201
+0.000135077
+0.000132873
+0.000130588
+0.000128219
+0.000125762
+0.000123216
+0.000120577
+0.000117842
+0.000115007
+0.000112071
+0.000109028
+0.000105877
+0.000102614
+0.000100593
+8.97166e-05
+8.88599e-05
+8.7969e-05
+8.70444e-05
+8.60847e-05
+8.50887e-05
+8.4055e-05
+8.29823e-05
+8.18692e-05
+8.07142e-05
+7.95158e-05
+7.82725e-05
+7.69827e-05
+7.56448e-05
+7.42571e-05
+7.28179e-05
+7.13255e-05
+6.97781e-05
+6.8174e-05
+6.65113e-05
+6.47884e-05
+6.30034e-05
+6.11549e-05
+5.92413e-05
+5.71103e-05
+7.87429e-05
+7.79947e-05
+7.72188e-05
+7.64137e-05
+7.55784e-05
+7.47118e-05
+7.38129e-05
+7.28803e-05
+7.19131e-05
+7.09099e-05
+6.98696e-05
+6.87908e-05
+6.76722e-05
+6.65126e-05
+6.53105e-05
+6.40645e-05
+6.27733e-05
+6.14353e-05
+6.0049e-05
+5.86131e-05
+5.71259e-05
+5.5586e-05
+5.39918e-05
+5.23418e-05
+5.04651e-05
+)
+;
 
 boundaryField
 {
-    inlet           
+    inlet
     {
         type            fixedValue;
         value           uniform 0;
     }
-
-    outlet          
+    outlet
     {
         type            zeroGradient;
     }
-
-    upperWall       
+    upperWall
     {
         type            zeroGradient;
     }
-
-    lowerWall       
+    lowerWall
     {
         type            zeroGradient;
     }
-
-    frontAndBack    
+    frontAndBack
     {
         type            empty;
     }
 }
 
+
 // ************************************************************************* //
diff --git a/tutorials/incompressible/simpleFoam/pitzDaily/constant/polyMesh/boundary b/tutorials/incompressible/simpleFoam/pitzDaily/constant/polyMesh/boundary
index eb4a4e461df4c51d64c38b8a33c61baff06750ca..313dcceba1abd7b93d57320c4c674f1734692506 100644
--- a/tutorials/incompressible/simpleFoam/pitzDaily/constant/polyMesh/boundary
+++ b/tutorials/incompressible/simpleFoam/pitzDaily/constant/polyMesh/boundary
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  1.6                                   |
+|  \\    /   O peration     | Version:  dev                                   |
 |   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
diff --git a/tutorials/incompressible/simpleSRFFoam/simpleSRFFoam/createFields.H b/tutorials/incompressible/simpleSRFFoam/simpleSRFFoam/createFields.H
index 3e4e11ae301c2acc68e501410d870b8e1bf1b989..a5d68368ea58b18ffa8498337c4dd1b58f508aef 100644
--- a/tutorials/incompressible/simpleSRFFoam/simpleSRFFoam/createFields.H
+++ b/tutorials/incompressible/simpleSRFFoam/simpleSRFFoam/createFields.H
@@ -1,4 +1,4 @@
-    Info << "Reading field p\n" << endl;
+    Info<< "Reading field p\n" << endl;
     volScalarField p
     (
         IOobject
diff --git a/tutorials/lagrangian/rhoPisoTwinParcelFoam/simplifiedSiwek/system/decomposeParDict b/tutorials/lagrangian/rhoPisoTwinParcelFoam/simplifiedSiwek/system/decomposeParDict
index 176b1467df245f1883bc80052ba98e87e5ff934a..6e02e44e34288182b6b6616ff0e15cdb8228c676 100644
--- a/tutorials/lagrangian/rhoPisoTwinParcelFoam/simplifiedSiwek/system/decomposeParDict
+++ b/tutorials/lagrangian/rhoPisoTwinParcelFoam/simplifiedSiwek/system/decomposeParDict
@@ -34,7 +34,7 @@ hierarchicalCoeffs
 
 metisCoeffs
 {
-    processorWeights ( 1 1 1 1 );
+    //processorWeights ( 1 1 1 1 );
 }
 
 manualCoeffs
diff --git a/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/constant/dynamicMeshDict b/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/constant/dynamicMeshDict
index d7570faf2d4d8ccdba5dd26614745c8f804fedf3..9249808c58d190e2272d768484beb5005c191676 100644
--- a/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/constant/dynamicMeshDict
+++ b/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/constant/dynamicMeshDict
@@ -19,14 +19,23 @@ dynamicFvMesh   dynamicRefineFvMesh;
 
 dynamicRefineFvMeshCoeffs
 {
+    // How often to refine
     refineInterval  1;
+    // Field to be refinement on
     field           alpha1;
+    // 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.
     correctFluxes
     (
         (
@@ -34,6 +43,7 @@ dynamicRefineFvMeshCoeffs
             U
         )
     );
+    // Write the refinement level as a volScalarField
     dumpLevel       true;
 }
 
diff --git a/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D6DoF/gen6DoF/gen6DoF.C b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D6DoF/gen6DoF/gen6DoF.C
index a90c715389afce5e50786885c3d39af2c7d8ec8c..e46d0fd053aac9bdda300f8943048119373e0e71 100644
--- a/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D6DoF/gen6DoF/gen6DoF.C
+++ b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D6DoF/gen6DoF/gen6DoF.C
@@ -88,7 +88,7 @@ int main(int argc, char *argv[])
         dataFile << timeValues << endl;
     }
 
-    Info << "End\n" << endl;
+    Info<< "End\n" << endl;
 
     return 0;
 }
diff --git a/tutorials/multiphase/interFoam/MRFInterFoam/MRFInterFoam/pEqn.H b/tutorials/multiphase/interFoam/MRFInterFoam/MRFInterFoam/pEqn.H
index 5a67dd0497b150c4a46f62f306afdf814cfe17aa..cab105511b203935eea4c905ecb1f175e8730e39 100644
--- a/tutorials/multiphase/interFoam/MRFInterFoam/MRFInterFoam/pEqn.H
+++ b/tutorials/multiphase/interFoam/MRFInterFoam/MRFInterFoam/pEqn.H
@@ -19,7 +19,7 @@
         )*rUAf;
     adjustPhi(phi, U, p);
 
-    for(int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
+    for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
     {
         fvScalarMatrix pEqn
         (
diff --git a/wmake/rules/linux64Icc/c++ b/wmake/rules/linux64Icc/c++
index a637677c1d4d306fc87df75f2480543e513409de..6ddaa1fe6111f057ae174b0f6d30038763c35ff9 100644
--- a/wmake/rules/linux64Icc/c++
+++ b/wmake/rules/linux64Icc/c++
@@ -1,6 +1,6 @@
 .SUFFIXES: .C .cxx .cc .cpp
 
-c++WARN     = -wd654,819,1125,1476,1505,1572
+c++WARN     = -wd327,654,819,1125,1476,1505,1572
 
 CC          = icpc
 
diff --git a/wmake/rules/linuxIA64Icc/c++ b/wmake/rules/linuxIA64Icc/c++
index b8e396385682ae5cb3c3f72a16e570423b208c14..625cbd186efb0f5af95d7298da0fa2251539d207 100644
--- a/wmake/rules/linuxIA64Icc/c++
+++ b/wmake/rules/linuxIA64Icc/c++
@@ -1,6 +1,6 @@
 .SUFFIXES: .C .cxx .cc .cpp
 
-c++WARN     = -wd654,819,1125,1476,1505,1572
+c++WARN     = -wd327,654,819,1125,1476,1505,1572
 
 CC          = icpc
 
diff --git a/wmake/rules/linuxIcc/c++ b/wmake/rules/linuxIcc/c++
index 011145e81e1e2c757b6811f53d2a44cc44c66de2..dcbd72e77cf119f99a6ad56c8af40c8cca5473eb 100644
--- a/wmake/rules/linuxIcc/c++
+++ b/wmake/rules/linuxIcc/c++
@@ -1,6 +1,6 @@
 .SUFFIXES: .C .cxx .cc .cpp
 
-c++WARN     = -wd654,819,1125,1476,1505,1572
+c++WARN     = -wd327,654,819,1125,1476,1505,1572
 
 #CC          = icpc -gcc-version=400
 CC          = icpc