Merge remote branch 'OpenCFD/master' into olesenm

This commit is contained in:
Mark Olesen
2011-01-27 11:22:14 +01:00
26 changed files with 254 additions and 115 deletions

View File

@ -1,6 +1,9 @@
#!/bin/sh #!/bin/sh
cd ${0%/*} || exit 1 # run from this directory cd ${0%/*} || exit 1 # run from this directory
makeOption=libso
[ $# -ge 1 ] && makeOption=$1
wmakeCheckPwd "$WM_PROJECT_DIR/src" || { wmakeCheckPwd "$WM_PROJECT_DIR/src" || {
echo "Error: Current directory is not \$WM_PROJECT_DIR/src" echo "Error: Current directory is not \$WM_PROJECT_DIR/src"
echo " The environment variables are inconsistent with the installation." echo " The environment variables are inconsistent with the installation."
@ -21,53 +24,53 @@ wmakePrintBuild -check || /bin/rm -f OpenFOAM/Make/*/global.? 2>/dev/null
wmakeLnInclude OpenFOAM wmakeLnInclude OpenFOAM
wmakeLnInclude OSspecific/${WM_OSTYPE:-POSIX} wmakeLnInclude OSspecific/${WM_OSTYPE:-POSIX}
Pstream/Allwmake Pstream/Allwmake $*
OSspecific/${WM_OSTYPE:-POSIX}/Allwmake OSspecific/${WM_OSTYPE:-POSIX}/Allwmake
wmake libso OpenFOAM wmake $makeOption OpenFOAM
wmake libso fileFormats wmake $makeOption fileFormats
wmake libso triSurface wmake $makeOption triSurface
wmake libso meshTools wmake $makeOption meshTools
wmake libso edgeMesh wmake $makeOption edgeMesh
wmake libso surfMesh wmake $makeOption surfMesh
# Decomposition methods needed by dummyThirdParty # Decomposition methods needed by dummyThirdParty
parallel/decompose/AllwmakeLnInclude parallel/decompose/AllwmakeLnInclude
# dummyThirdParty (dummy metisDecomp, scotchDecomp etc) needed by e.g. meshTools # dummyThirdParty (dummy metisDecomp, scotchDecomp etc) needed by e.g. meshTools
dummyThirdParty/Allwmake dummyThirdParty/Allwmake $*
wmake libso lagrangian/basic wmake $makeOption lagrangian/basic
wmake libso finiteVolume wmake $makeOption finiteVolume
wmake libso genericPatchFields wmake $makeOption genericPatchFields
# Build the proper scotchDecomp, metisDecomp etc. # Build the proper scotchDecomp, metisDecomp etc.
parallel/Allwmake parallel/Allwmake $*
wmake libso conversion wmake $makeOption conversion
wmake libso sampling wmake $makeOption sampling
wmake libso dynamicMesh wmake $makeOption dynamicMesh
wmake libso dynamicFvMesh wmake $makeOption dynamicFvMesh
wmake libso topoChangerFvMesh wmake $makeOption topoChangerFvMesh
wmake libso ODE wmake $makeOption ODE
wmake libso randomProcesses wmake $makeOption randomProcesses
thermophysicalModels/Allwmake thermophysicalModels/Allwmake $*
transportModels/Allwmake transportModels/Allwmake $*
turbulenceModels/Allwmake turbulenceModels/Allwmake $*
wmake libso surfaceFilmModels wmake $makeOption surfaceFilmModels
lagrangian/Allwmake lagrangian/Allwmake $*
postProcessing/Allwmake postProcessing/Allwmake $*
mesh/Allwmake mesh/Allwmake $*
wmake libso errorEstimation wmake $makeOption errorEstimation
fvAgglomerationMethods/Allwmake fvAgglomerationMethods/Allwmake $*
wmake libso fvMotionSolver wmake $makeOption fvMotionSolver
wmake libso engine wmake $makeOption engine
# ----------------------------------------------------------------- end-of-file # ----------------------------------------------------------------- end-of-file

View File

@ -2,7 +2,7 @@
========= | ========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd. \\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -24,7 +24,7 @@ License
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
#include "Time.H" #include "Time.H"
#include "PstreamReduceOps.H" #include "Pstream.H"
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //

View File

@ -222,7 +222,7 @@ void Foam::mapDistribute::printLayout(Ostream& os) const
localSize = maxIndex[Pstream::myProcNo()]+1; localSize = maxIndex[Pstream::myProcNo()]+1;
} }
os << "Layout:" << endl os << "Layout: (constructSize:" << constructSize_ << ")" << endl
<< "local (processor " << Pstream::myProcNo() << "):" << endl << "local (processor " << Pstream::myProcNo() << "):" << endl
<< " start : 0" << endl << " start : 0" << endl
<< " size : " << localSize << endl; << " size : " << localSize << endl;

View File

@ -966,8 +966,6 @@ void Foam::mapDistribute::reverseDistribute
const bool dummyTransform const bool dummyTransform
) const ) const
{ {
fld.setSize(constructSize);
if (dummyTransform) if (dummyTransform)
{ {
applyDummyInverseTransforms(fld); applyDummyInverseTransforms(fld);
@ -1024,8 +1022,6 @@ void Foam::mapDistribute::reverseDistribute
const bool dummyTransform const bool dummyTransform
) const ) const
{ {
fld.setSize(constructSize);
if (dummyTransform) if (dummyTransform)
{ {
applyDummyInverseTransforms(fld); applyDummyInverseTransforms(fld);

View File

@ -2,7 +2,10 @@
cd ${0%/*} || exit 1 # run from this directory cd ${0%/*} || exit 1 # run from this directory
set -x set -x
wmake libso dummy makeOption=libso
[ $# -ge 1 ] && makeOption=$1
wmake $makeOption dummy
case "$WM_MPLIB" in case "$WM_MPLIB" in
*MPI*) *MPI*)
@ -11,11 +14,11 @@ case "$WM_MPLIB" in
echo "Note: ignore spurious warnings about missing mpicxx.h headers" echo "Note: ignore spurious warnings about missing mpicxx.h headers"
set -x set -x
# force compilation into qualified directory # force compilation into qualified directory
WM_OPTIONS=${WM_OPTIONS}$WM_MPLIB wmake libso mpi WM_OPTIONS=${WM_OPTIONS}$WM_MPLIB wmake $makeOption mpi
;; ;;
#GAMMA) #GAMMA)
# wmake libso gamma # wmake $makeOption gamma
# ;; # ;;
esac esac

View File

@ -2,6 +2,9 @@
cd ${0%/*} || exit 1 # run from this directory cd ${0%/*} || exit 1 # run from this directory
set -x set -x
wmake libso makeOption=libso
[ $# -ge 1 ] && makeOption=$1
wmake $makeOption
# ----------------------------------------------------------------- end-of-file # ----------------------------------------------------------------- end-of-file

View File

@ -2,10 +2,13 @@
cd ${0%/*} || exit 1 # run from this directory cd ${0%/*} || exit 1 # run from this directory
set -x set -x
wmake libso scotchDecomp makeOption=libso
wmake libso ptscotchDecomp [ $# -ge 1 ] && makeOption=$1
wmake libso metisDecomp
wmake libso MGridGen wmake $makeOption scotchDecomp
wmake $makeOption ptscotchDecomp
wmake $makeOption metisDecomp
wmake $makeOption MGridGen
# ----------------------------------------------------------------- end-of-file # ----------------------------------------------------------------- end-of-file

View File

@ -120,7 +120,7 @@ void volPointInterpolation::pushUntransformedData
const labelList& slavePoints = slaves[i]; const labelList& slavePoints = slaves[i];
// Copy master data to slave slots // Copy master data to slave slots
forAll(slaves, j) forAll(slavePoints, j)
{ {
elems[slavePoints[j]] = elems[i]; elems[slavePoints[j]] = elems[i];
} }

View File

@ -2,6 +2,9 @@
cd ${0%/*} || exit 1 # run from this directory cd ${0%/*} || exit 1 # run from this directory
set -x set -x
wmake libso MGridGenGamgAgglomeration makeOption=libso
[ $# -ge 1 ] && makeOption=$1
wmake $makeOption MGridGenGamgAgglomeration
# ----------------------------------------------------------------- end-of-file # ----------------------------------------------------------------- end-of-file

View File

@ -2,13 +2,16 @@
cd ${0%/*} || exit 1 # run from this directory cd ${0%/*} || exit 1 # run from this directory
set -x set -x
wmake libso basic makeOption=libso
wmake libso solidParticle [ $# -ge 1 ] && makeOption=$1
wmake libso intermediate
wmake libso dieselSpray
wmake libso dsmc
wmake libso coalCombustion
molecularDynamics/Allwmake wmake $makeOption basic
wmake $makeOption solidParticle
wmake $makeOption intermediate
wmake $makeOption dieselSpray
wmake $makeOption dsmc
wmake $makeOption coalCombustion
molecularDynamics/Allwmake $*
# ----------------------------------------------------------------- end-of-file # ----------------------------------------------------------------- end-of-file

View File

@ -2,8 +2,11 @@
cd ${0%/*} || exit 1 # run from this directory cd ${0%/*} || exit 1 # run from this directory
set -x set -x
wmake libso potential makeOption=libso
wmake libso molecularMeasurements [ $# -ge 1 ] && makeOption=$1
wmake libso molecule
wmake $makeOption potential
wmake $makeOption molecularMeasurements
wmake $makeOption molecule
# ----------------------------------------------------------------- end-of-file # ----------------------------------------------------------------- end-of-file

View File

@ -2,7 +2,10 @@
cd ${0%/*} || exit 1 # run from this directory cd ${0%/*} || exit 1 # run from this directory
set -x set -x
wmake libso autoMesh makeOption=libso
wmake libso blockMesh [ $# -ge 1 ] && makeOption=$1
wmake $makeOption autoMesh
wmake $makeOption blockMesh
# ----------------------------------------------------------------- end-of-file # ----------------------------------------------------------------- end-of-file

View File

@ -2,9 +2,12 @@
cd ${0%/*} || exit 1 # run from this directory cd ${0%/*} || exit 1 # run from this directory
set -x set -x
decompose/Allwmake makeOption=libso
reconstruct/Allwmake [ $# -ge 1 ] && makeOption=$1
wmake libso distributed
decompose/Allwmake $*
reconstruct/Allwmake $*
wmake $makeOption distributed
# ----------------------------------------------------------------- end-of-file # ----------------------------------------------------------------- end-of-file

View File

@ -1,6 +1,9 @@
#!/bin/sh #!/bin/sh
cd ${0%/*} || exit 1 # run from this directory cd ${0%/*} || exit 1 # run from this directory
makeOption=libso
[ $# -ge 1 ] && makeOption=$1
# get SCOTCH_VERSION, SCOTCH_ARCH_PATH # get SCOTCH_VERSION, SCOTCH_ARCH_PATH
settings=`$WM_PROJECT_DIR/bin/foamEtcFile apps/scotch/bashrc` settings=`$WM_PROJECT_DIR/bin/foamEtcFile apps/scotch/bashrc`
if [ -f "$settings" ] if [ -f "$settings" ]
@ -16,17 +19,17 @@ set -x
wmakeLnInclude decompositionMethods wmakeLnInclude decompositionMethods
wmake libso scotchDecomp wmake $makeOption scotchDecomp
if [ -d "$FOAM_LIBBIN/$FOAM_MPI" ] if [ -d "$FOAM_LIBBIN/$FOAM_MPI" ]
then then
( (
WM_OPTIONS=${WM_OPTIONS}$WM_MPLIB WM_OPTIONS=${WM_OPTIONS}$WM_MPLIB
wmake libso ptscotchDecomp wmake $makeOption ptscotchDecomp
) )
fi fi
wmake libso decompositionMethods wmake $makeOption decompositionMethods
# ----------------------------------------------------------------- end-of-file # ----------------------------------------------------------------- end-of-file

View File

@ -2,7 +2,10 @@
cd ${0%/*} || exit 1 # run from this directory cd ${0%/*} || exit 1 # run from this directory
set -x set -x
wmake libso reconstruct makeOption=libso
[ $# -ge 1 ] && makeOption=$1
wmake $makeOption reconstruct
# ----------------------------------------------------------------- end-of-file # ----------------------------------------------------------------- end-of-file

View File

@ -2,9 +2,12 @@
cd ${0%/*} || exit 1 # run from this directory cd ${0%/*} || exit 1 # run from this directory
set -x set -x
wmake libo postCalc makeOption=libso
wmake libso foamCalcFunctions [ $# -ge 1 ] && makeOption=$1
functionObjects/Allwmake wmake libo postCalc
wmake $makeOption foamCalcFunctions
functionObjects/Allwmake $*
# ----------------------------------------------------------------- end-of-file # ----------------------------------------------------------------- end-of-file

View File

@ -2,11 +2,14 @@
cd ${0%/*} || exit 1 # run from this directory cd ${0%/*} || exit 1 # run from this directory
set -x set -x
wmake libso field makeOption=libso
wmake libso forces [ $# -ge 1 ] && makeOption=$1
wmake libso IO
wmake libso utilities wmake $makeOption field
wmake libso jobControl wmake $makeOption forces
wmake libso systemCall wmake $makeOption IO
wmake $makeOption utilities
wmake $makeOption jobControl
wmake $makeOption systemCall
# ----------------------------------------------------------------- end-of-file # ----------------------------------------------------------------- end-of-file

View File

@ -76,6 +76,63 @@ namespace Foam
} }
// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * //
const Foam::indexedOctree<Foam::treeDataFace>&
Foam::sampledTriSurfaceMesh::nonCoupledboundaryTree() const
{
// Variant of meshSearch::boundaryTree() that only does non-coupled
// boundary faces.
if (!boundaryTreePtr_.valid())
{
// all non-coupled boundary faces (not just walls)
const polyBoundaryMesh& patches = mesh().boundaryMesh();
labelList bndFaces(mesh().nFaces()-mesh().nInternalFaces());
label bndI = 0;
forAll(patches, patchI)
{
const polyPatch& pp = patches[patchI];
if (!pp.coupled())
{
forAll(pp, i)
{
bndFaces[bndI++] = pp.start()+i;
}
}
}
bndFaces.setSize(bndI);
treeBoundBox overallBb(mesh().points());
Random rndGen(123456);
overallBb = overallBb.extend(rndGen, 1E-4);
overallBb.min() -= point(ROOTVSMALL, ROOTVSMALL, ROOTVSMALL);
overallBb.max() += point(ROOTVSMALL, ROOTVSMALL, ROOTVSMALL);
boundaryTreePtr_.reset
(
new indexedOctree<treeDataFace>
(
treeDataFace // all information needed to search faces
(
false, // do not cache bb
mesh(),
bndFaces // boundary faces only
),
overallBb, // overall search domain
8, // maxLevel
10, // leafsize
3.0 // duplicity
)
);
}
return boundaryTreePtr_();
}
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam::sampledTriSurfaceMesh::sampledTriSurfaceMesh Foam::sampledTriSurfaceMesh::sampledTriSurfaceMesh
@ -159,6 +216,8 @@ bool Foam::sampledTriSurfaceMesh::expire()
sampledSurface::clearGeom(); sampledSurface::clearGeom();
MeshStorage::clear(); MeshStorage::clear();
boundaryTreePtr_.clear();
sampleElements_.clear(); sampleElements_.clear();
samplePoints_.clear(); samplePoints_.clear();
@ -224,7 +283,10 @@ bool Foam::sampledTriSurfaceMesh::update()
{ {
// Search for nearest boundaryFace // Search for nearest boundaryFace
const indexedOctree<treeDataFace>& bTree = meshSearcher.boundaryTree(); ////- Search on all (including coupled) boundary faces
//const indexedOctree<treeDataFace>& bTree = meshSearcher.boundaryTree()
//- Search on all non-coupled boundary faces
const indexedOctree<treeDataFace>& bTree = nonCoupledboundaryTree();
forAll(fc, triI) forAll(fc, triI)
{ {

View File

@ -28,12 +28,31 @@ Description
A sampledSurface from a triSurfaceMesh. It samples on the points/triangles A sampledSurface from a triSurfaceMesh. It samples on the points/triangles
of the triSurface. of the triSurface.
It samples using the cell nearest to the triangle centre so does - it either samples cells or (non-coupled) boundary faces
not check the cell the centre is actually in ...
In parallel every processor just operates on the part of the surface - 4 different modes:
where the face centres are inside the mesh. It is then up to the - source=cells, interpolate=false:
caller to stitch the partial surfaces together. finds per triangle centre the nearest cell centre and uses its value
- source=cells, interpolate=true
finds per triangle centre the nearest cell centre.
Per surface point checks if this nearest cell is the one containing
point; otherwise projects the point onto the nearest point on
the boundary of the cell (to make sure interpolateCellPoint
gets a valid location)
- source=boundaryFaces, interpolate=false:
finds per triangle centre the nearest point on the boundary
(uncoupled faces only) and uses the value (or 0 if the nearest
is on an empty boundary)
- source=boundaryFaces, interpolate=true:
finds per triangle centre the nearest point on the boundary
(uncoupled faces only).
Per surface point projects the point onto this boundary face
(to make sure interpolateCellPoint gets a valid location)
- since it finds a nearest per triangle each triangle is guaranteed
to be on one processor only. So after stitching (by sampledSurfaces)
the original surface should be complete.
SourceFiles SourceFiles
sampledTriSurfaceMesh.C sampledTriSurfaceMesh.C
@ -52,6 +71,8 @@ SourceFiles
namespace Foam namespace Foam
{ {
class treeDataFace;
/*---------------------------------------------------------------------------*\ /*---------------------------------------------------------------------------*\
Class sampledTriSurfaceMesh Declaration Class sampledTriSurfaceMesh Declaration
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
@ -88,6 +109,9 @@ private:
//- Track if the surface needs an update //- Track if the surface needs an update
mutable bool needsUpdate_; mutable bool needsUpdate_;
//- Search tree for all non-coupled boundary faces
mutable autoPtr<indexedOctree<treeDataFace> > boundaryTreePtr_;
//- From local surface triangle to mesh cell/face. //- From local surface triangle to mesh cell/face.
labelList sampleElements_; labelList sampleElements_;
@ -97,6 +121,9 @@ private:
// Private Member Functions // Private Member Functions
//- Get tree of all non-coupled boundary faces
const indexedOctree<treeDataFace>& nonCoupledboundaryTree() const;
//- sample field on faces //- sample field on faces
template <class Type> template <class Type>
tmp<Field<Type> > sampleField tmp<Field<Type> > sampleField

View File

@ -2,27 +2,30 @@
cd ${0%/*} || exit 1 # run from this directory cd ${0%/*} || exit 1 # run from this directory
set -x set -x
wmake libso specie makeOption=libso
wmake libso solid [ $# -ge 1 ] && makeOption=$1
wmake libso thermophysicalFunctions
wmake libso liquids
wmake libso liquidMixture
wmake libso pointSolids
wmake libso pointSolidMixture
wmake libso basic wmake $makeOption specie
wmake libso reactionThermo wmake $makeOption solid
wmake libso laminarFlameSpeed wmake $makeOption thermophysicalFunctions
wmake libso chemistryModel wmake $makeOption liquids
wmake libso pdfs wmake $makeOption liquidMixture
wmake libso radiation wmake $makeOption pointSolids
wmake libso barotropicCompressibilityModel wmake $makeOption pointSolidMixture
wmake libso thermalPorousZone
wmake libso SLGThermo wmake $makeOption basic
wmake $makeOption reactionThermo
wmake $makeOption laminarFlameSpeed
wmake $makeOption chemistryModel
wmake $makeOption pdfs
wmake $makeOption radiation
wmake $makeOption barotropicCompressibilityModel
wmake $makeOption thermalPorousZone
wmake $makeOption SLGThermo
# Should be combined with solids&solidMixture # Should be combined with solids&solidMixture
wmake libso basicSolidThermo wmake $makeOption basicSolidThermo
# ----------------------------------------------------------------- end-of-file # ----------------------------------------------------------------- end-of-file

View File

@ -2,9 +2,12 @@
cd ${0%/*} || exit 1 # run from this directory cd ${0%/*} || exit 1 # run from this directory
set -x set -x
wmake libso incompressible makeOption=libso
wmake libso interfaceProperties [ $# -ge 1 ] && makeOption=$1
wmake libso twoPhaseInterfaceProperties
# wmake libso compressible wmake $makeOption incompressible
wmake $makeOption interfaceProperties
wmake $makeOption twoPhaseInterfaceProperties
# wmake $makeOption compressible
# ----------------------------------------------------------------- end-of-file # ----------------------------------------------------------------- end-of-file

View File

@ -2,7 +2,7 @@
========= | ========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd. \\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -146,7 +146,7 @@ public:
return nu_; return nu_;
} }
//- Return the face-interpolated dynamic laminar viscosity //- Return the face-interpolated kinematic laminar viscosity
tmp<surfaceScalarField> nuf() const; tmp<surfaceScalarField> nuf() const;
//- Correct the laminar viscosity //- Correct the laminar viscosity

View File

@ -2,8 +2,8 @@
cd ${0%/*} || exit 1 # run from this directory cd ${0%/*} || exit 1 # run from this directory
set -x set -x
LES/Allwmake LES/Allwmake $*
incompressible/Allwmake incompressible/Allwmake $*
compressible/Allwmake compressible/Allwmake $*
# ----------------------------------------------------------------- end-of-file # ----------------------------------------------------------------- end-of-file

View File

@ -2,9 +2,12 @@
cd ${0%/*} || exit 1 # run from this directory cd ${0%/*} || exit 1 # run from this directory
set -x set -x
makeOption=libso
[ $# -ge 1 ] && makeOption=$1
wmakeLnInclude ../incompressible/LES wmakeLnInclude ../incompressible/LES
wmake libso LESfilters wmake $makeOption LESfilters
wmake libso LESdeltas wmake $makeOption LESdeltas
# ----------------------------------------------------------------- end-of-file # ----------------------------------------------------------------- end-of-file

View File

@ -2,8 +2,11 @@
cd ${0%/*} || exit 1 # run from this directory cd ${0%/*} || exit 1 # run from this directory
set -x set -x
wmake libso turbulenceModel makeOption=libso
wmake libso RAS [ $# -ge 1 ] && makeOption=$1
wmake libso LES
wmake $makeOption turbulenceModel
wmake $makeOption RAS
wmake $makeOption LES
# ----------------------------------------------------------------- end-of-file # ----------------------------------------------------------------- end-of-file

View File

@ -2,8 +2,11 @@
cd ${0%/*} || exit 1 # run from this directory cd ${0%/*} || exit 1 # run from this directory
set -x set -x
wmake libso turbulenceModel makeOption=libso
wmake libso RAS [ $# -ge 1 ] && makeOption=$1
wmake libso LES
wmake $makeOption turbulenceModel
wmake $makeOption RAS
wmake $makeOption LES
# ----------------------------------------------------------------- end-of-file # ----------------------------------------------------------------- end-of-file