From 0c0e92396eb00d591b629615207303b11288c62a Mon Sep 17 00:00:00 2001 From: Henry Date: Fri, 31 Jan 2014 10:06:26 +0000 Subject: [PATCH 01/21] tutorials/multiphase/interFoam/les/nozzleFlow2D: update scripts --- tutorials/multiphase/interFoam/les/nozzleFlow2D/Allclean | 1 - tutorials/multiphase/interFoam/les/nozzleFlow2D/Allrun | 1 - 2 files changed, 2 deletions(-) diff --git a/tutorials/multiphase/interFoam/les/nozzleFlow2D/Allclean b/tutorials/multiphase/interFoam/les/nozzleFlow2D/Allclean index e7f7e3082b..6b3920f676 100755 --- a/tutorials/multiphase/interFoam/les/nozzleFlow2D/Allclean +++ b/tutorials/multiphase/interFoam/les/nozzleFlow2D/Allclean @@ -6,6 +6,5 @@ cd ${0%/*} || exit 1 # run from this directory cleanCase rm system/topoSetDict > /dev/null 2>&1 -cp constant/polyMesh/boundary.org constant/polyMesh/boundary # ----------------------------------------------------------------- end-of-file diff --git a/tutorials/multiphase/interFoam/les/nozzleFlow2D/Allrun b/tutorials/multiphase/interFoam/les/nozzleFlow2D/Allrun index bdd17ed033..a04c90ca8d 100755 --- a/tutorials/multiphase/interFoam/les/nozzleFlow2D/Allrun +++ b/tutorials/multiphase/interFoam/les/nozzleFlow2D/Allrun @@ -30,7 +30,6 @@ while [ "$i" -lt 3 ] ; do rm -rf 1e-08 i=`expr $i + 1` done -cp constant/polyMesh/boundary.org constant/polyMesh/boundary runApplication $application From f2c6dc97a2ac62e3c87317d214f30a74a064d347 Mon Sep 17 00:00:00 2001 From: mattijs Date: Fri, 31 Jan 2014 10:34:00 +0000 Subject: [PATCH 02/21] BUG: viewFactorsGen: unused variables #1146 --- .../viewFactorsGen/viewFactorsGen.C | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/applications/utilities/preProcessing/viewFactorsGen/viewFactorsGen.C b/applications/utilities/preProcessing/viewFactorsGen/viewFactorsGen.C index 3de11eec4d..e374e1969a 100644 --- a/applications/utilities/preProcessing/viewFactorsGen/viewFactorsGen.C +++ b/applications/utilities/preProcessing/viewFactorsGen/viewFactorsGen.C @@ -457,8 +457,9 @@ int main(int argc, char *argv[]) } } - // Collect remote Cf and Sf on coarse mesh - // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + // Distribute local coarse Cf and Sf for shooting rays + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ List remoteCoarseCf(Pstream::nProcs()); List remoteCoarseSf(Pstream::nProcs()); @@ -468,19 +469,6 @@ int main(int argc, char *argv[]) remoteCoarseSf[Pstream::myProcNo()] = localCoarseSf; remoteCoarseAgg[Pstream::myProcNo()] = localAgg; - - // Collect remote Cf and Sf on fine mesh - // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - - List remoteFineCf(Pstream::nProcs()); - List remoteFineSf(Pstream::nProcs()); - - remoteCoarseCf[Pstream::myProcNo()] = localCoarseCf; - remoteCoarseSf[Pstream::myProcNo()] = localCoarseSf; - - // Distribute local coarse Cf and Sf for shooting rays - // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Pstream::gatherList(remoteCoarseCf); Pstream::scatterList(remoteCoarseCf); Pstream::gatherList(remoteCoarseSf); From 4b8cb96f71fab24e390f0afbda9859233cc7d6a7 Mon Sep 17 00:00:00 2001 From: mattijs Date: Fri, 31 Jan 2014 10:34:57 +0000 Subject: [PATCH 03/21] ENH: distributedTriSurfaceMesh: disable fileModificationChecking when construct from dictionary --- .../distributedTriSurfaceMesh.C | 66 +++++++++++++------ 1 file changed, 45 insertions(+), 21 deletions(-) diff --git a/src/parallel/distributed/distributedTriSurfaceMesh/distributedTriSurfaceMesh.C b/src/parallel/distributed/distributedTriSurfaceMesh/distributedTriSurfaceMesh.C index 95d0e887b6..1a636b1cad 100644 --- a/src/parallel/distributed/distributedTriSurfaceMesh/distributedTriSurfaceMesh.C +++ b/src/parallel/distributed/distributedTriSurfaceMesh/distributedTriSurfaceMesh.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -74,26 +74,6 @@ const Foam::NamedEnum // Read my additional data from the dictionary bool Foam::distributedTriSurfaceMesh::read() { - - if - ( - Pstream::parRun() - && - ( - regIOobject::fileModificationChecking == timeStampMaster - || regIOobject::fileModificationChecking == inotifyMaster - ) - ) - { - FatalErrorIn("Foam::distributedTriSurfaceMesh::read()") - << " distributedTriSurfaceMesh is being constructed\n" - << " using 'timeStampMaster' or 'inotifyMaster.'\n" - << " Modify the entry fileModificationChecking\n" - << " in the etc/controlDict.\n" - << " Use 'timeStamp' instead." - << exit(FatalError); - } - // Get bb of all domains. procBb_.setSize(Pstream::nProcs()); @@ -1388,6 +1368,28 @@ Foam::distributedTriSurfaceMesh::distributedTriSurfaceMesh(const IOobject& io) ) ) { + if + ( + Pstream::parRun() + && ( + dict_.readOpt() == IOobject::MUST_READ + || dict_.readOpt() == IOobject::MUST_READ_IF_MODIFIED + ) + && ( + regIOobject::fileModificationChecking == timeStampMaster + || regIOobject::fileModificationChecking == inotifyMaster + ) + ) + { + FatalErrorIn("Foam::distributedTriSurfaceMesh::read()") + << " distributedTriSurfaceMesh is being constructed\n" + << " using 'timeStampMaster' or 'inotifyMaster.'\n" + << " Modify the entry fileModificationChecking\n" + << " in the etc/controlDict.\n" + << " Use 'timeStamp' instead." + << exit(FatalError); + } + read(); reduce(bounds().min(), minOp()); @@ -1450,6 +1452,28 @@ Foam::distributedTriSurfaceMesh::distributedTriSurfaceMesh ) ) { + if + ( + Pstream::parRun() + && ( + dict_.readOpt() == IOobject::MUST_READ + || dict_.readOpt() == IOobject::MUST_READ_IF_MODIFIED + ) + && ( + regIOobject::fileModificationChecking == timeStampMaster + || regIOobject::fileModificationChecking == inotifyMaster + ) + ) + { + FatalErrorIn("Foam::distributedTriSurfaceMesh::read()") + << " distributedTriSurfaceMesh is being constructed\n" + << " using 'timeStampMaster' or 'inotifyMaster.'\n" + << " Modify the entry fileModificationChecking\n" + << " in the etc/controlDict.\n" + << " Use 'timeStamp' instead." + << exit(FatalError); + } + read(); reduce(bounds().min(), minOp()); From ac95756498576ecdbe2d81c5187007e83e9d8cf9 Mon Sep 17 00:00:00 2001 From: mattijs Date: Fri, 31 Jan 2014 10:52:07 +0000 Subject: [PATCH 04/21] NEH: multiRegionHeaterRadiation: parallel running --- .../multiRegionHeaterRadiation/Allrun | 41 +++--------------- .../Allrun-parallel | 43 +++++++++++++++++++ .../multiRegionHeaterRadiation/Allrun.pre | 24 +++++++++++ 3 files changed, 73 insertions(+), 35 deletions(-) create mode 100755 tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/Allrun-parallel create mode 100755 tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/Allrun.pre diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/Allrun b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/Allrun index ecc9459467..11d0d952ac 100755 --- a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/Allrun +++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/Allrun @@ -5,56 +5,27 @@ cd ${0%/*} || exit 1 # run from this directory # Source tutorial run functions . $WM_PROJECT_DIR/bin/tools/RunFunctions -runApplication blockMesh -runApplication topoSet -runApplication splitMeshRegions -cellZones -overwrite -# remove fluid fields from solid regions (important for post-processing) -for i in heater leftSolid rightSolid -do - rm -f 0*/$i/{rho,mut,alphat,epsilon,k,U,p_rgh,Qr,G,IDefault} -done - -for i in bottomAir topAir heater leftSolid rightSolid -do - changeDictionary -region $i > log.changeDictionary.$i 2>&1 -done +# Setup case +./Allrun.pre +#-- Run on single processor + +# Agglomerate patch faces for i in bottomAir topAir do faceAgglomerate -region $i -dict constant/viewFactorsDict > log.faceAgglomerate.$i 2>&1 done +# Generate view factors for i in bottomAir topAir do viewFactorsGen -region $i > log.viewFactorsGen.$i 2>&1 done - - -#-- Run on single processor runApplication `getApplication` -## Run in parallel -## Decompose -#runApplication decomposePar -allRegions -# -#for i in bottomAir topAir -#do -# mpirun -np 4 faceAgglomerate -region $i -dict constant/viewFactorsDict -parallel> log.faceAgglomerate.$i 2>&1 -#done - -#for i in bottomAir topAir -#do -# mpirun -np 4 viewFactorsGen -region $i -parallel > log.viewFactorsGen.$i 2>&1 -#done - -## Run -#runParallel `getApplication` 4 -# -## Reconstruct -#runApplication reconstructPar -allRegions echo diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/Allrun-parallel b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/Allrun-parallel new file mode 100755 index 0000000000..aa76728162 --- /dev/null +++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/Allrun-parallel @@ -0,0 +1,43 @@ +#!/bin/sh +cd ${0%/*} || exit 1 # run from this directory + + +# Source tutorial run functions +. $WM_PROJECT_DIR/bin/tools/RunFunctions + + +# Setup case +./Allrun.pre + + +#-- Run in parallel + +# Decompose +runApplication decomposePar -allRegions + +# Agglomerate patch faces +for i in bottomAir topAir +do + mpirun -np 4 faceAgglomerate -region $i -dict constant/viewFactorsDict -parallel> log.faceAgglomerate.$i 2>&1 +done + +# Generate view factors +for i in bottomAir topAir +do + mpirun -np 4 viewFactorsGen -region $i -parallel > log.viewFactorsGen.$i 2>&1 +done + +# Run +runParallel `getApplication` 4 + +# Reconstruct +runApplication reconstructPar -allRegions + + + +echo +echo "creating files for paraview post-processing" +echo +paraFoam -touchAll + +# ----------------------------------------------------------------- end-of-file diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/Allrun.pre b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/Allrun.pre new file mode 100755 index 0000000000..2e0b7cc880 --- /dev/null +++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/Allrun.pre @@ -0,0 +1,24 @@ +#!/bin/sh +cd ${0%/*} || exit 1 # run from this directory + + +# Source tutorial run functions +. $WM_PROJECT_DIR/bin/tools/RunFunctions + +runApplication blockMesh +runApplication topoSet +runApplication splitMeshRegions -cellZones -overwrite + +# remove fluid fields from solid regions (important for post-processing) +for i in heater leftSolid rightSolid +do + rm -f 0*/$i/{rho,mut,alphat,epsilon,k,U,p_rgh,Qr,G,IDefault} +done + +for i in bottomAir topAir heater leftSolid rightSolid +do + changeDictionary -region $i > log.changeDictionary.$i 2>&1 +done + + +# ----------------------------------------------------------------- end-of-file From 7b5da77f5fb08fcc016ee473058baac9d07d3138 Mon Sep 17 00:00:00 2001 From: Henry Date: Fri, 31 Jan 2014 14:51:55 +0000 Subject: [PATCH 05/21] symmetryPlanePolyPatch: calculate the plane normal during construction to guarantee parallel consistency --- .../symmetryPlane/symmetryPlanePolyPatch.C | 63 +++++++++---------- .../symmetryPlane/symmetryPlanePolyPatch.H | 14 ++++- 2 files changed, 40 insertions(+), 37 deletions(-) diff --git a/src/OpenFOAM/meshes/polyMesh/polyPatches/constraint/symmetryPlane/symmetryPlanePolyPatch.C b/src/OpenFOAM/meshes/polyMesh/polyPatches/constraint/symmetryPlane/symmetryPlanePolyPatch.C index bd0e06166a..9b0d5411c9 100644 --- a/src/OpenFOAM/meshes/polyMesh/polyPatches/constraint/symmetryPlane/symmetryPlanePolyPatch.C +++ b/src/OpenFOAM/meshes/polyMesh/polyPatches/constraint/symmetryPlane/symmetryPlanePolyPatch.C @@ -50,7 +50,7 @@ Foam::symmetryPlanePolyPatch::symmetryPlanePolyPatch ) : polyPatch(name, size, start, index, bm, patchType), - n_(vector::zero) + n_(calcNormal()) {} @@ -64,7 +64,7 @@ Foam::symmetryPlanePolyPatch::symmetryPlanePolyPatch ) : polyPatch(name, dict, index, bm, patchType), - n_(vector::zero) + n_(calcNormal()) {} @@ -75,7 +75,7 @@ Foam::symmetryPlanePolyPatch::symmetryPlanePolyPatch ) : polyPatch(pp, bm), - n_(vector::zero) + n_(calcNormal()) {} @@ -89,7 +89,7 @@ Foam::symmetryPlanePolyPatch::symmetryPlanePolyPatch ) : polyPatch(pp, bm, index, newSize, newStart), - n_(vector::zero) + n_(calcNormal()) {} @@ -103,47 +103,42 @@ Foam::symmetryPlanePolyPatch::symmetryPlanePolyPatch ) : polyPatch(pp, bm, index, mapAddressing, newStart), - n_(vector::zero) + n_(calcNormal()) {} -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // +// * * * * * * * * * * * Private Member Functions * * * * * * * * * * * * * // -const Foam::vector& Foam::symmetryPlanePolyPatch::n() const +Foam::vector Foam::symmetryPlanePolyPatch::calcNormal() const { - // If the symmetry normal is not set calculate it - // as the average face-normal - if (magSqr(n_) < 0.5) + if (returnReduce(size(), sumOp