diff --git a/ThirdParty/AllMake.stage4 b/ThirdParty/AllMake.stage4
index 6a3409bd7..2d0e77a37 100755
--- a/ThirdParty/AllMake.stage4
+++ b/ThirdParty/AllMake.stage4
@@ -56,10 +56,10 @@ echo Starting ThirdParty AllMake: Stage4
echo ========================================
echo
-# qt-everywhere-opensource-src-4.8.5
+# qt-everywhere-opensource-src-4.8.6
if [ ! -z "$QT_THIRD_PARTY" ]
then
- ( rpm_make -p qt-everywhere-opensource-src-4.8.5 -s qt-everywhere-opensource-src-4.8.5.spec -u http://download.qt-project.org/official_releases/qt/4.8/4.8.5/qt-everywhere-opensource-src-4.8.5.tar.gz )
+ ( rpm_make -p qt-everywhere-opensource-src-4.8.6 -s qt-everywhere-opensource-src-4.8.6.spec -u http://download.qt-project.org/official_releases/qt/4.8/4.8.6/qt-everywhere-opensource-src-4.8.6.tar.gz )
else
echo "Using system installed QT"
echo ""
@@ -75,10 +75,14 @@ then
then
( rpm_make -p ParaView-4.0.1 -s ParaView-4.0.1.spec -u http://downloads.sourceforge.net/project/openfoam-extend/foam-extend-3.1/ThirdParty/ParaView-v4.0.1-source.tgz \
-f --define='_qmakePath $QT_BIN_DIR/qmake'
+# ( rpm_make -p ParaView-4.2.0 -s ParaView-4.2.0.spec -u http://www.paraview.org/files/v4.2/ParaView-v4.2.0-source.tar.gz \
+# -f --define='_qmakePath $QT_BIN_DIR/qmake'
+# ( rpm_make -p ParaView-4.2.0 -s ParaView-4.2.0.spec -u http://downloads.sourceforge.net/project/openfoam-extend/foam-extend-3.1/ThirdParty/ParaView-v4.2.0-source.tgz \
+# -f --define='_qmakePath $QT_BIN_DIR/qmake'
)
else
echo "WARNING: "
- echo "WARNING: Skipping the installation of ParaView-4.0.1."
+ echo "WARNING: Skipping the installation of ParaView-4.2.0."
echo "WARNING: Please make sure the QT_BIN_DIR environment variable properly"
echo "WARNING: initialized in the file prefs.sh or prefs.csh"
echo "WARNING: The command \$QT_BIN_DIR/qmake needs to be valid"
diff --git a/applications/solvers/basic/potentialDyMFoam/potentialDyMFoam.C b/applications/solvers/basic/potentialDyMFoam/potentialDyMFoam.C
new file mode 100644
index 000000000..c1707f5b5
--- /dev/null
+++ b/applications/solvers/basic/potentialDyMFoam/potentialDyMFoam.C
@@ -0,0 +1,203 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | foam-extend: Open Source CFD
+ \\ / O peration |
+ \\ / A nd | For copyright notice see file Copyright
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+License
+ This file is part of foam-extend.
+
+ foam-extend is free software: you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by the
+ Free Software Foundation, either version 3 of the License, or (at your
+ option) any later version.
+
+ foam-extend 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 foam-extend. If not, see .
+
+Application
+ potentialDyMFoam
+
+Description
+ Transient solver for potential flow with dynamic mesh.
+
+Author
+ Hrvoje Jasak, Wikki Ltd. All rights reserved.
+
+\*---------------------------------------------------------------------------*/
+
+#include "fvCFD.H"
+#include "dynamicFvMesh.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+int main(int argc, char *argv[])
+{
+ argList::validOptions.insert("resetU", "");
+ argList::validOptions.insert("writep", "");
+
+# include "setRootCase.H"
+# include "createTime.H"
+# include "createDynamicFvMesh.H"
+# include "createFields.H"
+# include "initTotalVolume.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+ Info<< "\nStarting time loop\n" << endl;
+
+ while (runTime.loop())
+ {
+# include "readPISOControls.H"
+# include "checkTotalVolume.H"
+
+ Info<< "Time = " << runTime.timeName() << nl << endl;
+
+ bool meshChanged = mesh.update();
+ reduce(meshChanged, orOp());
+
+ p.internalField() = 0;
+
+ if (args.optionFound("resetU"))
+ {
+ U.internalField() = vector::zero;
+ }
+
+# include "volContinuity.H"
+# include "meshCourantNo.H"
+
+ // Solve potential flow equations
+ adjustPhi(phi, U, p);
+
+ for (int nonOrth = 0; nonOrth <= nNonOrthCorr; nonOrth++)
+ {
+ p.storePrevIter();
+
+ fvScalarMatrix pEqn
+ (
+ fvm::laplacian
+ (
+ dimensionedScalar
+ (
+ "1",
+ dimTime/p.dimensions()*dimensionSet(0, 2, -2, 0, 0),
+ 1
+ ),
+ p
+ )
+ ==
+ fvc::div(phi)
+ );
+
+ pEqn.setReference(pRefCell, pRefValue);
+ pEqn.solve();
+
+ if (nonOrth == nNonOrthCorr)
+ {
+ phi -= pEqn.flux();
+ }
+ else
+ {
+ p.relax();
+ }
+ }
+
+ Info<< "continuity error = "
+ << mag(fvc::div(phi))().weightedAverage(mesh.V()).value()
+ << endl;
+
+ U = fvc::reconstruct(phi);
+ U.correctBoundaryConditions();
+
+ Info<< "Interpolated U error = "
+ << (sqrt(sum(sqr((fvc::interpolate(U) & mesh.Sf()) - phi)))
+ /sum(mesh.magSf())).value()
+ << endl;
+
+ // Calculate velocity magnitude
+ {
+ volScalarField magU = mag(U);
+
+ Info<< "mag(U): max: " << gMax(magU.internalField())
+ << " min: " << gMin(magU.internalField()) << endl;
+ }
+
+ if (args.optionFound("writep"))
+ {
+ // Find reference patch
+ label refPatch = -1;
+ scalar maxMagU = 0;
+
+ // Go through all velocity patches and find the one that fixes
+ // velocity to the largest value
+
+ forAll (U.boundaryField(), patchI)
+ {
+ const fvPatchVectorField& Upatch = U.boundaryField()[patchI];
+
+ if (Upatch.fixesValue())
+ {
+ // Calculate mean velocity
+ scalar u = sum(mag(Upatch));
+ label patchSize = Upatch.size();
+
+ reduce(u, sumOp());
+ reduce(patchSize, sumOp