Commit b4337874 authored by Mark Olesen's avatar Mark Olesen
Browse files

Merge commit 'OpenCFD/master' into olesenm

parents dcdce314 516c7032
......@@ -2,7 +2,7 @@
#
#+TITLE: *OpenFOAM README for version 1.5*
#+AUTHOR: OpenCFD Ltd.
#+DATE: 10 July 2008
#+DATE: 14 July 2008
#+LINK: http://www.opencfd.co.uk
#+OPTIONS: author:nil
......@@ -21,7 +21,39 @@
administrator.
If the user wishes to run OpenFOAM in 32/64-bit mode they should consult the
appendix "A. Running OpenFOAM in 32-bit mode".
section "Running OpenFOAM in 32-bit mode".
*** Qt (from http://trolltech.com/products/qt)
The ParaView 3.3 visualisation package requires that Qt version 4.3.x MUST
be installed on the system. Earlier or more recent versions (4.2.x or
4.4.x) will NOT work. To check whether Qt4 is installed, and the version,
type:
+ qmake --version
The ParaView binary executables in the ThirdParty distribution will only
work with PRECISELY the same version of Qt with which it was compiled. The
64-bit version of ParaView was compiled with Qt-4.3.1 (with openSuSE-10.3)
and the 32-bit version of ParaView was compiled with Qt-4.3.2 (with
ubuntu-7.10). If the user finds that a ParaView binary fails to run, then
it is almost certainly due to a conflict in compiled and installed Qt
versions and they will need to consult the section below on "Compiling
ParaView and the PV3FoamReader module."
The default versions of Qt used by some GNU/Linux releases are as follows.
+ ubuntu-7.10: Version 4.3.2
+ ubuntu-8.04: Version 4.3.4
+ openSuSE-10.2: Version 4.2.1 - too old
+ openSuSE-10.3: Version 4.3.1
+ openSuSE-11.0: Version 4.4.0 - too new
Compilation and running of ParaView has been successful using the libraries
downloaded in the "libqt4-dev" package on ubuntu.
If you don't have an appropriate version of Qt installed you can download
the sources from TrollTech e.g.:
ftp://ftp.trolltech.com/qt/source/qt-x11-opensource-src-4.3.5.tar.bz2
and compile and install in /usr/local or some other location that does to
conflict with the pre-installed version.
* Installation
Download and unpack the files in the $HOME/OpenFOAM directory as described in:
......@@ -42,7 +74,7 @@
Then update the environment variables by sourcing the $HOME/.bashrc file by
typing in the terminal:
+ . $HOME/.bashrc
+ . $HOME/.bashrc
2) OR, if running tcsh or csh, source the etc/cshrc file by adding the
following line to the end of your $HOME/.cshrc file:
......@@ -52,7 +84,7 @@
Then update the environment variables by sourcing the $HOME/.cshrc file by
typing in the terminal:
+ source $HOME/.cshrc
+ source $HOME/.cshrc
*** Installation in alternative locations
OpenFOAM may also be installed in alternative locations. However, the
......@@ -62,13 +94,13 @@
The environment variable 'FOAM_INST_DIR' can be used to find and source the
appropriate resource file. Here is a bash/ksh/sh example:
+ export FOAM_INST_DIR=/data/app/OpenFOAM
+ export FOAM_INST_DIR=/data/app/OpenFOAM
+ foamDotFile=$FOAM_INST_DIR/OpenFOAM-<VERSION>/etc/bashrc
+ [ -f $foamDotFile ] && . $foamDotFile
and a csh/tcsh example:
+ setenv FOAM_INST_DIR /data/app/OpenFOAM
+ setenv FOAM_INST_DIR /data/app/OpenFOAM
+ foamDotFile=$FOAM_INST_DIR/OpenFOAM-<VERSION>/etc/bashrc
+ if ( -f $foamDotFile ) source $foamDotFile
......@@ -121,6 +153,22 @@
+ cd $HOME/OpenFOAM/${USER}-${WM_PROJECT_VERSION}/run/tutorials/icoFoam/cavity
+ blockMesh
+ icoFoam
+ paraFoam
* Compiling Paraview 3.3 and the PV3FoamReader module
A version of Qt 4.3.x must be installed to compile ParaView. The compilation
is a fairly simple process using the supplied buildParaView3.3-cvs script that
has worked is our tests with other packages supplied in the ThirdParty
directory, namely cmake-2.4.6 and gcc-4.3.1. Execute the following:
+ cd $FOAM_INST_DIR/ThirdParty
+ rm -rf ParaView3.3-cvs/platforms
+ buildParaView3.3-cvs
The PV3FoamReader module is an OpenFOAM utility that can be compiled in the
usual manner as follows:
+ cd $FOAM_UTILITIES/postProcessing/graphics/PV3FoamReader
+ ./Allwclean
+ ./Allwmake
* Documentation
http://www.OpenFOAM.org/doc
......@@ -135,7 +183,5 @@
Linux users with a 64-bit machine may install either the OpenFOAM 32-bit
version (linux) or the OpenFOAM 64-bit version (linux64), or both. The 64-bit
is the default mode on a 64-bit machine. To use an installed 32-bit version,
the user must set the environment variable $WM_32 (to anything, e.g. "on")
before sourcing the etc/bashrc (or etc/cshrc) file. Unsetting WM_32 and
re-sourcing the etc/bashrc (or etc/cshrc) file will set up the user to run in
64-bit mode.
the user must set the environment variable WM_ARCH_OPTION to 32 before
sourcing the etc/bashrc (or etc/cshrc) file.
......@@ -6,7 +6,7 @@ lang="en" xml:lang="en">
<title><b>OpenFOAM README for version 1.5</b></title>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
<meta name="generator" content="Org-mode"/>
<meta name="generated" content="10 July 2008"/>
<meta name="generated" content="14 July 2008"/>
<meta name="author" content="OpenCFD Ltd."/>
<style type="text/css">
html {
......@@ -41,7 +41,11 @@ lang="en" xml:lang="en">
<div id="text-table-of-contents">
<ul>
<li><a href="#sec-1">1 Copyright</a></li>
<li><a href="#sec-2">2 System requirements</a></li>
<li><a href="#sec-2">2 System requirements</a>
<ul>
<li><a href="#sec-2.1">2.1 Qt (from http://trolltech.com/products/qt)</a></li>
</ul>
</li>
<li><a href="#sec-3">3 Installation</a>
<ul>
<li><a href="#sec-3.1">3.1 Installation in alternative locations</a></li>
......@@ -50,10 +54,11 @@ lang="en" xml:lang="en">
<li><a href="#sec-4">4 Building from Sources (Optional)</a></li>
<li><a href="#sec-5">5 Testing the installation</a></li>
<li><a href="#sec-6">6 Getting Started</a></li>
<li><a href="#sec-7">7 Documentation</a></li>
<li><a href="#sec-8">8 Help</a></li>
<li><a href="#sec-9">9 Reporting Bugs in OpenFOAM</a></li>
<li><a href="#sec-10">10 Running OpenFOAM in 32-bit mode on 64-bit machines</a></li>
<li><a href="#sec-7">7 Compiling Paraview 3.3 and the PV3FoamReader module</a></li>
<li><a href="#sec-8">8 Documentation</a></li>
<li><a href="#sec-9">9 Help</a></li>
<li><a href="#sec-10">10 Reporting Bugs in OpenFOAM</a></li>
<li><a href="#sec-11">11 Running OpenFOAM in 32-bit mode on 64-bit machines</a></li>
</ul>
</div>
</div>
......@@ -84,9 +89,68 @@ administrator.
</p>
<p>
If the user wishes to run OpenFOAM in 32/64-bit mode they should consult the
appendix "A. Running OpenFOAM in 32-bit mode".
section "Running OpenFOAM in 32-bit mode".
</p>
</div>
<div id="outline-container-2.1" class="outline-3">
<h3 id="sec-2.1">2.1 Qt (from <a href="http://trolltech.com/products/qt">http://trolltech.com/products/qt</a>)</h3>
<div id="text-2.1">
<p>The ParaView 3.3 visualisation package requires that Qt version 4.3.x MUST
be installed on the system. Earlier or more recent versions (4.2.x or
4.4.x) will NOT work. To check whether Qt4 is installed, and the version,
type:
</p><ul>
<li>
qmake &ndash;version
</li>
</ul>
<p>The ParaView binary executables in the ThirdParty distribution will only
work with PRECISELY the same version of Qt with which it was compiled. The
64-bit version of ParaView was compiled with Qt-4.3.1 (with openSuSE-10.3)
and the 32-bit version of ParaView was compiled with Qt-4.3.2 (with
ubuntu-7.10). If the user finds that a ParaView binary fails to run, then
it is almost certainly due to a conflict in compiled and installed Qt
versions and they will need to consult the section below on "Compiling
ParaView and the PV3FoamReader module."
</p>
<p>
The default versions of Qt used by some GNU/Linux releases are as follows.
</p><ul>
<li>
ubuntu-7.10: Version 4.3.2
</li>
<li>
ubuntu-8.04: Version 4.3.4
</li>
<li>
openSuSE-10.2: Version 4.2.1 - too old
</li>
<li>
openSuSE-10.3: Version 4.3.1
</li>
<li>
openSuSE-11.0: Version 4.4.0 - too new
</li>
</ul>
<p>Compilation and running of ParaView has been successful using the libraries
downloaded in the "libqt4-dev" package on ubuntu.
</p>
<p>
If you don't have an appropriate version of Qt installed you can download
the sources from TrollTech e.g.:
<a href="ftp://ftp.trolltech.com/qt/source/qt-x11-opensource-src-4.3.5.tar.bz2">ftp://ftp.trolltech.com/qt/source/qt-x11-opensource-src-4.3.5.tar.bz2</a>
and compile and install in /usr/local or some other location that does to
conflict with the pre-installed version.
</p>
</div>
</div>
</div>
......@@ -285,6 +349,9 @@ blockMesh
</li>
<li>
icoFoam
</li>
<li>
paraFoam
</li>
</ul>
......@@ -293,49 +360,86 @@ icoFoam
</div>
<div id="outline-container-7" class="outline-2">
<h2 id="sec-7">7 Documentation</h2>
<h2 id="sec-7">7 Compiling Paraview 3.3 and the PV3FoamReader module</h2>
<div id="text-7">
<p><a href="http://www.OpenFOAM.org/doc">http://www.OpenFOAM.org/doc</a>
</p>
<p>A version of Qt 4.3.x must be installed to compile ParaView. The compilation
is a fairly simple process using the supplied buildParaView3.3-cvs script that
has worked is our tests with other packages supplied in the ThirdParty
directory, namely cmake-2.4.6 and gcc-4.3.1. Execute the following:
</p><ul>
<li>
cd $FOAM_INST_DIR/ThirdParty
</li>
<li>
rm -rf ParaView3.3-cvs/platforms
</li>
<li>
buildParaView3.3-cvs
</li>
</ul>
<p>The PV3FoamReader module is an OpenFOAM utility that can be compiled in the
usual manner as follows:
</p><ul>
<li>
cd $FOAM_UTILITIES/postProcessing/graphics/PV3FoamReader
</li>
<li>
./Allwclean
</li>
<li>
./Allwmake
</li>
</ul>
</div>
</div>
<div id="outline-container-8" class="outline-2">
<h2 id="sec-8">8 Help</h2>
<h2 id="sec-8">8 Documentation</h2>
<div id="text-8">
<p><a href="http://www.OpenFOAM.org">http://www.OpenFOAM.org</a> <a href="http://www.OpenFOAM.org/discussion.html">http://www.OpenFOAM.org/discussion.html</a>
<p><a href="http://www.OpenFOAM.org/doc">http://www.OpenFOAM.org/doc</a>
</p>
</div>
</div>
<div id="outline-container-9" class="outline-2">
<h2 id="sec-9">9 Reporting Bugs in OpenFOAM</h2>
<h2 id="sec-9">9 Help</h2>
<div id="text-9">
<p><a href="http://www.OpenFOAM.org/bugs.html">http://www.OpenFOAM.org/bugs.html</a>
<p><a href="http://www.OpenFOAM.org">http://www.OpenFOAM.org</a> <a href="http://www.OpenFOAM.org/discussion.html">http://www.OpenFOAM.org/discussion.html</a>
</p>
</div>
</div>
<div id="outline-container-10" class="outline-2">
<h2 id="sec-10">10 Running OpenFOAM in 32-bit mode on 64-bit machines</h2>
<h2 id="sec-10">10 Reporting Bugs in OpenFOAM</h2>
<div id="text-10">
<p><a href="http://www.OpenFOAM.org/bugs.html">http://www.OpenFOAM.org/bugs.html</a>
</p>
</div>
</div>
<div id="outline-container-11" class="outline-2">
<h2 id="sec-11">11 Running OpenFOAM in 32-bit mode on 64-bit machines</h2>
<div id="text-11">
<p>Linux users with a 64-bit machine may install either the OpenFOAM 32-bit
version (linux) or the OpenFOAM 64-bit version (linux64), or both. The 64-bit
is the default mode on a 64-bit machine. To use an installed 32-bit version,
the user must set the environment variable $WM_32 (to anything, e.g. "on")
before sourcing the etc/bashrc (or etc/cshrc) file. Unsetting WM_32 and
re-sourcing the etc/bashrc (or etc/cshrc) file will set up the user to run in
64-bit mode.
before sourcing the etc/bashrc (or etc/cshrc) file.
</p></div>
</div>
<div id="postamble"><p class="date"> Date: 10 July 2008</p>
<div id="postamble"><p class="date"> Date: 14 July 2008</p>
<p>HTML generated by org-mode 6.05a in emacs 23<p>
</div></body>
</html>
......@@ -2,7 +2,7 @@
#
#+TITLE: *OpenFOAM release notes for version 1.5*
#+AUTHOR: OpenCFD Ltd.
#+DATE: 10 July 2008
#+DATE: 14 July 2008
#+LINK: http://www.opencfd.co.uk
#+OPTIONS: author:nil
......@@ -30,11 +30,11 @@
* C++ Compiler version
+ Released compiled with GCC 4.3.1, the latest version.
+ Built in support for the Intel C++ 10.? compiler (untested).
+ The choice of the compiler is controlled by the setting of the $WM\_COMPILER
and $WM\_COMPILER\_ARCH environment variables in the OpenFOAM-1.5/etc/bashrc
+ The choice of the compiler is controlled by the setting of the $WM_COMPILER
and $WM_COMPILER_ARCH environment variables in the OpenFOAM-1.5/etc/bashrc
(or cshrc) file.
+ The location of the installation of the compiler is controlled by the
$WM\_COMPILER\_INST environment variable in the OpenFOAM-1.5/etc/settings.sh
$WM_COMPILER_INST environment variable in the OpenFOAM-1.5/etc/settings.sh
(or settings.csh) file.
* Developments to solvers (applications)
......@@ -131,9 +131,9 @@
cloud types, accommodating kinematic, thermodynamic and reacting
applications, including coupling to the new radiation library. Sub-models
are added at the relevant level of physics, e.g.:
- kinematic: injection, wall interaction, drag, dispersion;
- thermo: heat transfer;
- reacting: reacting composition, mass transfer, surface reactions.
- kinematic: injection, wall interaction, drag, dispersion;
- thermo: heat transfer;
- reacting: reacting composition, mass transfer, surface reactions.
+ New single rotating frame of reference (SRF) library for rotating flow
applications, e.g. turbo-machinery.
+ New radiation library including the P1 model and associated Marshak boundary
......
......@@ -6,7 +6,7 @@ lang="en" xml:lang="en">
<title><b>OpenFOAM release notes for version 1.5</b></title>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
<meta name="generator" content="Org-mode"/>
<meta name="generated" content="10 July 2008"/>
<meta name="generated" content="14 July 2008"/>
<meta name="author" content="OpenCFD Ltd."/>
<style type="text/css">
html {
......@@ -423,7 +423,7 @@ benefits for larger number of processors.
</ul>
</div>
</div>
<div id="postamble"><p class="date"> Date: 10 July 2008</p>
<div id="postamble"><p class="date"> Date: 14 July 2008</p>
<p>HTML generated by org-mode 6.05a in emacs 23<p>
</div></body>
</html>
......@@ -47,10 +47,7 @@
thermof.set
(
i,
autoPtr<basicThermo>
(
basicThermo::New(fluidRegions[i])
).ptr()
basicThermo::New(fluidRegions[i]).ptr()
);
Info<< " Adding to rhof\n" << endl;
......
surfaceScalarField muf = twoPhaseProperties.muf();
surfaceScalarField muEff
(
"muEff",
twoPhaseProperties.muf()
+ fvc::interpolate(rho*turbulence->nut())
);
fvVectorMatrix UEqn
(
fvm::ddt(rho, U)
+ fvm::div(rhoPhi, U)
- fvm::laplacian(muf, U)
- (fvc::grad(U) & fvc::grad(muf))
//- fvc::div(muf*(fvc::interpolate(dev(fvc::grad(U))) & mesh.Sf()))
);
fvVectorMatrix UEqn
(
fvm::ddt(rho, U)
+ fvm::div(rhoPhi, U)
- fvm::laplacian(muEff, U)
- (fvc::grad(U) & fvc::grad(muEff))
//- fvc::div(muEff*(fvc::interpolate(dev(fvc::grad(U))) & mesh.Sf()))
);
UEqn.relax();
UEqn.relax();
if (momentumPredictor)
{
solve
if (momentumPredictor)
{
solve
(
UEqn
==
fvc::reconstruct
(
UEqn
==
fvc::reconstruct
(
(
fvc::interpolate(interface.sigmaK())*fvc::snGrad(gamma)
- ghf*fvc::snGrad(rho)
- fvc::snGrad(pd)
) * mesh.magSf()
)
);
}
fvc::interpolate(interface.sigmaK())*fvc::snGrad(gamma)
- ghf*fvc::snGrad(rho)
- fvc::snGrad(pd)
)*mesh.magSf()
)
);
}
......@@ -154,100 +154,6 @@ void insertDuplicateMerge
}
// Get points on the inside of baffle regions.
labelList getNonManifoldPointsInsideBaffles
(
const primitiveMesh& mesh,
const labelList& baffleFaces
)
{
// Get points to split. These are the edges of the duplicate-faces
// region
indirectPrimitivePatch dupPatch
(
IndirectList<face>(mesh.faces(), baffleFaces),
mesh.points()
);
labelHashSet insideSet(dupPatch.nPoints());
// Pick up all points but the ones on the edge of the region.
// Edge of the region since has two faces along edge.
forAll(dupPatch.meshPoints(), i)
{
insideSet.insert(dupPatch.meshPoints()[i]);
}
forAll(dupPatch.edgeFaces(), edgeI)
{
const labelList& eFaces = dupPatch.edgeFaces()[edgeI];
if (eFaces.size() == 2)
{
const edge& e = dupPatch.edges()[edgeI];
insideSet.erase(dupPatch.meshPoints()[e[0]]);
insideSet.erase(dupPatch.meshPoints()[e[1]]);
}
}
return insideSet.toc();
}
// Find all non-manifold points on the outside of the mesh.
labelList getAllNonManifoldPoints
(
const polyMesh& mesh,
const labelList& boundaryFaces
)
{
indirectPrimitivePatch allOutside
(
IndirectList<face>(mesh.faces(), boundaryFaces),
mesh.points()
);
// All points on non-manifold edges.
boolList nonManifoldPoint(mesh.nPoints(), false);
forAll(allOutside.meshPoints(), localPointI)
{
label pointI = allOutside.meshPoints()[localPointI];
if (!localPointRegion::isSingleCellRegion(mesh, pointI))
{
nonManifoldPoint[pointI] = true;
}
}
// Splittable only if all processors decide to split it.
syncTools::syncPointList
(
mesh,
nonManifoldPoint,
andEqOp<bool>(), // combineop
true, // null value
false // no separation
);
// Extract 'true' elements
labelList nonManifPoints(findIndices(nonManifoldPoint, true));
// Write to pointSet for ease of postprocessing
pointSet nonManifPointSet(mesh, "nonManifoldPoints", nonManifPoints);
Pout<< "Writing " << nonManifPointSet.size()
<< " non-manif points to " << nonManifPointSet.objectPath()
<< endl;
nonManifPointSet.write();
return nonManifPoints;
}
int main(int argc, char *argv[])
{
argList::validOptions.insert("split", "");
......@@ -316,26 +222,14 @@ int main(int argc, char *argv[])
<< ", i.e. duplicating points internal to duplicate surfaces."
<< nl << endl;
labelList nonManifPoints
(
getAllNonManifoldPoints
(
mesh,
boundaryFaces
)
);
// Analyse which points need to be duplicated
localPointRegion regionSide(mesh, nonManifPoints);
localPointRegion regionSide(mesh);
// Point duplication engine
duplicatePoints pointDuplicator(mesh);
pointDuplicator.setRefinement
(
nonManifPoints,
regionSide,
meshMod
);
// Insert topo changes
pointDuplicator.setRefinement(regionSide, meshMod);
}
else
{
......
......@@ -762,7 +762,7 @@ int main(int argc, char *argv[])
Pout<< "Please type 'help', 'quit' or a set command after prompt." << endl;
bool ok = false;
bool ok = true;
FatalError.throwExceptions();
FatalIOError.throwExceptions();
......
......@@ -64,7 +64,7 @@ SourceFiles
#include "fileName.H"
#include "volPointInterpolation.H"
#include "stringList.H"
#include "primitivePatch.H"
// * * * * * * * * * * * * * Forward Declarations * * * * * * * * * * * * * //
......@@ -449,6 +449,7 @@ private:
(
const fvMesh&,
const volPointInterpolation& pInterp,
const PtrList<PrimitivePatchInterpolation<primitivePatch> >&,
const IOobjectList& objects,
vtkDataArraySelection* fieldSelection,
vtkMultiBlockDataSet* output
......
......@@ -45,6 +45,7 @@ void Foam::vtkPV3Foam::convertVolFields
(
const fvMesh& mesh,
const volPointInterpolation& pInterp,
const PtrList<PrimitivePatchInterpolation<primitivePatch> >& ppInterpList,
const IOobjectList& objects,
vtkDataArraySelection *fieldSelection,
vtkMultiBlockDataSet* output
......@@ -153,7 +154,6 @@ void Foam::vtkPV3Foam::convertVolFields
tf.boundaryField()[patchId]
);