From 43c43c62b668301d7f96295b09ddd02504453017 Mon Sep 17 00:00:00 2001 From: andy Date: Tue, 19 Aug 2008 12:21:49 +0100 Subject: [PATCH 01/20] corrected resetSourceTerms function - was not being called for derived clouds --- .../clouds/Templates/KinematicCloud/KinematicCloud.C | 12 +----------- .../clouds/Templates/KinematicCloud/KinematicCloud.H | 6 +----- .../clouds/Templates/ReactingCloud/ReactingCloud.C | 7 ++++++- .../clouds/Templates/ReactingCloud/ReactingCloud.H | 2 +- .../clouds/Templates/ThermoCloud/ThermoCloud.C | 7 ++++++- .../clouds/Templates/ThermoCloud/ThermoCloud.H | 6 +++--- 6 files changed, 18 insertions(+), 22 deletions(-) diff --git a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.C b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.C index 05c5dc728f..6ee04f1235 100644 --- a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.C +++ b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.C @@ -332,21 +332,11 @@ void Foam::KinematicCloud::evolve() inject(td); - move(td); -} - - -template -template -void Foam::KinematicCloud::move -( - TrackingData& td -) -{ if (coupled_) { resetSourceTerms(); } + Cloud::move(td); } diff --git a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.H b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.H index dff0859c53..d0925be0f5 100644 --- a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.H +++ b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.H @@ -257,10 +257,6 @@ protected: ParcelType* p ); - //- Move the parcels - template - void move(TrackingData& td); - //- Post-injection checks void postInjectCheck(); @@ -436,7 +432,7 @@ public: //- Reset the spray source terms void resetSourceTerms(); - //- Evolve the spray (move, inject) + //- Evolve the spray (inject, inject) void evolve(); }; diff --git a/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloud.C b/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloud.C index f30f70bcb3..dcf4730f7a 100644 --- a/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloud.C +++ b/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloud.C @@ -185,7 +185,12 @@ void Foam::ReactingCloud::evolve() inject(td); - this->move(td); + if (this->coupled()) + { + resetSourceTerms(); + } + + Cloud::move(td); } diff --git a/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloud.H b/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloud.H index 7afa096c63..6f7bb05e09 100644 --- a/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloud.H +++ b/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloud.H @@ -204,7 +204,7 @@ public: //- Reset the spray source terms void resetSourceTerms(); - //- Evolve the spray (move, inject) + //- Evolve the spray (inject, move) void evolve(); }; diff --git a/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloud.C b/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloud.C index 0e07f89769..ad0d520b74 100644 --- a/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloud.C +++ b/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloud.C @@ -176,7 +176,12 @@ void Foam::ThermoCloud::evolve() inject(td); - this->move(td); + if (this->coupled()) + { + resetSourceTerms(); + } + + Cloud::move(td); } diff --git a/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloud.H b/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloud.H index da9c5e4fb5..072c86165b 100644 --- a/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloud.H +++ b/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloud.H @@ -209,11 +209,11 @@ public: // Cloud evolution functions - //- Evolve the spray (move, inject) - void evolve(); - //- Reset the spray source terms void resetSourceTerms(); + + //- Evolve the spray (inject, move) + void evolve(); }; From 4386ef3d07ece894d1098871d813d6f97fd0ab56 Mon Sep 17 00:00:00 2001 From: mattijs Date: Tue, 19 Aug 2008 13:47:10 +0100 Subject: [PATCH 02/20] typo in comment --- applications/solvers/compressible/rhoPimpleFoam/rhoPimpleFoam.C | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleFoam.C b/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleFoam.C index 9b09d73bbe..858d83749e 100644 --- a/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleFoam.C +++ b/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleFoam.C @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Application - rhoSimpleFoam + rhoPimpleFoam Description Transient solver for turbulent flow of compressible fluids for From c2b09b20a6fdcfee9e9668c2cb2044535749e709 Mon Sep 17 00:00:00 2001 From: mattijs Date: Tue, 19 Aug 2008 13:47:45 +0100 Subject: [PATCH 03/20] built into FOAM_USER_APPBIN --- applications/solvers/incompressible/pimpleFoam/Make/files | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/applications/solvers/incompressible/pimpleFoam/Make/files b/applications/solvers/incompressible/pimpleFoam/Make/files index 92943d3370..f4ec4391df 100644 --- a/applications/solvers/incompressible/pimpleFoam/Make/files +++ b/applications/solvers/incompressible/pimpleFoam/Make/files @@ -1,3 +1,3 @@ pimpleFoam.C -EXE = $(FOAM_USER_APPBIN)/pimpleFoam +EXE = $(FOAM_APPBIN)/pimpleFoam From ff64d2d0d2fcb3697cd4fe958458cd968c276e16 Mon Sep 17 00:00:00 2001 From: mattijs Date: Tue, 19 Aug 2008 13:49:00 +0100 Subject: [PATCH 04/20] unused options --- applications/test/speed/Make/options | 1 + 1 file changed, 1 insertion(+) diff --git a/applications/test/speed/Make/options b/applications/test/speed/Make/options index e69de29bb2..e680561987 100644 --- a/applications/test/speed/Make/options +++ b/applications/test/speed/Make/options @@ -0,0 +1 @@ +EXE_INC = /* -ffast-math -mtune=core2 */ From 7fd0b8d9f866c0f726ad684313e5447d10180059 Mon Sep 17 00:00:00 2001 From: mattijs Date: Tue, 19 Aug 2008 13:51:52 +0100 Subject: [PATCH 05/20] passing motionDict; geometric test on problem cells --- .../autoHexMeshDriver/autoHexMeshDriver.C | 4 +- .../autoHexMeshDriver/autoRefineDriver.C | 15 +- .../autoHexMeshDriver/autoRefineDriver.H | 10 +- .../meshRefinement/meshRefinement.C | 433 ++++++++++++++---- .../meshRefinement/meshRefinement.H | 73 ++- .../meshRefinement/meshRefinementRefine.C | 25 +- 6 files changed, 436 insertions(+), 124 deletions(-) diff --git a/src/autoMesh/autoHexMesh/autoHexMeshDriver/autoHexMeshDriver.C b/src/autoMesh/autoHexMesh/autoHexMeshDriver/autoHexMeshDriver.C index 48f52d7880..c07b950d0a 100644 --- a/src/autoMesh/autoHexMesh/autoHexMeshDriver/autoHexMeshDriver.C +++ b/src/autoMesh/autoHexMesh/autoHexMeshDriver/autoHexMeshDriver.C @@ -491,6 +491,8 @@ void Foam::autoHexMeshDriver::doMesh() if (wantRefine) { + const dictionary& motionDict = dict_.subDict("motionDict"); + autoRefineDriver refineDriver ( meshRefinerPtr_(), @@ -502,7 +504,7 @@ void Foam::autoHexMeshDriver::doMesh() // Get all the refinement specific params refinementParameters refineParams(dict_, 1); - refineDriver.doRefine(dict_, refineParams, wantSnap); + refineDriver.doRefine(dict_, refineParams, wantSnap, motionDict); // Write mesh writeMesh("Refined mesh"); diff --git a/src/autoMesh/autoHexMesh/autoHexMeshDriver/autoRefineDriver.C b/src/autoMesh/autoHexMesh/autoHexMeshDriver/autoRefineDriver.C index 7bbe58ff8f..ca0c0cbddc 100644 --- a/src/autoMesh/autoHexMesh/autoHexMeshDriver/autoRefineDriver.C +++ b/src/autoMesh/autoHexMesh/autoHexMeshDriver/autoRefineDriver.C @@ -497,7 +497,8 @@ Foam::label Foam::autoRefineDriver::shellRefine void Foam::autoRefineDriver::baffleAndSplitMesh ( const refinementParameters& refineParams, - const bool handleSnapProblems + const bool handleSnapProblems, + const dictionary& motionDict ) { Info<< nl @@ -514,6 +515,7 @@ void Foam::autoRefineDriver::baffleAndSplitMesh ( handleSnapProblems, !handleSnapProblems, // merge free standing baffles? + motionDict, const_cast(mesh.time()), globalToPatch_, refineParams.keepPoints()[0] @@ -568,7 +570,8 @@ void Foam::autoRefineDriver::zonify void Foam::autoRefineDriver::splitAndMergeBaffles ( const refinementParameters& refineParams, - const bool handleSnapProblems + const bool handleSnapProblems, + const dictionary& motionDict ) { Info<< nl @@ -588,6 +591,7 @@ void Foam::autoRefineDriver::splitAndMergeBaffles ( handleSnapProblems, false, // merge free standing baffles? + motionDict, const_cast(mesh.time()), globalToPatch_, refineParams.keepPoints()[0] @@ -685,7 +689,8 @@ void Foam::autoRefineDriver::doRefine ( const dictionary& refineDict, const refinementParameters& refineParams, - const bool prepareForSnapping + const bool prepareForSnapping, + const dictionary& motionDict ) { Info<< nl @@ -734,13 +739,13 @@ void Foam::autoRefineDriver::doRefine ); // Introduce baffles at surface intersections - baffleAndSplitMesh(refineParams, prepareForSnapping); + baffleAndSplitMesh(refineParams, prepareForSnapping, motionDict); // Mesh is at its finest. Do optional zoning. zonify(refineParams); // Pull baffles apart - splitAndMergeBaffles(refineParams, prepareForSnapping); + splitAndMergeBaffles(refineParams, prepareForSnapping, motionDict); // Do something about cells with refined faces on the boundary if (prepareForSnapping) diff --git a/src/autoMesh/autoHexMesh/autoHexMeshDriver/autoRefineDriver.H b/src/autoMesh/autoHexMesh/autoHexMeshDriver/autoRefineDriver.H index 8aa33855de..f1747a29be 100644 --- a/src/autoMesh/autoHexMesh/autoHexMeshDriver/autoRefineDriver.H +++ b/src/autoMesh/autoHexMesh/autoHexMeshDriver/autoRefineDriver.H @@ -46,7 +46,6 @@ namespace Foam class featureEdgeMesh; class refinementParameters; - /*---------------------------------------------------------------------------*\ Class autoRefineDriver Declaration \*---------------------------------------------------------------------------*/ @@ -112,7 +111,8 @@ class autoRefineDriver void baffleAndSplitMesh ( const refinementParameters& refineParams, - const bool handleSnapProblems + const bool handleSnapProblems, + const dictionary& motionDict ); //- Add zones @@ -121,7 +121,8 @@ class autoRefineDriver void splitAndMergeBaffles ( const refinementParameters& refineParams, - const bool handleSnapProblems + const bool handleSnapProblems, + const dictionary& motionDict ); //- Merge refined boundary faces (from exposing coarser cell) @@ -163,7 +164,8 @@ public: ( const dictionary& refineDict, const refinementParameters& refineParams, - const bool prepareForSnapping + const bool prepareForSnapping, + const dictionary& motionDict ); }; diff --git a/src/autoMesh/autoHexMesh/meshRefinement/meshRefinement.C b/src/autoMesh/autoHexMesh/meshRefinement/meshRefinement.C index 4fe3005766..7f5bc29a79 100644 --- a/src/autoMesh/autoHexMesh/meshRefinement/meshRefinement.C +++ b/src/autoMesh/autoHexMesh/meshRefinement/meshRefinement.C @@ -50,6 +50,7 @@ License #include "globalIndex.H" #include "meshTools.H" #include "OFstream.H" +#include "geomDecomp.H" // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // @@ -426,15 +427,14 @@ Foam::autoPtr Foam::meshRefinement::doRemoveCells // Determine for multi-processor regions the lowest numbered cell on the lowest // numbered processor. -void Foam::meshRefinement::getRegionMaster +void Foam::meshRefinement::getCoupledRegionMaster ( + const globalIndex& globalCells, const boolList& blockedFace, const regionSplit& globalRegion, Map