From d858f7c811f8c9d2334ddc4785244379c7921392 Mon Sep 17 00:00:00 2001 From: Mark Olesen Date: Fri, 27 Jun 2008 13:43:08 +0200 Subject: [PATCH 01/28] fixup doxygen for RAS/LES models, etc --- .../polyTopoChange/polyTopoChange/hexRef8.C | 6 +++--- .../Templates/KinematicCloud/KinematicCloud.H | 1 + .../Templates/KinematicParcel/KinematicParcel.H | 4 +++- .../InjectionModel/ConeInjection/ConeInjection.H | 1 + .../edgeFaceCirculator/edgeFaceCirculator.H | 16 +++++++++------- .../LES/compressible/LESModel/LESModel.H | 2 +- .../DeardorffDiffStress/DeardorffDiffStress.H | 2 +- .../LES/incompressible/GenEddyVisc/GenEddyVisc.H | 2 +- .../incompressible/GenSGSStress/GenSGSStress.H | 2 +- .../LES/incompressible/LESModel/LESModel.H | 2 +- .../incompressible/LRRDiffStress/LRRDiffStress.H | 2 +- .../LES/incompressible/Smagorinsky/Smagorinsky.H | 2 +- .../incompressible/Smagorinsky2/Smagorinsky2.H | 2 +- .../SpalartAllmaras/SpalartAllmaras.H | 2 +- .../dynMixedSmagorinsky/dynMixedSmagorinsky.H | 2 +- .../incompressible/dynOneEqEddy/dynOneEqEddy.H | 2 +- .../dynSmagorinsky/dynSmagorinsky.H | 4 ++-- .../LES/incompressible/laminar/laminar.H | 2 +- .../locDynOneEqEddy/locDynOneEqEddy.H | 2 +- .../mixedSmagorinsky/mixedSmagorinsky.H | 2 +- .../LES/incompressible/oneEqEddy/oneEqEddy.H | 2 +- .../scaleSimilarity/scaleSimilarity.H | 2 +- .../incompressible/spectEddyVisc/spectEddyVisc.H | 2 +- .../vanDriestDelta/vanDriestDelta.H | 2 +- .../nuSgsWallFunctionFvPatchScalarField.H | 2 +- src/turbulenceModels/RAS/compressible/LRR/LRR.H | 2 +- .../LaunderGibsonRSTM/LaunderGibsonRSTM.H | 2 +- .../LaunderSharmaKE/LaunderSharmaKE.H | 2 +- .../RAS/compressible/RASModel/RASModel.H | 2 +- .../RAS/compressible/RNGkEpsilon/RNGkEpsilon.H | 2 +- .../SpalartAllmaras/SpalartAllmaras.H | 2 +- .../RAS/compressible/kEpsilon/kEpsilon.H | 2 +- .../RAS/compressible/kOmegaSST/kOmegaSST.H | 2 +- .../RAS/compressible/laminar/laminar.H | 2 +- .../RAS/compressible/realizableKE/realizableKE.H | 2 +- ...StandardRoughWallFunctionFvPatchScalarField.H | 2 +- .../RAS/incompressible/LRR/LRR.H | 2 +- .../LamBremhorstKE/LamBremhorstKE.H | 2 +- .../LaunderGibsonRSTM/LaunderGibsonRSTM.H | 2 +- .../LaunderSharmaKE/LaunderSharmaKE.H | 2 +- .../RAS/incompressible/LienCubicKE/LienCubicKE.H | 2 +- .../LienCubicKELowRe/LienCubicKELowRe.H | 2 +- .../LienLeschzinerLowRe/LienLeschzinerLowRe.H | 2 +- .../NonlinearKEShih/NonlinearKEShih.H | 2 +- .../RAS/incompressible/QZeta/QZeta.H | 2 +- .../RAS/incompressible/RASModel/RASModel.H | 2 +- .../RAS/incompressible/RNGkEpsilon/RNGkEpsilon.H | 2 +- .../SpalartAllmaras/SpalartAllmaras.H | 2 +- .../RAS/incompressible/kEpsilon/kEpsilon.H | 2 +- .../RAS/incompressible/kOmegaSST/kOmegaSST.H | 2 +- .../RAS/incompressible/laminar/laminar.H | 2 +- .../incompressible/realizableKE/realizableKE.H | 2 +- ...StandardRoughWallFunctionFvPatchScalarField.H | 2 +- .../nutStandardWallFunctionFvPatchScalarField.H | 2 +- .../nutWallFunctionFvPatchScalarField.H | 2 +- 55 files changed, 68 insertions(+), 62 deletions(-) diff --git a/src/dynamicMesh/polyTopoChange/polyTopoChange/hexRef8.C b/src/dynamicMesh/polyTopoChange/polyTopoChange/hexRef8.C index 6a6eb7f57b..d99e56209d 100644 --- a/src/dynamicMesh/polyTopoChange/polyTopoChange/hexRef8.C +++ b/src/dynamicMesh/polyTopoChange/polyTopoChange/hexRef8.C @@ -50,15 +50,15 @@ namespace Foam { defineTypeNameAndDebug(hexRef8, 0); - // Reduction class. If x and y are not equal assign value. + //- Reduction class. If x and y are not equal assign value. template< int value > class ifEqEqOp { public: void operator()( label& x, const label& y ) const { - x = (x==y) ? x:value; - } + x = (x==y) ? x:value; + } }; } diff --git a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.H b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.H index 5055e5502f..dff0859c53 100644 --- a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.H +++ b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.H @@ -27,6 +27,7 @@ Class Description Templated base class for kinematic cloud + - Kinematic only - Dispersion model - Drag model diff --git a/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.H b/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.H index e25318d9c1..2063f9e673 100644 --- a/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.H +++ b/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.H @@ -27,7 +27,9 @@ Class Description Kinematic parcel class with one/two-way coupling with the continuous - phase. Sub-models include: + phase. + + Sub-models include: - drag - break-up - wall interactions diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeInjection/ConeInjection.H b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeInjection/ConeInjection.H index be42e0c0dd..98c017adcd 100644 --- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeInjection/ConeInjection.H +++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeInjection/ConeInjection.H @@ -27,6 +27,7 @@ Class Description Cone injection + - User specifies - time of start of injection - injector position diff --git a/src/meshTools/edgeFaceCirculator/edgeFaceCirculator.H b/src/meshTools/edgeFaceCirculator/edgeFaceCirculator.H index 09e1030cdb..445e19da0b 100644 --- a/src/meshTools/edgeFaceCirculator/edgeFaceCirculator.H +++ b/src/meshTools/edgeFaceCirculator/edgeFaceCirculator.H @@ -26,15 +26,15 @@ Class Foam::edgeFaceCirculator Description - Walks from starting face around edge. Implicit - description of edge: + Walks from starting face around edge. + + Implicit description of edge: - face - index in face. edge is always between f[index] and f[index+1] - direction (cell to walk into) - Use as: - - 1) in-place: + -# Use in-place: \n + @code edgeFaceCirculator circ(..); // Optionally rotate to beginning: circ.setCanonical(); @@ -45,9 +45,10 @@ Description ++circ; } while (circ != circ.end()); + @endcode - 2) like STL iterator: - + -# Use like STL iterator: \n + @code edgeFaceCirculator circ(..); for ( @@ -58,6 +59,7 @@ Description { Info<< "face:" << iter.face() << endl; } + @endcode SourceFiles diff --git a/src/turbulenceModels/LES/compressible/LESModel/LESModel.H b/src/turbulenceModels/LES/compressible/LESModel/LESModel.H index 905b7df7e3..ecef2d8f77 100644 --- a/src/turbulenceModels/LES/compressible/LESModel/LESModel.H +++ b/src/turbulenceModels/LES/compressible/LESModel/LESModel.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Namespace - Foam::compressible + Foam::compressible::LESModels Description Namespace for compressible LES models. diff --git a/src/turbulenceModels/LES/incompressible/DeardorffDiffStress/DeardorffDiffStress.H b/src/turbulenceModels/LES/incompressible/DeardorffDiffStress/DeardorffDiffStress.H index 2a1d5e4801..57576bf5e5 100644 --- a/src/turbulenceModels/LES/incompressible/DeardorffDiffStress/DeardorffDiffStress.H +++ b/src/turbulenceModels/LES/incompressible/DeardorffDiffStress/DeardorffDiffStress.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::incompressible::LES::DeardorffDiffStress + Foam::incompressible::LESModels::DeardorffDiffStress Description Differential SGS Stress Equation Model for incompressible flows diff --git a/src/turbulenceModels/LES/incompressible/GenEddyVisc/GenEddyVisc.H b/src/turbulenceModels/LES/incompressible/GenEddyVisc/GenEddyVisc.H index f465c2d413..388606f284 100644 --- a/src/turbulenceModels/LES/incompressible/GenEddyVisc/GenEddyVisc.H +++ b/src/turbulenceModels/LES/incompressible/GenEddyVisc/GenEddyVisc.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::incompressible::LES::GenEddyVisc + Foam::incompressible::LESModels::GenEddyVisc Description General base class for all incompressible models that can be implemented diff --git a/src/turbulenceModels/LES/incompressible/GenSGSStress/GenSGSStress.H b/src/turbulenceModels/LES/incompressible/GenSGSStress/GenSGSStress.H index 93305ea411..eb6cc7e906 100644 --- a/src/turbulenceModels/LES/incompressible/GenSGSStress/GenSGSStress.H +++ b/src/turbulenceModels/LES/incompressible/GenSGSStress/GenSGSStress.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::incompressible::LES::GenSGSStress + Foam::incompressible::LESModels::GenSGSStress Description General base class for all incompressible models that directly diff --git a/src/turbulenceModels/LES/incompressible/LESModel/LESModel.H b/src/turbulenceModels/LES/incompressible/LESModel/LESModel.H index 302efc5cf1..e1374ed286 100644 --- a/src/turbulenceModels/LES/incompressible/LESModel/LESModel.H +++ b/src/turbulenceModels/LES/incompressible/LESModel/LESModel.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Namespace - Foam::incompressible + Foam::incompressible::LESModels Description Namespace for incompressible LES models. diff --git a/src/turbulenceModels/LES/incompressible/LRRDiffStress/LRRDiffStress.H b/src/turbulenceModels/LES/incompressible/LRRDiffStress/LRRDiffStress.H index 4d10fd99f6..f58b6e224b 100644 --- a/src/turbulenceModels/LES/incompressible/LRRDiffStress/LRRDiffStress.H +++ b/src/turbulenceModels/LES/incompressible/LRRDiffStress/LRRDiffStress.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::incompressible::LES::LRRDiffStress + Foam::incompressible::LESModels::LRRDiffStress Description Differential SGS Stress Equation Model for incompressible flows. diff --git a/src/turbulenceModels/LES/incompressible/Smagorinsky/Smagorinsky.H b/src/turbulenceModels/LES/incompressible/Smagorinsky/Smagorinsky.H index 3a5f09eeaa..f86578934e 100644 --- a/src/turbulenceModels/LES/incompressible/Smagorinsky/Smagorinsky.H +++ b/src/turbulenceModels/LES/incompressible/Smagorinsky/Smagorinsky.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::incompressible::LES::Smagorinsky + Foam::incompressible::LESModels::Smagorinsky Description The Isochoric Smagorinsky Model for incompressible flows. diff --git a/src/turbulenceModels/LES/incompressible/Smagorinsky2/Smagorinsky2.H b/src/turbulenceModels/LES/incompressible/Smagorinsky2/Smagorinsky2.H index 886a5be4cd..7c780da1e1 100644 --- a/src/turbulenceModels/LES/incompressible/Smagorinsky2/Smagorinsky2.H +++ b/src/turbulenceModels/LES/incompressible/Smagorinsky2/Smagorinsky2.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::incompressible::LES::Smagorinsky2 + Foam::incompressible::LESModels::Smagorinsky2 Description The Isochoric Smagorinsky Model for incompressible flows diff --git a/src/turbulenceModels/LES/incompressible/SpalartAllmaras/SpalartAllmaras.H b/src/turbulenceModels/LES/incompressible/SpalartAllmaras/SpalartAllmaras.H index a6a9d12ca6..523da4611c 100644 --- a/src/turbulenceModels/LES/incompressible/SpalartAllmaras/SpalartAllmaras.H +++ b/src/turbulenceModels/LES/incompressible/SpalartAllmaras/SpalartAllmaras.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::incompressible::LES::SpalartAllmaras + Foam::incompressible::LESModels::SpalartAllmaras Description SpalartAllmaras for incompressible flows diff --git a/src/turbulenceModels/LES/incompressible/dynMixedSmagorinsky/dynMixedSmagorinsky.H b/src/turbulenceModels/LES/incompressible/dynMixedSmagorinsky/dynMixedSmagorinsky.H index ced250056f..223487b7d0 100644 --- a/src/turbulenceModels/LES/incompressible/dynMixedSmagorinsky/dynMixedSmagorinsky.H +++ b/src/turbulenceModels/LES/incompressible/dynMixedSmagorinsky/dynMixedSmagorinsky.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::incompressible::LES::dynMixedSmagorinsky + Foam::incompressible::LESModels::dynMixedSmagorinsky Description The Mixed Isochoric Smagorinsky Model for incompressible flows. diff --git a/src/turbulenceModels/LES/incompressible/dynOneEqEddy/dynOneEqEddy.H b/src/turbulenceModels/LES/incompressible/dynOneEqEddy/dynOneEqEddy.H index 24484a23c5..b680174e69 100644 --- a/src/turbulenceModels/LES/incompressible/dynOneEqEddy/dynOneEqEddy.H +++ b/src/turbulenceModels/LES/incompressible/dynOneEqEddy/dynOneEqEddy.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::incompressible::LES::dynOneEqEddy + Foam::incompressible::LESModels::dynOneEqEddy Description One Equation Eddy Viscosity Model for incompressible flows. diff --git a/src/turbulenceModels/LES/incompressible/dynSmagorinsky/dynSmagorinsky.H b/src/turbulenceModels/LES/incompressible/dynSmagorinsky/dynSmagorinsky.H index 601381e80d..d155d45a58 100644 --- a/src/turbulenceModels/LES/incompressible/dynSmagorinsky/dynSmagorinsky.H +++ b/src/turbulenceModels/LES/incompressible/dynSmagorinsky/dynSmagorinsky.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::incompressible::LES::dynSmagorinsky + Foam::incompressible::LESModels::dynSmagorinsky Description The Isochoric dynamic Smagorinsky Model for incompressible flows. @@ -56,7 +56,7 @@ Description m = delta^2*(4*||F(D)||^2 - F(||D||^2)) L = dev(F(U*U) - F(U)*F(U)) M = delta^2*(F(||D||*dev(D)) - 4*||F(D)||*F(dev(D))) - @verbatim + @endverbatim SourceFiles dynSmagorinsky.C diff --git a/src/turbulenceModels/LES/incompressible/laminar/laminar.H b/src/turbulenceModels/LES/incompressible/laminar/laminar.H index 86c2ba342a..648e0b8229 100644 --- a/src/turbulenceModels/LES/incompressible/laminar/laminar.H +++ b/src/turbulenceModels/LES/incompressible/laminar/laminar.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::incompressible::LES::laminar + Foam::incompressible::LESModels::laminar Description LES model for laminar incompressible flow. diff --git a/src/turbulenceModels/LES/incompressible/locDynOneEqEddy/locDynOneEqEddy.H b/src/turbulenceModels/LES/incompressible/locDynOneEqEddy/locDynOneEqEddy.H index f698747d16..960b6f185e 100644 --- a/src/turbulenceModels/LES/incompressible/locDynOneEqEddy/locDynOneEqEddy.H +++ b/src/turbulenceModels/LES/incompressible/locDynOneEqEddy/locDynOneEqEddy.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::incompressible::LES::locDynOneEqEddy + Foam::incompressible::LESModels::locDynOneEqEddy Description Localised Dynamic One Equation Eddy Viscosity Model for incompressible diff --git a/src/turbulenceModels/LES/incompressible/mixedSmagorinsky/mixedSmagorinsky.H b/src/turbulenceModels/LES/incompressible/mixedSmagorinsky/mixedSmagorinsky.H index 9a18dcb00a..7fa3f0c9ec 100644 --- a/src/turbulenceModels/LES/incompressible/mixedSmagorinsky/mixedSmagorinsky.H +++ b/src/turbulenceModels/LES/incompressible/mixedSmagorinsky/mixedSmagorinsky.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::incompressible::LES::mixedSmagorinsky + Foam::incompressible::LESModels::mixedSmagorinsky Description The mixed Isochoric Smagorinsky Model for incompressible flows. diff --git a/src/turbulenceModels/LES/incompressible/oneEqEddy/oneEqEddy.H b/src/turbulenceModels/LES/incompressible/oneEqEddy/oneEqEddy.H index 1e3802b723..632530b205 100644 --- a/src/turbulenceModels/LES/incompressible/oneEqEddy/oneEqEddy.H +++ b/src/turbulenceModels/LES/incompressible/oneEqEddy/oneEqEddy.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::incompressible::LES::oneEqEddy + Foam::incompressible::LESModels::oneEqEddy Description One Equation Eddy Viscosity Model for incompressible flows diff --git a/src/turbulenceModels/LES/incompressible/scaleSimilarity/scaleSimilarity.H b/src/turbulenceModels/LES/incompressible/scaleSimilarity/scaleSimilarity.H index 6e8b151872..079d38a4a2 100644 --- a/src/turbulenceModels/LES/incompressible/scaleSimilarity/scaleSimilarity.H +++ b/src/turbulenceModels/LES/incompressible/scaleSimilarity/scaleSimilarity.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::incompressible::LES::scaleSimilarity + Foam::incompressible::LESModels::scaleSimilarity Description General base class for all scale similarity models diff --git a/src/turbulenceModels/LES/incompressible/spectEddyVisc/spectEddyVisc.H b/src/turbulenceModels/LES/incompressible/spectEddyVisc/spectEddyVisc.H index 1053cb272c..dd6b4e68b0 100644 --- a/src/turbulenceModels/LES/incompressible/spectEddyVisc/spectEddyVisc.H +++ b/src/turbulenceModels/LES/incompressible/spectEddyVisc/spectEddyVisc.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::incompressible::LES::spectEddyVisc + Foam::incompressible::LESModels::spectEddyVisc Description The Isochoric spectral Eddy Viscosity Model for incompressible flows. diff --git a/src/turbulenceModels/LES/incompressible/vanDriestDelta/vanDriestDelta.H b/src/turbulenceModels/LES/incompressible/vanDriestDelta/vanDriestDelta.H index f488b823fb..6903765f6b 100644 --- a/src/turbulenceModels/LES/incompressible/vanDriestDelta/vanDriestDelta.H +++ b/src/turbulenceModels/LES/incompressible/vanDriestDelta/vanDriestDelta.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::incompressible::LES::vanDriestDelta + Foam::incompressible::LESModels::vanDriestDelta Description Simple cube-root of cell volume delta used in incompressible LES models. diff --git a/src/turbulenceModels/LES/incompressible/wallFunc/nuSgsWallFunction/nuSgsWallFunctionFvPatchScalarField.H b/src/turbulenceModels/LES/incompressible/wallFunc/nuSgsWallFunction/nuSgsWallFunctionFvPatchScalarField.H index 2008b7bfc1..687e30a6a6 100644 --- a/src/turbulenceModels/LES/incompressible/wallFunc/nuSgsWallFunction/nuSgsWallFunctionFvPatchScalarField.H +++ b/src/turbulenceModels/LES/incompressible/wallFunc/nuSgsWallFunction/nuSgsWallFunctionFvPatchScalarField.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::incompressible::LES::nuSgsWallFunctionFvPatchScalarField + Foam::incompressible::LESModels::nuSgsWallFunctionFvPatchScalarField Description wall function boundary condition for incompressible flows diff --git a/src/turbulenceModels/RAS/compressible/LRR/LRR.H b/src/turbulenceModels/RAS/compressible/LRR/LRR.H index b479b7ee3c..553b11be96 100644 --- a/src/turbulenceModels/RAS/compressible/LRR/LRR.H +++ b/src/turbulenceModels/RAS/compressible/LRR/LRR.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::compressible::RAS::LRR + Foam::compressible::RASModels::LRR Description Launder, Reece and Rodi Reynolds-stress turbulence model for diff --git a/src/turbulenceModels/RAS/compressible/LaunderGibsonRSTM/LaunderGibsonRSTM.H b/src/turbulenceModels/RAS/compressible/LaunderGibsonRSTM/LaunderGibsonRSTM.H index dbe974a1d1..2be69e96b5 100644 --- a/src/turbulenceModels/RAS/compressible/LaunderGibsonRSTM/LaunderGibsonRSTM.H +++ b/src/turbulenceModels/RAS/compressible/LaunderGibsonRSTM/LaunderGibsonRSTM.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::compressible::RAS::LaunderGibsonRSTM + Foam::compressible::RASModels::LaunderGibsonRSTM Description Launder-Gibson Reynolds stress turbulence model for compressible flows. diff --git a/src/turbulenceModels/RAS/compressible/LaunderSharmaKE/LaunderSharmaKE.H b/src/turbulenceModels/RAS/compressible/LaunderSharmaKE/LaunderSharmaKE.H index 7c7372e07d..731e0cdb02 100644 --- a/src/turbulenceModels/RAS/compressible/LaunderSharmaKE/LaunderSharmaKE.H +++ b/src/turbulenceModels/RAS/compressible/LaunderSharmaKE/LaunderSharmaKE.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::compressible::RAS::LaunderSharmaKE + Foam::compressible::RASModels::LaunderSharmaKE Description Launder and Sharma low-Reynolds k-epsilon turbulence model for diff --git a/src/turbulenceModels/RAS/compressible/RASModel/RASModel.H b/src/turbulenceModels/RAS/compressible/RASModel/RASModel.H index 2e98a4359e..47feaebe18 100644 --- a/src/turbulenceModels/RAS/compressible/RASModel/RASModel.H +++ b/src/turbulenceModels/RAS/compressible/RASModel/RASModel.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Namespace - Foam::compressible::RAS + Foam::compressible::RASModels Description Namespace for compressible RAS turbulence models. diff --git a/src/turbulenceModels/RAS/compressible/RNGkEpsilon/RNGkEpsilon.H b/src/turbulenceModels/RAS/compressible/RNGkEpsilon/RNGkEpsilon.H index a1d2148dd7..5063615ccb 100644 --- a/src/turbulenceModels/RAS/compressible/RNGkEpsilon/RNGkEpsilon.H +++ b/src/turbulenceModels/RAS/compressible/RNGkEpsilon/RNGkEpsilon.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::compressible::RAS::RNGkEpsilon + Foam::compressible::RASModels::RNGkEpsilon Description Renormalisation group k-epsilon turbulence model for compressible flows. diff --git a/src/turbulenceModels/RAS/compressible/SpalartAllmaras/SpalartAllmaras.H b/src/turbulenceModels/RAS/compressible/SpalartAllmaras/SpalartAllmaras.H index 9b6880eff1..da3aa6fc2e 100644 --- a/src/turbulenceModels/RAS/compressible/SpalartAllmaras/SpalartAllmaras.H +++ b/src/turbulenceModels/RAS/compressible/SpalartAllmaras/SpalartAllmaras.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::compressible::RAS::SpalartAllmaras + Foam::compressible::RASModels::SpalartAllmaras Description Spalart-Allmaras one-eqn mixing-length model for compressible diff --git a/src/turbulenceModels/RAS/compressible/kEpsilon/kEpsilon.H b/src/turbulenceModels/RAS/compressible/kEpsilon/kEpsilon.H index b6b2b1dab7..d42bc73a66 100644 --- a/src/turbulenceModels/RAS/compressible/kEpsilon/kEpsilon.H +++ b/src/turbulenceModels/RAS/compressible/kEpsilon/kEpsilon.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::compressible::RAS::kEpsilon + Foam::compressible::RASModels::kEpsilon Description Standard k-epsilon turbulence model for compressible flows diff --git a/src/turbulenceModels/RAS/compressible/kOmegaSST/kOmegaSST.H b/src/turbulenceModels/RAS/compressible/kOmegaSST/kOmegaSST.H index fe65b3fad2..4836d02611 100644 --- a/src/turbulenceModels/RAS/compressible/kOmegaSST/kOmegaSST.H +++ b/src/turbulenceModels/RAS/compressible/kOmegaSST/kOmegaSST.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::compressible::RAS::kOmegaSST + Foam::compressible::RASModels::kOmegaSST Description Implementation of the k-omega-SST turbulence model for compressible flows. diff --git a/src/turbulenceModels/RAS/compressible/laminar/laminar.H b/src/turbulenceModels/RAS/compressible/laminar/laminar.H index dd965be3d8..dda7f73117 100644 --- a/src/turbulenceModels/RAS/compressible/laminar/laminar.H +++ b/src/turbulenceModels/RAS/compressible/laminar/laminar.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::compressible::RAS::laminar + Foam::compressible::RASModels::laminar Description Dummy turbulence model for laminar compressible flow. diff --git a/src/turbulenceModels/RAS/compressible/realizableKE/realizableKE.H b/src/turbulenceModels/RAS/compressible/realizableKE/realizableKE.H index 676c7becc2..0eb770f083 100644 --- a/src/turbulenceModels/RAS/compressible/realizableKE/realizableKE.H +++ b/src/turbulenceModels/RAS/compressible/realizableKE/realizableKE.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::compressible::RAS::realizableKE + Foam::compressible::RASModels::realizableKE Description Realizable k-epsilon turbulence model for compressible flows. diff --git a/src/turbulenceModels/RAS/compressible/wallFunctions/mutWallFunctions/mutStandardRoughWallFunction/mutStandardRoughWallFunctionFvPatchScalarField.H b/src/turbulenceModels/RAS/compressible/wallFunctions/mutWallFunctions/mutStandardRoughWallFunction/mutStandardRoughWallFunctionFvPatchScalarField.H index 759bd5c4fd..7c8e561793 100644 --- a/src/turbulenceModels/RAS/compressible/wallFunctions/mutWallFunctions/mutStandardRoughWallFunction/mutStandardRoughWallFunctionFvPatchScalarField.H +++ b/src/turbulenceModels/RAS/compressible/wallFunctions/mutWallFunctions/mutStandardRoughWallFunction/mutStandardRoughWallFunctionFvPatchScalarField.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::compressible::RAS::mutStandardRoughWallFunctionFvPatchScalarField + Foam::compressible::RASModels::mutStandardRoughWallFunctionFvPatchScalarField Description Wall function boundary condition for rough walls diff --git a/src/turbulenceModels/RAS/incompressible/LRR/LRR.H b/src/turbulenceModels/RAS/incompressible/LRR/LRR.H index 28a032bdc0..45b3df83e8 100644 --- a/src/turbulenceModels/RAS/incompressible/LRR/LRR.H +++ b/src/turbulenceModels/RAS/incompressible/LRR/LRR.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::incompressible::RAS::LRR + Foam::incompressible::RASModels::LRR Description Launder, Reece and Rodi Reynolds-stress turbulence model for diff --git a/src/turbulenceModels/RAS/incompressible/LamBremhorstKE/LamBremhorstKE.H b/src/turbulenceModels/RAS/incompressible/LamBremhorstKE/LamBremhorstKE.H index 8a9fe369e6..f0e8a0ba59 100644 --- a/src/turbulenceModels/RAS/incompressible/LamBremhorstKE/LamBremhorstKE.H +++ b/src/turbulenceModels/RAS/incompressible/LamBremhorstKE/LamBremhorstKE.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::incompressible::RAS::LamBremhorstKE + Foam::incompressible::RASModels::LamBremhorstKE Description Lam and Bremhorst low-Reynolds number k-epsilon turbulence model diff --git a/src/turbulenceModels/RAS/incompressible/LaunderGibsonRSTM/LaunderGibsonRSTM.H b/src/turbulenceModels/RAS/incompressible/LaunderGibsonRSTM/LaunderGibsonRSTM.H index 96a2daec83..73169b389f 100644 --- a/src/turbulenceModels/RAS/incompressible/LaunderGibsonRSTM/LaunderGibsonRSTM.H +++ b/src/turbulenceModels/RAS/incompressible/LaunderGibsonRSTM/LaunderGibsonRSTM.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::incompressible::RAS::LaunderGibsonRSTM + Foam::incompressible::RASModels::LaunderGibsonRSTM Description Launder-Gibson Reynolds stress turbulence model for incompressible flows. diff --git a/src/turbulenceModels/RAS/incompressible/LaunderSharmaKE/LaunderSharmaKE.H b/src/turbulenceModels/RAS/incompressible/LaunderSharmaKE/LaunderSharmaKE.H index 1441215769..a16a1d8f3a 100644 --- a/src/turbulenceModels/RAS/incompressible/LaunderSharmaKE/LaunderSharmaKE.H +++ b/src/turbulenceModels/RAS/incompressible/LaunderSharmaKE/LaunderSharmaKE.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::incompressible::RAS::LaunderSharmaKE + Foam::incompressible::RASModels::LaunderSharmaKE Description Launder and Sharma low-Reynolds k-epsilon turbulence model for diff --git a/src/turbulenceModels/RAS/incompressible/LienCubicKE/LienCubicKE.H b/src/turbulenceModels/RAS/incompressible/LienCubicKE/LienCubicKE.H index 1a9bbde798..005c825775 100644 --- a/src/turbulenceModels/RAS/incompressible/LienCubicKE/LienCubicKE.H +++ b/src/turbulenceModels/RAS/incompressible/LienCubicKE/LienCubicKE.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::incompressible::RAS::LienCubicKE + Foam::incompressible::RASModels::LienCubicKE Description Lien cubic non-linear k-epsilon turbulence model for incompressible flows. diff --git a/src/turbulenceModels/RAS/incompressible/LienCubicKELowRe/LienCubicKELowRe.H b/src/turbulenceModels/RAS/incompressible/LienCubicKELowRe/LienCubicKELowRe.H index e86e555ece..3fac316cdf 100644 --- a/src/turbulenceModels/RAS/incompressible/LienCubicKELowRe/LienCubicKELowRe.H +++ b/src/turbulenceModels/RAS/incompressible/LienCubicKELowRe/LienCubicKELowRe.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::incompressible::RAS::LienCubicKELowRe + Foam::incompressible::RASModels::LienCubicKELowRe Description Lien cubic non-linear low-Reynolds k-epsilon turbulence models for diff --git a/src/turbulenceModels/RAS/incompressible/LienLeschzinerLowRe/LienLeschzinerLowRe.H b/src/turbulenceModels/RAS/incompressible/LienLeschzinerLowRe/LienLeschzinerLowRe.H index c7bbf5e51a..59efb82c98 100644 --- a/src/turbulenceModels/RAS/incompressible/LienLeschzinerLowRe/LienLeschzinerLowRe.H +++ b/src/turbulenceModels/RAS/incompressible/LienLeschzinerLowRe/LienLeschzinerLowRe.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::incompressible::RAS::LienLeschzinerLowRe + Foam::incompressible::RASModels::LienLeschzinerLowRe Description Lien and Leschziner low-Reynolds k-epsilon turbulence model for diff --git a/src/turbulenceModels/RAS/incompressible/NonlinearKEShih/NonlinearKEShih.H b/src/turbulenceModels/RAS/incompressible/NonlinearKEShih/NonlinearKEShih.H index 7f25e712ef..7f8f6ebc8f 100644 --- a/src/turbulenceModels/RAS/incompressible/NonlinearKEShih/NonlinearKEShih.H +++ b/src/turbulenceModels/RAS/incompressible/NonlinearKEShih/NonlinearKEShih.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::incompressible::RAS::NonlinearKEShih + Foam::incompressible::RASModels::NonlinearKEShih Description Shih's quadratic non-linear k-epsilon turbulence model for diff --git a/src/turbulenceModels/RAS/incompressible/QZeta/QZeta.H b/src/turbulenceModels/RAS/incompressible/QZeta/QZeta.H index dcfd584c61..8c675a8fc1 100644 --- a/src/turbulenceModels/RAS/incompressible/QZeta/QZeta.H +++ b/src/turbulenceModels/RAS/incompressible/QZeta/QZeta.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::incompressible::RAS::QZeta + Foam::incompressible::RASModels::QZeta Description Gibson and Dafa'Alla's q-zeta two-equation low-Re turbulence model diff --git a/src/turbulenceModels/RAS/incompressible/RASModel/RASModel.H b/src/turbulenceModels/RAS/incompressible/RASModel/RASModel.H index 8ba1fedcbc..345565fbab 100644 --- a/src/turbulenceModels/RAS/incompressible/RASModel/RASModel.H +++ b/src/turbulenceModels/RAS/incompressible/RASModel/RASModel.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Namespace - Foam::incompressible + Foam::incompressible::RASModels Description Namespace for incompressible RAS turbulence models. diff --git a/src/turbulenceModels/RAS/incompressible/RNGkEpsilon/RNGkEpsilon.H b/src/turbulenceModels/RAS/incompressible/RNGkEpsilon/RNGkEpsilon.H index f028ea8041..960d0a344d 100644 --- a/src/turbulenceModels/RAS/incompressible/RNGkEpsilon/RNGkEpsilon.H +++ b/src/turbulenceModels/RAS/incompressible/RNGkEpsilon/RNGkEpsilon.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::incompressible::RAS::RNGkEpsilon + Foam::incompressible::RASModels::RNGkEpsilon Description Renormalisation group k-epsilon turbulence model for incompressible flows. diff --git a/src/turbulenceModels/RAS/incompressible/SpalartAllmaras/SpalartAllmaras.H b/src/turbulenceModels/RAS/incompressible/SpalartAllmaras/SpalartAllmaras.H index 5266de28eb..39cb3977e0 100644 --- a/src/turbulenceModels/RAS/incompressible/SpalartAllmaras/SpalartAllmaras.H +++ b/src/turbulenceModels/RAS/incompressible/SpalartAllmaras/SpalartAllmaras.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::incompressible::RAS::SpalartAllmaras + Foam::incompressible::RASModels::SpalartAllmaras Description Spalart-Allmaras 1-eqn mixing-length model for incompressible external diff --git a/src/turbulenceModels/RAS/incompressible/kEpsilon/kEpsilon.H b/src/turbulenceModels/RAS/incompressible/kEpsilon/kEpsilon.H index 4fe07f3679..5ac0d5a461 100644 --- a/src/turbulenceModels/RAS/incompressible/kEpsilon/kEpsilon.H +++ b/src/turbulenceModels/RAS/incompressible/kEpsilon/kEpsilon.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::incompressible::RAS::kEpsilon + Foam::incompressible::RASModels::kEpsilon Description Standard k-epsilon turbulence model for incompressible flows. diff --git a/src/turbulenceModels/RAS/incompressible/kOmegaSST/kOmegaSST.H b/src/turbulenceModels/RAS/incompressible/kOmegaSST/kOmegaSST.H index f106b02800..ef44b6a9ac 100644 --- a/src/turbulenceModels/RAS/incompressible/kOmegaSST/kOmegaSST.H +++ b/src/turbulenceModels/RAS/incompressible/kOmegaSST/kOmegaSST.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::incompressible::RAS::kOmegaSST + Foam::incompressible::RASModels::kOmegaSST Description Implementation of the k-omega-SST turbulence model for incompressible diff --git a/src/turbulenceModels/RAS/incompressible/laminar/laminar.H b/src/turbulenceModels/RAS/incompressible/laminar/laminar.H index eaa183746b..7f07045aa3 100644 --- a/src/turbulenceModels/RAS/incompressible/laminar/laminar.H +++ b/src/turbulenceModels/RAS/incompressible/laminar/laminar.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::incompressible::RAS::laminar + Foam::incompressible::RASModels::laminar Description Dummy turbulence model for laminar incompressible flow. diff --git a/src/turbulenceModels/RAS/incompressible/realizableKE/realizableKE.H b/src/turbulenceModels/RAS/incompressible/realizableKE/realizableKE.H index 43ca0b5894..d3587b2f51 100644 --- a/src/turbulenceModels/RAS/incompressible/realizableKE/realizableKE.H +++ b/src/turbulenceModels/RAS/incompressible/realizableKE/realizableKE.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::incompressible::RAS::realizableKE + Foam::incompressible::RASModels::realizableKE Description Realizable k-epsilon turbulence model for incompressible flows. diff --git a/src/turbulenceModels/RAS/incompressible/wallFunctions/nutWallFunctions/nutStandardRoughWallFunction/nutStandardRoughWallFunctionFvPatchScalarField.H b/src/turbulenceModels/RAS/incompressible/wallFunctions/nutWallFunctions/nutStandardRoughWallFunction/nutStandardRoughWallFunctionFvPatchScalarField.H index f82d7aeb0f..df3007b10f 100644 --- a/src/turbulenceModels/RAS/incompressible/wallFunctions/nutWallFunctions/nutStandardRoughWallFunction/nutStandardRoughWallFunctionFvPatchScalarField.H +++ b/src/turbulenceModels/RAS/incompressible/wallFunctions/nutWallFunctions/nutStandardRoughWallFunction/nutStandardRoughWallFunctionFvPatchScalarField.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::incompressible::RAS::nutStandardRoughWallFunctionFvPatchScalarField + Foam::incompressible::RASModels::nutStandardRoughWallFunctionFvPatchScalarField Description Wall function boundary condition for rough walls diff --git a/src/turbulenceModels/RAS/incompressible/wallFunctions/nutWallFunctions/nutStandardWallFunction/nutStandardWallFunctionFvPatchScalarField.H b/src/turbulenceModels/RAS/incompressible/wallFunctions/nutWallFunctions/nutStandardWallFunction/nutStandardWallFunctionFvPatchScalarField.H index 5180a3ec45..f4042e7f5f 100644 --- a/src/turbulenceModels/RAS/incompressible/wallFunctions/nutWallFunctions/nutStandardWallFunction/nutStandardWallFunctionFvPatchScalarField.H +++ b/src/turbulenceModels/RAS/incompressible/wallFunctions/nutWallFunctions/nutStandardWallFunction/nutStandardWallFunctionFvPatchScalarField.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::incompressible::RAS::nutStandardWallFunctionFvPatchScalarField + Foam::incompressible::RASModels::nutStandardWallFunctionFvPatchScalarField Description Wall function boundary condition for walls diff --git a/src/turbulenceModels/RAS/incompressible/wallFunctions/nutWallFunctions/nutWallFunction/nutWallFunctionFvPatchScalarField.H b/src/turbulenceModels/RAS/incompressible/wallFunctions/nutWallFunctions/nutWallFunction/nutWallFunctionFvPatchScalarField.H index 4e7f108dd1..218599b59c 100644 --- a/src/turbulenceModels/RAS/incompressible/wallFunctions/nutWallFunctions/nutWallFunction/nutWallFunctionFvPatchScalarField.H +++ b/src/turbulenceModels/RAS/incompressible/wallFunctions/nutWallFunctions/nutWallFunction/nutWallFunctionFvPatchScalarField.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::incompressible::RAS::nutWallFunctionFvPatchScalarField + Foam::incompressible::RASModels::nutWallFunctionFvPatchScalarField Description Wall function boundary condition for walls From 0ed1f9427818ecf17a2d05504f29f4e59ef33f3c Mon Sep 17 00:00:00 2001 From: henry Date: Tue, 1 Jul 2008 11:18:18 +0100 Subject: [PATCH 02/28] Removed the switch to Gauss. Will need to be reinstated after further development. --- .../leastSquaresGrad/leastSquaresVectors.C | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/finiteVolume/finiteVolume/gradSchemes/leastSquaresGrad/leastSquaresVectors.C b/src/finiteVolume/finiteVolume/gradSchemes/leastSquaresGrad/leastSquaresVectors.C index 97dfc106f6..54e7985d0d 100644 --- a/src/finiteVolume/finiteVolume/gradSchemes/leastSquaresGrad/leastSquaresVectors.C +++ b/src/finiteVolume/finiteVolume/gradSchemes/leastSquaresGrad/leastSquaresVectors.C @@ -134,7 +134,7 @@ void Foam::leastSquaresVectors::makeLeastSquaresVectors() const const unallocLabelList& faceCells = p.patch().faceCells(); // Build the d-vectors - vectorField pd = + vectorField pd = mesh.Sf().boundaryField()[patchi] /( mesh.magSf().boundaryField()[patchi] @@ -198,7 +198,7 @@ void Foam::leastSquaresVectors::makeLeastSquaresVectors() const const unallocLabelList& faceCells = p.faceCells(); // Build the d-vectors - vectorField pd = + vectorField pd = mesh.Sf().boundaryField()[patchi] /( mesh.magSf().boundaryField()[patchi] @@ -239,6 +239,7 @@ void Foam::leastSquaresVectors::makeLeastSquaresVectors() const // For 3D meshes check the determinant of the dd tensor and switch to // Gauss if it is less than 3 + /* Currently the det(dd[celli]) criterion is incorrect: dd is weighted by Sf if (mesh.nGeometricD() == 3) { label nBadCells = 0; @@ -279,7 +280,7 @@ void Foam::leastSquaresVectors::makeLeastSquaresVectors() const if (mesh.boundary()[patchi].size()) { - label patchFacei = + label patchFacei = facei - mesh.boundaryMesh()[patchi].start(); if (mesh.boundary()[patchi].coupled()) @@ -294,14 +295,14 @@ void Foam::leastSquaresVectors::makeLeastSquaresVectors() const 0.2 ); - lsP.boundaryField()[patchi][patchFacei] = + lsP.boundaryField()[patchi][patchFacei] = (1 - wf) *Sf.boundaryField()[patchi][patchFacei] /V[celli]; } else { - lsP.boundaryField()[patchi][patchFacei] = + lsP.boundaryField()[patchi][patchFacei] = Sf.boundaryField()[patchi][patchFacei] /V[celli]; } @@ -318,7 +319,7 @@ void Foam::leastSquaresVectors::makeLeastSquaresVectors() const << endl; } } - + */ if (debug) { From 0d3eec3dc487bb7c4e34ab3a7d31bd1f1e15c36b Mon Sep 17 00:00:00 2001 From: Mark Olesen Date: Tue, 1 Jul 2008 13:09:04 +0200 Subject: [PATCH 03/28] removed more derived files from repo --- .gitignore | 9 ++++++--- wmake/rules/linux64Gcc42/dirToString | Bin 11393 -> 0 bytes wmake/rules/linux64Gcc42/wmkdep | Bin 35550 -> 0 bytes wmake/rules/linux64Icc/dirToString | Bin 29629 -> 0 bytes wmake/rules/linux64Icc/wmkdep | Bin 66822 -> 0 bytes wmake/rules/linuxGcc/dirToString | Bin 7187 -> 0 bytes wmake/rules/linuxGcc/wmkdep | Bin 28839 -> 0 bytes wmake/rules/linuxGcc42/dirToString | Bin 7187 -> 0 bytes wmake/rules/linuxGcc42/wmkdep | Bin 28839 -> 0 bytes wmake/rules/linuxIA64Gcc/dirToString | Bin 9390 -> 0 bytes wmake/rules/linuxIA64Gcc/wmkdep | Bin 42408 -> 0 bytes wmake/rules/linuxIA64Icc/dirToString | Bin 9423 -> 0 bytes wmake/rules/linuxIA64Icc/wmkdep | Bin 51976 -> 0 bytes wmake/rules/linuxIcc/dirToString | Bin 10657 -> 0 bytes wmake/rules/solarisGcc/dirToString | Bin 7340 -> 0 bytes wmake/rules/solarisGcc/wmkdep | Bin 21976 -> 0 bytes 16 files changed, 6 insertions(+), 3 deletions(-) delete mode 100755 wmake/rules/linux64Gcc42/dirToString delete mode 100755 wmake/rules/linux64Gcc42/wmkdep delete mode 100755 wmake/rules/linux64Icc/dirToString delete mode 100755 wmake/rules/linux64Icc/wmkdep delete mode 100755 wmake/rules/linuxGcc/dirToString delete mode 100755 wmake/rules/linuxGcc/wmkdep delete mode 100755 wmake/rules/linuxGcc42/dirToString delete mode 100755 wmake/rules/linuxGcc42/wmkdep delete mode 100755 wmake/rules/linuxIA64Gcc/dirToString delete mode 100755 wmake/rules/linuxIA64Gcc/wmkdep delete mode 100755 wmake/rules/linuxIA64Icc/dirToString delete mode 100755 wmake/rules/linuxIA64Icc/wmkdep delete mode 100755 wmake/rules/linuxIcc/dirToString delete mode 100755 wmake/rules/solarisGcc/dirToString delete mode 100755 wmake/rules/solarisGcc/wmkdep diff --git a/.gitignore b/.gitignore index f32722697b..4a7188cdfb 100644 --- a/.gitignore +++ b/.gitignore @@ -16,6 +16,8 @@ *.la *.so *.jar + +# ignore derived files lex.yy.c # Corefiles @@ -32,9 +34,10 @@ linux*Gcc* # reinstate wmake/rules that look like build folders !wmake/rules/linux* -# but do ignore the derived files in there -wmake/rules/linux*/dirToString -wmake/rules/linux*/wmkdep + +# but do continue to ignore the derived wmake files +wmake/rules/*/dirToString +wmake/rules/*/wmkdep # doxygen generated documentation doc/[Dd]oxygen/html diff --git a/wmake/rules/linux64Gcc42/dirToString b/wmake/rules/linux64Gcc42/dirToString deleted file mode 100755 index 1f9e9266a6afac14ad47fa6507d0a988cbf31bbd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11393 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 diff --git a/wmake/rules/linux64Icc/dirToString b/wmake/rules/linux64Icc/dirToString deleted file mode 100755 index e58c7b3a7352e80d171d706ce53de29eb1a3c817..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29629 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 Ckuf{~ diff --git a/wmake/rules/linux64Icc/wmkdep b/wmake/rules/linux64Icc/wmkdep deleted file mode 100755 index b7653e1c7aa017d4e3796ab233df9a6028216567..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 66822 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
  • G3z%WVO0x0WLZY9ETVTq@*vd@j6U5+Oajq=h1mk3*ZA6Q?HE6H+E0h5fpIfu^ z0Of6Fpt&_u&aIhzZlyhgOX!)z$!~GPuL9tPpSqpy+Kqb^qPM5(SxM=7Vv^gqsDA9f zTj$NtNr0^YZo@8y{y{)wV_Zkk<(m`C(~wEXB$0Z5C6~3>EaWI?QV8V{>I`$hg8Frk z-Bp>`gxFJhbyk%xCd+%kqkkbbA-=&T!~$wH8orb70PELcIPYBuJP~p|DTDSV zKs&u+O#9nzYN9Q?&1Rv^P>&|J=@!Jgu9I+?Ce!sPj^Gm1EBw|Z z-puhyso1Vuh}IoMt?I0tkJinMaqF3Jd`lBe3*TwsKyE1!O=z!JiZ;e#DT%B>I#KXO z&(+X81^FO7vDKIqqsJ!&b9P}mjZeZQoT`-q5%&f5^0t2;ZNE2NpN_VVPs$=s4ST&; ziZyp=93WcUNQW;lAHG24EmU7=Z3I{i;5IIG8SrcRcLO4u@)}%*hM_6ZId?CO=$yMy zi=uO01ZBYSY$V4s^&H>t1aAy=y$gt!H~2$fHxDkTl^WaKAW|1i-3z1~2pyq|F)23m z*Qxqsz_^JBS)upOH|$$$}lO;6sSQFy_{0pp~&rMRNI*#p!yHBlw8W zIT2aFP%;f4M#Xe}WMXAh

    RF&|!$uB*atYKmtTm$Z9`=`{*Nl`M_X@@H zZUhhd??~ByN6P+NNBy@hxbjWje_sb^r2meEW9-AIb=W*a(>_0!AO9xr)}?614MfoU zj}_n>9-a86%fQw`at<)GV-vV^ci=MQ5$)Iv*I|QfQ`AIl0^09zMMTUu)M}XTS+GC! zlyQ&V(=&JZ{ zWN)`%S8+J)IS!{i$KkZ+IGpwzhtr~;@%H_-Iz>Gaen z9>3%I+ysT)c=Q`A!|;#-_E?SP$w-Ggc((!={g>ff*>beebC?SQ^H{?=EL|_bKIA;m z$@a4Je#6p@sn~`b8>hFK0V;MLYs)#Hv~FYQFqaXH1@|cs?W<|~u{Y@TYEbUA&j@?J z_zki`D)Dn9!L&Va5iI-(&?w8yRBR^N?gU0hs4bdmDynM+s{QIsQ(-S}zfM=_Q*gVU z<{S@JCOISz<)iiJbhDkG6cGhTLcQfU%*FPE3exz%oC#v|6KZA&r?H8OVm%%dI-9)RgZlY{u zt}cV;Iv(phAkcn@;&Vfa529HUx)IUhc{)!)^-A_2@BQ*kPauV5J2sSOmA#Q zB#Bo$t(XRb^_OpM$0L<;;Xb1-->^!oM8Vt}4$vy`GPO#4eKB|8x+9g5+!JT+!d)g; ziI?$JVq1`fc@0f$SS8jWC0w{=0wjY6E?lC=xD0dKU%6DcaJz9)W7~l<2}rH3uO-r> z_EBMJ&%MUSI}~{o7|kOq?aL06iRrFEjjbCnIzkCFC}4ye=`u#aiP7hh592bfaTms=kHdCW^FxaqOrMJ}5f7D8`vZm9ZJ-Kr4LRZ0aAUatE>4X97K4<>7>+?I zaWUFVw><$mz-VBYTEBG}gU~5n1`&^f;wCniy@^J73^2#|z2~z%xW@N$&i05D_G+70 zg7?2l^Fy_VKU&x5^6+e#nD%Ntdd>On)q?f>mWLj_`f5II(K|U)=%t+R-TF`1aGQep z&s~-ED|g&#-A3#|YNEmXnZ|FJ&#b+>AV|-w zU6?MOS-V8QMjli&Kd1P*XGrzJ1TRo_z+@L1Iq_i7uHY%pX;uNe8FoxXXaa}Jmc^d#&F1W8?E;gI${&`9CuT^LGshO zZIk2H+3vj1_R+(t@ju{=zw7w>(eyoz zxV*=x<+t;P6^FJfuj5Y_wv!FNOFXQYHcT{prhwMAjXkW`7EiSzi#OMDwa%ioG9{1MgVk}`nO=G3PRZ1WgNNknVTo8)6m-rsFO;_}ULm>RM-r5+1iO#}Pc zZ)WLRU1xoVOpKt{Krog;v})5oZe#>KM<&={OAs4ucv|-SM^J3#eRUoiZ1eqB`X2bN9^ulc)?w}9sF zGN#7*H7?++W+aif8jIIRlgM4Yh*vJPaC2NKHu8fn5Ur3r9n!`a@n4faoW@s26Y)~l z-$6ykW4i4gT*1rgEI<;+iW;j|e2e+Ixk z82{igM&fbu3;RHe!w?je?Hu-uJ{Yq`Imr@f8qO)CuB4i4c+{gEyJujkOPeMZo*2|l=L z*Gl>rf+!vN8!r9l@>7=5gsK^*=*jCI*qM$k--%_f|IO4yoxMpcw#RMYLjiBH z`}ky%w(kZwtn%@%bbT5CgP={0y3k7}Nt z(%H0jq_Gd;u+Z|rl&f|N^tHs2-)8*ahsw$yb(Y|a0*z`B`Q$3E9e_`)&%H^%Y z4Jkan+6uc6)|8Qz*3N2@{FZ9F`( z)2OZ?KP<#6=+<6%9J32KARsLG#_fG4wR(7EMn^pCddh;Rj-~A~^+R}tB%>39RX0zs z%G5B_#XB%QbU@wM{Hkt-Vv0cBSgSF0e2&UYt*gCHSbNSos(YHN?G^VR2FboILnG8= zLT85OR|*q6x-UlV@!}GOu4g(xPt-G$^vr&Grm$~%Lk?reOGu1?Z!Lh>AURTcP5725 z?3?Oe*!Rug`-K}MSTar{4W)e_rwtOoxAK;5hZxZdW+Fqit2hZ8D`#KkV3#pdKbncRZqQNc zf+M)L^sViWHu2UJJF#{qAzl;PALgpi4cx_y`q zGBF!uVlt3@Mc$;Vf&_G#J;Z*XlbL4eJ%^^Fui%CO z`bs;>NpJplNC2R;=qp1#Mi=zhwOlOv${}3v8y4m8U~#j6cNUKxlrP1@t>?Qv_le%J z=_S=$t|qAwy=4MuqPNg)&k$gAgj$H1AsTpCZ)t)ypOSnDg^;^PHVy&FlZEIAy?;{}*t#>DAqV;H3cp)%4 zLanLw79WhkXv1$~rea}>sjFq2#MfN}E>1dS2Pv7bV_>+Z6@y1LGzmL1Yw>9`7ObJ% zt74P5lywQ<6ZashgIg#eWi4g@OX0!P|G^yqnL7zfJtkz;uCA-IKW$ASr^o*E{YjL8 zQNcm^r_SbV5r#T}+Miy@$uzb^a&B`*Fu4|QrgCm-B**zO#|RmXWfj3ve#UGXD_P6m zBp<`JD-XuVo?s_XaZ4)DrccnC=4Kn13L^=#flVk~<2JB?5}It_IfVy%{fq7bO+o%~Xq$BXXK4f^IQZ#{ z(hxF|63h2H(~oZ<8G+$gNHhh41T4@D&B~Kb-*i4r6Ui#msr7oD zGV3*3>Xm+cD_7_WT!bq#XxFpHajhG^X4#wl5H)ETDm z;49BJKI#NO|L=}EQ8LE}yKSufBUpafsB_z>_Y+xRBA88>#qCAm8@IUkn@CyG;TN1n1KCnz_4YozF5v;! z`^{U4)Lq$9M_5*vE!~DXXuRI4lq_jW3l$#x@t=*`(hH!|!1cd9&X-LSb#fTug?AZY zOT)<;&QvE`qE4%m=ZREbCoN!XVRiCHG=1ZBGGED(b&{{};Ftf1uqBeH78Lg)k}BrE zIda05hFoi^x5jL#8Ck=b>a7YMWrQu=NTd{HOYg!U!s=}V+Q0F7OINaFz4cLe@ELe$ zVSUhCZ?h2j|DfKYt`YUNpX{x%dfSa5MAX}+##UMXd|asgTdf}rTh7&7!$s%^_9Zvs zEdAUf`C=_GF`;9(!C>6-giC5+91ScboUEy<5pA_HJ`_*}Ki$ zVDEO-bM|iIAF_9I-EQyZT%4}Ii@OHtIzCQuD9{;OiFn=pP0FV#?S70D*mBtN80vQM zX3AXN48-$j7@4pb9Dw~OT+spk@x*^D`2F9(Z?t*(N(Yq17cA(d)lb1uV{0vWjpog9 zg^hmKhEJ`oDq9p<6^|ap;W3w%*s_dsRk>oyPtI`JGd9$A!80BZ?utn-KLJYSHq_oE z5^W6R5A0^>Uj<))hWPg5P2*}RlJ+Af+68e{t>o9Ps%1$IsE()uAooVV2R!fv27NSM zu^mniLdBD~Dm=loHFyt|)v#GOg^AjDilpf^sEL374Y5^e72SBfJVjVoy&&!?#08_M z256I}s{g#MNQ_5%q50vpxMsl%Wu*A3?A??hYO?QEQW>xNR;9Ip2)>6CypJNQ(oP^9 z>h%GxTbrpBwCt~{z32$k7Cm_8m73dGrsh2 z=%%ZsC1KSZW=V13mgK6MCM?ONUqhDk{A5TKmNX6$QG`{TVnH=iwO%_Nn_%@>zOC?=|AaN z2lXjOT{YFH4@Shp`t<#JR#2aEAapU+8QnfRp=bW2XCBluk5YW*emyg&XC5#ze@YwW zD+=((-2)dJnMc#|i+t`tOC$4O8vP%NKr}B8ZQ>i5Cs5kS*kv4VU!D0aK3G4UE}VCJMx zOzU6aX_E}SuC6scZ5QJnbTANf8Pn)|2dnnJFnZ-w*8(fbIr0%a2wuHkqx$;pv? z3EN5d-erPbDd8Xqw{#Tr8zk%^;hqkHu1h#r!di!*-!I{TO9cMY#R5Jh;UEc5wiEQf zOZZ-bz_I^a_9Y9lT5uj^-?7In7VRkiuRf1)ZDO>h+MSj-t+}?sVptx)uS-;0ZK0*q za;bKMCC}19>!x+r`f7c^(O(;+rDj@Bky(k&A$V>G8_pyhH)ie;>J zjdrazO&egDspV>OwAos**4I*^-Js3YdRi80H)$2x#g=mI7OkD-b}h>Cv-X|#XYC#B zO>Kj=R=Y>r2yB)1khV_yyY{&DPtcyx{-v$fUeaCx$D`U7Z9C$(X_shsX>V!swGypN zdmHBoTE4a%a^BT)v`@9qw5PR@_LVkWJFI=HxwNC&kJbk$>1vbc%W*K4`X88*nVHsr^ zZ>eBcTFO|Ls412|v8yf9E#wJwXVWZROGo_AqFhT$R%rPH>hK230!uk+bS}cJmfI{V zE%#U+v^-*Y-13y=Im>Fxzb)04EtXd;Z(82Ayl?r)@|h)QIb=CvId1vMqD3`{x*#ep zs!de8s7rZEBNKjTIG-(0!%~8?@%-92xRP8hTx0%!bIfwE5US4;qh|fJ;=!W(G@6QQ z3^x0P{Ef-@Eoj(?;^l}1#AY@|0fFP57|ja!zg6OYT2bDu5#kZrAY6!W5dzT@5ZWTN zL!e165urW8Z=vt+GXMWmuP_mLG%@|(s+O?1c>Eu=@Lv>0f$$%tQNIS>77^(vh9sJQ z_5UzWWe;eDEK9vSA(x`5KfvK3N9l|Q$+m>$KomO2TIpzzrz8rxI1{%f(uBe?XuoMc> zI7f4mc=v>ctAYt3+O2798=o`)u= zoz5~e!~Zyq0rdi{3u3#l%khgregE2DEW9!iVlnbkxR{4Tz(nAQ_#dbpd1wvT9n|hD zMoYwhilU!Qqu3t!zpWH{vSb#eCF7jJdhyT~^uDYPVIWJDVF??LxbbWWsJ-A3rXmbP z7*rnyGbf`k43uGPI1hsWN3fF!6mx=&0d)*J0;-$;Mk8i4{%0tK35c1%CbCHgpW-(O z)JbeAVy3by*;PDTjWdO7*tI-N1AQ8s0c-|4jF8P{@o+V$UT}C>4yZYxJNyqwEbH9%D7^F;E_3 z|6p4XoBb-0NHHH0reQkcYpq zhY@#>9b(_|Pz&lItSKlQW#98~4DdKR#>0bHXB_9@M|Lm!5x<|a#);KH`}*G{SXqeQrJDLVH1+GCm9Sz~ z#5!mlwL;cWyAI(p&Brd&W+EiXUnfodI&13JMN_}7n)-Fa+DiPoYg1Tvth2gnJ+#TJ z2hKgTp4vFp6X%{K&i>Ll>Yz3J zI--rJbp&iU_r^HfvA(TTo00TRr{zJ?I-6uty9WEn4 zrc{w_YU|b}Wru!GjCFL_B)41MzVP6Ig3)B7C-v zxNePb8Ec8Q>%jWJ`{;`>0=~!ymW2Gk32!4F-pnNAkxK zuO}UO#$Z$^lD9ef|+xSn$qpv)A8!5b2ql!Ak5!iE+oM7g81Ea*f2S~~j!B$dDe%K&c{ zbQ}RWV^N|B@PQ_>O!#mUpyNbI{R3bL$8N;=kHCcP6W|d|gsy)=_yOLdqA!H6GXee( z#mz$SBJO7BTEIg-U^%~@1&?R~N;eVy&UMgn7<@^*0JQlS9?&LeGYp>MtH{d)dC z9e6$f?L}yH7joQ*9ACumJzW0_e$s02P+2D+$BFQl?uC~Y!u5l={x@=c5Z==o!1aK; zkn?)vO#az=_)$ueH+YSFg#4*SR>IeufV?ImuOhU?Ug+>Cd?(6v2hTMKpNdNP8ZRaJ zXY29X4yo1fu)ad-Lr8rHQV$}Cw*3|*rSJvt1BiVQo}Z|}AkuDwk6I0Hi_!|K+5)eX zJTK*+c@aASUe`qKd5Nn!_+1u_X%=`~|7KQg0s_UaL1?1=gmMy`fK|>!_@GRyW1999 zht1$yG3`m<7VV#q(L{R!KB7o()na9uzjIzYFb27Hq;IAD4c8NJJ&|1mZ;iY$<$XO2 z$^?Xo@CDm}I)NqNdO5ooS8Z|C7XIKe#I(S8A$}KP7ft*wW$M?DsoyB}2kfNlY!v!U zB|;IxWLAN&7$H~ws0WLmSjo_Ne*JF=)^g%^J60OvcPGkuC;#1pt9$tG0X7$F3Hq(X z{{Bk-dyb963W0tvFh2tQ?uCa*)_yNm0+|T(dk}h(l|P7;KrsUS){Bs<|d5*mN0-vMImxF(K@9@p@`h2-%jxv9a_j*TJ z{*69Ir(DO}ImA+2;w#E8n(gRR=Ey5970Ei4@hzaNoa-qDB7H@pR<(} z2THv@6ZeRmqM~BNn3k~3{Q245QeTeWmo0>M?Z&*tfr4BI z6`LwiRYv3Wb2hnD0S!{wS#=P+^ZmXuDA33;Lmne}U1d^D4t7kQlV9d2DJ`B|np5bQ zn^VSho)yS1@H_m)j?zGp1C{Kb<0BrgudEDqKqW>SJIdyl`F({c^*Jf|69Yxblk?G> zBj)&EQzLWo3j(D+%F5@sA*VDyXBKR$OQ*6f4rD#cM|KoITR7(C`{z(y2vUAgzCS;w z00xQX<%g2*xDu9BJh#ko)p*B%e#x`){f^9BFhkL)zEW;neS7y#bwJf3-(0kH8N{MB zX8CwN4GPz59xngt;(((t0BbJDFS?#`zh#ab4A?!5$>bpdlu#!ozklBv0$lu*i*BDx5Wvlcfpp!qR$WKjLk~5nt zDF!x2R}8gffmvn#e1Cv+?>5+!Z&UYxevVEB^9Cb0I;5$~dcB%X5)8Ru$Q2Cy(yaTG zvYgrIipVCv2xD9}p9;|F)OF*$Wxm;DXxV&vFeSV;nfHU~4RwREVYuXdFt4<@(Ba2` zUqAYx?q}r}aeuj5VnKTu08VqTvIF8)K`SpF&A=yncHAe{%o4=$xiFjBI{h^l&MT%^B@e1 z*MgXKU|BThxqLY#q?I_h;R|D?iJcF?`MzB44<)-9OMy2;oY&>tkV7!3>$u^gGe=CG zl%3(8*bVndit$)f8QDTJ#EtNzV_dF}^A_Zkl`$srKqG{?KcZntW{MQfAwI#;3$zGd zBR9X)=k=3oB7L<|@XX4={3q;sW-c@Y<3Dd74xKz9YuL5yQ2cC>yhIo zW~F-?@QIm|r%W8%fRFNw8*Ywo>Q3!T1C<=F>g8ap;t^_`GUwNHBt_-%BzdO1n~tRM z?{xZblnsWGQ#w09qf~t!Wj=2)`G!jOQjBwW1TLGqnrYkvsgI*>Eg~Ea3_9eU)W^{{ zkd0bJ%xQ6BCuev(j>6*H048eg_L%Ax@x!M~YS16} z$nlvCc%bO|qT;zl_36hJi&=!~QoA^6NCK7v!*T6dSXb8%*S&A9t9u);w z@m%VoHr!9e+XE|`Fjk4j>kFb8JBHU2hSF_Xyt+{U*bMM~z+Au`fJJ~m0nWs0LT}?H z@Ik_EPNv9BXv zz*_-V0%p7c`G6Y%lkfn{Rc}H*;Jbhe09WjU{(vp;vDsKW9J3A35BMtJGQjJ0qaFbZ z0N)1ehYv6h#ltfX;#=FXcz|XlKFPik@X(7Z)2Hvw}8kanO@> z^sLRimQI`*I{+J@BQ_c@D%9DnFdeqs5*rkYUlw=J_)MJ=~j9oRXJjqWNV9b9m1bb^F&62_>+Djj_}_+`kOcA*nz#+>wU z5RTaB74TL%4Luu|KlO=6?h)MMq*vC-8Wqbi7vUZh!P zq4crQ1C>q^c9puGs|*luJtQq{QXaj`R%Kltb(_WdZ*++;f(==O5$GG+VT6h3tzm?o zkwUwnYRw#oXDcCwK8JXJA19&g3-nz&VxwVTvhAqeU>*{qdTVHNs<(zVr+O1@4w1+! ztj$qxs?D9&CXwnt#S@sSfIcn#>nqi1E~s^Dr0|meOt|%$NP*k_Gl6DpAsXW*!ZNhi z&4ZnUvS)Ekhq68DZ`3XrZcOdc&}P&w4Q)p4BH9dU@^%qzMi|+%Xft8Y z1L4;<#dve!ticH3KzCFq@)<;+PEZHs}c%PEI%`$jGR{#>oDJjZqDg{i$)+BhxRR zYkQ)JTVy)9L>kZOh&9g*VRpT&-mZytX_#Gy`vYHbISo}v{Eg_KrrV`fH~~>r7Au++ zeCJFDF8D(T2cdubNGGAVuOyC!vd3B9012%s^Pwk{8J-$~{llOAN~U`-ij%|2-O!(T zNyExrUSDo8+V-}#L8UKiVx0&%vC$5hS%S(m(%)GcRc?iUfEJ}h^d-ErBmz?b0{P*U zqn)^dUrs9FI9L0tu?IHouukCFoXH1s2%kmBod&@D{4q{WSR=?``H`R4U~l9nioQ*K zi|0qaKqC!KqDcOu7<5*7oP^>|kT}j&9x67~J(s@{$Qk6vBZ}51S7bSHC7v@SNc2R| zM>az52m07X=pN9gHbTz@eMTen1)%3OLSG4bQ6uyxLBAn_z5{x02K^>U=k^1dxnDNe zC$;kV_sh$;oOAXs)i14Bo}iyo=Y++M<2H2OiB-D$A!B7M{DE;!Twy)hNPj#3bw|T^ zO+z*P^P#0`-QkJQkE*5-8&QQ*>7E1|txqc_I&p@4PKepHJM-3j@8H zyC+IDg?bJ-Je;X(_HIbYwG;jbeMxBb6ep)N_*wtCKZ0QfRo2kN=d41x*lGJqtKKx= zP`{)@yKy3|Shb7M#c9o&1X?131N#iv3M0i9{Y0)Zjht8%(&$S^PlODF8^Bjegh)Q? zb(|=?8Nu%dWexb}G|HcS8vmo996nEe()(?M0({x(Y`xv0-0$Y&X@!}8$+d3Zj(Im_w!U}b-%eCXeB z@_cq6p9}F(tKTvos$bggx(WH5t$xWarh)Hm@SU$+ECc_A_@vwU+QrM@AA6qsr1wGa zzY6}d=}qkwk1@!BeYM}(E*2o4@yO@5Y%eO$0p#QVjq{=U^;j9(hkVXfzhoDF@b$%h z<@vNT$$b?3cZ2_Ia&y7A1AJeD@3*W^(x)HRqs}#F*N59b`2GyO^DXBx@c(oUxm3;< z!AJYEzjZkiu^@O9`JAiXGr)K9H`a&dsV9+-2OnrfH?BXZo;QO&0QB=2XGqRb@IMwI zhw2r6G+P1sZ`tp6ARj;SIgEU+qk>@G!S@Zt1~6Yp)??)8EW*bPL>z5o&_}D)47|!> zUC5K4%ZFKIk!}Kg)}B@)BG)syJoW5r&n_LYbW|W@#9-eY-#(^&P~;$Vrt77cM}^LW zm7_c>OeI)hv0lklYFMlZ0cyp#!m`v-9wj}FvompDh3=o6c%`nc8HuqXu-GPXONF&i zyVH6#i2E33`$-~JI9~ffHz)}{M6=8`;Wo?is0l6jZWIxJKYp))-)rFa8u+~iey@Sw zYvA`9_`L>xuYuod;P)E%y#{`-f!}N3|6&c`kq>?--6C;Cr>z1yB4LUk*VBha;5jlu ztfZH;aPlkM8sf*Jg-#CnHUzG=Sp<%)JAMp|5jeJ@_>o{0IBw1I<3%YSw<7tGAR!)U z3_IlQG8SAvlhf7SMsFEG`yO=AjSM>QC?h|d7dSao^f}E0jx7>??2(Y}NztM5$No(* z;V#LKdgZvPKRgw|@qBz)7D;%M zgv%v-P{OArY_yV0#9$-!NH$P%htP+v$@Z(O1WtBIv;{Jr%#-kC5+`25@0U3B6T+XA zIQ0|4H%pxCmhk-&C%Yy5gv^iZmhgn-PMpPaRy8nZ2;!jF>9VLE1#$N`U>U*1vPm=f^iFcBCP~x2> zenR41Bp$QUi7T`l0?A8|csGg9l=^m;c(ufPsQ6`0T#5VAls@KmC!zTImXNn!#?yR2 z@r$H=^};pPk4y4X9ECF-y=OZ`)Tj|720OZr8aoB={iXCt>FdDjlmq(o>C@lQwWQQn z>MQW&l=-^h#lk6*G98}$qQE>9<-e9FIoFq$6DaWGoy@@qcyq=0wy1o(xMQ_hoWNpiD&0h2S`+KT1lsC!ZW`sNbmD?B8%bk}5G?#H zml%8}PaM4hWu?8!O1-^G@Xi`ucP#5Qe2UwX(Q7uW#hctWrGGE4H@T?9U(m~27U<lEWpqw9O;uBeN*~ep3=W}O7E2ZOj{&$n2gM0w3l%nk8mF1!gVP6&vejQ zYH>|k;oPZ3>kFb0;L6!LGk0rf ztl{H1O{O%7in%zZQ%q~Jk<%$OB3i_^ShXKpG{^TYG%^AN4R5aH`%}EY7(NU^Y`lFV z*?v*I;MF$KINZ{jT9l1NHPglf(t7nCLtpFASW}DYDNza97>iBNRBwq&(kxbx=KgOg zMXe>3QoXEQy*8?!McJVZX-HNx;{1nFS(A8cz0{BQG5xHd7_UmwMF5{pm|cX|C%toW zN||7&rxC+>R4=TU%L_}_NJnQZay?RC{VkoSOU(One3>tys`1C=IK!Dtr$~9K<|<`+ zRd3IqAw5gM`>y_+S%Cgh0q3YI6y8@_!cy=Go-ZYRxI5XOGh1Sl0+TXX%AB0CIe0^J zei38{=r3g{vx@>L@_pqnBpY#<=W-~4yecX1vlMC?mO}5&vJ`yJA|G+Zx%iv{OYzOg z&ci1ZeA#nykyc?MMRrbUY0i9>LT_c3A#(w)^MX-+Oahq~LnKZqJRc!*7TyR=!F$sD ztwy|EIx8?6qH>Bbq#-3oO9Hd#b;f!;zbLO*#pTSJRqDGzVfdJVPhF$d)TI<>YNlU( zN&Xsj3NbyvJ}gdP1UcaMzr~d}^A2Pp(C9)wvr50r;sgeNPZAs)YdA&DgMAQXPXDCE z$(f&&>DBs>6LE@6PxB{@dn*5J7AG)T7jwYq@liU|{3&Mb206nKhrzZ!y;?6P$c!8k zs&#@&uk;#?v{9z?YW+P>GOG19SojfHe>7XtT36|>*0=O-CLLD^P_Mt@Q;?o&q_wlc z)%w|mS%MA+Ka210Qr=2`NyayNL|v%#YP~*3rr#qOBkNCN}UijGPIbNXuO z&s9r?1JgKL{Yj-$gyj+G)p+`7q2Q2eDE8Crcco0P)U1}{XthjVKnoPp;V@m(<^2ex zze?Xzu2XuFU>u1mLZGMR{}0g3>0N(za!%KuMS^|Gu@z{2`$-hvbrN5*ranN&4!M4x zvsvJgXUfZbR0AQJO21R4-}#E*imY#CKOz?Y^(G?yewlv%d8U6OBK={R{;*6RnO`LS z7SfaLD*e?y&FF6~^AUmKTVai--?>GkT47F%YgO-x+#CWUWm4SCt%9SIVw5nFm)`V=q!H^9 znf@;kkr61PcO4>Wls<7Ao$=m@0QKic-pkLB{$`n;;>||{%0|fak#_ddc9H5ib7EYp z^a_rZ=_A-!$*Y2LuKI5YHf1|uGF}tdG?kHzj6k_Q5knm3-2aY9(EAbrsU4q2Py~ zdK0GnkZ^i5Q~pIbJ*Ix&J)GW@DSsfG-i)bvKAe6*{rnwHk7a6J4yQL~YQ7Dpx2WGY z38&kcnjgdIaZJs7;q;bF&1d2CR`v5#IK4Gf^G`TEo~d~yoZg11`68TtA)XhVX(sXO zDBLAcFt;rXT$08;|gXXuA@%#;srw#-xY{p=KQkLL_|gL z-Ps5t=Xab=@W?T7p(4c{J)w4V)}-j3ZZ=TSA@?Bw*ethbz>f%4-$ zoJr3(xxSZVd^1(h$4Ai5r2h}#C;j(C*e$(3tl=%o$on$1V@dz7#PPIKWyxU&PCva| z$)J;-B@z1sXKELkml~_*d1s(6=K0#$vPz*(52@Adl79c~g09B;ha`QKq|^F@j^`x( z@d)|`N#7yqYFgMO>H8#|*0OYbBI%nYUCle+O8T=Aax_e08oq{IE$K?nmXf|kmMcYw z$A9$_{EH+%-It+*);k)$na#G$3OB3KN~?Wl=RpLIX6oB zstEpDB;6|cQG9;c{a1C&ytN{CJVm+u^%F zGdZrx`-Y@fN9gmVlrwX#lk?x&gadY1(%DUduJrjq(ibg~bivM|&_JXQTP)~GPOPM_ zxJA&FozQV?L^hj zU6MXo7y0&-@*kD-L`feg=`Tq70V$`wq;Hh;c&R6?|68xJJPIfojY(6&2?r58u^v>+;%`L1QwG(~szZl`wZuNaX)j-+QKJ~r7aZO${&C z-`vrRkk5fH1K0QU$G|@huJ7&rUG%;e?bvf)@`T5uylFeE^GH?*4VwM9&L_DET*oIm zPekjxjze_5h_;_P4$*ld8zD!>Av%9V^=aKL@j5i&J=zNl9c;rjxiLCX(1MRX z+4* zSNZ=S&gs8m(s?~8gzc?l^uHAR);(U1>i=WJmr_5aGio$Fy$FAG+=rhE{I&ypAM8rg zIRSq0ZXaIj<00@0(y!saA{;_#cOHk|H2gX6XNj}kwnA@eS7(LC+qYjBIp-kf4~DC~ zT@&6NTZggh2CwH|8$EXuZ@1gikiSxRcWm9KRm3^{Bc|LpAbf2+BNDWHN5GG7_MDO@ z+nwO|?ebjLNh*S0yUTOcb12;3%m1~$KS-SI=dj7wX~?nb%ROP_X#f5K{-{j>ZS(=wsX6_(M`fRr+)h++JQ9)Z`aY< zM0{!2vf!4pIlV>p+l`!Q$hik{E}{Q=0C!cu?K*jL;C9{BL*RD3wj@v;C~N zigcpm{04Xq`hWDjK0!}FP8RLSQKa)F@KIAw{|Ii^<$OmtZl>KC=wWep)c*Co+J_9k zAGfYHoPTfPZP4()dK}zMT=M%yPKeg`ec%~z`VmmJgCeIp_~ArG&b1zWnK;||HDl+e zB)q?u|LgO@(}rgej5o|FX#Gj;$m2I>Ntb!oLN+!qlTh@9}yF zUd>6As)zRzXZyG7Z7v7D#nihb_)62BY=r#GTVB5Eb5Qu3|IWM(F0lu}cF3{oYL0?G zi*c8Zm!^f|X4-ulhxa1MOP^CHH3D(3@KpIFa*;~9~VfSexUEa!u!yl$892t>QnI2?nV&lEC3RL&&0 zUC(;P$T^03cdy~E!v0SXm-+%b$k?0}UOyrEB-ZQ_h*Y&1*iqoYYa&;u_VOrxnN3j_dxU zz+TB5uCVVNxrp28^ALZOFR<$ue_Sm1JvlmQIDdhhzHqc;!IBVjrBJJCWK&2Oefr^p z&J-JYe^i-g`7T+WzKy)J%~q%i<{*$B6}vC@6yMn|c*j?!_oCXRaJXl)#= zBh=K5$&N8!RzAB-@&;N6;Eu+@byl>lt>Mg+%Clrf?6M|O@6ucb)E1H;?=cWTAdqH_ zN5k_+9PPzNATC z(xfM4;!BzMQpWJo_MGJxYI9Vt>NPG#?;yzS8XO$kl6Be5eLJ>rAHfZipC<3fPh%AL z4#o}a9^Sljs6XJj@#u8;KJumK$mN@BnvcsSc8Y-5mBdyuo9SYun#tU;W2mp+B@^^D z5E&jxDMcAMcdQp1QRW%jG*CQqKJBe8pZnfz2i$0J zl01JFXZzWK6@7>hzp;<9#=gu<1fs(*tW|5x2A8`6YJ?|?4M)D3=!nXI(n{Yw#Klr! zO73QAQMohX8!pO9?1VFlP?%y{ZYE!jUG|p6rb})g%cR8WtXL_fiqq!Y{QPXO6i-*2 zI4)ZfK-sEC6A^}Fjjg;zEuya}$#9ZZ9p6VjzQicJx*~Gg4U%jl`Vn8ed={)PZg_zt z47ZtaTVymyD;A?U-6)u&+J zY_H^U*W4#g|0<0>an9B$I?}bT2<3|Oi`3GQZMKr>Z={OUipdYEI6nHbX=0U-C{ljC z>b&c~phR8~jcvBIcHB7AM`P9fpRNTJDmYPid4@fR!USnZO!br^tA+u~r+%3;EzRv# z`tmBvt~r~Tv-Z4jo4B2`8S$;lnTqL<$}K+;%_p@S#ma#w<4PQB2q?L+fb>BX`^j{4 zLw>qCDOqAGl00bzisoXB42T}NL?6zP)mExbd{mO(!)Pif0~2$m(Q=Ny^+M0#jd}~! z4_~!?`xk~%W*u6kfJ{*w{;_3;p)`L@RkxWf^-W<&ielH9zR&a7;r=!Z56+US!_HY7 zrVfS@T`ANS=p&+<$Tr2aBJXP&v2QzlHlp{9C5EZ5tI~(Y9jX>7G^)kUNtF(`=BSNQsaKu+%)DJGUwyIH- zPyR}s+Q80PiS{e4 u@N5Ph!%NetPfLxewsyXOXeO$8Z&M=OM~x;KL{x#?83(?rElKkkz5E}W{$29` diff --git a/wmake/rules/linuxGcc/dirToString b/wmake/rules/linuxGcc/dirToString deleted file mode 100755 index fdcb3c3445d2a3a2839449d3ab7fb98b1a37a345..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7187 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 diff --git a/wmake/rules/linuxGcc/wmkdep b/wmake/rules/linuxGcc/wmkdep deleted file mode 100755 index c80fc36703955a9282993d8efdbf12a27ec2fd21..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28839 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 Ii{(W8Z}Z`yI{*Lx diff --git a/wmake/rules/linuxGcc42/dirToString b/wmake/rules/linuxGcc42/dirToString deleted file mode 100755 index fdcb3c3445d2a3a2839449d3ab7fb98b1a37a345..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7187 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 diff --git a/wmake/rules/linuxGcc42/wmkdep b/wmake/rules/linuxGcc42/wmkdep deleted file mode 100755 index c80fc36703955a9282993d8efdbf12a27ec2fd21..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28839 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 Ii{(W8Z}Z`yI{*Lx diff --git a/wmake/rules/linuxIA64Gcc/dirToString b/wmake/rules/linuxIA64Gcc/dirToString deleted file mode 100755 index b92e398d1bad9423d3c9f8ab94fbb8f97470ace3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9390 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≫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 diff --git a/wmake/rules/linuxIA64Icc/dirToString b/wmake/rules/linuxIA64Icc/dirToString deleted file mode 100755 index 5a96ebf8baade48ae4d0ef2e9a94004bd5776873..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9423 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 U1)pf-gtX>EoFQt3J668-KgV<~?f?J) diff --git a/wmake/rules/linuxIcc/dirToString b/wmake/rules/linuxIcc/dirToString deleted file mode 100755 index 44215285abfed2399965c818eaf13e2a7d4ba353..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10657 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 z

    )TLPU0PEkWk;Qm5xseCu(3%`gs4J{Svx=zt979B{L(WBQD*rEUUn5{F4)$4Lq z&z-xYptzXZB0Gb#0aqsJ;IRDB!!*O0q!|q+!tn^o@IuSArJ(63H~i@)2*KXb12T-iFusft$VP*RoDYqD%f<75k5qwDU^FBZo{<(B*#_P^6KdTamy diff --git a/wmake/rules/solarisGcc/dirToString b/wmake/rules/solarisGcc/dirToString deleted file mode 100755 index 914aee149a2ca9e3cd4e90f28c1c097b6766f873..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7340 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 DM*Vda From db54cffe7fbd108b8e4591cc0d43354df4e1db7c Mon Sep 17 00:00:00 2001 From: mattijs Date: Tue, 1 Jul 2008 18:16:50 +0100 Subject: [PATCH 04/28] removed spaces in fatalioerror message --- src/OpenFOAM/db/dictionary/dictionary.C | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/OpenFOAM/db/dictionary/dictionary.C b/src/OpenFOAM/db/dictionary/dictionary.C index 7ec434aac8..8a38ff9ba2 100644 --- a/src/OpenFOAM/db/dictionary/dictionary.C +++ b/src/OpenFOAM/db/dictionary/dictionary.C @@ -210,7 +210,7 @@ const Foam::entry& Foam::dictionary::lookupEntry ( "dictionary::lookupEntry(const word& keyword) const", *this - ) << " keyword " << keyword << " is undefined in dictionary " + ) << "keyword " << keyword << " is undefined in dictionary " << name() << exit(FatalIOError); } @@ -268,7 +268,7 @@ const Foam::dictionary& Foam::dictionary::subDict(const word& keyword) const ( "dictionary::subDict(const word& keyword) const", *this - ) << " keyword " << keyword << " is undefined in dictionary " + ) << "keyword " << keyword << " is undefined in dictionary " << name() << exit(FatalIOError); } @@ -285,7 +285,7 @@ Foam::dictionary& Foam::dictionary::subDict(const word& keyword) ( "dictionary::subDict(const word& keyword)", *this - ) << " keyword " << keyword << " is undefined in dictionary " + ) << "keyword " << keyword << " is undefined in dictionary " << name() << exit(FatalIOError); } @@ -479,7 +479,7 @@ bool Foam::dictionary::changeKeyword } else { - WarningIn("dictionary::changeKeyword(const word& old, const word& new)") + WarningIn("dictionary::changeKeyword(const word&, const word&)") << "cannot rename keyword "<< oldKeyword << " to existing keyword " << newKeyword << " in dictionary " << name() << endl; From 46c642297629fe75b5ba6b082fd4bec3e3480ef5 Mon Sep 17 00:00:00 2001 From: mattijs Date: Tue, 1 Jul 2008 18:17:07 +0100 Subject: [PATCH 05/28] corrected logic --- .../mesh/manipulation/setSet/setSet.C | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/applications/utilities/mesh/manipulation/setSet/setSet.C b/applications/utilities/mesh/manipulation/setSet/setSet.C index 488d22aa2a..2d70f797c7 100644 --- a/applications/utilities/mesh/manipulation/setSet/setSet.C +++ b/applications/utilities/mesh/manipulation/setSet/setSet.C @@ -344,7 +344,7 @@ bool doCommand / (10*Pstream::nProcs()); - bool error = false; + bool ok = true; // Set to work on autoPtr currentSetPtr(NULL); @@ -388,7 +388,7 @@ bool doCommand Pout<< " Cannot construct/load set " << topoSet::localPath(mesh, setName) << endl; - error = true; + ok = false; } else { @@ -518,7 +518,7 @@ bool doCommand } catch (Foam::IOerror& fIOErr) { - error = true; + ok = false; Pout<< fIOErr.message().c_str() << endl; @@ -529,7 +529,7 @@ bool doCommand } catch (Foam::error& fErr) { - error = true; + ok = false; Pout<< fErr.message().c_str() << endl; @@ -539,15 +539,16 @@ bool doCommand } } - return !error; + return ok; } +// Status returned from parsing the first token of the line enum commandStatus { - QUIT, - INVALID, - VALID + QUIT, // quit program + INVALID, // token is not a valid set manipulation command + VALID // ,, is a valid ,, }; @@ -841,7 +842,7 @@ int main(int argc, char *argv[]) } } - ok = false; + ok = true; if (stat == QUIT) { From a14a0d1a9147ad59168b6a676645aa5a6bd6f9b8 Mon Sep 17 00:00:00 2001 From: mattijs Date: Tue, 1 Jul 2008 19:42:17 +0100 Subject: [PATCH 06/28] mesh changes with pointmesh --- .../utilities/postProcessing/dataConversion/foamToVTK/vtkMesh.C | 1 + 1 file changed, 1 insertion(+) diff --git a/applications/utilities/postProcessing/dataConversion/foamToVTK/vtkMesh.C b/applications/utilities/postProcessing/dataConversion/foamToVTK/vtkMesh.C index 51f4951906..f650dab04c 100644 --- a/applications/utilities/postProcessing/dataConversion/foamToVTK/vtkMesh.C +++ b/applications/utilities/postProcessing/dataConversion/foamToVTK/vtkMesh.C @@ -70,6 +70,7 @@ Foam::polyMesh::readUpdateState Foam::vtkMesh::readUpdate() // the subset even if only movement. topoPtr_.clear(); + pointMeshPtr_.clear(); if (setName_.size() > 0) { From a672bdda7c36f9943a28e0f4eb79d8df08dd37ef Mon Sep 17 00:00:00 2001 From: henry Date: Tue, 1 Jul 2008 20:16:00 +0100 Subject: [PATCH 07/28] New interDyMFoam tutorial: sloshing in a ship's tank --- tutorials/interDyMFoam/Allrun | 12 ------------ tutorials/interDyMFoam/damBreakWithObstacle/0-orig/U | 2 +- .../interDyMFoam/damBreakWithObstacle/0-orig/gamma | 2 +- .../damBreakWithObstacle/0-orig/gamma.org | 2 +- .../interDyMFoam/damBreakWithObstacle/0-orig/pd | 2 +- tutorials/interDyMFoam/damBreakWithObstacle/0/U | 2 +- tutorials/interDyMFoam/damBreakWithObstacle/0/gamma | 2 +- .../interDyMFoam/damBreakWithObstacle/0/gamma.org | 2 +- tutorials/interDyMFoam/damBreakWithObstacle/0/pd | 2 +- tutorials/interDyMFoam/damBreakWithObstacle/Allrun | 9 +++++++++ .../damBreakWithObstacle/constant/RASProperties | 2 +- .../damBreakWithObstacle/constant/dynamicMeshDict | 2 +- .../constant/environmentalProperties | 2 +- .../constant/polyMesh/blockMeshDict | 2 +- .../damBreakWithObstacle/constant/polyMesh/boundary | 2 +- .../constant/transportProperties | 2 +- .../damBreakWithObstacle/system/controlDict | 2 +- .../damBreakWithObstacle/system/decomposeParDict | 2 +- .../damBreakWithObstacle/system/fvSchemes | 2 +- .../damBreakWithObstacle/system/fvSolution | 2 +- .../damBreakWithObstacle/system/setFieldsDict | 2 +- 21 files changed, 28 insertions(+), 31 deletions(-) delete mode 100755 tutorials/interDyMFoam/Allrun create mode 100755 tutorials/interDyMFoam/damBreakWithObstacle/Allrun diff --git a/tutorials/interDyMFoam/Allrun b/tutorials/interDyMFoam/Allrun deleted file mode 100755 index efeef33893..0000000000 --- a/tutorials/interDyMFoam/Allrun +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -# Source tutorial run functions -. $WM_PROJECT_DIR/bin/tools/RunFunctions - -# Get application name from directory -application=`basename $PWD` - -(cd damBreakWithObstacle && runApplication blockMesh) -(cd damBreakWithObstacle && runApplication setSet -batch createObstacle.setSet) -(cd damBreakWithObstacle && runApplication subsetMesh c0 -patch walls) -(cd damBreakWithObstacle && runApplication setFields -latestTime) -(cd damBreakWithObstacle && runApplication $application) diff --git a/tutorials/interDyMFoam/damBreakWithObstacle/0-orig/U b/tutorials/interDyMFoam/damBreakWithObstacle/0-orig/U index f37e2e0d0f..be74aea5a1 100644 --- a/tutorials/interDyMFoam/damBreakWithObstacle/0-orig/U +++ b/tutorials/interDyMFoam/damBreakWithObstacle/0-orig/U @@ -1,7 +1,7 @@ /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.5 | +| \\ / O peration | Version: dev | | \\ / A nd | Web: http://www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ diff --git a/tutorials/interDyMFoam/damBreakWithObstacle/0-orig/gamma b/tutorials/interDyMFoam/damBreakWithObstacle/0-orig/gamma index 2e2bf16c3c..e7dd5fba73 100644 --- a/tutorials/interDyMFoam/damBreakWithObstacle/0-orig/gamma +++ b/tutorials/interDyMFoam/damBreakWithObstacle/0-orig/gamma @@ -1,7 +1,7 @@ /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.5 | +| \\ / O peration | Version: dev | | \\ / A nd | Web: http://www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ diff --git a/tutorials/interDyMFoam/damBreakWithObstacle/0-orig/gamma.org b/tutorials/interDyMFoam/damBreakWithObstacle/0-orig/gamma.org index 2e2bf16c3c..e7dd5fba73 100644 --- a/tutorials/interDyMFoam/damBreakWithObstacle/0-orig/gamma.org +++ b/tutorials/interDyMFoam/damBreakWithObstacle/0-orig/gamma.org @@ -1,7 +1,7 @@ /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.5 | +| \\ / O peration | Version: dev | | \\ / A nd | Web: http://www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ diff --git a/tutorials/interDyMFoam/damBreakWithObstacle/0-orig/pd b/tutorials/interDyMFoam/damBreakWithObstacle/0-orig/pd index f5801776cf..bf55dd55f3 100644 --- a/tutorials/interDyMFoam/damBreakWithObstacle/0-orig/pd +++ b/tutorials/interDyMFoam/damBreakWithObstacle/0-orig/pd @@ -1,7 +1,7 @@ /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.5 | +| \\ / O peration | Version: dev | | \\ / A nd | Web: http://www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ diff --git a/tutorials/interDyMFoam/damBreakWithObstacle/0/U b/tutorials/interDyMFoam/damBreakWithObstacle/0/U index e791ef363f..92dbcc4672 100644 --- a/tutorials/interDyMFoam/damBreakWithObstacle/0/U +++ b/tutorials/interDyMFoam/damBreakWithObstacle/0/U @@ -1,7 +1,7 @@ /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.5 | +| \\ / O peration | Version: dev | | \\ / A nd | Web: http://www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ diff --git a/tutorials/interDyMFoam/damBreakWithObstacle/0/gamma b/tutorials/interDyMFoam/damBreakWithObstacle/0/gamma index 7602a0953b..f933566bb4 100644 --- a/tutorials/interDyMFoam/damBreakWithObstacle/0/gamma +++ b/tutorials/interDyMFoam/damBreakWithObstacle/0/gamma @@ -1,7 +1,7 @@ /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.5 | +| \\ / O peration | Version: dev | | \\ / A nd | Web: http://www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ diff --git a/tutorials/interDyMFoam/damBreakWithObstacle/0/gamma.org b/tutorials/interDyMFoam/damBreakWithObstacle/0/gamma.org index 2e2bf16c3c..e7dd5fba73 100644 --- a/tutorials/interDyMFoam/damBreakWithObstacle/0/gamma.org +++ b/tutorials/interDyMFoam/damBreakWithObstacle/0/gamma.org @@ -1,7 +1,7 @@ /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.5 | +| \\ / O peration | Version: dev | | \\ / A nd | Web: http://www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ diff --git a/tutorials/interDyMFoam/damBreakWithObstacle/0/pd b/tutorials/interDyMFoam/damBreakWithObstacle/0/pd index f5801776cf..bf55dd55f3 100644 --- a/tutorials/interDyMFoam/damBreakWithObstacle/0/pd +++ b/tutorials/interDyMFoam/damBreakWithObstacle/0/pd @@ -1,7 +1,7 @@ /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.5 | +| \\ / O peration | Version: dev | | \\ / A nd | Web: http://www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ diff --git a/tutorials/interDyMFoam/damBreakWithObstacle/Allrun b/tutorials/interDyMFoam/damBreakWithObstacle/Allrun new file mode 100755 index 0000000000..ce475808de --- /dev/null +++ b/tutorials/interDyMFoam/damBreakWithObstacle/Allrun @@ -0,0 +1,9 @@ +#!/bin/sh +# Source tutorial run functions +. $WM_PROJECT_DIR/bin/tools/RunFunctions + +runApplication blockMesh +runApplication setSet -batch createObstacle.setSet +runApplication subsetMesh c0 -patch walls +runApplication setFields +runApplication interDyMFoam diff --git a/tutorials/interDyMFoam/damBreakWithObstacle/constant/RASProperties b/tutorials/interDyMFoam/damBreakWithObstacle/constant/RASProperties index 4955328ed8..919d435ff3 100644 --- a/tutorials/interDyMFoam/damBreakWithObstacle/constant/RASProperties +++ b/tutorials/interDyMFoam/damBreakWithObstacle/constant/RASProperties @@ -1,7 +1,7 @@ /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.5 | +| \\ / O peration | Version: dev | | \\ / A nd | Web: http://www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ diff --git a/tutorials/interDyMFoam/damBreakWithObstacle/constant/dynamicMeshDict b/tutorials/interDyMFoam/damBreakWithObstacle/constant/dynamicMeshDict index b7a078806a..56b10abaf9 100644 --- a/tutorials/interDyMFoam/damBreakWithObstacle/constant/dynamicMeshDict +++ b/tutorials/interDyMFoam/damBreakWithObstacle/constant/dynamicMeshDict @@ -1,7 +1,7 @@ /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.5 | +| \\ / O peration | Version: dev | | \\ / A nd | Web: http://www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ diff --git a/tutorials/interDyMFoam/damBreakWithObstacle/constant/environmentalProperties b/tutorials/interDyMFoam/damBreakWithObstacle/constant/environmentalProperties index 9c35d375b1..40232c0c40 100644 --- a/tutorials/interDyMFoam/damBreakWithObstacle/constant/environmentalProperties +++ b/tutorials/interDyMFoam/damBreakWithObstacle/constant/environmentalProperties @@ -1,7 +1,7 @@ /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.5 | +| \\ / O peration | Version: dev | | \\ / A nd | Web: http://www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ diff --git a/tutorials/interDyMFoam/damBreakWithObstacle/constant/polyMesh/blockMeshDict b/tutorials/interDyMFoam/damBreakWithObstacle/constant/polyMesh/blockMeshDict index b31c669797..09be8b82ff 100644 --- a/tutorials/interDyMFoam/damBreakWithObstacle/constant/polyMesh/blockMeshDict +++ b/tutorials/interDyMFoam/damBreakWithObstacle/constant/polyMesh/blockMeshDict @@ -1,7 +1,7 @@ /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.5 | +| \\ / O peration | Version: dev | | \\ / A nd | Web: http://www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ diff --git a/tutorials/interDyMFoam/damBreakWithObstacle/constant/polyMesh/boundary b/tutorials/interDyMFoam/damBreakWithObstacle/constant/polyMesh/boundary index 924d99d937..1300f15c76 100644 --- a/tutorials/interDyMFoam/damBreakWithObstacle/constant/polyMesh/boundary +++ b/tutorials/interDyMFoam/damBreakWithObstacle/constant/polyMesh/boundary @@ -1,7 +1,7 @@ /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.5 | +| \\ / O peration | Version: dev | | \\ / A nd | Web: http://www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ diff --git a/tutorials/interDyMFoam/damBreakWithObstacle/constant/transportProperties b/tutorials/interDyMFoam/damBreakWithObstacle/constant/transportProperties index 117a1c9169..3460aba08f 100644 --- a/tutorials/interDyMFoam/damBreakWithObstacle/constant/transportProperties +++ b/tutorials/interDyMFoam/damBreakWithObstacle/constant/transportProperties @@ -1,7 +1,7 @@ /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.5 | +| \\ / O peration | Version: dev | | \\ / A nd | Web: http://www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ diff --git a/tutorials/interDyMFoam/damBreakWithObstacle/system/controlDict b/tutorials/interDyMFoam/damBreakWithObstacle/system/controlDict index 8c9606a909..0ad41244b4 100644 --- a/tutorials/interDyMFoam/damBreakWithObstacle/system/controlDict +++ b/tutorials/interDyMFoam/damBreakWithObstacle/system/controlDict @@ -1,7 +1,7 @@ /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.5 | +| \\ / O peration | Version: dev | | \\ / A nd | Web: http://www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ diff --git a/tutorials/interDyMFoam/damBreakWithObstacle/system/decomposeParDict b/tutorials/interDyMFoam/damBreakWithObstacle/system/decomposeParDict index 5e0c8ef33c..b7f14f7154 100644 --- a/tutorials/interDyMFoam/damBreakWithObstacle/system/decomposeParDict +++ b/tutorials/interDyMFoam/damBreakWithObstacle/system/decomposeParDict @@ -1,7 +1,7 @@ /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.5 | +| \\ / O peration | Version: dev | | \\ / A nd | Web: http://www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ diff --git a/tutorials/interDyMFoam/damBreakWithObstacle/system/fvSchemes b/tutorials/interDyMFoam/damBreakWithObstacle/system/fvSchemes index 1c38514090..a03b85207d 100644 --- a/tutorials/interDyMFoam/damBreakWithObstacle/system/fvSchemes +++ b/tutorials/interDyMFoam/damBreakWithObstacle/system/fvSchemes @@ -1,7 +1,7 @@ /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.5 | +| \\ / O peration | Version: dev | | \\ / A nd | Web: http://www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ diff --git a/tutorials/interDyMFoam/damBreakWithObstacle/system/fvSolution b/tutorials/interDyMFoam/damBreakWithObstacle/system/fvSolution index 24625a2ad4..ecb3469be2 100644 --- a/tutorials/interDyMFoam/damBreakWithObstacle/system/fvSolution +++ b/tutorials/interDyMFoam/damBreakWithObstacle/system/fvSolution @@ -1,7 +1,7 @@ /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.5 | +| \\ / O peration | Version: dev | | \\ / A nd | Web: http://www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ diff --git a/tutorials/interDyMFoam/damBreakWithObstacle/system/setFieldsDict b/tutorials/interDyMFoam/damBreakWithObstacle/system/setFieldsDict index 5702452d41..708c1cacd6 100644 --- a/tutorials/interDyMFoam/damBreakWithObstacle/system/setFieldsDict +++ b/tutorials/interDyMFoam/damBreakWithObstacle/system/setFieldsDict @@ -1,7 +1,7 @@ /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.5 | +| \\ / O peration | Version: dev | | \\ / A nd | Web: http://www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ From 1e7f8941c93e85fb8a52c60c218b1ab254ee9ba9 Mon Sep 17 00:00:00 2001 From: henry Date: Tue, 1 Jul 2008 20:17:56 +0100 Subject: [PATCH 08/28] New interDyMFoam tutorial: sloshing in a ship's tank --- tutorials/interDyMFoam/sloshingTank/0/U | 43 +++++ .../interDyMFoam/sloshingTank/0/gamma.org | 41 +++++ tutorials/interDyMFoam/sloshingTank/0/pd | 41 +++++ tutorials/interDyMFoam/sloshingTank/Allclean | 4 + tutorials/interDyMFoam/sloshingTank/Allrun | 9 + .../sloshingTank/constant/RASProperties | 173 ++++++++++++++++++ .../sloshingTank/constant/dynamicMeshDict | 60 ++++++ .../constant/environmentalProperties | 19 ++ .../constant/polyMesh/blockMeshDict | 145 +++++++++++++++ .../constant/polyMesh/blockMeshDict.m4 | 145 +++++++++++++++ .../sloshingTank/constant/polyMesh/boundary | 40 ++++ .../sloshingTank/constant/transportProperties | 33 ++++ .../sloshingTank/system/controlDict | 107 +++++++++++ .../sloshingTank/system/decomposeParDict | 56 ++++++ .../sloshingTank/system/fvSchemes | 59 ++++++ .../sloshingTank/system/fvSolution | 123 +++++++++++++ .../sloshingTank/system/setFieldsDict | 35 ++++ 17 files changed, 1133 insertions(+) create mode 100644 tutorials/interDyMFoam/sloshingTank/0/U create mode 100644 tutorials/interDyMFoam/sloshingTank/0/gamma.org create mode 100644 tutorials/interDyMFoam/sloshingTank/0/pd create mode 100755 tutorials/interDyMFoam/sloshingTank/Allclean create mode 100755 tutorials/interDyMFoam/sloshingTank/Allrun create mode 100644 tutorials/interDyMFoam/sloshingTank/constant/RASProperties create mode 100644 tutorials/interDyMFoam/sloshingTank/constant/dynamicMeshDict create mode 100644 tutorials/interDyMFoam/sloshingTank/constant/environmentalProperties create mode 100644 tutorials/interDyMFoam/sloshingTank/constant/polyMesh/blockMeshDict create mode 100644 tutorials/interDyMFoam/sloshingTank/constant/polyMesh/blockMeshDict.m4 create mode 100644 tutorials/interDyMFoam/sloshingTank/constant/polyMesh/boundary create mode 100644 tutorials/interDyMFoam/sloshingTank/constant/transportProperties create mode 100644 tutorials/interDyMFoam/sloshingTank/system/controlDict create mode 100644 tutorials/interDyMFoam/sloshingTank/system/decomposeParDict create mode 100644 tutorials/interDyMFoam/sloshingTank/system/fvSchemes create mode 100644 tutorials/interDyMFoam/sloshingTank/system/fvSolution create mode 100644 tutorials/interDyMFoam/sloshingTank/system/setFieldsDict diff --git a/tutorials/interDyMFoam/sloshingTank/0/U b/tutorials/interDyMFoam/sloshingTank/0/U new file mode 100644 index 0000000000..ead7f1f8b7 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank/0/U @@ -0,0 +1,43 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volVectorField; + object U; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -1 0 0 0 0]; + +internalField uniform (0 0 0); + +boundaryField +{ + front + { + type empty; + } + back + { + type empty; + } + walls + { + type movingWallVelocity; + value uniform (0 0 0); + } + pipe + { + type movingWallVelocity; + value uniform (0 0 0); + } +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank/0/gamma.org b/tutorials/interDyMFoam/sloshingTank/0/gamma.org new file mode 100644 index 0000000000..8c4ab31ce2 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank/0/gamma.org @@ -0,0 +1,41 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + object gamma.0; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + front + { + type empty; + } + back + { + type empty; + } + walls + { + type zeroGradient; + } + pipe + { + type zeroGradient; + } +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank/0/pd b/tutorials/interDyMFoam/sloshingTank/0/pd new file mode 100644 index 0000000000..fdb2ba3ce6 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank/0/pd @@ -0,0 +1,41 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + object pd; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -2 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + front + { + type empty; + } + back + { + type empty; + } + walls + { + type zeroGradient; + } + pipe + { + type zeroGradient; + } +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank/Allclean b/tutorials/interDyMFoam/sloshingTank/Allclean new file mode 100755 index 0000000000..2ffbd01add --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank/Allclean @@ -0,0 +1,4 @@ +#!/bin/sh + +foamCleanTutorials cases +rm -rf 0/gamma.gz probes wallPressure pRefProbe diff --git a/tutorials/interDyMFoam/sloshingTank/Allrun b/tutorials/interDyMFoam/sloshingTank/Allrun new file mode 100755 index 0000000000..748dcf65ba --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank/Allrun @@ -0,0 +1,9 @@ +#!/bin/sh +# Source tutorial run functions +. $WM_PROJECT_DIR/bin/tools/RunFunctions + +m4 < constant/polyMesh/blockMeshDict.m4 > constant/polyMesh/blockMeshDict +runApplication blockMesh +cp 0/gamma.org 0/gamma +runApplication setFields +runApplication interDyMFoam diff --git a/tutorials/interDyMFoam/sloshingTank/constant/RASProperties b/tutorials/interDyMFoam/sloshingTank/constant/RASProperties new file mode 100644 index 0000000000..ac1efb34c5 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank/constant/RASProperties @@ -0,0 +1,173 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object RASProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +// RASModel kEpsilon; +RASModel laminar; + +turbulence off; + +laminarCoeffs +{ +} + +kEpsilonCoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphaEps 0.76923; +} + +RNGkEpsilonCoeffs +{ + Cmu 0.0845; + C1 1.42; + C2 1.68; + alphak 1.39; + alphaEps 1.39; + eta0 4.38; + beta 0.012; +} + +NonlinearKEShihCoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphak 1; + alphaEps 0.76932; + A1 1.25; + A2 1000; + Ctau1 -4; + Ctau2 13; + Ctau3 -2; + alphaKsi 0.9; +} + +LienCubicKECoeffs +{ + C1 1.44; + C2 1.92; + alphak 1; + alphaEps 0.76923; + A1 1.25; + A2 1000; + Ctau1 -4; + Ctau2 13; + Ctau3 -2; + alphaKsi 0.9; +} + +QZetaCoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphaZeta 0.76923; + anisotropic no; +} + +LaunderSharmaKECoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphaEps 0.76923; +} + +LamBremhorstKECoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphaEps 0.76923; +} + +LienCubicKELowReCoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphak 1; + alphaEps 0.76923; + A1 1.25; + A2 1000; + Ctau1 -4; + Ctau2 13; + Ctau3 -2; + alphaKsi 0.9; + Am 0.016; + Aepsilon 0.263; + Amu 0.00222; +} + +LienLeschzinerLowReCoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphak 1; + alphaEps 0.76923; + Am 0.016; + Aepsilon 0.263; + Amu 0.00222; +} + +LRRCoeffs +{ + Cmu 0.09; + Clrr1 1.8; + Clrr2 0.6; + C1 1.44; + C2 1.92; + Cs 0.25; + Ceps 0.15; + alphaEps 0.76923; +} + +LaunderGibsonRSTMCoeffs +{ + Cmu 0.09; + Clg1 1.8; + Clg2 0.6; + C1 1.44; + C2 1.92; + C1Ref 0.5; + C2Ref 0.3; + Cs 0.25; + Ceps 0.15; + alphaEps 0.76923; + alphaR 1.22; +} + +SpalartAllmarasCoeffs +{ + alphaNut 1.5; + Cb1 0.1355; + Cb2 0.622; + Cw2 0.3; + Cw3 2; + Cv1 7.1; + Cv2 5.0; +} + +wallFunctionCoeffs +{ + kappa 0.4187; + E 9; +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank/constant/dynamicMeshDict b/tutorials/interDyMFoam/sloshingTank/constant/dynamicMeshDict new file mode 100644 index 0000000000..e7a0ec06d6 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank/constant/dynamicMeshDict @@ -0,0 +1,60 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object motionProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dynamicFvMesh solidBodyMotionFvMesh; + +solidBodyMotionFvMeshCoeffs +{ + solidBodyMotionFunction SDA; + + SDACoeffs + { + // Centre of gravity + CofG (0 0 0); + + // Model scale ratio + lamda 50; + + // Max roll amplitude [rad] + rollAmax 0.22654; + + // Min roll amplitude [rad] + rollAmin 0.10472; + + // Heave amplitude [m] + heaveA 3.79; + + // Sway amplitude [m] + swayA 2.34; + + // Damping Coefficient [-] + Q 2.00; + + // Time Period for liquid [sec] + Tp 13.93; + + // Natural Period of Ship [sec] + Tpn 11.93; + + // Reference time step [sec] + dTi 0.059; + + // Incr. in Tp/unit 'dTi'[-] + dTp -0.001; + } +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank/constant/environmentalProperties b/tutorials/interDyMFoam/sloshingTank/constant/environmentalProperties new file mode 100644 index 0000000000..40232c0c40 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank/constant/environmentalProperties @@ -0,0 +1,19 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object environmentalProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +g g [0 1 -2 0 0 0 0] (0 0 -9.81); + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank/constant/polyMesh/blockMeshDict b/tutorials/interDyMFoam/sloshingTank/constant/polyMesh/blockMeshDict new file mode 100644 index 0000000000..3c52247aa2 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank/constant/polyMesh/blockMeshDict @@ -0,0 +1,145 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object blockMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// General m4 macros + + + + + + + + + + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// User-defined parameters + +convertToMeters 1; + + // Length of tank (x-direction) + // Breadth of tank (y-direction) + // Depth of tank (z-direction) + + // Depth to the top (height) of lower chamfer + // Height of upper chamfer + + // Angle of lower chamfer to the horizontal + // Angle of upper chamfer to the horizontal + + // Centre of gravity in y-direction + // Centre of gravity in z-direction + + // Number of cells in the length (1 for 2D) + // Number of cells in the breadth + // Number of cells in the height of the lower champfer + // Number of cells in the height between the chamfers + // Number of cells in the height of the upper champfer + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// Derived parameters + + // Breadth to the top (height) of lower chamfer + // Breadth of upper chamfer + + + + + + + + + + + + + + + + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// Parametric description + +vertices +( + (-0.5 -15 -10.0) // Vertex bllcb = 0 + (-0.5 -20 -5) // Vertex bllc = 1 + (-0.5 -20 10) // Vertex bluc = 2 + (-0.5 -10 20) // Vertex bluct = 3 + (-0.5 15 -10.0) // Vertex brlcb = 4 + (-0.5 20 -5) // Vertex brlc = 5 + (-0.5 20 10) // Vertex bruc = 6 + (-0.5 10 20) // Vertex bruct = 7 + + (0.5 -15 -10.0) // Vertex fllcb = 8 + (0.5 -20 -5) // Vertex fllc = 9 + (0.5 -20 10) // Vertex fluc = 10 + (0.5 -10 20) // Vertex fluct = 11 + (0.5 15 -10.0) // Vertex frlcb = 12 + (0.5 20 -5) // Vertex frlc = 13 + (0.5 20 10) // Vertex fruc = 14 + (0.5 10 20) // Vertex fruct = 15 +); + +blocks +( + // block0 + hex (0 4 5 1 8 12 13 9) + (40 6 1) + simpleGrading (1 1 1) + + // block1 + hex (1 5 6 2 9 13 14 10) + (40 16 1) + simpleGrading (1 1 1) + + // block2 + hex (2 6 7 3 10 14 15 11) + (40 12 1) + simpleGrading (1 1 1) +); + +patches +( + patch walls + ( + (0 4 12 8) + (4 5 13 12) + (5 6 14 13) + (6 7 15 14) + (7 3 11 15) + (3 2 10 11) + (2 1 9 10) + (1 0 8 9) + ) + + empty front + ( + (8 12 13 9) + (9 13 14 10) + (10 14 15 11) + ) + + empty back + ( + (0 1 5 4) + (1 2 6 5) + (2 3 7 6) + ) +); + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank/constant/polyMesh/blockMeshDict.m4 b/tutorials/interDyMFoam/sloshingTank/constant/polyMesh/blockMeshDict.m4 new file mode 100644 index 0000000000..ced5dc533e --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank/constant/polyMesh/blockMeshDict.m4 @@ -0,0 +1,145 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object blockMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// General m4 macros + +changecom(//)changequote([,]) +define(calc, [esyscmd(perl -e 'use Math::Trig; use POSIX; printf ($1)')]) +define(VCOUNT, 0) +define(vlabel, [[// ]Vertex $1 = VCOUNT define($1, VCOUNT)define([VCOUNT], incr(VCOUNT))]) + +define(hex2D, hex (b$1 b$2 b$3 b$4 f$1 f$2 f$3 f$4)) +define(quad2D, (b$1 b$2 f$2 f$1)) +define(frontQuad, (f$1 f$2 f$3 f$4)) +define(backQuad, (b$1 b$4 b$3 b$2)) + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// User-defined parameters + +convertToMeters 1; + +define(l, 1.0) // Length of tank (x-direction) +define(b, 40) // Breadth of tank (y-direction) +define(h, 30) // Depth of tank (z-direction) + +define(hlc, 5) // Depth to the top (height) of lower chamfer +define(huc, 10) // Height of upper chamfer + +define(thetalc, 45) // Angle of lower chamfer to the horizontal +define(thetauc, 45) // Angle of upper chamfer to the horizontal + +define(CofGy, calc(b/2.0)) // Centre of gravity in y-direction +define(CofGz, 10.0) // Centre of gravity in z-direction + +define(Nl, 1) // Number of cells in the length (1 for 2D) +define(Nb, 40) // Number of cells in the breadth +define(Nhlc, 6) // Number of cells in the height of the lower champfer +define(Nh, 16) // Number of cells in the height between the chamfers +define(Nhuc, 12) // Number of cells in the height of the upper champfer + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// Derived parameters + +define(blc, calc(hlc/tan(deg2rad(thetalc)))) // Breadth to the top (height) of lower chamfer +define(buc, calc(huc/tan(deg2rad(thetauc)))) // Breadth of upper chamfer + +define(Yl, -CofGy) +define(Yllc, calc(Yl + blc)) +define(Yluc, calc(Yl + buc)) + +define(Yr, calc(Yl + b)) +define(Yrlc, calc(Yr - blc)) +define(Yruc, calc(Yr - buc)) + +define(Zb, -CofGz) +define(Zlc, calc(Zb + hlc)) +define(Zt, calc(Zb + h)) +define(Zuc, calc(Zt - huc)) + +define(Xf, calc(l/2.0)) +define(Xb, calc(Xf - l)) + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// Parametric description + +vertices +( + (Xb Yllc Zb) vlabel(bllcb) + (Xb Yl Zlc) vlabel(bllc) + (Xb Yl Zuc) vlabel(bluc) + (Xb Yluc Zt) vlabel(bluct) + (Xb Yrlc Zb) vlabel(brlcb) + (Xb Yr Zlc) vlabel(brlc) + (Xb Yr Zuc) vlabel(bruc) + (Xb Yruc Zt) vlabel(bruct) + + (Xf Yllc Zb) vlabel(fllcb) + (Xf Yl Zlc) vlabel(fllc) + (Xf Yl Zuc) vlabel(fluc) + (Xf Yluc Zt) vlabel(fluct) + (Xf Yrlc Zb) vlabel(frlcb) + (Xf Yr Zlc) vlabel(frlc) + (Xf Yr Zuc) vlabel(fruc) + (Xf Yruc Zt) vlabel(fruct) +); + +blocks +( + // block0 + hex2D(llcb, rlcb, rlc, llc) + (Nb Nhlc Nl) + simpleGrading (1 1 1) + + // block1 + hex2D(llc, rlc, ruc, luc) + (Nb Nh Nl) + simpleGrading (1 1 1) + + // block2 + hex2D(luc, ruc, ruct, luct) + (Nb Nhuc Nl) + simpleGrading (1 1 1) +); + +patches +( + patch walls + ( + quad2D(llcb, rlcb) + quad2D(rlcb, rlc) + quad2D(rlc, ruc) + quad2D(ruc, ruct) + quad2D(ruct, luct) + quad2D(luct, luc) + quad2D(luc, llc) + quad2D(llc, llcb) + ) + + empty front + ( + frontQuad(llcb, rlcb, rlc, llc) + frontQuad(llc, rlc, ruc, luc) + frontQuad(luc, ruc, ruct, luct) + ) + + empty back + ( + backQuad(llcb, rlcb, rlc, llc) + backQuad(llc, rlc, ruc, luc) + backQuad(luc, ruc, ruct, luct) + ) +); + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank/constant/polyMesh/boundary b/tutorials/interDyMFoam/sloshingTank/constant/polyMesh/boundary new file mode 100644 index 0000000000..57267e87f7 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank/constant/polyMesh/boundary @@ -0,0 +1,40 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class polyBoundaryMesh; + location "constant/polyMesh"; + object boundary; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +3 +( + walls + { + type patch; + nFaces 148; + startFace 2646; + } + front + { + type empty; + nFaces 1360; + startFace 2794; + } + back + { + type empty; + nFaces 1360; + startFace 4154; + } +) + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank/constant/transportProperties b/tutorials/interDyMFoam/sloshingTank/constant/transportProperties new file mode 100644 index 0000000000..c20854a903 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank/constant/transportProperties @@ -0,0 +1,33 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object transportProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +phase1 +{ + transportModel Newtonian; + nu nu [0 2 -1 0 0 0 0] 1e-6; + rho rho [1 -3 0 0 0 0 0] 998.2; +} + +phase2 +{ + transportModel Newtonian; + nu nu [0 2 -1 0 0 0 0] 1.48e-05; + rho rho [1 -3 0 0 0 0 0] 1; +} + +sigma sigma [1 0 -2 0 0 0 0] 0.0; + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank/system/controlDict b/tutorials/interDyMFoam/sloshingTank/system/controlDict new file mode 100644 index 0000000000..8d7fb44aa4 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank/system/controlDict @@ -0,0 +1,107 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +application sloshingFoam; + +startFrom startTime; + +startTime 0; + +stopAt endTime; + +endTime 40; + +deltaT 0.01; + +writeControl adjustableRunTime; + +writeInterval 0.05; + +purgeWrite 0; + +writeFormat ascii; + +writePrecision 6; + +writeCompression compressed; + +timeFormat general; + +timePrecision 6; + +runTimeModifiable yes; + +adjustTimeStep yes; + +maxCo 0.5; + +maxDeltaT 1; + +functions +( + probes + { + // Type of functionObject + type probes; + + // Name of the directory for the probe data + name probes; + + // Locations to be probed. runTime modifiable! + probeLocations + ( + (0 9.95 19.77) + (0 -9.95 19.77) + ); + + // Fields to be probed. runTime modifiable! + fields + ( + p + ); + } + + wallPressure + { + // Type of functionObject + type surfaces; + + // Where to load it from (if not already in solver) + functionObjectLibs ("libsampling.so"); + + // Output every 10th time step + interval 10; + + surfaceFormat raw; + + fields + ( + p + ); + + surfaces + ( + walls + { + type patch; + patchName walls; + triangulate false; + } + ); + } +); + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank/system/decomposeParDict b/tutorials/interDyMFoam/sloshingTank/system/decomposeParDict new file mode 100644 index 0000000000..d4594e0947 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank/system/decomposeParDict @@ -0,0 +1,56 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object decomposeParDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +numberOfSubdomains 16; + +method hierarchical; + +simpleCoeffs +{ + n (2 2 1); + delta 0.001; +} + +hierarchicalCoeffs +{ + n (4 2 2); + delta 0.001; + order xyz; +} + +metisCoeffs +{ + processorWeights + ( + 1 + 1 + 1 + 1 + ); +} + +manualCoeffs +{ + dataFile ""; +} + +distributed no; + +roots +( +); + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank/system/fvSchemes b/tutorials/interDyMFoam/sloshingTank/system/fvSchemes new file mode 100644 index 0000000000..f089e4e5e6 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank/system/fvSchemes @@ -0,0 +1,59 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{ + default Euler; +} + +gradSchemes +{ + default Gauss linear; + grad(U) Gauss linear; + grad(gamma) Gauss linear; +} + +divSchemes +{ + div(rho*phi,U) Gauss vanLeerV; + div(phi,gamma) Gauss vanLeer; + div(phirb,gamma) Gauss vanLeer; +} + +laplacianSchemes +{ + default Gauss linear corrected; +} + +interpolationSchemes +{ + default linear; +} + +snGradSchemes +{ + default corrected; +} + +fluxRequired +{ + default no; + pd; + pcorr; + gamma; +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank/system/fvSolution b/tutorials/interDyMFoam/sloshingTank/system/fvSolution new file mode 100644 index 0000000000..3aaca52375 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank/system/fvSolution @@ -0,0 +1,123 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +solvers +{ + pcorr PCG + { + preconditioner GAMG + { + tolerance 1e-5; + relTol 0; + + smoother DICGaussSeidel; + nPreSweeps 0; + nPostSweeps 2; + nBottomSweeps 2; + + cacheAgglomeration false; + nCellsInCoarsestLevel 10; + agglomerator faceAreaPair; + mergeLevels 1; + }; + + tolerance 1e-5; + relTol 0; + maxIter 100; + }; + + pd GAMG + { + tolerance 1e-8; + relTol 0.01; + + smoother DIC; + nPreSweeps 0; + nPostSweeps 2; + nFinestSweeps 2; + + cacheAgglomeration true; + nCellsInCoarsestLevel 10; + agglomerator faceAreaPair; + mergeLevels 1; + }; + + pdFinal PCG + { + preconditioner GAMG + { + tolerance 2e-9; + relTol 0; + + nVcycles 2; + + smoother DICGaussSeidel; + nPreSweeps 2; + nPostSweeps 2; + nFinestSweeps 2; + + cacheAgglomeration true; + nCellsInCoarsestLevel 10; + agglomerator faceAreaPair; + mergeLevels 1; + }; + + tolerance 2e-9; + relTol 0; + maxIter 20; + }; + + U smoothSolver + { + smoother GaussSeidel; + tolerance 1e-6; + relTol 0; + nSweeps 1; + }; +} + +PISO +{ + momentumPredictor no; + nCorrectors 2; + nNonOrthogonalCorrectors 0; + nGammaCorr 1; + nGammaSubCycles 3; + cGamma 1.5; + correctPhi no; + + pRefProbe + { + fields + ( + p + ); + + probeLocations + ( + (0 0 0.15) + ); + } + + pRefValue 1e5; +} + +relaxationFactors +{ + U 1.0; +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank/system/setFieldsDict b/tutorials/interDyMFoam/sloshingTank/system/setFieldsDict new file mode 100644 index 0000000000..2c881a7ba4 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank/system/setFieldsDict @@ -0,0 +1,35 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object setFieldsDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +defaultFieldValues +( + volScalarFieldValue gamma 0 +); + +regions +( + boxToCell + { + box (-100 -100 -100) (100 100 0); + + fieldValues + ( + volScalarFieldValue gamma 1 + ); + } +); + +// ************************************************************************* // From 98e1cd02562bc14c008d80b70d5e7e6536d29650 Mon Sep 17 00:00:00 2001 From: henry Date: Tue, 1 Jul 2008 20:18:15 +0100 Subject: [PATCH 09/28] Corrected headers. --- .../depthCharge2D/0/U | 2 -- .../depthCharge2D/constant/LESProperties | 23 ++++++------------- .../constant/environmentalProperties | 22 ++++++------------ .../depthCharge2D/constant/polyMesh/boundary | 1 - .../depthCharge3D/0/U | 2 -- .../depthCharge3D/0/alpha1.org | 2 -- .../depthCharge3D/0/pd.org | 2 -- .../depthCharge3D/constant/LESProperties | 23 ++++++------------- .../constant/environmentalProperties | 22 ++++++------------ .../depthCharge3D/constant/polyMesh/boundary | 1 - .../depthCharge3D/system/decomposeParDict | 2 +- 11 files changed, 29 insertions(+), 73 deletions(-) diff --git a/tutorials/compressibleLesInterFoam/depthCharge2D/0/U b/tutorials/compressibleLesInterFoam/depthCharge2D/0/U index d4e55f293f..367007d0c0 100644 --- a/tutorials/compressibleLesInterFoam/depthCharge2D/0/U +++ b/tutorials/compressibleLesInterFoam/depthCharge2D/0/U @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class volVectorField; - location "0"; object U; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -32,5 +31,4 @@ boundaryField } } - // ************************************************************************* // diff --git a/tutorials/compressibleLesInterFoam/depthCharge2D/constant/LESProperties b/tutorials/compressibleLesInterFoam/depthCharge2D/constant/LESProperties index 976ee308c2..130d0947d9 100644 --- a/tutorials/compressibleLesInterFoam/depthCharge2D/constant/LESProperties +++ b/tutorials/compressibleLesInterFoam/depthCharge2D/constant/LESProperties @@ -1,25 +1,17 @@ -/*---------------------------------------------------------------------------*\ +/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.0 | -| \\ / A nd | Web: http://www.openfoam.org | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ - FoamFile { - version 2.0; - format ascii; - - root ""; - case ""; - instance ""; - local ""; - - class dictionary; - object LESProperties; + version 2.0; + format ascii; + class dictionary; + object LESProperties; } - // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // LESModel laminar; @@ -178,5 +170,4 @@ wallFunctionCoeffs E 9; } - // ************************************************************************* // diff --git a/tutorials/compressibleLesInterFoam/depthCharge2D/constant/environmentalProperties b/tutorials/compressibleLesInterFoam/depthCharge2D/constant/environmentalProperties index a5d1b7134e..c65ebf7f14 100644 --- a/tutorials/compressibleLesInterFoam/depthCharge2D/constant/environmentalProperties +++ b/tutorials/compressibleLesInterFoam/depthCharge2D/constant/environmentalProperties @@ -1,25 +1,17 @@ -/*---------------------------------------------------------------------------*\ +/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.0 | -| \\ / A nd | Web: http://www.openfoam.org | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ - FoamFile { - version 2.0; - format ascii; - - root ""; - case ""; - instance ""; - local ""; - - class dictionary; - object environmentalProperties; + version 2.0; + format ascii; + class dictionary; + object environmentalProperties; } - // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // g g [0 1 -2 0 0 0 0] (0 -9.81 0); diff --git a/tutorials/compressibleLesInterFoam/depthCharge2D/constant/polyMesh/boundary b/tutorials/compressibleLesInterFoam/depthCharge2D/constant/polyMesh/boundary index 90bbf5d79b..e1e2119e32 100644 --- a/tutorials/compressibleLesInterFoam/depthCharge2D/constant/polyMesh/boundary +++ b/tutorials/compressibleLesInterFoam/depthCharge2D/constant/polyMesh/boundary @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class polyBoundaryMesh; - location "constant/polyMesh"; object boundary; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/tutorials/compressibleLesInterFoam/depthCharge3D/0/U b/tutorials/compressibleLesInterFoam/depthCharge3D/0/U index bb8f810122..6840d0129f 100644 --- a/tutorials/compressibleLesInterFoam/depthCharge3D/0/U +++ b/tutorials/compressibleLesInterFoam/depthCharge3D/0/U @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class volVectorField; - location "0"; object U; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -28,5 +27,4 @@ boundaryField } } - // ************************************************************************* // diff --git a/tutorials/compressibleLesInterFoam/depthCharge3D/0/alpha1.org b/tutorials/compressibleLesInterFoam/depthCharge3D/0/alpha1.org index 15554e525d..cf3931804f 100644 --- a/tutorials/compressibleLesInterFoam/depthCharge3D/0/alpha1.org +++ b/tutorials/compressibleLesInterFoam/depthCharge3D/0/alpha1.org @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class volScalarField; - location "0"; object alpha1.org; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -27,5 +26,4 @@ boundaryField } } - // ************************************************************************* // diff --git a/tutorials/compressibleLesInterFoam/depthCharge3D/0/pd.org b/tutorials/compressibleLesInterFoam/depthCharge3D/0/pd.org index e41468f9c7..57bee34347 100644 --- a/tutorials/compressibleLesInterFoam/depthCharge3D/0/pd.org +++ b/tutorials/compressibleLesInterFoam/depthCharge3D/0/pd.org @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class volScalarField; - location "0"; object pd.org; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -27,5 +26,4 @@ boundaryField } } - // ************************************************************************* // diff --git a/tutorials/compressibleLesInterFoam/depthCharge3D/constant/LESProperties b/tutorials/compressibleLesInterFoam/depthCharge3D/constant/LESProperties index 976ee308c2..130d0947d9 100644 --- a/tutorials/compressibleLesInterFoam/depthCharge3D/constant/LESProperties +++ b/tutorials/compressibleLesInterFoam/depthCharge3D/constant/LESProperties @@ -1,25 +1,17 @@ -/*---------------------------------------------------------------------------*\ +/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.0 | -| \\ / A nd | Web: http://www.openfoam.org | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ - FoamFile { - version 2.0; - format ascii; - - root ""; - case ""; - instance ""; - local ""; - - class dictionary; - object LESProperties; + version 2.0; + format ascii; + class dictionary; + object LESProperties; } - // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // LESModel laminar; @@ -178,5 +170,4 @@ wallFunctionCoeffs E 9; } - // ************************************************************************* // diff --git a/tutorials/compressibleLesInterFoam/depthCharge3D/constant/environmentalProperties b/tutorials/compressibleLesInterFoam/depthCharge3D/constant/environmentalProperties index a5d1b7134e..c65ebf7f14 100644 --- a/tutorials/compressibleLesInterFoam/depthCharge3D/constant/environmentalProperties +++ b/tutorials/compressibleLesInterFoam/depthCharge3D/constant/environmentalProperties @@ -1,25 +1,17 @@ -/*---------------------------------------------------------------------------*\ +/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.0 | -| \\ / A nd | Web: http://www.openfoam.org | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ - FoamFile { - version 2.0; - format ascii; - - root ""; - case ""; - instance ""; - local ""; - - class dictionary; - object environmentalProperties; + version 2.0; + format ascii; + class dictionary; + object environmentalProperties; } - // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // g g [0 1 -2 0 0 0 0] (0 -9.81 0); diff --git a/tutorials/compressibleLesInterFoam/depthCharge3D/constant/polyMesh/boundary b/tutorials/compressibleLesInterFoam/depthCharge3D/constant/polyMesh/boundary index 8856b4ac44..178b2ace00 100644 --- a/tutorials/compressibleLesInterFoam/depthCharge3D/constant/polyMesh/boundary +++ b/tutorials/compressibleLesInterFoam/depthCharge3D/constant/polyMesh/boundary @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class polyBoundaryMesh; - location "constant/polyMesh"; object boundary; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/tutorials/compressibleLesInterFoam/depthCharge3D/system/decomposeParDict b/tutorials/compressibleLesInterFoam/depthCharge3D/system/decomposeParDict index f8801b351d..fd4a883241 100644 --- a/tutorials/compressibleLesInterFoam/depthCharge3D/system/decomposeParDict +++ b/tutorials/compressibleLesInterFoam/depthCharge3D/system/decomposeParDict @@ -1,7 +1,7 @@ /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.5 | +| \\ / O peration | Version: dev | | \\ / A nd | Web: http://www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ From 15709858b3af3c6c78fc88d30761cc3668fa722a Mon Sep 17 00:00:00 2001 From: Mark Olesen Date: Wed, 2 Jul 2008 10:11:48 +0200 Subject: [PATCH 10/28] decomposePar gets -lazy option --- .../decomposePar/decomposePar.C | 56 +++++++++++++++++-- 1 file changed, 51 insertions(+), 5 deletions(-) diff --git a/applications/utilities/parallelProcessing/decomposePar/decomposePar.C b/applications/utilities/parallelProcessing/decomposePar/decomposePar.C index 0c820006c7..e9fe85e3da 100644 --- a/applications/utilities/parallelProcessing/decomposePar/decomposePar.C +++ b/applications/utilities/parallelProcessing/decomposePar/decomposePar.C @@ -48,7 +48,15 @@ Usage @param -force \n Remove any existing @a processor subdirectories before decomposing the - geometry. + geometry. Has precedence over the @a -lazy option. + + @param -lazy \n + Only decompose the geometry if the number of domains has changed + from a previous decomposition. Any existing @a processor subdirectories + are removed as necessary. This option can be used to avoid redundant + geometry decomposition (eg, in scripts), but should be used with caution + when the underlying (serial) geometry or the decomposition method etc + have been changed between decompositions. \*---------------------------------------------------------------------------*/ @@ -80,6 +88,7 @@ int main(int argc, char *argv[]) argList::validOptions.insert("fields", ""); argList::validOptions.insert("filterPatches", ""); argList::validOptions.insert("force", ""); + argList::validOptions.insert("lazy", ""); # include "setRootCase.H" @@ -88,6 +97,7 @@ int main(int argc, char *argv[]) bool decomposeFieldsOnly(args.options().found("fields")); bool filterPatches(args.options().found("filterPatches")); bool forceOverwrite(args.options().found("force")); + bool lazyDecomposition(args.options().found("lazy")); # include "createTime.H" @@ -115,6 +125,8 @@ int main(int argc, char *argv[]) { if (nProcs) { + bool hasProcDirs = true; + if (forceOverwrite) { Info<< "Removing " << nProcs @@ -130,13 +142,47 @@ int main(int argc, char *argv[]) rmDir(procDir); } + + hasProcDirs = false; } - else + else if (lazyDecomposition) + { + // lazy decomposition + IOdictionary decompDict + ( + IOobject + ( + "decomposeParDict", + runTime.time().system(), + runTime, + IOobject::MUST_READ, + IOobject::NO_WRITE, + false + ) + ); + + label nDomains + ( + readInt(decompDict.lookup("numberOfSubdomains")) + ); + + // avoid repeated decomposition + if (nDomains == nProcs) + { + decomposeFieldsOnly = true; + hasProcDirs = false; + + Info<< "Using existing processor directories" << nl; + } + } + + if (hasProcDirs) { FatalErrorIn(args.executable()) - << "Case is already decomposed, " - "use the -force option or manually remove" << nl - << "processor directories before decomposing. e.g.," << nl + << "Case is already decomposed with " << nProcs + << " domains, use the -force option or manually" << nl + << "remove processor directories before decomposing. e.g.," + << nl << " rm -rf " << runTime.path().c_str() << "/processor*" << nl << exit(FatalError); From e346d0a20aa1a8f71a7498c8c8975dcb471a778a Mon Sep 17 00:00:00 2001 From: Mark Olesen Date: Wed, 2 Jul 2008 11:25:28 +0200 Subject: [PATCH 11/28] restrict MAX_DOT_GRAPH_DEPTH = 3 for smaller (more readable) collaboration diagrams --- doc/Doxygen/Doxyfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/Doxygen/Doxyfile b/doc/Doxygen/Doxyfile index 13c36d9d30..f5ab120424 100644 --- a/doc/Doxygen/Doxyfile +++ b/doc/Doxygen/Doxyfile @@ -1244,7 +1244,7 @@ DOTFILE_DIRS = # The MAX_DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of # nodes that will be shown in the graph. If the number of nodes in a graph # becomes larger than this value, doxygen will truncate the graph, which is -# visualized by representing a node as a red box. Note that doxygen if the number +# visualized by representing a node as a red box. Note that if the number # of direct children of the root node in a graph is already larger than # MAX_DOT_GRAPH_NOTES then the graph will not be shown at all. Also note # that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. @@ -1259,7 +1259,7 @@ DOT_GRAPH_MAX_NODES = 50 # code bases. Also note that the size of a graph can be further restricted by # DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. -MAX_DOT_GRAPH_DEPTH = 0 +MAX_DOT_GRAPH_DEPTH = 3 # Set the DOT_TRANSPARENT tag to YES to generate images with a transparent # background. This is disabled by default, which results in a white background. From 7d9f709ecc97304363d063b00a76a76c3d4ffde3 Mon Sep 17 00:00:00 2001 From: Mark Olesen Date: Wed, 2 Jul 2008 11:25:28 +0200 Subject: [PATCH 12/28] restrict MAX_DOT_GRAPH_DEPTH = 3 for smaller (more readable) collaboration diagrams --- doc/Doxygen/Doxyfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/Doxygen/Doxyfile b/doc/Doxygen/Doxyfile index 13c36d9d30..f5ab120424 100644 --- a/doc/Doxygen/Doxyfile +++ b/doc/Doxygen/Doxyfile @@ -1244,7 +1244,7 @@ DOTFILE_DIRS = # The MAX_DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of # nodes that will be shown in the graph. If the number of nodes in a graph # becomes larger than this value, doxygen will truncate the graph, which is -# visualized by representing a node as a red box. Note that doxygen if the number +# visualized by representing a node as a red box. Note that if the number # of direct children of the root node in a graph is already larger than # MAX_DOT_GRAPH_NOTES then the graph will not be shown at all. Also note # that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. @@ -1259,7 +1259,7 @@ DOT_GRAPH_MAX_NODES = 50 # code bases. Also note that the size of a graph can be further restricted by # DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. -MAX_DOT_GRAPH_DEPTH = 0 +MAX_DOT_GRAPH_DEPTH = 3 # Set the DOT_TRANSPARENT tag to YES to generate images with a transparent # background. This is disabled by default, which results in a white background. From b3442bf900002c1d1804529727a49891945e35cf Mon Sep 17 00:00:00 2001 From: henry Date: Wed, 2 Jul 2008 22:41:36 +0100 Subject: [PATCH 13/28] Updates to sloshingTank2D --- tutorials/interDyMFoam/{sloshingTank => sloshingTank2D}/0/U | 5 ----- .../{sloshingTank => sloshingTank2D}/0/gamma.org | 6 +----- .../interDyMFoam/{sloshingTank => sloshingTank2D}/0/pd | 4 ---- .../interDyMFoam/{sloshingTank => sloshingTank2D}/Allclean | 0 .../interDyMFoam/{sloshingTank => sloshingTank2D}/Allrun | 0 .../{sloshingTank => sloshingTank2D}/constant/RASProperties | 0 .../constant/dynamicMeshDict | 0 .../constant/environmentalProperties | 0 .../constant/polyMesh/blockMeshDict | 0 .../constant/polyMesh/blockMeshDict.m4 | 0 .../constant/polyMesh/boundary | 0 .../constant/transportProperties | 0 .../{sloshingTank => sloshingTank2D}/system/controlDict | 0 .../system/decomposeParDict | 0 .../{sloshingTank => sloshingTank2D}/system/fvSchemes | 0 .../{sloshingTank => sloshingTank2D}/system/fvSolution | 0 .../{sloshingTank => sloshingTank2D}/system/setFieldsDict | 0 17 files changed, 1 insertion(+), 14 deletions(-) rename tutorials/interDyMFoam/{sloshingTank => sloshingTank2D}/0/U (91%) rename tutorials/interDyMFoam/{sloshingTank => sloshingTank2D}/0/gamma.org (92%) rename tutorials/interDyMFoam/{sloshingTank => sloshingTank2D}/0/pd (94%) rename tutorials/interDyMFoam/{sloshingTank => sloshingTank2D}/Allclean (100%) rename tutorials/interDyMFoam/{sloshingTank => sloshingTank2D}/Allrun (100%) rename tutorials/interDyMFoam/{sloshingTank => sloshingTank2D}/constant/RASProperties (100%) rename tutorials/interDyMFoam/{sloshingTank => sloshingTank2D}/constant/dynamicMeshDict (100%) rename tutorials/interDyMFoam/{sloshingTank => sloshingTank2D}/constant/environmentalProperties (100%) rename tutorials/interDyMFoam/{sloshingTank => sloshingTank2D}/constant/polyMesh/blockMeshDict (100%) rename tutorials/interDyMFoam/{sloshingTank => sloshingTank2D}/constant/polyMesh/blockMeshDict.m4 (100%) rename tutorials/interDyMFoam/{sloshingTank => sloshingTank2D}/constant/polyMesh/boundary (100%) rename tutorials/interDyMFoam/{sloshingTank => sloshingTank2D}/constant/transportProperties (100%) rename tutorials/interDyMFoam/{sloshingTank => sloshingTank2D}/system/controlDict (100%) rename tutorials/interDyMFoam/{sloshingTank => sloshingTank2D}/system/decomposeParDict (100%) rename tutorials/interDyMFoam/{sloshingTank => sloshingTank2D}/system/fvSchemes (100%) rename tutorials/interDyMFoam/{sloshingTank => sloshingTank2D}/system/fvSolution (100%) rename tutorials/interDyMFoam/{sloshingTank => sloshingTank2D}/system/setFieldsDict (100%) diff --git a/tutorials/interDyMFoam/sloshingTank/0/U b/tutorials/interDyMFoam/sloshingTank2D/0/U similarity index 91% rename from tutorials/interDyMFoam/sloshingTank/0/U rename to tutorials/interDyMFoam/sloshingTank2D/0/U index ead7f1f8b7..ae062bdf0d 100644 --- a/tutorials/interDyMFoam/sloshingTank/0/U +++ b/tutorials/interDyMFoam/sloshingTank2D/0/U @@ -33,11 +33,6 @@ boundaryField type movingWallVelocity; value uniform (0 0 0); } - pipe - { - type movingWallVelocity; - value uniform (0 0 0); - } } // ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank/0/gamma.org b/tutorials/interDyMFoam/sloshingTank2D/0/gamma.org similarity index 92% rename from tutorials/interDyMFoam/sloshingTank/0/gamma.org rename to tutorials/interDyMFoam/sloshingTank2D/0/gamma.org index 8c4ab31ce2..2711563003 100644 --- a/tutorials/interDyMFoam/sloshingTank/0/gamma.org +++ b/tutorials/interDyMFoam/sloshingTank2D/0/gamma.org @@ -10,7 +10,7 @@ FoamFile version 2.0; format ascii; class volScalarField; - object gamma.0; + object gamma; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -32,10 +32,6 @@ boundaryField { type zeroGradient; } - pipe - { - type zeroGradient; - } } // ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank/0/pd b/tutorials/interDyMFoam/sloshingTank2D/0/pd similarity index 94% rename from tutorials/interDyMFoam/sloshingTank/0/pd rename to tutorials/interDyMFoam/sloshingTank2D/0/pd index fdb2ba3ce6..cefcbb7d44 100644 --- a/tutorials/interDyMFoam/sloshingTank/0/pd +++ b/tutorials/interDyMFoam/sloshingTank2D/0/pd @@ -32,10 +32,6 @@ boundaryField { type zeroGradient; } - pipe - { - type zeroGradient; - } } // ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank/Allclean b/tutorials/interDyMFoam/sloshingTank2D/Allclean similarity index 100% rename from tutorials/interDyMFoam/sloshingTank/Allclean rename to tutorials/interDyMFoam/sloshingTank2D/Allclean diff --git a/tutorials/interDyMFoam/sloshingTank/Allrun b/tutorials/interDyMFoam/sloshingTank2D/Allrun similarity index 100% rename from tutorials/interDyMFoam/sloshingTank/Allrun rename to tutorials/interDyMFoam/sloshingTank2D/Allrun diff --git a/tutorials/interDyMFoam/sloshingTank/constant/RASProperties b/tutorials/interDyMFoam/sloshingTank2D/constant/RASProperties similarity index 100% rename from tutorials/interDyMFoam/sloshingTank/constant/RASProperties rename to tutorials/interDyMFoam/sloshingTank2D/constant/RASProperties diff --git a/tutorials/interDyMFoam/sloshingTank/constant/dynamicMeshDict b/tutorials/interDyMFoam/sloshingTank2D/constant/dynamicMeshDict similarity index 100% rename from tutorials/interDyMFoam/sloshingTank/constant/dynamicMeshDict rename to tutorials/interDyMFoam/sloshingTank2D/constant/dynamicMeshDict diff --git a/tutorials/interDyMFoam/sloshingTank/constant/environmentalProperties b/tutorials/interDyMFoam/sloshingTank2D/constant/environmentalProperties similarity index 100% rename from tutorials/interDyMFoam/sloshingTank/constant/environmentalProperties rename to tutorials/interDyMFoam/sloshingTank2D/constant/environmentalProperties diff --git a/tutorials/interDyMFoam/sloshingTank/constant/polyMesh/blockMeshDict b/tutorials/interDyMFoam/sloshingTank2D/constant/polyMesh/blockMeshDict similarity index 100% rename from tutorials/interDyMFoam/sloshingTank/constant/polyMesh/blockMeshDict rename to tutorials/interDyMFoam/sloshingTank2D/constant/polyMesh/blockMeshDict diff --git a/tutorials/interDyMFoam/sloshingTank/constant/polyMesh/blockMeshDict.m4 b/tutorials/interDyMFoam/sloshingTank2D/constant/polyMesh/blockMeshDict.m4 similarity index 100% rename from tutorials/interDyMFoam/sloshingTank/constant/polyMesh/blockMeshDict.m4 rename to tutorials/interDyMFoam/sloshingTank2D/constant/polyMesh/blockMeshDict.m4 diff --git a/tutorials/interDyMFoam/sloshingTank/constant/polyMesh/boundary b/tutorials/interDyMFoam/sloshingTank2D/constant/polyMesh/boundary similarity index 100% rename from tutorials/interDyMFoam/sloshingTank/constant/polyMesh/boundary rename to tutorials/interDyMFoam/sloshingTank2D/constant/polyMesh/boundary diff --git a/tutorials/interDyMFoam/sloshingTank/constant/transportProperties b/tutorials/interDyMFoam/sloshingTank2D/constant/transportProperties similarity index 100% rename from tutorials/interDyMFoam/sloshingTank/constant/transportProperties rename to tutorials/interDyMFoam/sloshingTank2D/constant/transportProperties diff --git a/tutorials/interDyMFoam/sloshingTank/system/controlDict b/tutorials/interDyMFoam/sloshingTank2D/system/controlDict similarity index 100% rename from tutorials/interDyMFoam/sloshingTank/system/controlDict rename to tutorials/interDyMFoam/sloshingTank2D/system/controlDict diff --git a/tutorials/interDyMFoam/sloshingTank/system/decomposeParDict b/tutorials/interDyMFoam/sloshingTank2D/system/decomposeParDict similarity index 100% rename from tutorials/interDyMFoam/sloshingTank/system/decomposeParDict rename to tutorials/interDyMFoam/sloshingTank2D/system/decomposeParDict diff --git a/tutorials/interDyMFoam/sloshingTank/system/fvSchemes b/tutorials/interDyMFoam/sloshingTank2D/system/fvSchemes similarity index 100% rename from tutorials/interDyMFoam/sloshingTank/system/fvSchemes rename to tutorials/interDyMFoam/sloshingTank2D/system/fvSchemes diff --git a/tutorials/interDyMFoam/sloshingTank/system/fvSolution b/tutorials/interDyMFoam/sloshingTank2D/system/fvSolution similarity index 100% rename from tutorials/interDyMFoam/sloshingTank/system/fvSolution rename to tutorials/interDyMFoam/sloshingTank2D/system/fvSolution diff --git a/tutorials/interDyMFoam/sloshingTank/system/setFieldsDict b/tutorials/interDyMFoam/sloshingTank2D/system/setFieldsDict similarity index 100% rename from tutorials/interDyMFoam/sloshingTank/system/setFieldsDict rename to tutorials/interDyMFoam/sloshingTank2D/system/setFieldsDict From 1513f4a1f308e93786b4523f03ab8ea95b058a3b Mon Sep 17 00:00:00 2001 From: henry Date: Wed, 2 Jul 2008 22:42:37 +0100 Subject: [PATCH 14/28] New interDyMFoam tutorial sloshingTank3D --- tutorials/interDyMFoam/sloshingTank3D/0/U | 30 +++ .../interDyMFoam/sloshingTank3D/0/gamma.org | 29 +++ tutorials/interDyMFoam/sloshingTank3D/0/pd | 29 +++ .../interDyMFoam/sloshingTank3D/Allclean | 4 + tutorials/interDyMFoam/sloshingTank3D/Allrun | 9 + .../sloshingTank3D/constant/RASProperties | 173 ++++++++++++++++++ .../sloshingTank3D/constant/dynamicMeshDict | 60 ++++++ .../constant/environmentalProperties | 19 ++ .../constant/polyMesh/blockMeshDict | 137 ++++++++++++++ .../constant/polyMesh/blockMeshDict.m4 | 137 ++++++++++++++ .../sloshingTank3D/constant/polyMesh/boundary | 28 +++ .../constant/transportProperties | 33 ++++ .../sloshingTank3D/system/controlDict | 109 +++++++++++ .../sloshingTank3D/system/decomposeParDict | 56 ++++++ .../sloshingTank3D/system/fvSchemes | 59 ++++++ .../sloshingTank3D/system/fvSolution | 123 +++++++++++++ .../sloshingTank3D/system/setFieldsDict | 35 ++++ 17 files changed, 1070 insertions(+) create mode 100644 tutorials/interDyMFoam/sloshingTank3D/0/U create mode 100644 tutorials/interDyMFoam/sloshingTank3D/0/gamma.org create mode 100644 tutorials/interDyMFoam/sloshingTank3D/0/pd create mode 100755 tutorials/interDyMFoam/sloshingTank3D/Allclean create mode 100755 tutorials/interDyMFoam/sloshingTank3D/Allrun create mode 100644 tutorials/interDyMFoam/sloshingTank3D/constant/RASProperties create mode 100644 tutorials/interDyMFoam/sloshingTank3D/constant/dynamicMeshDict create mode 100644 tutorials/interDyMFoam/sloshingTank3D/constant/environmentalProperties create mode 100644 tutorials/interDyMFoam/sloshingTank3D/constant/polyMesh/blockMeshDict create mode 100644 tutorials/interDyMFoam/sloshingTank3D/constant/polyMesh/blockMeshDict.m4 create mode 100644 tutorials/interDyMFoam/sloshingTank3D/constant/polyMesh/boundary create mode 100644 tutorials/interDyMFoam/sloshingTank3D/constant/transportProperties create mode 100644 tutorials/interDyMFoam/sloshingTank3D/system/controlDict create mode 100644 tutorials/interDyMFoam/sloshingTank3D/system/decomposeParDict create mode 100644 tutorials/interDyMFoam/sloshingTank3D/system/fvSchemes create mode 100644 tutorials/interDyMFoam/sloshingTank3D/system/fvSolution create mode 100644 tutorials/interDyMFoam/sloshingTank3D/system/setFieldsDict diff --git a/tutorials/interDyMFoam/sloshingTank3D/0/U b/tutorials/interDyMFoam/sloshingTank3D/0/U new file mode 100644 index 0000000000..df1f4c5a6c --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D/0/U @@ -0,0 +1,30 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volVectorField; + object U; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -1 0 0 0 0]; + +internalField uniform (0 0 0); + +boundaryField +{ + walls + { + type movingWallVelocity; + value uniform (0 0 0); + } +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D/0/gamma.org b/tutorials/interDyMFoam/sloshingTank3D/0/gamma.org new file mode 100644 index 0000000000..85902dcba5 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D/0/gamma.org @@ -0,0 +1,29 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + object gamma; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + walls + { + type zeroGradient; + } +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D/0/pd b/tutorials/interDyMFoam/sloshingTank3D/0/pd new file mode 100644 index 0000000000..25379b239c --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D/0/pd @@ -0,0 +1,29 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + object pd; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -2 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + walls + { + type zeroGradient; + } +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D/Allclean b/tutorials/interDyMFoam/sloshingTank3D/Allclean new file mode 100755 index 0000000000..2ffbd01add --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D/Allclean @@ -0,0 +1,4 @@ +#!/bin/sh + +foamCleanTutorials cases +rm -rf 0/gamma.gz probes wallPressure pRefProbe diff --git a/tutorials/interDyMFoam/sloshingTank3D/Allrun b/tutorials/interDyMFoam/sloshingTank3D/Allrun new file mode 100755 index 0000000000..748dcf65ba --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D/Allrun @@ -0,0 +1,9 @@ +#!/bin/sh +# Source tutorial run functions +. $WM_PROJECT_DIR/bin/tools/RunFunctions + +m4 < constant/polyMesh/blockMeshDict.m4 > constant/polyMesh/blockMeshDict +runApplication blockMesh +cp 0/gamma.org 0/gamma +runApplication setFields +runApplication interDyMFoam diff --git a/tutorials/interDyMFoam/sloshingTank3D/constant/RASProperties b/tutorials/interDyMFoam/sloshingTank3D/constant/RASProperties new file mode 100644 index 0000000000..ac1efb34c5 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D/constant/RASProperties @@ -0,0 +1,173 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object RASProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +// RASModel kEpsilon; +RASModel laminar; + +turbulence off; + +laminarCoeffs +{ +} + +kEpsilonCoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphaEps 0.76923; +} + +RNGkEpsilonCoeffs +{ + Cmu 0.0845; + C1 1.42; + C2 1.68; + alphak 1.39; + alphaEps 1.39; + eta0 4.38; + beta 0.012; +} + +NonlinearKEShihCoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphak 1; + alphaEps 0.76932; + A1 1.25; + A2 1000; + Ctau1 -4; + Ctau2 13; + Ctau3 -2; + alphaKsi 0.9; +} + +LienCubicKECoeffs +{ + C1 1.44; + C2 1.92; + alphak 1; + alphaEps 0.76923; + A1 1.25; + A2 1000; + Ctau1 -4; + Ctau2 13; + Ctau3 -2; + alphaKsi 0.9; +} + +QZetaCoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphaZeta 0.76923; + anisotropic no; +} + +LaunderSharmaKECoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphaEps 0.76923; +} + +LamBremhorstKECoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphaEps 0.76923; +} + +LienCubicKELowReCoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphak 1; + alphaEps 0.76923; + A1 1.25; + A2 1000; + Ctau1 -4; + Ctau2 13; + Ctau3 -2; + alphaKsi 0.9; + Am 0.016; + Aepsilon 0.263; + Amu 0.00222; +} + +LienLeschzinerLowReCoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphak 1; + alphaEps 0.76923; + Am 0.016; + Aepsilon 0.263; + Amu 0.00222; +} + +LRRCoeffs +{ + Cmu 0.09; + Clrr1 1.8; + Clrr2 0.6; + C1 1.44; + C2 1.92; + Cs 0.25; + Ceps 0.15; + alphaEps 0.76923; +} + +LaunderGibsonRSTMCoeffs +{ + Cmu 0.09; + Clg1 1.8; + Clg2 0.6; + C1 1.44; + C2 1.92; + C1Ref 0.5; + C2Ref 0.3; + Cs 0.25; + Ceps 0.15; + alphaEps 0.76923; + alphaR 1.22; +} + +SpalartAllmarasCoeffs +{ + alphaNut 1.5; + Cb1 0.1355; + Cb2 0.622; + Cw2 0.3; + Cw3 2; + Cv1 7.1; + Cv2 5.0; +} + +wallFunctionCoeffs +{ + kappa 0.4187; + E 9; +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D/constant/dynamicMeshDict b/tutorials/interDyMFoam/sloshingTank3D/constant/dynamicMeshDict new file mode 100644 index 0000000000..e7a0ec06d6 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D/constant/dynamicMeshDict @@ -0,0 +1,60 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object motionProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dynamicFvMesh solidBodyMotionFvMesh; + +solidBodyMotionFvMeshCoeffs +{ + solidBodyMotionFunction SDA; + + SDACoeffs + { + // Centre of gravity + CofG (0 0 0); + + // Model scale ratio + lamda 50; + + // Max roll amplitude [rad] + rollAmax 0.22654; + + // Min roll amplitude [rad] + rollAmin 0.10472; + + // Heave amplitude [m] + heaveA 3.79; + + // Sway amplitude [m] + swayA 2.34; + + // Damping Coefficient [-] + Q 2.00; + + // Time Period for liquid [sec] + Tp 13.93; + + // Natural Period of Ship [sec] + Tpn 11.93; + + // Reference time step [sec] + dTi 0.059; + + // Incr. in Tp/unit 'dTi'[-] + dTp -0.001; + } +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D/constant/environmentalProperties b/tutorials/interDyMFoam/sloshingTank3D/constant/environmentalProperties new file mode 100644 index 0000000000..40232c0c40 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D/constant/environmentalProperties @@ -0,0 +1,19 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object environmentalProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +g g [0 1 -2 0 0 0 0] (0 0 -9.81); + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D/constant/polyMesh/blockMeshDict b/tutorials/interDyMFoam/sloshingTank3D/constant/polyMesh/blockMeshDict new file mode 100644 index 0000000000..0d21d11148 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D/constant/polyMesh/blockMeshDict @@ -0,0 +1,137 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object blockMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// General m4 macros + + + + + + + + + + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// User-defined parameters + +convertToMeters 1; + + // Length of tank (x-direction) + // Breadth of tank (y-direction) + // Depth of tank (z-direction) + + // Depth to the top (height) of lower chamfer + // Height of upper chamfer + + // Angle of lower chamfer to the horizontal + // Angle of upper chamfer to the horizontal + + // Centre of gravity in y-direction + // Centre of gravity in z-direction + + // Number of cells in the length (1 for 2D) + // Number of cells in the breadth + // Number of cells in the height of the lower champfer + // Number of cells in the height between the chamfers + // Number of cells in the height of the upper champfer + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// Derived parameters + + // Breadth to the top (height) of lower chamfer + // Breadth of upper chamfer + + + + + + + + + + + + + + + + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// Parametric description + +vertices +( + (-10 -15 -10.0) // Vertex bllcb = 0 + (-10 -20 -5) // Vertex bllc = 1 + (-10 -20 10) // Vertex bluc = 2 + (-10 -10 20) // Vertex bluct = 3 + (-10 15 -10.0) // Vertex brlcb = 4 + (-10 20 -5) // Vertex brlc = 5 + (-10 20 10) // Vertex bruc = 6 + (-10 10 20) // Vertex bruct = 7 + + (10 -15 -10.0) // Vertex fllcb = 8 + (10 -20 -5) // Vertex fllc = 9 + (10 -20 10) // Vertex fluc = 10 + (10 -10 20) // Vertex fluct = 11 + (10 15 -10.0) // Vertex frlcb = 12 + (10 20 -5) // Vertex frlc = 13 + (10 20 10) // Vertex fruc = 14 + (10 10 20) // Vertex fruct = 15 +); + +blocks +( + // block0 + hex (0 4 5 1 8 12 13 9) + (40 6 19) + simpleGrading (1 1 1) + + // block1 + hex (1 5 6 2 9 13 14 10) + (40 16 19) + simpleGrading (1 1 1) + + // block2 + hex (2 6 7 3 10 14 15 11) + (40 12 19) + simpleGrading (1 1 1) +); + +patches +( + patch walls + ( + (0 4 12 8) + (4 5 13 12) + (5 6 14 13) + (6 7 15 14) + (7 3 11 15) + (3 2 10 11) + (2 1 9 10) + (1 0 8 9) + (8 12 13 9) + (9 13 14 10) + (10 14 15 11) + (0 1 5 4) + (1 2 6 5) + (2 3 7 6) + ) +); + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D/constant/polyMesh/blockMeshDict.m4 b/tutorials/interDyMFoam/sloshingTank3D/constant/polyMesh/blockMeshDict.m4 new file mode 100644 index 0000000000..5e355fd702 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D/constant/polyMesh/blockMeshDict.m4 @@ -0,0 +1,137 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object blockMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// General m4 macros + +changecom(//)changequote([,]) +define(calc, [esyscmd(perl -e 'use Math::Trig; use POSIX; printf ($1)')]) +define(VCOUNT, 0) +define(vlabel, [[// ]Vertex $1 = VCOUNT define($1, VCOUNT)define([VCOUNT], incr(VCOUNT))]) + +define(hex2D, hex (b$1 b$2 b$3 b$4 f$1 f$2 f$3 f$4)) +define(quad2D, (b$1 b$2 f$2 f$1)) +define(frontQuad, (f$1 f$2 f$3 f$4)) +define(backQuad, (b$1 b$4 b$3 b$2)) + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// User-defined parameters + +convertToMeters 1; + +define(l, 20) // Length of tank (x-direction) +define(b, 40) // Breadth of tank (y-direction) +define(h, 30) // Depth of tank (z-direction) + +define(hlc, 5) // Depth to the top (height) of lower chamfer +define(huc, 10) // Height of upper chamfer + +define(thetalc, 45) // Angle of lower chamfer to the horizontal +define(thetauc, 45) // Angle of upper chamfer to the horizontal + +define(CofGy, calc(b/2.0)) // Centre of gravity in y-direction +define(CofGz, 10.0) // Centre of gravity in z-direction + +define(Nl, 19) // Number of cells in the length (1 for 2D) +define(Nb, 40) // Number of cells in the breadth +define(Nhlc, 6) // Number of cells in the height of the lower champfer +define(Nh, 16) // Number of cells in the height between the chamfers +define(Nhuc, 12) // Number of cells in the height of the upper champfer + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// Derived parameters + +define(blc, calc(hlc/tan(deg2rad(thetalc)))) // Breadth to the top (height) of lower chamfer +define(buc, calc(huc/tan(deg2rad(thetauc)))) // Breadth of upper chamfer + +define(Yl, -CofGy) +define(Yllc, calc(Yl + blc)) +define(Yluc, calc(Yl + buc)) + +define(Yr, calc(Yl + b)) +define(Yrlc, calc(Yr - blc)) +define(Yruc, calc(Yr - buc)) + +define(Zb, -CofGz) +define(Zlc, calc(Zb + hlc)) +define(Zt, calc(Zb + h)) +define(Zuc, calc(Zt - huc)) + +define(Xf, calc(l/2.0)) +define(Xb, calc(Xf - l)) + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// Parametric description + +vertices +( + (Xb Yllc Zb) vlabel(bllcb) + (Xb Yl Zlc) vlabel(bllc) + (Xb Yl Zuc) vlabel(bluc) + (Xb Yluc Zt) vlabel(bluct) + (Xb Yrlc Zb) vlabel(brlcb) + (Xb Yr Zlc) vlabel(brlc) + (Xb Yr Zuc) vlabel(bruc) + (Xb Yruc Zt) vlabel(bruct) + + (Xf Yllc Zb) vlabel(fllcb) + (Xf Yl Zlc) vlabel(fllc) + (Xf Yl Zuc) vlabel(fluc) + (Xf Yluc Zt) vlabel(fluct) + (Xf Yrlc Zb) vlabel(frlcb) + (Xf Yr Zlc) vlabel(frlc) + (Xf Yr Zuc) vlabel(fruc) + (Xf Yruc Zt) vlabel(fruct) +); + +blocks +( + // block0 + hex2D(llcb, rlcb, rlc, llc) + (Nb Nhlc Nl) + simpleGrading (1 1 1) + + // block1 + hex2D(llc, rlc, ruc, luc) + (Nb Nh Nl) + simpleGrading (1 1 1) + + // block2 + hex2D(luc, ruc, ruct, luct) + (Nb Nhuc Nl) + simpleGrading (1 1 1) +); + +patches +( + patch walls + ( + quad2D(llcb, rlcb) + quad2D(rlcb, rlc) + quad2D(rlc, ruc) + quad2D(ruc, ruct) + quad2D(ruct, luct) + quad2D(luct, luc) + quad2D(luc, llc) + quad2D(llc, llcb) + frontQuad(llcb, rlcb, rlc, llc) + frontQuad(llc, rlc, ruc, luc) + frontQuad(luc, ruc, ruct, luct) + backQuad(llcb, rlcb, rlc, llc) + backQuad(llc, rlc, ruc, luc) + backQuad(luc, ruc, ruct, luct) + ) +); + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D/constant/polyMesh/boundary b/tutorials/interDyMFoam/sloshingTank3D/constant/polyMesh/boundary new file mode 100644 index 0000000000..28068f37d4 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D/constant/polyMesh/boundary @@ -0,0 +1,28 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class polyBoundaryMesh; + location "constant/polyMesh"; + object boundary; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +1 +( + walls + { + type patch; + nFaces 5532; + startFace 74754; + } +) + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D/constant/transportProperties b/tutorials/interDyMFoam/sloshingTank3D/constant/transportProperties new file mode 100644 index 0000000000..c20854a903 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D/constant/transportProperties @@ -0,0 +1,33 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object transportProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +phase1 +{ + transportModel Newtonian; + nu nu [0 2 -1 0 0 0 0] 1e-6; + rho rho [1 -3 0 0 0 0 0] 998.2; +} + +phase2 +{ + transportModel Newtonian; + nu nu [0 2 -1 0 0 0 0] 1.48e-05; + rho rho [1 -3 0 0 0 0 0] 1; +} + +sigma sigma [1 0 -2 0 0 0 0] 0.0; + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D/system/controlDict b/tutorials/interDyMFoam/sloshingTank3D/system/controlDict new file mode 100644 index 0000000000..b721c9c058 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D/system/controlDict @@ -0,0 +1,109 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +application sloshingFoam; + +startFrom startTime; + +startTime 0; + +stopAt endTime; + +endTime 40; + +deltaT 0.01; + +writeControl adjustableRunTime; + +writeInterval 0.05; + +purgeWrite 0; + +writeFormat ascii; + +writePrecision 6; + +writeCompression compressed; + +timeFormat general; + +timePrecision 6; + +runTimeModifiable yes; + +adjustTimeStep yes; + +maxCo 0.5; + +maxDeltaT 1; + +functions +( + probes + { + // Type of functionObject + type probes; + + // Name of the directory for the probe data + name probes; + + // Locations to be probed. runTime modifiable! + probeLocations + ( + (0 9.95 19.77) + (0 -9.95 19.77) + ); + + // Fields to be probed. runTime modifiable! + fields + ( + p + ); + } + + /* + wallPressure + { + // Type of functionObject + type surfaces; + + // Where to load it from (if not already in solver) + functionObjectLibs ("libsampling.so"); + + // Output every 10th time step + interval 10; + + surfaceFormat raw; + + fields + ( + p + ); + + surfaces + ( + walls + { + type patch; + patchName walls; + triangulate false; + } + ); + } + */ +); + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D/system/decomposeParDict b/tutorials/interDyMFoam/sloshingTank3D/system/decomposeParDict new file mode 100644 index 0000000000..d4594e0947 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D/system/decomposeParDict @@ -0,0 +1,56 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object decomposeParDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +numberOfSubdomains 16; + +method hierarchical; + +simpleCoeffs +{ + n (2 2 1); + delta 0.001; +} + +hierarchicalCoeffs +{ + n (4 2 2); + delta 0.001; + order xyz; +} + +metisCoeffs +{ + processorWeights + ( + 1 + 1 + 1 + 1 + ); +} + +manualCoeffs +{ + dataFile ""; +} + +distributed no; + +roots +( +); + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D/system/fvSchemes b/tutorials/interDyMFoam/sloshingTank3D/system/fvSchemes new file mode 100644 index 0000000000..f089e4e5e6 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D/system/fvSchemes @@ -0,0 +1,59 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{ + default Euler; +} + +gradSchemes +{ + default Gauss linear; + grad(U) Gauss linear; + grad(gamma) Gauss linear; +} + +divSchemes +{ + div(rho*phi,U) Gauss vanLeerV; + div(phi,gamma) Gauss vanLeer; + div(phirb,gamma) Gauss vanLeer; +} + +laplacianSchemes +{ + default Gauss linear corrected; +} + +interpolationSchemes +{ + default linear; +} + +snGradSchemes +{ + default corrected; +} + +fluxRequired +{ + default no; + pd; + pcorr; + gamma; +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D/system/fvSolution b/tutorials/interDyMFoam/sloshingTank3D/system/fvSolution new file mode 100644 index 0000000000..3aaca52375 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D/system/fvSolution @@ -0,0 +1,123 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +solvers +{ + pcorr PCG + { + preconditioner GAMG + { + tolerance 1e-5; + relTol 0; + + smoother DICGaussSeidel; + nPreSweeps 0; + nPostSweeps 2; + nBottomSweeps 2; + + cacheAgglomeration false; + nCellsInCoarsestLevel 10; + agglomerator faceAreaPair; + mergeLevels 1; + }; + + tolerance 1e-5; + relTol 0; + maxIter 100; + }; + + pd GAMG + { + tolerance 1e-8; + relTol 0.01; + + smoother DIC; + nPreSweeps 0; + nPostSweeps 2; + nFinestSweeps 2; + + cacheAgglomeration true; + nCellsInCoarsestLevel 10; + agglomerator faceAreaPair; + mergeLevels 1; + }; + + pdFinal PCG + { + preconditioner GAMG + { + tolerance 2e-9; + relTol 0; + + nVcycles 2; + + smoother DICGaussSeidel; + nPreSweeps 2; + nPostSweeps 2; + nFinestSweeps 2; + + cacheAgglomeration true; + nCellsInCoarsestLevel 10; + agglomerator faceAreaPair; + mergeLevels 1; + }; + + tolerance 2e-9; + relTol 0; + maxIter 20; + }; + + U smoothSolver + { + smoother GaussSeidel; + tolerance 1e-6; + relTol 0; + nSweeps 1; + }; +} + +PISO +{ + momentumPredictor no; + nCorrectors 2; + nNonOrthogonalCorrectors 0; + nGammaCorr 1; + nGammaSubCycles 3; + cGamma 1.5; + correctPhi no; + + pRefProbe + { + fields + ( + p + ); + + probeLocations + ( + (0 0 0.15) + ); + } + + pRefValue 1e5; +} + +relaxationFactors +{ + U 1.0; +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D/system/setFieldsDict b/tutorials/interDyMFoam/sloshingTank3D/system/setFieldsDict new file mode 100644 index 0000000000..2c881a7ba4 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D/system/setFieldsDict @@ -0,0 +1,35 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object setFieldsDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +defaultFieldValues +( + volScalarFieldValue gamma 0 +); + +regions +( + boxToCell + { + box (-100 -100 -100) (100 100 0); + + fieldValues + ( + volScalarFieldValue gamma 1 + ); + } +); + +// ************************************************************************* // From e9a0d8147d4d9b98a5c72716dad36706a50134ee Mon Sep 17 00:00:00 2001 From: Mark Olesen Date: Thu, 3 Jul 2008 09:46:44 +0200 Subject: [PATCH 15/28] decomposePar changes * improved error checking for the -fields option * allow -lazy and -force combination --- .../decomposePar/decomposePar.C | 135 +++++++++--------- .../decomposePar/decomposeParDict | 70 ++++----- 2 files changed, 103 insertions(+), 102 deletions(-) diff --git a/applications/utilities/parallelProcessing/decomposePar/decomposePar.C b/applications/utilities/parallelProcessing/decomposePar/decomposePar.C index e9fe85e3da..3685be43c4 100644 --- a/applications/utilities/parallelProcessing/decomposePar/decomposePar.C +++ b/applications/utilities/parallelProcessing/decomposePar/decomposePar.C @@ -48,15 +48,15 @@ Usage @param -force \n Remove any existing @a processor subdirectories before decomposing the - geometry. Has precedence over the @a -lazy option. + geometry. @param -lazy \n - Only decompose the geometry if the number of domains has changed - from a previous decomposition. Any existing @a processor subdirectories - are removed as necessary. This option can be used to avoid redundant - geometry decomposition (eg, in scripts), but should be used with caution - when the underlying (serial) geometry or the decomposition method etc - have been changed between decompositions. + Only decompose the geometry if the number of domains has changed from a + previous decomposition. No @a processor subdirectories will be removed + unless the @a -force option is also specified. This option can be used + to avoid redundant geometry decomposition (eg, in scripts), but should + be used with caution when the underlying (serial) geometry or the + decomposition method etc. have been changed between decompositions. \*---------------------------------------------------------------------------*/ @@ -110,83 +110,84 @@ int main(int argc, char *argv[]) ++nProcs; } - // Check for previously decomposed case first + // get requested numberOfSubdomains + label nDomains = 0; + { + IOdictionary decompDict + ( + IOobject + ( + "decomposeParDict", + runTime.time().system(), + runTime, + IOobject::MUST_READ, + IOobject::NO_WRITE, + false + ) + ); + + decompDict.lookup("numberOfSubdomains") >> nDomains; + } + if (decomposeFieldsOnly) { - if (!nProcs) + // Sanity check on previously decomposed case + if (nProcs != nDomains) { FatalErrorIn(args.executable()) - << "Specifying -fields requires a decomposed geometry!" + << "Specified -fields, but the case was decomposed with " + << nProcs << " domains" + << nl + << "instead of " << nDomains + << " domains as specified in decomposeParDict" << nl << exit(FatalError); } } - else + else if (nProcs) { - if (nProcs) + bool procDirsProblem = true; + + if (lazyDecomposition && nProcs == nDomains) { - bool hasProcDirs = true; + // we can reuse the decomposition + decomposeFieldsOnly = true; + procDirsProblem = false; + forceOverwrite = false; - if (forceOverwrite) + Info<< "Using existing processor directories" << nl; + } + + if (forceOverwrite) + { + Info<< "Removing " << nProcs + << " existing processor directories" << endl; + + // remove existing processor dirs + // reverse order to avoid gaps if someone interrupts the process + for (label procI = nProcs-1; procI >= 0; --procI) { - Info<< "Removing " << nProcs - << " existing processor directories" << endl; - - // remove existing processor dirs - for (label procI = nProcs-1; procI >= 0; --procI) - { - fileName procDir - ( - runTime.path()/(word("processor") + name(procI)) - ); - - rmDir(procDir); - } - - hasProcDirs = false; - } - else if (lazyDecomposition) - { - // lazy decomposition - IOdictionary decompDict + fileName procDir ( - IOobject - ( - "decomposeParDict", - runTime.time().system(), - runTime, - IOobject::MUST_READ, - IOobject::NO_WRITE, - false - ) + runTime.path()/(word("processor") + name(procI)) ); - label nDomains - ( - readInt(decompDict.lookup("numberOfSubdomains")) - ); - - // avoid repeated decomposition - if (nDomains == nProcs) - { - decomposeFieldsOnly = true; - hasProcDirs = false; - - Info<< "Using existing processor directories" << nl; - } + rmDir(procDir); } - if (hasProcDirs) - { - FatalErrorIn(args.executable()) - << "Case is already decomposed with " << nProcs - << " domains, use the -force option or manually" << nl - << "remove processor directories before decomposing. e.g.," - << nl - << " rm -rf " << runTime.path().c_str() << "/processor*" - << nl - << exit(FatalError); - } + procDirsProblem = false; + } + + if (procDirsProblem) + { + FatalErrorIn(args.executable()) + << "Case is already decomposed with " << nProcs + << " domains, use the -force option or manually" << nl + << "remove processor directories before decomposing. e.g.," + << nl + << " rm -rf " << runTime.path().c_str() << "/processor*" + << nl + << exit(FatalError); } } diff --git a/applications/utilities/parallelProcessing/decomposePar/decomposeParDict b/applications/utilities/parallelProcessing/decomposePar/decomposeParDict index b9ee4eaeb1..c7317b464f 100644 --- a/applications/utilities/parallelProcessing/decomposePar/decomposeParDict +++ b/applications/utilities/parallelProcessing/decomposePar/decomposeParDict @@ -1,61 +1,61 @@ -// Mesh decomposition control dictionary - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - +/*-------------------------------*- C++ -*---------------------------------*\ +| ========= | +| \\ / OpenFOAM | +| \\ / | +| \\ / The Open Source CFD Toolbox | +| \\/ http://www.OpenFOAM.org | +\*-------------------------------------------------------------------------*/ FoamFile { - version 0.5; - format ascii; - - root "ROOT"; - case "CASE"; - instance "system"; - local ""; - - class dictionary; - - object decompositionDict; + version 2.0; + format ascii; + class dictionary; + note "mesh decomposition control dictionary"; + location "system"; + object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -numberOfSubdomains 4; +numberOfSubdomains 4; -//preservePatches (inlet); -//preserveFaceZones (heater solid1 solid3); +// preservePatches (inlet); +// preserveFaceZones (heater solid1 solid3); -method simple; -//method hierarchical; -//method metis; -//method manual; +method simple; +// method hierarchical; +// method metis; +// method manual; simpleCoeffs { - n (2 2 1); - delta 0.001; + n (2 2 1); + delta 0.001; } hierarchicalCoeffs { - n (2 2 1); - delta 0.001; - order xyz; + n (2 2 1); + delta 0.001; + order xyz; } metisCoeffs { - //processorWeights - //( - // 1 - // 1 - // 1 - // 1 - //); + /* + processorWeights + ( + 1 + 1 + 1 + 1 + ); + */ } manualCoeffs { - dataFile "decompositionData"; + dataFile "decompositionData"; } // ************************************************************************* // From 79a425236b7d98a7592424e23e5d6b0cd5036755 Mon Sep 17 00:00:00 2001 From: andy Date: Thu, 3 Jul 2008 14:33:54 +0100 Subject: [PATCH 16/28] added get/set component functionality --- src/OpenFOAM/primitives/label/label.H | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/OpenFOAM/primitives/label/label.H b/src/OpenFOAM/primitives/label/label.H index de4a67fc14..ee18f569ad 100644 --- a/src/OpenFOAM/primitives/label/label.H +++ b/src/OpenFOAM/primitives/label/label.H @@ -119,6 +119,7 @@ namespace Foam // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // #include "pTraits.H" +#include "direction.H" namespace Foam { @@ -202,6 +203,16 @@ MAXMIN(long, int, long) MAXMIN(long long, int, long long) MAXMIN(long long, long long, int) +inline label& setComponent(label& l, const direction) +{ + return l; +} + +inline label component(const label l, const direction) +{ + return l; +} + inline label mag(const label l) { return ::abs(l); From d23666042fe339177cd1c58d3414592f4d5c6319 Mon Sep 17 00:00:00 2001 From: andy Date: Thu, 3 Jul 2008 14:35:00 +0100 Subject: [PATCH 17/28] general clean-up, and renamed filename extension to avoid conflict with internal reader --- .../graphics/PV3FoamReader/Allwclean | 7 + .../PV3FoamReader/vtkPV3FoamReader.cxx | 101 +++++------ .../PV3FoamReader/vtkPV3Foam/vtkPV3Foam.C | 25 +-- .../PV3FoamReader/vtkPV3Foam/vtkPV3Foam.H | 80 +-------- .../vtkPV3Foam/vtkPV3FoamConvertFaceField.H | 161 +++--------------- .../vtkPV3FoamConvertLagrangianFields.H | 56 +----- .../vtkPV3FoamConvertPatchFaceField.H | 49 +----- .../vtkPV3FoamConvertPatchPointField.H | 48 +----- .../vtkPV3Foam/vtkPV3FoamConvertPointFields.H | 85 ++------- .../vtkPV3Foam/vtkPV3FoamConvertVolFields.H | 58 +------ .../vtkPV3Foam/vtkPV3FoamUpdate.C | 18 +- .../vtkPV3Foam/vtkPV3FoamUpdateInformation.C | 24 +-- .../vtkPV3FoamUpdateInformationFields.H | 7 + bin/paraFoam | 4 +- 14 files changed, 177 insertions(+), 546 deletions(-) create mode 100755 applications/utilities/postProcessing/graphics/PV3FoamReader/Allwclean diff --git a/applications/utilities/postProcessing/graphics/PV3FoamReader/Allwclean b/applications/utilities/postProcessing/graphics/PV3FoamReader/Allwclean new file mode 100755 index 0000000000..0993c14cee --- /dev/null +++ b/applications/utilities/postProcessing/graphics/PV3FoamReader/Allwclean @@ -0,0 +1,7 @@ +#!/bin/sh +set -x + +rm -r PV3FoamReader/Make + +wclean libso vtkPV3Foam + diff --git a/applications/utilities/postProcessing/graphics/PV3FoamReader/PV3FoamReader/vtkPV3FoamReader.cxx b/applications/utilities/postProcessing/graphics/PV3FoamReader/PV3FoamReader/vtkPV3FoamReader.cxx index 091af74399..3e576a77db 100644 --- a/applications/utilities/postProcessing/graphics/PV3FoamReader/PV3FoamReader/vtkPV3FoamReader.cxx +++ b/applications/utilities/postProcessing/graphics/PV3FoamReader/PV3FoamReader/vtkPV3FoamReader.cxx @@ -54,7 +54,7 @@ vtkPV3FoamReader::vtkPV3FoamReader() { Debug = 0; vtkDebugMacro(<<"Constructor"); - + SetNumberOfInputPorts(0); FileName = NULL; @@ -115,7 +115,6 @@ vtkPV3FoamReader::vtkPV3FoamReader() vtkPV3FoamReader::~vtkPV3FoamReader() { vtkDebugMacro(<<"Deconstructor"); - cout << "Destroy ~vtkPV3FoamReader\n"; if (foamData_) { @@ -152,23 +151,30 @@ int vtkPV3FoamReader::RequestInformation ) { vtkDebugMacro(<<"RequestInformation"); - cout<<"REQUEST_INFORMATION\n"; + + + if (Foam::vtkPV3Foam::debug) + { + cout<<"REQUEST_INFORMATION\n"; + } if (!FileName) { vtkErrorMacro("FileName has to be specified!"); return 0; } - + + if (Foam::vtkPV3Foam::debug) { vtkInformation* outputInfo = this->GetOutputPortInformation(0); - outputInfo->Print(cout); - + vtkMultiBlockDataSet* output = vtkMultiBlockDataSet::SafeDownCast ( outputInfo->Get(vtkMultiBlockDataSet::DATA_OBJECT()) ); - if (output) + + outputInfo->Print(cout); + if (output) { output->Print(cout); } @@ -177,21 +183,19 @@ int vtkPV3FoamReader::RequestInformation cout << "no output\n"; } - cout << "GetExecutive:\n"; - this->GetExecutive()->GetOutputInformation(0)->Print(cout); - } - - { + int nInfo = outputVector->GetNumberOfInformationObjects(); - cout<<"requestInfo with " << nInfo << " items\n"; + + cout<< "requestInfo with " << nInfo << " items:\n"; + for (int i=0; iGetInformationObject(i); info->Print(cout); } } - + vtkInformation *outInfo = outputVector->GetInformationObject(0); if (!foamData_) @@ -207,15 +211,12 @@ int vtkPV3FoamReader::RequestInformation else { vtkDebugMacro("RequestInformation: updating information"); - foamData_->UpdateInformation(); } int nTimeSteps = 0; double* timeSteps = foamData_->timeSteps(nTimeSteps); - cout<<"Have nTimeSteps: " << nTimeSteps << "\n"; - outInfo->Set ( vtkStreamingDemandDrivenPipeline::TIME_STEPS(), @@ -229,13 +230,16 @@ int vtkPV3FoamReader::RequestInformation timeRange[0] = timeSteps[0]; timeRange[1] = timeSteps[nTimeSteps-1]; - cout<<"nTimeSteps " << nTimeSteps << "\n"; - cout<<"timeRange " << timeRange[0] << " -> " << timeRange[1] << "\n"; + if (Foam::vtkPV3Foam::debug) + { + cout<<"nTimeSteps " << nTimeSteps << "\n"; + cout<<"timeRange " << timeRange[0] << " to " << timeRange[1] << "\n"; -// for (int i = 0; i < nTimeSteps; ++i) -// { -// cout<<"step[" << i << "] = " << timeSteps[i] << "\n"; -// } + for (int i = 0; i < nTimeSteps; ++i) + { + cout<< "step[" << i << "] = " << timeSteps[i] << "\n"; + } + } outInfo->Set ( @@ -247,7 +251,6 @@ int vtkPV3FoamReader::RequestInformation delete timeSteps; - cout<<"done RequestInformation\n"; return 1; } @@ -261,21 +264,27 @@ int vtkPV3FoamReader::RequestData ) { vtkDebugMacro(<<"RequestData"); - cout<<"REQUEST_DATA\n"; if (!FileName) { vtkErrorMacro("FileName has to be specified!"); return 0; } - + { int nInfo = outputVector->GetNumberOfInformationObjects(); - cout<<"requestData with " << nInfo << " items\n"; + if (Foam::vtkPV3Foam::debug) + { + cout<<"requestData with " << nInfo << " items\n"; + } for (int i=0; iGetInformationObject(i); - info->Print(cout); + + if (Foam::vtkPV3Foam::debug) + { + info->Print(cout); + } } } @@ -284,38 +293,38 @@ int vtkPV3FoamReader::RequestData ( outInfo->Get(vtkMultiBlockDataSet::DATA_OBJECT()) ); - -#if 1 + + if (Foam::vtkPV3Foam::debug) { vtkInformation* outputInfo = this->GetOutputPortInformation(0); outputInfo->Print(cout); - + vtkMultiBlockDataSet* output = vtkMultiBlockDataSet::SafeDownCast ( outputInfo->Get(vtkMultiBlockDataSet::DATA_OBJECT()) ); - if (output) + if (output) { output->Print(cout); } else { - cout << "no output\n"; + cout<< "no output\n"; } - + vtkInformation* execInfo = this->GetExecutive()->GetOutputInformation(0); execInfo->Print(cout); - + outInfo->Print(cout); - + vtkMultiBlockDataSet* dobj = vtkMultiBlockDataSet::SafeDownCast ( outInfo->Get(vtkMultiBlockDataSet::DATA_OBJECT()) ); - if (dobj) + if (dobj) { dobj->Print(cout); - + vtkInformation* dobjInfo = dobj->GetInformation(); dobjInfo->Print(cout); } @@ -323,16 +332,16 @@ int vtkPV3FoamReader::RequestData { cout << "no data_object\n"; } - - } -#endif if (outInfo->Has(vtkStreamingDemandDrivenPipeline::UPDATE_TIME_STEPS())) { - cout<<"Has UPDATE_TIME_STEPS\n"; - cout<<"output->GetNumberOfBlocks() " << output->GetNumberOfBlocks() << - "\n"; + if (Foam::vtkPV3Foam::debug) + { + cout<<"Has UPDATE_TIME_STEPS\n"; + cout<<"output->GetNumberOfBlocks() = " + << output->GetNumberOfBlocks() << "\n"; + } // Get the requested time step. // We only supprt requests of a single time step @@ -370,10 +379,6 @@ int vtkPV3FoamReader::RequestData } UpdateGUIOld = GetUpdateGUI(); - cout<<"done RequestData\n"; - cout<<"done output->GetNumberOfBlocks() " - << output->GetNumberOfBlocks() << "\n"; - return 1; } diff --git a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3Foam.C b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3Foam.C index e019e299d0..8b3c5a3b47 100644 --- a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3Foam.C +++ b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3Foam.C @@ -84,13 +84,15 @@ void Foam::vtkPV3Foam::AddToBlock output->SetBlock(blockNo, block); block->Delete(); } - - if (block) + else { - Info<< "block[" << blockNo << "] has " - << block->GetNumberOfBlocks() - << " datasets prior to adding set " << datasetNo - << " with name: " << blockName << endl; + if (debug) + { + Info<< "block[" << blockNo << "] has " + << block->GetNumberOfBlocks() + << " datasets prior to adding set " << datasetNo + << " with name: " << blockName << endl; + } // when assigning dataset 0, also name the parent block if (!datasetNo && selector.name()) @@ -481,8 +483,11 @@ Foam::vtkPV3Foam::vtkPV3Foam dbPtr_().functionObjects().off(); - cout<<"constructed with output: "; - output_->Print(cout), + if (debug) + { + cout<< "constructed with output: "; + output_->Print(cout); + } resetCounters(); @@ -579,8 +584,8 @@ void Foam::vtkPV3Foam::Update { if (debug) { - Info<< "entered Foam::vtkPV3Foam::Update" << endl; - cout<<"Update\n"; + cout<< "entered Foam::vtkPV3Foam::Update" << nl + <<"Update\n"; output->Print(cout); cout<<"Internally:\n"; diff --git a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3Foam.H b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3Foam.H index f5aadcd051..a1d374cc9d 100644 --- a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3Foam.H +++ b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3Foam.H @@ -172,6 +172,7 @@ public: } }; + private: // Private data @@ -645,85 +646,6 @@ public: }; -// * * * * * * * * * * * * * Template Specialisations * * * * * * * * * * * // - -template<> -void vtkPV3Foam::convertVolField -( - const GeometricField& sf, - vtkMultiBlockDataSet* output, - const selectionInfo&, - const label datasetNo, - labelList& superCells -); - - -template<> -void vtkPV3Foam::convertPatchFaceField -( - const word& name, - const Field&, - vtkMultiBlockDataSet* output, - const selectionInfo&, - const label datasetNo -); - -template<> -void vtkPV3Foam::convertFaceField -( - const GeometricField&, - vtkMultiBlockDataSet* output, - const selectionInfo&, - const label datasetNo, - const fvMesh&, - const labelList& faceLabels -); - - -template<> -void vtkPV3Foam::convertFaceField -( - const GeometricField&, - vtkMultiBlockDataSet* output, - const selectionInfo&, - const label datasetNo, - const fvMesh&, - const faceSet& -); - - -template<> -void vtkPV3Foam::convertPointField -( - const GeometricField&, - const GeometricField&, - vtkMultiBlockDataSet* output, - const selectionInfo&, - const label datasetNo -); - - -template<> -void vtkPV3Foam::convertPatchPointField -( - const word& name, - const Field&, - vtkMultiBlockDataSet* output, - const selectionInfo&, - const label datasetNo -); - - -template<> -void vtkPV3Foam::convertLagrangianField -( - const IOField&, - vtkMultiBlockDataSet* output, - const selectionInfo&, - const label datasetNo -); - - // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // } // End namespace Foam diff --git a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamConvertFaceField.H b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamConvertFaceField.H index c6b3e51d47..114aab667a 100644 --- a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamConvertFaceField.H +++ b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamConvertFaceField.H @@ -48,6 +48,8 @@ void Foam::vtkPV3Foam::convertFaceField const labelList& faceLabels ) { + const label nComp = pTraits::nComponents; + vtkPolyData* vtkmesh = vtkPolyData::SafeDownCast ( GetDataSetFromBlock(output, selector, datasetNo) @@ -59,33 +61,30 @@ void Foam::vtkPV3Foam::convertFaceField vtkFloatArray *cellData = vtkFloatArray::New(); cellData->SetNumberOfTuples(faceLabels.size()); - cellData->SetNumberOfComponents(Type::nComponents); - cellData->Allocate(Type::nComponents*faceLabels.size()); + cellData->SetNumberOfComponents(nComp); + cellData->Allocate(nComp*faceLabels.size()); cellData->SetName(tf.name().c_str()); - float vec[Type::nComponents]; + float vec[nComp]; forAll(faceLabels, faceI) { const label faceNo = faceLabels[faceI]; if (faceNo < nInternalFaces) { - Type t = 0.5 * - ( - tf[faceOwner[faceNo]] + tf[faceNeigh[faceNo]] - ); + Type t = 0.5*(tf[faceOwner[faceNo]] + tf[faceNeigh[faceNo]]); - for (direction d=0; d::nComponents; + vtkPolyData* vtkmesh = vtkPolyData::SafeDownCast ( GetDataSetFromBlock(output, selector, datasetNo) @@ -119,11 +120,11 @@ void Foam::vtkPV3Foam::convertFaceField vtkFloatArray *cellData = vtkFloatArray::New(); cellData->SetNumberOfTuples(fSet.size()); - cellData->SetNumberOfComponents(Type::nComponents); - cellData->Allocate(Type::nComponents*fSet.size()); + cellData->SetNumberOfComponents(nComp); + cellData->Allocate(nComp*fSet.size()); cellData->SetName(tf.name().c_str()); - float vec[Type::nComponents]; + float vec[nComp]; label faceI = 0; forAllConstIter(faceSet, fSet, iter) @@ -132,22 +133,19 @@ void Foam::vtkPV3Foam::convertFaceField if (faceNo < nInternalFaces) { - Type t = 0.5 * - ( - tf[faceOwner[faceNo]] + tf[faceNeigh[faceNo]] - ); + Type t = 0.5*(tf[faceOwner[faceNo]] + tf[faceNeigh[faceNo]]); - for (direction d=0; d -void Foam::vtkPV3Foam::convertFaceField -( - const GeometricField& tf, - vtkMultiBlockDataSet* output, - const selectionInfo& selector, - const label datasetNo, - const fvMesh& mesh, - const labelList& faceLabels -) -{ - vtkPolyData* vtkmesh = vtkPolyData::SafeDownCast - ( - GetDataSetFromBlock(output, selector, datasetNo) - ); - - const label nInternalFaces = mesh.nInternalFaces(); - const labelList& faceOwner = mesh.faceOwner(); - const labelList& faceNeigh = mesh.faceNeighbour(); - - vtkFloatArray *cellData = vtkFloatArray::New(); - cellData->SetNumberOfTuples(faceLabels.size()); - cellData->SetNumberOfComponents(1); - cellData->Allocate(faceLabels.size()); - cellData->SetName(tf.name().c_str()); - - forAll(faceLabels, faceI) - { - const label faceNo = faceLabels[faceI]; - if (faceNo < nInternalFaces) - { - cellData->InsertComponent - ( - faceI, - 0, - 0.5 * (tf[faceOwner[faceNo]] + tf[faceNeigh[faceNo]]) - ); - } - else - { - cellData->InsertComponent - ( - faceI, 0, tf[faceOwner[faceNo]] - ); - } - - } - - vtkmesh->GetCellData()->AddArray(cellData); - - if (!vtkmesh->GetCellData()->GetScalars()) - { - vtkmesh->GetCellData()->SetScalars(cellData); - } - - cellData->Delete(); -} - - -template<> -void Foam::vtkPV3Foam::convertFaceField -( - const GeometricField& tf, - vtkMultiBlockDataSet* output, - const selectionInfo& selector, - const label datasetNo, - const fvMesh& mesh, - const faceSet& fSet -) -{ - vtkPolyData* vtkmesh = vtkPolyData::SafeDownCast - ( - GetDataSetFromBlock(output, selector, datasetNo) - ); - - const label nInternalFaces = mesh.nInternalFaces(); - const labelList& faceOwner = mesh.faceOwner(); - const labelList& faceNeigh = mesh.faceNeighbour(); - - vtkFloatArray *cellData = vtkFloatArray::New(); - cellData->SetNumberOfTuples(fSet.size()); - cellData->SetNumberOfComponents(1); - cellData->Allocate(fSet.size()); - cellData->SetName(tf.name().c_str()); - - label faceI = 0; - forAllConstIter(faceSet, fSet, iter) - { - const label faceNo = iter.key(); - if (faceNo < nInternalFaces) - { - cellData->InsertComponent - ( - faceI, - 0, - 0.5 * (tf[faceOwner[faceNo]] + tf[faceNeigh[faceNo]]) - ); - } - else - { - cellData->InsertComponent - ( - faceI, 0, tf[faceOwner[faceNo]] - ); - } - ++faceI; - } - - vtkmesh->GetCellData()->AddArray(cellData); - - if (!vtkmesh->GetCellData()->GetScalars()) - { - vtkmesh->GetCellData()->SetScalars(cellData); - } - - cellData->Delete(); -} - - // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // #endif diff --git a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamConvertLagrangianFields.H b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamConvertLagrangianFields.H index 7f99944008..0ccc3f81a0 100644 --- a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamConvertLagrangianFields.H +++ b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamConvertLagrangianFields.H @@ -95,6 +95,8 @@ void Foam::vtkPV3Foam::convertLagrangianField const label datasetNo ) { + const label nComp = pTraits::nComponents; + vtkPolyData* vtkmesh = vtkPolyData::SafeDownCast ( GetDataSetFromBlock(output, selector, datasetNo) @@ -102,24 +104,24 @@ void Foam::vtkPV3Foam::convertLagrangianField vtkFloatArray *pointData = vtkFloatArray::New(); pointData->SetNumberOfTuples(tf.size()); - pointData->SetNumberOfComponents(Type::nComponents); - pointData->Allocate(Type::nComponents*tf.size()); + pointData->SetNumberOfComponents(nComp); + pointData->Allocate(nComp*tf.size()); pointData->SetName(tf.name().c_str()); if (debug) { Info<< "converting Lagrangian Field: " << tf.name() << nl << "tf.size() = " << tf.size() << nl - << "nComps = " << Type::nComponents << endl; + << "nComp = " << nComp << endl; } - float vec[Type::nComponents]; + float vec[nComp]; forAll(tf, i) { - for (direction d=0; dInsertTuple(i, vec); @@ -130,48 +132,6 @@ void Foam::vtkPV3Foam::convertLagrangianField } -template<> -void Foam::vtkPV3Foam::convertLagrangianField -( - const IOField& sf, - vtkMultiBlockDataSet* output, - const selectionInfo& selector, - const label datasetNo -) -{ - vtkPolyData* vtkmesh = vtkPolyData::SafeDownCast - ( - GetDataSetFromBlock(output, selector, datasetNo) - ); - - vtkFloatArray *pointData = vtkFloatArray::New(); - pointData->SetNumberOfTuples(sf.size()); - pointData->SetNumberOfComponents(1); - pointData->Allocate(sf.size()); - pointData->SetName(sf.name().c_str()); - - if (debug) - { - Info<< "converting Lagrangian scalarField: " << sf.name() << nl - << "sf.size() = " << sf.size() << nl - << "nComps = 1" << endl; - } - - for (int i=0; iInsertComponent(i, 0, sf[i]); - } - - vtkmesh->GetPointData()->AddArray(pointData); - if (!vtkmesh->GetPointData()->GetScalars()) - { - vtkmesh->GetPointData()->SetScalars(pointData); - } - - pointData->Delete(); -} - - // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // #endif diff --git a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamConvertPatchFaceField.H b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamConvertPatchFaceField.H index 11954235ea..af0fde5e21 100644 --- a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamConvertPatchFaceField.H +++ b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamConvertPatchFaceField.H @@ -48,6 +48,8 @@ void Foam::vtkPV3Foam::convertPatchFaceField const label datasetNo ) { + const label nComp = pTraits::nComponents; + vtkPolyData* vtkmesh = vtkPolyData::SafeDownCast ( GetDataSetFromBlock(output, selector, datasetNo) @@ -55,18 +57,18 @@ void Foam::vtkPV3Foam::convertPatchFaceField vtkFloatArray *cellData = vtkFloatArray::New(); cellData->SetNumberOfTuples(ptf.size()); - cellData->SetNumberOfComponents(Type::nComponents); - cellData->Allocate(Type::nComponents*ptf.size()); + cellData->SetNumberOfComponents(nComp); + cellData->Allocate(nComp*ptf.size()); cellData->SetName(name.c_str()); - float vec[Type::nComponents]; + float vec[nComp]; forAll(ptf, i) { const Type& t = ptf[i]; - for (direction d=0; dInsertTuple(i, vec); @@ -77,43 +79,6 @@ void Foam::vtkPV3Foam::convertPatchFaceField } -template<> -void Foam::vtkPV3Foam::convertPatchFaceField -( - const word& name, - const Field& psf, - vtkMultiBlockDataSet* output, - const selectionInfo& selector, - const label datasetNo -) -{ - vtkPolyData* vtkmesh = vtkPolyData::SafeDownCast - ( - GetDataSetFromBlock(output, selector, datasetNo) - ); - - vtkFloatArray *cellData = vtkFloatArray::New(); - cellData->SetNumberOfTuples(psf.size()); - cellData->SetNumberOfComponents(1); - cellData->Allocate(psf.size()); - cellData->SetName(name.c_str()); - - forAll(psf, i) - { - cellData->InsertComponent(i, 0, psf[i]); - } - - vtkmesh->GetCellData()->AddArray(cellData); - - if (!vtkmesh->GetCellData()->GetScalars()) - { - vtkmesh->GetCellData()->SetScalars(cellData); - } - - cellData->Delete(); -} - - // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // #endif diff --git a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamConvertPatchPointField.H b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamConvertPatchPointField.H index c0a3a92f9a..a793958218 100644 --- a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamConvertPatchPointField.H +++ b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamConvertPatchPointField.H @@ -45,6 +45,8 @@ void Foam::vtkPV3Foam::convertPatchPointField const label datasetNo ) { + const label nComp = pTraits::nComponents; + vtkPolyData* vtkmesh = vtkPolyData::SafeDownCast ( GetDataSetFromBlock(output, selector, datasetNo) @@ -52,17 +54,17 @@ void Foam::vtkPV3Foam::convertPatchPointField vtkFloatArray *pointData = vtkFloatArray::New(); pointData->SetNumberOfTuples(pptf.size()); - pointData->SetNumberOfComponents(Type::nComponents); - pointData->Allocate(Type::nComponents*pptf.size()); + pointData->SetNumberOfComponents(nComp); + pointData->Allocate(nComp*pptf.size()); pointData->SetName(name.c_str()); - float vec[Type::nComponents]; + float vec[nComp]; forAll(pptf, i) { - for (direction d=0; dInsertTuple(i, vec); @@ -73,42 +75,6 @@ void Foam::vtkPV3Foam::convertPatchPointField } -template<> -void Foam::vtkPV3Foam::convertPatchPointField -( - const word& name, - const Field& ppsf, - vtkMultiBlockDataSet* output, - const selectionInfo& selector, - const label datasetNo -) -{ - vtkPolyData* vtkmesh = vtkPolyData::SafeDownCast - ( - GetDataSetFromBlock(output, selector, datasetNo) - ); - - vtkFloatArray *pointData = vtkFloatArray::New(); - pointData->SetNumberOfTuples(ppsf.size()); - pointData->SetNumberOfComponents(1); - pointData->Allocate(ppsf.size()); - pointData->SetName(name.c_str()); - - for (int i=0; iInsertComponent(i, 0, ppsf[i]); - } - - vtkmesh->GetPointData()->AddArray(pointData); - if (!vtkmesh->GetPointData()->GetScalars()) - { - vtkmesh->GetPointData()->SetScalars(pointData); - } - - pointData->Delete(); -} - - // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // #endif diff --git a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamConvertPointFields.H b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamConvertPointFields.H index fc16caca71..28d7fdfe5d 100644 --- a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamConvertPointFields.H +++ b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamConvertPointFields.H @@ -33,8 +33,6 @@ InClass // Foam includes #include "interpolatePointToCell.H" -// VTK includes - // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // template @@ -145,6 +143,8 @@ void Foam::vtkPV3Foam::convertPointField const label datasetNo ) { + const label nComp = pTraits::nComponents; + vtkUnstructuredGrid* internalMesh = vtkUnstructuredGrid::SafeDownCast ( GetDataSetFromBlock(output, selector, datasetNo) @@ -152,17 +152,17 @@ void Foam::vtkPV3Foam::convertPointField vtkFloatArray *pointData = vtkFloatArray::New(); pointData->SetNumberOfTuples(ptf.size() + addPointCellLabels_.size()); - pointData->SetNumberOfComponents(Type::nComponents); - pointData->Allocate(Type::nComponents*ptf.size()); + pointData->SetNumberOfComponents(nComp); + pointData->Allocate(nComp*ptf.size()); pointData->SetName(tf.name().c_str()); - float vec[Type::nComponents]; + float vec[nComp]; forAll(ptf, i) { - for (direction d=0; dInsertTuple(i, vec); @@ -176,9 +176,9 @@ void Foam::vtkPV3Foam::convertPointField { Type t = tf[addPointCellLabels_[api]]; - for (direction d=0; dInsertTuple(i++, vec); @@ -190,9 +190,9 @@ void Foam::vtkPV3Foam::convertPointField { Type t = interpolatePointToCell(ptf, addPointCellLabels_[api]); - for (direction d=0; dInsertTuple(i++, vec); @@ -204,69 +204,6 @@ void Foam::vtkPV3Foam::convertPointField } -template<> -void Foam::vtkPV3Foam::convertPointField -( - const GeometricField& psf, - const GeometricField& sf, - vtkMultiBlockDataSet* output, - const selectionInfo& selector, - const label datasetNo -) -{ - vtkUnstructuredGrid* internalMesh = vtkUnstructuredGrid::SafeDownCast - ( - GetDataSetFromBlock(output, selector, datasetNo) - ); - - vtkFloatArray *pointData = vtkFloatArray::New(); - pointData->SetNumberOfTuples(psf.size() + addPointCellLabels_.size()); - pointData->SetNumberOfComponents(1); - pointData->Allocate(psf.size()); - pointData->SetName(sf.name().c_str()); - - for (int i=0; iInsertComponent(i, 0, psf[i]); - } - - label i = psf.size(); - - if (&sf != &GeometricField::null()) - { - forAll(addPointCellLabels_, api) - { - pointData->InsertComponent - ( - i++, - 0, - sf[addPointCellLabels_[api]] - ); - } - } - else - { - forAll(addPointCellLabels_, api) - { - pointData->InsertComponent - ( - i++, - 0, - interpolatePointToCell(psf, addPointCellLabels_[api]) - ); - } - } - - internalMesh->GetPointData()->AddArray(pointData); - if (!internalMesh->GetPointData()->GetScalars()) - { - internalMesh->GetPointData()->SetScalars(pointData); - } - - pointData->Delete(); -} - - // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // #endif diff --git a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamConvertVolFields.H b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamConvertVolFields.H index 4fcdd1725e..ff2a1d8bce 100644 --- a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamConvertVolFields.H +++ b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamConvertVolFields.H @@ -372,6 +372,8 @@ void Foam::vtkPV3Foam::convertVolField labelList& superCells ) { + const label nComp = pTraits::nComponents; + vtkUnstructuredGrid* vtkmesh = vtkUnstructuredGrid::SafeDownCast ( GetDataSetFromBlock(output, selector, datasetNo) @@ -379,8 +381,8 @@ void Foam::vtkPV3Foam::convertVolField vtkFloatArray* celldata = vtkFloatArray::New(); celldata->SetNumberOfTuples(superCells.size()); - celldata->SetNumberOfComponents(Type::nComponents); - celldata->Allocate(Type::nComponents*superCells.size()); + celldata->SetNumberOfComponents(nComp); + celldata->Allocate(nComp*superCells.size()); celldata->SetName(tf.name().c_str()); if (debug) @@ -388,17 +390,17 @@ void Foam::vtkPV3Foam::convertVolField Info<< "converting volField: " << tf.name() << nl << "field size = " << tf.size() << nl << "nTuples = " << superCells.size() << nl - << "nComps = " << Type::nComponents << endl; + << "nComp = " << nComp << endl; } - float vec[Type::nComponents]; + float vec[nComp]; forAll(superCells, scI) { const Type& t = tf[superCells[scI]]; - for (direction d=0; dInsertTuple(scI, vec); @@ -409,50 +411,6 @@ void Foam::vtkPV3Foam::convertVolField } -template<> -void Foam::vtkPV3Foam::convertVolField -( - const GeometricField& sf, - vtkMultiBlockDataSet* output, - const selectionInfo& selector, - const label datasetNo, - labelList& superCells -) -{ - vtkUnstructuredGrid* vtkmesh = vtkUnstructuredGrid::SafeDownCast - ( - GetDataSetFromBlock(output, selector, datasetNo) - ); - - vtkFloatArray *cellData = vtkFloatArray::New(); - cellData->SetNumberOfTuples(superCells.size()); - cellData->SetNumberOfComponents(1); - cellData->Allocate(superCells.size()); - cellData->SetName(sf.name().c_str()); - - if (debug) - { - Info<< "converting volScalarField: " << sf.name() << nl - << "field size = " << sf.size() << nl - << "nTuples = " << superCells.size() << nl - << "nComps = 1" << endl; - } - - forAll(superCells, scI) - { - cellData->InsertComponent(scI, 0, sf[superCells[scI]]); - } - - vtkmesh->GetCellData()->AddArray(cellData); - if (!vtkmesh->GetCellData()->GetScalars()) - { - vtkmesh->GetCellData()->SetScalars(cellData); - } - - cellData->Delete(); -} - - // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // #endif diff --git a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamUpdate.C b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamUpdate.C index c1babdcdc9..e7e4ac9106 100644 --- a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamUpdate.C +++ b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamUpdate.C @@ -114,6 +114,12 @@ void Foam::vtkPV3Foam::updateVolFields } volPointInterpolation pInterp(mesh, pMesh); +/* + convertVolFields + ( + mesh, pInterp, objects, arraySelection, output + ); +*/ convertVolFields ( mesh, pInterp, objects, arraySelection, output @@ -159,7 +165,12 @@ void Foam::vtkPV3Foam::updatePointFields { Info<< "converting Foam point fields" << endl; } - +/* + convertPointFields + ( + mesh, objects, arraySelection, output + ); +*/ convertPointFields ( mesh, objects, arraySelection, output @@ -213,6 +224,11 @@ void Foam::vtkPV3Foam::updateLagrangianFields Info<< "converting Foam Lagrangian fields" << endl; } + convertLagrangianFields + ( + mesh, objects, arraySelection, output + ); + convertLagrangianFields ( mesh, objects, arraySelection, output diff --git a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamUpdateInformation.C b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamUpdateInformation.C index c6a520f673..424fb6d356 100644 --- a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamUpdateInformation.C +++ b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamUpdateInformation.C @@ -108,15 +108,13 @@ void Foam::vtkPV3Foam::updateInformationLagrangian() { if (debug) { - Info<< "entered Foam::vtkPV3Foam::updateInformationLagrangian at timePath " - << dbPtr_->timePath()/"lagrangian" << endl; + Info<< "entered Foam::vtkPV3Foam::updateInformationLagrangian " + << "at timePath " << dbPtr_->timePath()/"lagrangian" << endl; } vtkDataArraySelection* arraySelection = reader_->GetRegionSelection(); // Search for list of lagrangian objects for this time - // IOobjectList lagrangianObjects(dbPtr(), dbPtr_().timeName(), "lagrangian"); - fileNameList cloudDirs ( readDir(dbPtr_->timePath()/"lagrangian", fileName::DIRECTORY) @@ -144,7 +142,8 @@ void Foam::vtkPV3Foam::updateInformationLagrangian() } else { - Info<<"no cloudDirs @ " << dbPtr_->timePath()/"lagrangian" << endl; + Info<<"no clouds identified in " + << dbPtr_->timePath()/"lagrangian" << endl; } } @@ -159,7 +158,7 @@ void Foam::vtkPV3Foam::updateInformationPatches() vtkDataArraySelection *arraySelection = reader_->GetRegionSelection(); - //- Read patches + // Read patches polyBoundaryMeshEntries patchEntries ( IOobject @@ -182,7 +181,7 @@ void Foam::vtkPV3Foam::updateInformationPatches() { label nFaces(readLabel(patchEntries[entryI].dict().lookup("nFaces"))); - //- Valid patch if nFace > 0 + // Valid patch if nFace > 0 if (nFaces) { // Add patch to GUI region list @@ -208,7 +207,7 @@ void Foam::vtkPV3Foam::updateInformationZones() vtkDataArraySelection *arraySelection = reader_->GetRegionSelection(); - //- Read cell zone information + // Read cell zone information { zonesEntries zones ( @@ -240,7 +239,7 @@ void Foam::vtkPV3Foam::updateInformationZones() superCellZonesCells_.setSize(selectInfoCellZones_.size()); } - //- Read face zone information + // Read face zone information { zonesEntries zones ( @@ -270,7 +269,7 @@ void Foam::vtkPV3Foam::updateInformationZones() } } - //- Read point zone information + // Read point zone information { zonesEntries zones ( @@ -373,6 +372,11 @@ void Foam::vtkPV3Foam::updateInformationLagrangianFields() "lagrangian"/cloudName_ ); + addFields > + ( + arraySelection, + objects + ); addFields > ( arraySelection, diff --git a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamUpdateInformationFields.H b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamUpdateInformationFields.H index d93a880128..91571ca5f4 100644 --- a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamUpdateInformationFields.H +++ b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamUpdateInformationFields.H @@ -55,6 +55,13 @@ void Foam::vtkPV3Foam::updateInformationFields // Populate the GUI volume/point field arrays //- Add volume fields to GUI +/* + addFields > + ( + arraySelection, + objects + ); +*/ addFields > ( arraySelection, diff --git a/bin/paraFoam b/bin/paraFoam index e32dd57964..93fb4cf03b 100755 --- a/bin/paraFoam +++ b/bin/paraFoam @@ -77,8 +77,8 @@ do [ -s "$parentDir/$check" ] || usage "file does not exist: '$parentDir/$check'" done -caseFile="$caseName.foam" -# caseFile="$caseName.OpenFOAM" +#caseFile="$caseName.foam" +caseFile="$caseName.OpenFOAM" case "$ParaView_VERSION" in 2*) From 02fb293fcfb5ad5077f948a74b255a737f8165c6 Mon Sep 17 00:00:00 2001 From: andy Date: Thu, 3 Jul 2008 16:58:25 +0100 Subject: [PATCH 18/28] moved a couple of comments to inside debug statements --- .../graphics/PV3FoamReader/vtkPV3Foam/vtkPV3Foam.C | 5 ++++- .../PV3FoamReader/vtkPV3Foam/vtkPV3FoamUpdateInformation.C | 7 +++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3Foam.C b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3Foam.C index 8b3c5a3b47..692693d5a6 100644 --- a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3Foam.C +++ b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3Foam.C @@ -770,7 +770,10 @@ void Foam::vtkPV3Foam::addPatchNames(vtkRenderer* renderer) true ); - Info<<"patches: " << selectedPatches <timePath()/"lagrangian" << endl; + if (debug) + { + Info<<"no clouds identified in " + << dbPtr_->timePath()/"lagrangian" << endl; + } } } From 06dec3884e9c185ada666b671b123db3d20830bf Mon Sep 17 00:00:00 2001 From: andy Date: Thu, 3 Jul 2008 17:09:31 +0100 Subject: [PATCH 19/28] clean-up of unused file --- tutorials/icoFoam/cavity/FoamFile | 14 -------------- 1 file changed, 14 deletions(-) delete mode 100644 tutorials/icoFoam/cavity/FoamFile diff --git a/tutorials/icoFoam/cavity/FoamFile b/tutorials/icoFoam/cavity/FoamFile deleted file mode 100644 index b74a10e4c6..0000000000 --- a/tutorials/icoFoam/cavity/FoamFile +++ /dev/null @@ -1,14 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.5 | -| \\ / A nd | Web: http://www.OpenFOAM.org | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ -FoamFile -{ - version 2.0; - format ascii; - class volScalarField; - object p; -} From ba7d45228ac19c2c591e141b2bd6b59723ab6d08 Mon Sep 17 00:00:00 2001 From: graham Date: Thu, 3 Jul 2008 17:49:51 +0100 Subject: [PATCH 20/28] Added Allrun and Allclean scripts to gnemdFoam and mdEquilibrationFoam tutorials --- tutorials/gnemdFoam/Allclean | 19 ++++++ tutorials/gnemdFoam/Allrun | 25 ++++++++ .../constant/polyMesh/boundary | 3 +- .../constrictedChannel/system/potentialDict | 13 +---- .../nanoNozzle/constant/polyMesh/boundary | 58 +++++++++++++++++++ tutorials/mdEquilibrationFoam/Allclean | 13 +++++ tutorials/mdEquilibrationFoam/Allrun | 13 +++++ .../periodicCube/constant/polyMesh/boundary | 43 ++++++++++++++ 8 files changed, 175 insertions(+), 12 deletions(-) create mode 100755 tutorials/gnemdFoam/Allclean create mode 100755 tutorials/gnemdFoam/Allrun create mode 100644 tutorials/gnemdFoam/nanoNozzle/constant/polyMesh/boundary create mode 100755 tutorials/mdEquilibrationFoam/Allclean create mode 100755 tutorials/mdEquilibrationFoam/Allrun create mode 100644 tutorials/mdEquilibrationFoam/periodicCube/constant/polyMesh/boundary diff --git a/tutorials/gnemdFoam/Allclean b/tutorials/gnemdFoam/Allclean new file mode 100755 index 0000000000..827eacb6ae --- /dev/null +++ b/tutorials/gnemdFoam/Allclean @@ -0,0 +1,19 @@ +#!/bin/sh + +# Source tutorial clean functions +. $WM_PROJECT_DIR/bin/tools/CleanFunctions + +cd constrictedChannel + rm -rf 0 > /dev/null 2>&1 + rm Ar-Ar Ar-Ne Ne-Ne > /dev/null 2>&1 + rm constant/idList + + cleanCase +cd .. + +cd nanoNozzle + rm -rf processor[0-9] > /dev/null 2>&1 + + cleanCase +cd .. + diff --git a/tutorials/gnemdFoam/Allrun b/tutorials/gnemdFoam/Allrun new file mode 100755 index 0000000000..640ecd9bdc --- /dev/null +++ b/tutorials/gnemdFoam/Allrun @@ -0,0 +1,25 @@ +#!/bin/sh + +# Source tutorial run functions +. $WM_PROJECT_DIR/bin/tools/RunFunctions + +application="gnemdFoam" + +cd constrictedChannel + runApplication blockMesh + runApplication molConfig + runApplication $application +cd .. + +cd nanoNozzle + runApplication blockMesh + + runApplication decomposePar + hostname > system/machines + + runParallel molConfig 4 system/machines + runParallel $application 4 system/machines + + runApplication reconstructPar +cd .. + diff --git a/tutorials/gnemdFoam/constrictedChannel/constant/polyMesh/boundary b/tutorials/gnemdFoam/constrictedChannel/constant/polyMesh/boundary index e06cb6a7bc..eaeb38f09e 100644 --- a/tutorials/gnemdFoam/constrictedChannel/constant/polyMesh/boundary +++ b/tutorials/gnemdFoam/constrictedChannel/constant/polyMesh/boundary @@ -1,7 +1,7 @@ /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.5 | +| \\ / O peration | Version: dev | | \\ / A nd | Web: http://www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ @@ -10,6 +10,7 @@ FoamFile version 2.0; format ascii; class polyBoundaryMesh; + location "constant/polyMesh"; object boundary; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/tutorials/gnemdFoam/constrictedChannel/system/potentialDict b/tutorials/gnemdFoam/constrictedChannel/system/potentialDict index ce9f24b88a..7f9346077f 100644 --- a/tutorials/gnemdFoam/constrictedChannel/system/potentialDict +++ b/tutorials/gnemdFoam/constrictedChannel/system/potentialDict @@ -27,7 +27,7 @@ FoamFile // automatically less valuable than any on the list. For molecules of the // same type there is no control over which is removed. -removalOrder 1 (Ar); +removalOrder 2 (Ne Ar); // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // Pair potentials @@ -111,19 +111,10 @@ tether tetherPotential restrainedHarmonicSpring; restrainedHarmonicSpringCoeffs { - springConstant 0.0277; + springConstant 0.1; rR 1.2e-9; } } - - Ne - { - tetherPotential harmonicSpring; - harmonicSpringCoeffs - { - springConstant 0.0277; - } - } } // ************************************************************************* // diff --git a/tutorials/gnemdFoam/nanoNozzle/constant/polyMesh/boundary b/tutorials/gnemdFoam/nanoNozzle/constant/polyMesh/boundary new file mode 100644 index 0000000000..b94dd10f19 --- /dev/null +++ b/tutorials/gnemdFoam/nanoNozzle/constant/polyMesh/boundary @@ -0,0 +1,58 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class polyBoundaryMesh; + location "constant/polyMesh"; + object boundary; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +6 +( + sectionAEnd + { + type patch; + nFaces 225; + startFace 48150; + } + sectionCEnd + { + type patch; + nFaces 225; + startFace 48375; + } + front + { + type wall; + nFaces 1125; + startFace 48600; + } + back + { + type wall; + nFaces 1125; + startFace 49725; + } + top + { + type wall; + nFaces 1125; + startFace 50850; + } + bottom + { + type wall; + nFaces 1125; + startFace 51975; + } +) + +// ************************************************************************* // diff --git a/tutorials/mdEquilibrationFoam/Allclean b/tutorials/mdEquilibrationFoam/Allclean new file mode 100755 index 0000000000..7880b1387e --- /dev/null +++ b/tutorials/mdEquilibrationFoam/Allclean @@ -0,0 +1,13 @@ +#!/bin/sh + +# Source tutorial clean functions +. $WM_PROJECT_DIR/bin/tools/CleanFunctions + +cd periodicCube + rm -rf 0 > /dev/null 2>&1 + rm Ar-Ar > /dev/null 2>&1 + rm constant/idList + + cleanCase +cd .. + diff --git a/tutorials/mdEquilibrationFoam/Allrun b/tutorials/mdEquilibrationFoam/Allrun new file mode 100755 index 0000000000..0c590da09a --- /dev/null +++ b/tutorials/mdEquilibrationFoam/Allrun @@ -0,0 +1,13 @@ +#!/bin/sh + +# Source tutorial run functions +. $WM_PROJECT_DIR/bin/tools/RunFunctions + +application="mdEquilibrationFoam" + +cd periodicCube + runApplication blockMesh + runApplication molConfig + runApplication $application +cd .. + diff --git a/tutorials/mdEquilibrationFoam/periodicCube/constant/polyMesh/boundary b/tutorials/mdEquilibrationFoam/periodicCube/constant/polyMesh/boundary new file mode 100644 index 0000000000..54dbb7ef4a --- /dev/null +++ b/tutorials/mdEquilibrationFoam/periodicCube/constant/polyMesh/boundary @@ -0,0 +1,43 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class polyBoundaryMesh; + location "constant/polyMesh"; + object boundary; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +3 +( + periodicX + { + type cyclic; + nFaces 288; + startFace 4752; + featureCos 0.9; + } + periodicY + { + type cyclic; + nFaces 288; + startFace 5040; + featureCos 0.9; + } + periodicZ + { + type cyclic; + nFaces 288; + startFace 5328; + featureCos 0.9; + } +) + +// ************************************************************************* // From bb597d34c6314ca6f5c2f673110b1007f300e4a8 Mon Sep 17 00:00:00 2001 From: graham Date: Thu, 3 Jul 2008 17:59:04 +0100 Subject: [PATCH 21/28] changed timestep control in molecule::move to tEnd > ROOTVSMALL --- src/lagrangian/molecularDynamics/molecule/molecule/molecule.C | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lagrangian/molecularDynamics/molecule/molecule/molecule.C b/src/lagrangian/molecularDynamics/molecule/molecule/molecule.C index 88b6a8813b..ea7d52771c 100644 --- a/src/lagrangian/molecularDynamics/molecule/molecule/molecule.C +++ b/src/lagrangian/molecularDynamics/molecule/molecule/molecule.C @@ -54,7 +54,7 @@ bool molecule::move(molecule::trackData& td) U_ += 0.5*deltaT*A_; } - while (td.keepParticle && !td.switchProcessor && tEnd > (SMALL*SMALL)) + while (td.keepParticle && !td.switchProcessor && tEnd > ROOTVSMALL) { // set the lagrangian time-step scalar dt = min(dtMax, tEnd); From d8b29eb7ef33477b603e020ed00c99f961509550 Mon Sep 17 00:00:00 2001 From: Mark Olesen Date: Fri, 4 Jul 2008 09:57:43 +0200 Subject: [PATCH 22/28] added 'conversion' library * started with polyDualMesh, but add mesh reader/writers in the future --- .../utilities/mesh/conversion/polyDualMesh/Make/files | 1 - .../utilities/mesh/conversion/polyDualMesh/Make/options | 5 +++-- src/Allwmake | 1 + src/conversion/Allwmake | 4 ++++ src/conversion/Make/files | 3 +++ src/conversion/Make/options | 5 +++++ .../mesh => src}/conversion/polyDualMesh/polyDualMesh.C | 0 .../mesh => src}/conversion/polyDualMesh/polyDualMesh.H | 0 8 files changed, 16 insertions(+), 3 deletions(-) create mode 100755 src/conversion/Allwmake create mode 100644 src/conversion/Make/files create mode 100644 src/conversion/Make/options rename {applications/utilities/mesh => src}/conversion/polyDualMesh/polyDualMesh.C (100%) rename {applications/utilities/mesh => src}/conversion/polyDualMesh/polyDualMesh.H (100%) diff --git a/applications/utilities/mesh/conversion/polyDualMesh/Make/files b/applications/utilities/mesh/conversion/polyDualMesh/Make/files index de69b15edf..c43f79e8e1 100644 --- a/applications/utilities/mesh/conversion/polyDualMesh/Make/files +++ b/applications/utilities/mesh/conversion/polyDualMesh/Make/files @@ -1,4 +1,3 @@ -polyDualMesh.C polyDualMeshApp.C EXE = $(FOAM_APPBIN)/polyDualMesh diff --git a/applications/utilities/mesh/conversion/polyDualMesh/Make/options b/applications/utilities/mesh/conversion/polyDualMesh/Make/options index 54c035b8f5..6dc63a7a98 100644 --- a/applications/utilities/mesh/conversion/polyDualMesh/Make/options +++ b/applications/utilities/mesh/conversion/polyDualMesh/Make/options @@ -1,5 +1,6 @@ EXE_INC = \ - -I$(LIB_SRC)/meshTools/lnInclude + -I$(LIB_SRC)/meshTools/lnInclude \ + -I$(LIB_SRC)/conversion/lnInclude EXE_LIBS = \ - -lmeshTools + -lmeshTools -lconversion diff --git a/src/Allwmake b/src/Allwmake index f7b68983c6..08bb914b74 100755 --- a/src/Allwmake +++ b/src/Allwmake @@ -31,6 +31,7 @@ wmake libso randomProcesses ( cd turbulenceModels && ./Allwmake ) ( cd lagrangian && ./Allwmake ) ( cd postProcessing && ./Allwmake ) +( cd conversion && ./Allwmake ) wmake libso autoMesh wmake libso errorEstimation diff --git a/src/conversion/Allwmake b/src/conversion/Allwmake new file mode 100755 index 0000000000..72e9c2b141 --- /dev/null +++ b/src/conversion/Allwmake @@ -0,0 +1,4 @@ +#!/bin/sh +set -x + +wmake libso diff --git a/src/conversion/Make/files b/src/conversion/Make/files new file mode 100644 index 0000000000..435c341cd3 --- /dev/null +++ b/src/conversion/Make/files @@ -0,0 +1,3 @@ +polyDualMesh/polyDualMesh.C + +LIB = $(FOAM_LIBBIN)/libconversion diff --git a/src/conversion/Make/options b/src/conversion/Make/options new file mode 100644 index 0000000000..4b2f0a059f --- /dev/null +++ b/src/conversion/Make/options @@ -0,0 +1,5 @@ +EXE_INC = \ + -I$(LIB_SRC)/meshTools/lnInclude + +LIB_LIBS = \ + -lmeshTools diff --git a/applications/utilities/mesh/conversion/polyDualMesh/polyDualMesh.C b/src/conversion/polyDualMesh/polyDualMesh.C similarity index 100% rename from applications/utilities/mesh/conversion/polyDualMesh/polyDualMesh.C rename to src/conversion/polyDualMesh/polyDualMesh.C diff --git a/applications/utilities/mesh/conversion/polyDualMesh/polyDualMesh.H b/src/conversion/polyDualMesh/polyDualMesh.H similarity index 100% rename from applications/utilities/mesh/conversion/polyDualMesh/polyDualMesh.H rename to src/conversion/polyDualMesh/polyDualMesh.H From a852f6f57a2e15f676c32caba99f8e68cfd60a5c Mon Sep 17 00:00:00 2001 From: andy Date: Fri, 4 Jul 2008 12:24:36 +0100 Subject: [PATCH 23/28] changed option lazy -> ifRequired --- .../parallelProcessing/decomposePar/decomposePar.C | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/applications/utilities/parallelProcessing/decomposePar/decomposePar.C b/applications/utilities/parallelProcessing/decomposePar/decomposePar.C index 3685be43c4..02f0523f71 100644 --- a/applications/utilities/parallelProcessing/decomposePar/decomposePar.C +++ b/applications/utilities/parallelProcessing/decomposePar/decomposePar.C @@ -50,7 +50,7 @@ Usage Remove any existing @a processor subdirectories before decomposing the geometry. - @param -lazy \n + @param -ifRequired \n Only decompose the geometry if the number of domains has changed from a previous decomposition. No @a processor subdirectories will be removed unless the @a -force option is also specified. This option can be used @@ -88,7 +88,7 @@ int main(int argc, char *argv[]) argList::validOptions.insert("fields", ""); argList::validOptions.insert("filterPatches", ""); argList::validOptions.insert("force", ""); - argList::validOptions.insert("lazy", ""); + argList::validOptions.insert("ifRequired", ""); # include "setRootCase.H" @@ -97,7 +97,7 @@ int main(int argc, char *argv[]) bool decomposeFieldsOnly(args.options().found("fields")); bool filterPatches(args.options().found("filterPatches")); bool forceOverwrite(args.options().found("force")); - bool lazyDecomposition(args.options().found("lazy")); + bool ifRequiredDecomposition(args.options().found("ifRequired")); # include "createTime.H" @@ -148,7 +148,7 @@ int main(int argc, char *argv[]) { bool procDirsProblem = true; - if (lazyDecomposition && nProcs == nDomains) + if (ifRequiredDecomposition && nProcs == nDomains) { // we can reuse the decomposition decomposeFieldsOnly = true; From 8d1adca1e7f6e5ee1326bfb1ab06f56293de226e Mon Sep 17 00:00:00 2001 From: andy Date: Fri, 4 Jul 2008 13:28:55 +0100 Subject: [PATCH 24/28] bug fix - correcting my earlier error... --- .../graphics/PV3FoamReader/vtkPV3Foam/vtkPV3Foam.C | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3Foam.C b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3Foam.C index 692693d5a6..678ae8e958 100644 --- a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3Foam.C +++ b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3Foam.C @@ -84,7 +84,8 @@ void Foam::vtkPV3Foam::AddToBlock output->SetBlock(blockNo, block); block->Delete(); } - else + + if (block) { if (debug) { From 65a5335757df1f43dd73244c32e08c4073873bf4 Mon Sep 17 00:00:00 2001 From: henry Date: Fri, 4 Jul 2008 13:48:28 +0100 Subject: [PATCH 25/28] New interDyMFoam tutorial: sloshingTank3D6DoF --- tutorials/interDyMFoam/sloshingTank2D3DoF/0/U | 38 ++++ .../sloshingTank2D3DoF/0/gamma.org | 37 ++++ .../interDyMFoam/sloshingTank2D3DoF/0/pd | 37 ++++ .../interDyMFoam/sloshingTank2D3DoF/Allclean | 4 + .../interDyMFoam/sloshingTank2D3DoF/Allrun | 9 + .../sloshingTank2D3DoF/constant/RASProperties | 173 ++++++++++++++++++ .../constant/dynamicMeshDict | 60 ++++++ .../constant/environmentalProperties | 19 ++ .../constant/polyMesh/blockMeshDict | 145 +++++++++++++++ .../constant/polyMesh/blockMeshDict.m4 | 145 +++++++++++++++ .../constant/polyMesh/boundary | 40 ++++ .../constant/transportProperties | 33 ++++ .../sloshingTank2D3DoF/system/controlDict | 107 +++++++++++ .../system/decomposeParDict | 56 ++++++ .../sloshingTank2D3DoF/system/fvSchemes | 59 ++++++ .../sloshingTank2D3DoF/system/fvSolution | 123 +++++++++++++ .../sloshingTank2D3DoF/system/setFieldsDict | 35 ++++ tutorials/interDyMFoam/sloshingTank3D3DoF/0/U | 30 +++ .../sloshingTank3D3DoF/0/gamma.org | 29 +++ .../interDyMFoam/sloshingTank3D3DoF/0/pd | 29 +++ .../interDyMFoam/sloshingTank3D3DoF/Allclean | 4 + .../interDyMFoam/sloshingTank3D3DoF/Allrun | 9 + .../sloshingTank3D3DoF/constant/RASProperties | 173 ++++++++++++++++++ .../constant/dynamicMeshDict | 60 ++++++ .../constant/environmentalProperties | 19 ++ .../constant/polyMesh/blockMeshDict | 137 ++++++++++++++ .../constant/polyMesh/blockMeshDict.m4 | 137 ++++++++++++++ .../constant/polyMesh/boundary | 28 +++ .../constant/transportProperties | 33 ++++ .../sloshingTank3D3DoF/system/controlDict | 109 +++++++++++ .../system/decomposeParDict | 56 ++++++ .../sloshingTank3D3DoF/system/fvSchemes | 59 ++++++ .../sloshingTank3D3DoF/system/fvSolution | 123 +++++++++++++ .../sloshingTank3D3DoF/system/setFieldsDict | 35 ++++ tutorials/interDyMFoam/sloshingTank3D6DoF/0/U | 30 +++ .../sloshingTank3D6DoF/0/gamma.org | 29 +++ .../interDyMFoam/sloshingTank3D6DoF/0/pd | 29 +++ .../interDyMFoam/sloshingTank3D6DoF/Allclean | 4 + .../interDyMFoam/sloshingTank3D6DoF/Allrun | 9 + .../sloshingTank3D6DoF/constant/6DoF.dat | 105 +++++++++++ .../sloshingTank3D6DoF/constant/RASProperties | 173 ++++++++++++++++++ .../constant/dynamicMeshDict | 42 +++++ .../constant/environmentalProperties | 19 ++ .../constant/polyMesh/blockMeshDict | 137 ++++++++++++++ .../constant/polyMesh/blockMeshDict.m4 | 137 ++++++++++++++ .../constant/polyMesh/boundary | 28 +++ .../constant/transportProperties | 33 ++++ .../sloshingTank3D6DoF/gen6DoF/Make/files | 3 + .../sloshingTank3D6DoF/gen6DoF/Make/options | 5 + .../sloshingTank3D6DoF/gen6DoF/gen6DoF.C | 97 ++++++++++ .../sloshingTank3D6DoF/system/controlDict | 109 +++++++++++ .../system/decomposeParDict | 56 ++++++ .../sloshingTank3D6DoF/system/fvSchemes | 59 ++++++ .../sloshingTank3D6DoF/system/fvSolution | 123 +++++++++++++ .../sloshingTank3D6DoF/system/setFieldsDict | 35 ++++ 55 files changed, 3452 insertions(+) create mode 100644 tutorials/interDyMFoam/sloshingTank2D3DoF/0/U create mode 100644 tutorials/interDyMFoam/sloshingTank2D3DoF/0/gamma.org create mode 100644 tutorials/interDyMFoam/sloshingTank2D3DoF/0/pd create mode 100755 tutorials/interDyMFoam/sloshingTank2D3DoF/Allclean create mode 100755 tutorials/interDyMFoam/sloshingTank2D3DoF/Allrun create mode 100644 tutorials/interDyMFoam/sloshingTank2D3DoF/constant/RASProperties create mode 100644 tutorials/interDyMFoam/sloshingTank2D3DoF/constant/dynamicMeshDict create mode 100644 tutorials/interDyMFoam/sloshingTank2D3DoF/constant/environmentalProperties create mode 100644 tutorials/interDyMFoam/sloshingTank2D3DoF/constant/polyMesh/blockMeshDict create mode 100644 tutorials/interDyMFoam/sloshingTank2D3DoF/constant/polyMesh/blockMeshDict.m4 create mode 100644 tutorials/interDyMFoam/sloshingTank2D3DoF/constant/polyMesh/boundary create mode 100644 tutorials/interDyMFoam/sloshingTank2D3DoF/constant/transportProperties create mode 100644 tutorials/interDyMFoam/sloshingTank2D3DoF/system/controlDict create mode 100644 tutorials/interDyMFoam/sloshingTank2D3DoF/system/decomposeParDict create mode 100644 tutorials/interDyMFoam/sloshingTank2D3DoF/system/fvSchemes create mode 100644 tutorials/interDyMFoam/sloshingTank2D3DoF/system/fvSolution create mode 100644 tutorials/interDyMFoam/sloshingTank2D3DoF/system/setFieldsDict create mode 100644 tutorials/interDyMFoam/sloshingTank3D3DoF/0/U create mode 100644 tutorials/interDyMFoam/sloshingTank3D3DoF/0/gamma.org create mode 100644 tutorials/interDyMFoam/sloshingTank3D3DoF/0/pd create mode 100755 tutorials/interDyMFoam/sloshingTank3D3DoF/Allclean create mode 100755 tutorials/interDyMFoam/sloshingTank3D3DoF/Allrun create mode 100644 tutorials/interDyMFoam/sloshingTank3D3DoF/constant/RASProperties create mode 100644 tutorials/interDyMFoam/sloshingTank3D3DoF/constant/dynamicMeshDict create mode 100644 tutorials/interDyMFoam/sloshingTank3D3DoF/constant/environmentalProperties create mode 100644 tutorials/interDyMFoam/sloshingTank3D3DoF/constant/polyMesh/blockMeshDict create mode 100644 tutorials/interDyMFoam/sloshingTank3D3DoF/constant/polyMesh/blockMeshDict.m4 create mode 100644 tutorials/interDyMFoam/sloshingTank3D3DoF/constant/polyMesh/boundary create mode 100644 tutorials/interDyMFoam/sloshingTank3D3DoF/constant/transportProperties create mode 100644 tutorials/interDyMFoam/sloshingTank3D3DoF/system/controlDict create mode 100644 tutorials/interDyMFoam/sloshingTank3D3DoF/system/decomposeParDict create mode 100644 tutorials/interDyMFoam/sloshingTank3D3DoF/system/fvSchemes create mode 100644 tutorials/interDyMFoam/sloshingTank3D3DoF/system/fvSolution create mode 100644 tutorials/interDyMFoam/sloshingTank3D3DoF/system/setFieldsDict create mode 100644 tutorials/interDyMFoam/sloshingTank3D6DoF/0/U create mode 100644 tutorials/interDyMFoam/sloshingTank3D6DoF/0/gamma.org create mode 100644 tutorials/interDyMFoam/sloshingTank3D6DoF/0/pd create mode 100755 tutorials/interDyMFoam/sloshingTank3D6DoF/Allclean create mode 100755 tutorials/interDyMFoam/sloshingTank3D6DoF/Allrun create mode 100644 tutorials/interDyMFoam/sloshingTank3D6DoF/constant/6DoF.dat create mode 100644 tutorials/interDyMFoam/sloshingTank3D6DoF/constant/RASProperties create mode 100644 tutorials/interDyMFoam/sloshingTank3D6DoF/constant/dynamicMeshDict create mode 100644 tutorials/interDyMFoam/sloshingTank3D6DoF/constant/environmentalProperties create mode 100644 tutorials/interDyMFoam/sloshingTank3D6DoF/constant/polyMesh/blockMeshDict create mode 100644 tutorials/interDyMFoam/sloshingTank3D6DoF/constant/polyMesh/blockMeshDict.m4 create mode 100644 tutorials/interDyMFoam/sloshingTank3D6DoF/constant/polyMesh/boundary create mode 100644 tutorials/interDyMFoam/sloshingTank3D6DoF/constant/transportProperties create mode 100644 tutorials/interDyMFoam/sloshingTank3D6DoF/gen6DoF/Make/files create mode 100644 tutorials/interDyMFoam/sloshingTank3D6DoF/gen6DoF/Make/options create mode 100644 tutorials/interDyMFoam/sloshingTank3D6DoF/gen6DoF/gen6DoF.C create mode 100644 tutorials/interDyMFoam/sloshingTank3D6DoF/system/controlDict create mode 100644 tutorials/interDyMFoam/sloshingTank3D6DoF/system/decomposeParDict create mode 100644 tutorials/interDyMFoam/sloshingTank3D6DoF/system/fvSchemes create mode 100644 tutorials/interDyMFoam/sloshingTank3D6DoF/system/fvSolution create mode 100644 tutorials/interDyMFoam/sloshingTank3D6DoF/system/setFieldsDict diff --git a/tutorials/interDyMFoam/sloshingTank2D3DoF/0/U b/tutorials/interDyMFoam/sloshingTank2D3DoF/0/U new file mode 100644 index 0000000000..ae062bdf0d --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank2D3DoF/0/U @@ -0,0 +1,38 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volVectorField; + object U; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -1 0 0 0 0]; + +internalField uniform (0 0 0); + +boundaryField +{ + front + { + type empty; + } + back + { + type empty; + } + walls + { + type movingWallVelocity; + value uniform (0 0 0); + } +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank2D3DoF/0/gamma.org b/tutorials/interDyMFoam/sloshingTank2D3DoF/0/gamma.org new file mode 100644 index 0000000000..2711563003 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank2D3DoF/0/gamma.org @@ -0,0 +1,37 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + object gamma; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + front + { + type empty; + } + back + { + type empty; + } + walls + { + type zeroGradient; + } +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank2D3DoF/0/pd b/tutorials/interDyMFoam/sloshingTank2D3DoF/0/pd new file mode 100644 index 0000000000..cefcbb7d44 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank2D3DoF/0/pd @@ -0,0 +1,37 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + object pd; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -2 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + front + { + type empty; + } + back + { + type empty; + } + walls + { + type zeroGradient; + } +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank2D3DoF/Allclean b/tutorials/interDyMFoam/sloshingTank2D3DoF/Allclean new file mode 100755 index 0000000000..2ffbd01add --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank2D3DoF/Allclean @@ -0,0 +1,4 @@ +#!/bin/sh + +foamCleanTutorials cases +rm -rf 0/gamma.gz probes wallPressure pRefProbe diff --git a/tutorials/interDyMFoam/sloshingTank2D3DoF/Allrun b/tutorials/interDyMFoam/sloshingTank2D3DoF/Allrun new file mode 100755 index 0000000000..748dcf65ba --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank2D3DoF/Allrun @@ -0,0 +1,9 @@ +#!/bin/sh +# Source tutorial run functions +. $WM_PROJECT_DIR/bin/tools/RunFunctions + +m4 < constant/polyMesh/blockMeshDict.m4 > constant/polyMesh/blockMeshDict +runApplication blockMesh +cp 0/gamma.org 0/gamma +runApplication setFields +runApplication interDyMFoam diff --git a/tutorials/interDyMFoam/sloshingTank2D3DoF/constant/RASProperties b/tutorials/interDyMFoam/sloshingTank2D3DoF/constant/RASProperties new file mode 100644 index 0000000000..ac1efb34c5 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank2D3DoF/constant/RASProperties @@ -0,0 +1,173 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object RASProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +// RASModel kEpsilon; +RASModel laminar; + +turbulence off; + +laminarCoeffs +{ +} + +kEpsilonCoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphaEps 0.76923; +} + +RNGkEpsilonCoeffs +{ + Cmu 0.0845; + C1 1.42; + C2 1.68; + alphak 1.39; + alphaEps 1.39; + eta0 4.38; + beta 0.012; +} + +NonlinearKEShihCoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphak 1; + alphaEps 0.76932; + A1 1.25; + A2 1000; + Ctau1 -4; + Ctau2 13; + Ctau3 -2; + alphaKsi 0.9; +} + +LienCubicKECoeffs +{ + C1 1.44; + C2 1.92; + alphak 1; + alphaEps 0.76923; + A1 1.25; + A2 1000; + Ctau1 -4; + Ctau2 13; + Ctau3 -2; + alphaKsi 0.9; +} + +QZetaCoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphaZeta 0.76923; + anisotropic no; +} + +LaunderSharmaKECoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphaEps 0.76923; +} + +LamBremhorstKECoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphaEps 0.76923; +} + +LienCubicKELowReCoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphak 1; + alphaEps 0.76923; + A1 1.25; + A2 1000; + Ctau1 -4; + Ctau2 13; + Ctau3 -2; + alphaKsi 0.9; + Am 0.016; + Aepsilon 0.263; + Amu 0.00222; +} + +LienLeschzinerLowReCoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphak 1; + alphaEps 0.76923; + Am 0.016; + Aepsilon 0.263; + Amu 0.00222; +} + +LRRCoeffs +{ + Cmu 0.09; + Clrr1 1.8; + Clrr2 0.6; + C1 1.44; + C2 1.92; + Cs 0.25; + Ceps 0.15; + alphaEps 0.76923; +} + +LaunderGibsonRSTMCoeffs +{ + Cmu 0.09; + Clg1 1.8; + Clg2 0.6; + C1 1.44; + C2 1.92; + C1Ref 0.5; + C2Ref 0.3; + Cs 0.25; + Ceps 0.15; + alphaEps 0.76923; + alphaR 1.22; +} + +SpalartAllmarasCoeffs +{ + alphaNut 1.5; + Cb1 0.1355; + Cb2 0.622; + Cw2 0.3; + Cw3 2; + Cv1 7.1; + Cv2 5.0; +} + +wallFunctionCoeffs +{ + kappa 0.4187; + E 9; +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank2D3DoF/constant/dynamicMeshDict b/tutorials/interDyMFoam/sloshingTank2D3DoF/constant/dynamicMeshDict new file mode 100644 index 0000000000..e7a0ec06d6 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank2D3DoF/constant/dynamicMeshDict @@ -0,0 +1,60 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object motionProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dynamicFvMesh solidBodyMotionFvMesh; + +solidBodyMotionFvMeshCoeffs +{ + solidBodyMotionFunction SDA; + + SDACoeffs + { + // Centre of gravity + CofG (0 0 0); + + // Model scale ratio + lamda 50; + + // Max roll amplitude [rad] + rollAmax 0.22654; + + // Min roll amplitude [rad] + rollAmin 0.10472; + + // Heave amplitude [m] + heaveA 3.79; + + // Sway amplitude [m] + swayA 2.34; + + // Damping Coefficient [-] + Q 2.00; + + // Time Period for liquid [sec] + Tp 13.93; + + // Natural Period of Ship [sec] + Tpn 11.93; + + // Reference time step [sec] + dTi 0.059; + + // Incr. in Tp/unit 'dTi'[-] + dTp -0.001; + } +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank2D3DoF/constant/environmentalProperties b/tutorials/interDyMFoam/sloshingTank2D3DoF/constant/environmentalProperties new file mode 100644 index 0000000000..40232c0c40 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank2D3DoF/constant/environmentalProperties @@ -0,0 +1,19 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object environmentalProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +g g [0 1 -2 0 0 0 0] (0 0 -9.81); + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank2D3DoF/constant/polyMesh/blockMeshDict b/tutorials/interDyMFoam/sloshingTank2D3DoF/constant/polyMesh/blockMeshDict new file mode 100644 index 0000000000..3c52247aa2 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank2D3DoF/constant/polyMesh/blockMeshDict @@ -0,0 +1,145 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object blockMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// General m4 macros + + + + + + + + + + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// User-defined parameters + +convertToMeters 1; + + // Length of tank (x-direction) + // Breadth of tank (y-direction) + // Depth of tank (z-direction) + + // Depth to the top (height) of lower chamfer + // Height of upper chamfer + + // Angle of lower chamfer to the horizontal + // Angle of upper chamfer to the horizontal + + // Centre of gravity in y-direction + // Centre of gravity in z-direction + + // Number of cells in the length (1 for 2D) + // Number of cells in the breadth + // Number of cells in the height of the lower champfer + // Number of cells in the height between the chamfers + // Number of cells in the height of the upper champfer + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// Derived parameters + + // Breadth to the top (height) of lower chamfer + // Breadth of upper chamfer + + + + + + + + + + + + + + + + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// Parametric description + +vertices +( + (-0.5 -15 -10.0) // Vertex bllcb = 0 + (-0.5 -20 -5) // Vertex bllc = 1 + (-0.5 -20 10) // Vertex bluc = 2 + (-0.5 -10 20) // Vertex bluct = 3 + (-0.5 15 -10.0) // Vertex brlcb = 4 + (-0.5 20 -5) // Vertex brlc = 5 + (-0.5 20 10) // Vertex bruc = 6 + (-0.5 10 20) // Vertex bruct = 7 + + (0.5 -15 -10.0) // Vertex fllcb = 8 + (0.5 -20 -5) // Vertex fllc = 9 + (0.5 -20 10) // Vertex fluc = 10 + (0.5 -10 20) // Vertex fluct = 11 + (0.5 15 -10.0) // Vertex frlcb = 12 + (0.5 20 -5) // Vertex frlc = 13 + (0.5 20 10) // Vertex fruc = 14 + (0.5 10 20) // Vertex fruct = 15 +); + +blocks +( + // block0 + hex (0 4 5 1 8 12 13 9) + (40 6 1) + simpleGrading (1 1 1) + + // block1 + hex (1 5 6 2 9 13 14 10) + (40 16 1) + simpleGrading (1 1 1) + + // block2 + hex (2 6 7 3 10 14 15 11) + (40 12 1) + simpleGrading (1 1 1) +); + +patches +( + patch walls + ( + (0 4 12 8) + (4 5 13 12) + (5 6 14 13) + (6 7 15 14) + (7 3 11 15) + (3 2 10 11) + (2 1 9 10) + (1 0 8 9) + ) + + empty front + ( + (8 12 13 9) + (9 13 14 10) + (10 14 15 11) + ) + + empty back + ( + (0 1 5 4) + (1 2 6 5) + (2 3 7 6) + ) +); + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank2D3DoF/constant/polyMesh/blockMeshDict.m4 b/tutorials/interDyMFoam/sloshingTank2D3DoF/constant/polyMesh/blockMeshDict.m4 new file mode 100644 index 0000000000..ced5dc533e --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank2D3DoF/constant/polyMesh/blockMeshDict.m4 @@ -0,0 +1,145 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object blockMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// General m4 macros + +changecom(//)changequote([,]) +define(calc, [esyscmd(perl -e 'use Math::Trig; use POSIX; printf ($1)')]) +define(VCOUNT, 0) +define(vlabel, [[// ]Vertex $1 = VCOUNT define($1, VCOUNT)define([VCOUNT], incr(VCOUNT))]) + +define(hex2D, hex (b$1 b$2 b$3 b$4 f$1 f$2 f$3 f$4)) +define(quad2D, (b$1 b$2 f$2 f$1)) +define(frontQuad, (f$1 f$2 f$3 f$4)) +define(backQuad, (b$1 b$4 b$3 b$2)) + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// User-defined parameters + +convertToMeters 1; + +define(l, 1.0) // Length of tank (x-direction) +define(b, 40) // Breadth of tank (y-direction) +define(h, 30) // Depth of tank (z-direction) + +define(hlc, 5) // Depth to the top (height) of lower chamfer +define(huc, 10) // Height of upper chamfer + +define(thetalc, 45) // Angle of lower chamfer to the horizontal +define(thetauc, 45) // Angle of upper chamfer to the horizontal + +define(CofGy, calc(b/2.0)) // Centre of gravity in y-direction +define(CofGz, 10.0) // Centre of gravity in z-direction + +define(Nl, 1) // Number of cells in the length (1 for 2D) +define(Nb, 40) // Number of cells in the breadth +define(Nhlc, 6) // Number of cells in the height of the lower champfer +define(Nh, 16) // Number of cells in the height between the chamfers +define(Nhuc, 12) // Number of cells in the height of the upper champfer + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// Derived parameters + +define(blc, calc(hlc/tan(deg2rad(thetalc)))) // Breadth to the top (height) of lower chamfer +define(buc, calc(huc/tan(deg2rad(thetauc)))) // Breadth of upper chamfer + +define(Yl, -CofGy) +define(Yllc, calc(Yl + blc)) +define(Yluc, calc(Yl + buc)) + +define(Yr, calc(Yl + b)) +define(Yrlc, calc(Yr - blc)) +define(Yruc, calc(Yr - buc)) + +define(Zb, -CofGz) +define(Zlc, calc(Zb + hlc)) +define(Zt, calc(Zb + h)) +define(Zuc, calc(Zt - huc)) + +define(Xf, calc(l/2.0)) +define(Xb, calc(Xf - l)) + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// Parametric description + +vertices +( + (Xb Yllc Zb) vlabel(bllcb) + (Xb Yl Zlc) vlabel(bllc) + (Xb Yl Zuc) vlabel(bluc) + (Xb Yluc Zt) vlabel(bluct) + (Xb Yrlc Zb) vlabel(brlcb) + (Xb Yr Zlc) vlabel(brlc) + (Xb Yr Zuc) vlabel(bruc) + (Xb Yruc Zt) vlabel(bruct) + + (Xf Yllc Zb) vlabel(fllcb) + (Xf Yl Zlc) vlabel(fllc) + (Xf Yl Zuc) vlabel(fluc) + (Xf Yluc Zt) vlabel(fluct) + (Xf Yrlc Zb) vlabel(frlcb) + (Xf Yr Zlc) vlabel(frlc) + (Xf Yr Zuc) vlabel(fruc) + (Xf Yruc Zt) vlabel(fruct) +); + +blocks +( + // block0 + hex2D(llcb, rlcb, rlc, llc) + (Nb Nhlc Nl) + simpleGrading (1 1 1) + + // block1 + hex2D(llc, rlc, ruc, luc) + (Nb Nh Nl) + simpleGrading (1 1 1) + + // block2 + hex2D(luc, ruc, ruct, luct) + (Nb Nhuc Nl) + simpleGrading (1 1 1) +); + +patches +( + patch walls + ( + quad2D(llcb, rlcb) + quad2D(rlcb, rlc) + quad2D(rlc, ruc) + quad2D(ruc, ruct) + quad2D(ruct, luct) + quad2D(luct, luc) + quad2D(luc, llc) + quad2D(llc, llcb) + ) + + empty front + ( + frontQuad(llcb, rlcb, rlc, llc) + frontQuad(llc, rlc, ruc, luc) + frontQuad(luc, ruc, ruct, luct) + ) + + empty back + ( + backQuad(llcb, rlcb, rlc, llc) + backQuad(llc, rlc, ruc, luc) + backQuad(luc, ruc, ruct, luct) + ) +); + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank2D3DoF/constant/polyMesh/boundary b/tutorials/interDyMFoam/sloshingTank2D3DoF/constant/polyMesh/boundary new file mode 100644 index 0000000000..57267e87f7 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank2D3DoF/constant/polyMesh/boundary @@ -0,0 +1,40 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class polyBoundaryMesh; + location "constant/polyMesh"; + object boundary; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +3 +( + walls + { + type patch; + nFaces 148; + startFace 2646; + } + front + { + type empty; + nFaces 1360; + startFace 2794; + } + back + { + type empty; + nFaces 1360; + startFace 4154; + } +) + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank2D3DoF/constant/transportProperties b/tutorials/interDyMFoam/sloshingTank2D3DoF/constant/transportProperties new file mode 100644 index 0000000000..c20854a903 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank2D3DoF/constant/transportProperties @@ -0,0 +1,33 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object transportProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +phase1 +{ + transportModel Newtonian; + nu nu [0 2 -1 0 0 0 0] 1e-6; + rho rho [1 -3 0 0 0 0 0] 998.2; +} + +phase2 +{ + transportModel Newtonian; + nu nu [0 2 -1 0 0 0 0] 1.48e-05; + rho rho [1 -3 0 0 0 0 0] 1; +} + +sigma sigma [1 0 -2 0 0 0 0] 0.0; + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank2D3DoF/system/controlDict b/tutorials/interDyMFoam/sloshingTank2D3DoF/system/controlDict new file mode 100644 index 0000000000..8d7fb44aa4 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank2D3DoF/system/controlDict @@ -0,0 +1,107 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +application sloshingFoam; + +startFrom startTime; + +startTime 0; + +stopAt endTime; + +endTime 40; + +deltaT 0.01; + +writeControl adjustableRunTime; + +writeInterval 0.05; + +purgeWrite 0; + +writeFormat ascii; + +writePrecision 6; + +writeCompression compressed; + +timeFormat general; + +timePrecision 6; + +runTimeModifiable yes; + +adjustTimeStep yes; + +maxCo 0.5; + +maxDeltaT 1; + +functions +( + probes + { + // Type of functionObject + type probes; + + // Name of the directory for the probe data + name probes; + + // Locations to be probed. runTime modifiable! + probeLocations + ( + (0 9.95 19.77) + (0 -9.95 19.77) + ); + + // Fields to be probed. runTime modifiable! + fields + ( + p + ); + } + + wallPressure + { + // Type of functionObject + type surfaces; + + // Where to load it from (if not already in solver) + functionObjectLibs ("libsampling.so"); + + // Output every 10th time step + interval 10; + + surfaceFormat raw; + + fields + ( + p + ); + + surfaces + ( + walls + { + type patch; + patchName walls; + triangulate false; + } + ); + } +); + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank2D3DoF/system/decomposeParDict b/tutorials/interDyMFoam/sloshingTank2D3DoF/system/decomposeParDict new file mode 100644 index 0000000000..d4594e0947 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank2D3DoF/system/decomposeParDict @@ -0,0 +1,56 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object decomposeParDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +numberOfSubdomains 16; + +method hierarchical; + +simpleCoeffs +{ + n (2 2 1); + delta 0.001; +} + +hierarchicalCoeffs +{ + n (4 2 2); + delta 0.001; + order xyz; +} + +metisCoeffs +{ + processorWeights + ( + 1 + 1 + 1 + 1 + ); +} + +manualCoeffs +{ + dataFile ""; +} + +distributed no; + +roots +( +); + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank2D3DoF/system/fvSchemes b/tutorials/interDyMFoam/sloshingTank2D3DoF/system/fvSchemes new file mode 100644 index 0000000000..f089e4e5e6 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank2D3DoF/system/fvSchemes @@ -0,0 +1,59 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{ + default Euler; +} + +gradSchemes +{ + default Gauss linear; + grad(U) Gauss linear; + grad(gamma) Gauss linear; +} + +divSchemes +{ + div(rho*phi,U) Gauss vanLeerV; + div(phi,gamma) Gauss vanLeer; + div(phirb,gamma) Gauss vanLeer; +} + +laplacianSchemes +{ + default Gauss linear corrected; +} + +interpolationSchemes +{ + default linear; +} + +snGradSchemes +{ + default corrected; +} + +fluxRequired +{ + default no; + pd; + pcorr; + gamma; +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank2D3DoF/system/fvSolution b/tutorials/interDyMFoam/sloshingTank2D3DoF/system/fvSolution new file mode 100644 index 0000000000..3aaca52375 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank2D3DoF/system/fvSolution @@ -0,0 +1,123 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +solvers +{ + pcorr PCG + { + preconditioner GAMG + { + tolerance 1e-5; + relTol 0; + + smoother DICGaussSeidel; + nPreSweeps 0; + nPostSweeps 2; + nBottomSweeps 2; + + cacheAgglomeration false; + nCellsInCoarsestLevel 10; + agglomerator faceAreaPair; + mergeLevels 1; + }; + + tolerance 1e-5; + relTol 0; + maxIter 100; + }; + + pd GAMG + { + tolerance 1e-8; + relTol 0.01; + + smoother DIC; + nPreSweeps 0; + nPostSweeps 2; + nFinestSweeps 2; + + cacheAgglomeration true; + nCellsInCoarsestLevel 10; + agglomerator faceAreaPair; + mergeLevels 1; + }; + + pdFinal PCG + { + preconditioner GAMG + { + tolerance 2e-9; + relTol 0; + + nVcycles 2; + + smoother DICGaussSeidel; + nPreSweeps 2; + nPostSweeps 2; + nFinestSweeps 2; + + cacheAgglomeration true; + nCellsInCoarsestLevel 10; + agglomerator faceAreaPair; + mergeLevels 1; + }; + + tolerance 2e-9; + relTol 0; + maxIter 20; + }; + + U smoothSolver + { + smoother GaussSeidel; + tolerance 1e-6; + relTol 0; + nSweeps 1; + }; +} + +PISO +{ + momentumPredictor no; + nCorrectors 2; + nNonOrthogonalCorrectors 0; + nGammaCorr 1; + nGammaSubCycles 3; + cGamma 1.5; + correctPhi no; + + pRefProbe + { + fields + ( + p + ); + + probeLocations + ( + (0 0 0.15) + ); + } + + pRefValue 1e5; +} + +relaxationFactors +{ + U 1.0; +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank2D3DoF/system/setFieldsDict b/tutorials/interDyMFoam/sloshingTank2D3DoF/system/setFieldsDict new file mode 100644 index 0000000000..2c881a7ba4 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank2D3DoF/system/setFieldsDict @@ -0,0 +1,35 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object setFieldsDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +defaultFieldValues +( + volScalarFieldValue gamma 0 +); + +regions +( + boxToCell + { + box (-100 -100 -100) (100 100 0); + + fieldValues + ( + volScalarFieldValue gamma 1 + ); + } +); + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D3DoF/0/U b/tutorials/interDyMFoam/sloshingTank3D3DoF/0/U new file mode 100644 index 0000000000..df1f4c5a6c --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D3DoF/0/U @@ -0,0 +1,30 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volVectorField; + object U; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -1 0 0 0 0]; + +internalField uniform (0 0 0); + +boundaryField +{ + walls + { + type movingWallVelocity; + value uniform (0 0 0); + } +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D3DoF/0/gamma.org b/tutorials/interDyMFoam/sloshingTank3D3DoF/0/gamma.org new file mode 100644 index 0000000000..85902dcba5 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D3DoF/0/gamma.org @@ -0,0 +1,29 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + object gamma; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + walls + { + type zeroGradient; + } +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D3DoF/0/pd b/tutorials/interDyMFoam/sloshingTank3D3DoF/0/pd new file mode 100644 index 0000000000..25379b239c --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D3DoF/0/pd @@ -0,0 +1,29 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + object pd; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -2 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + walls + { + type zeroGradient; + } +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D3DoF/Allclean b/tutorials/interDyMFoam/sloshingTank3D3DoF/Allclean new file mode 100755 index 0000000000..2ffbd01add --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D3DoF/Allclean @@ -0,0 +1,4 @@ +#!/bin/sh + +foamCleanTutorials cases +rm -rf 0/gamma.gz probes wallPressure pRefProbe diff --git a/tutorials/interDyMFoam/sloshingTank3D3DoF/Allrun b/tutorials/interDyMFoam/sloshingTank3D3DoF/Allrun new file mode 100755 index 0000000000..748dcf65ba --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D3DoF/Allrun @@ -0,0 +1,9 @@ +#!/bin/sh +# Source tutorial run functions +. $WM_PROJECT_DIR/bin/tools/RunFunctions + +m4 < constant/polyMesh/blockMeshDict.m4 > constant/polyMesh/blockMeshDict +runApplication blockMesh +cp 0/gamma.org 0/gamma +runApplication setFields +runApplication interDyMFoam diff --git a/tutorials/interDyMFoam/sloshingTank3D3DoF/constant/RASProperties b/tutorials/interDyMFoam/sloshingTank3D3DoF/constant/RASProperties new file mode 100644 index 0000000000..ac1efb34c5 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D3DoF/constant/RASProperties @@ -0,0 +1,173 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object RASProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +// RASModel kEpsilon; +RASModel laminar; + +turbulence off; + +laminarCoeffs +{ +} + +kEpsilonCoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphaEps 0.76923; +} + +RNGkEpsilonCoeffs +{ + Cmu 0.0845; + C1 1.42; + C2 1.68; + alphak 1.39; + alphaEps 1.39; + eta0 4.38; + beta 0.012; +} + +NonlinearKEShihCoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphak 1; + alphaEps 0.76932; + A1 1.25; + A2 1000; + Ctau1 -4; + Ctau2 13; + Ctau3 -2; + alphaKsi 0.9; +} + +LienCubicKECoeffs +{ + C1 1.44; + C2 1.92; + alphak 1; + alphaEps 0.76923; + A1 1.25; + A2 1000; + Ctau1 -4; + Ctau2 13; + Ctau3 -2; + alphaKsi 0.9; +} + +QZetaCoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphaZeta 0.76923; + anisotropic no; +} + +LaunderSharmaKECoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphaEps 0.76923; +} + +LamBremhorstKECoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphaEps 0.76923; +} + +LienCubicKELowReCoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphak 1; + alphaEps 0.76923; + A1 1.25; + A2 1000; + Ctau1 -4; + Ctau2 13; + Ctau3 -2; + alphaKsi 0.9; + Am 0.016; + Aepsilon 0.263; + Amu 0.00222; +} + +LienLeschzinerLowReCoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphak 1; + alphaEps 0.76923; + Am 0.016; + Aepsilon 0.263; + Amu 0.00222; +} + +LRRCoeffs +{ + Cmu 0.09; + Clrr1 1.8; + Clrr2 0.6; + C1 1.44; + C2 1.92; + Cs 0.25; + Ceps 0.15; + alphaEps 0.76923; +} + +LaunderGibsonRSTMCoeffs +{ + Cmu 0.09; + Clg1 1.8; + Clg2 0.6; + C1 1.44; + C2 1.92; + C1Ref 0.5; + C2Ref 0.3; + Cs 0.25; + Ceps 0.15; + alphaEps 0.76923; + alphaR 1.22; +} + +SpalartAllmarasCoeffs +{ + alphaNut 1.5; + Cb1 0.1355; + Cb2 0.622; + Cw2 0.3; + Cw3 2; + Cv1 7.1; + Cv2 5.0; +} + +wallFunctionCoeffs +{ + kappa 0.4187; + E 9; +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D3DoF/constant/dynamicMeshDict b/tutorials/interDyMFoam/sloshingTank3D3DoF/constant/dynamicMeshDict new file mode 100644 index 0000000000..e7a0ec06d6 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D3DoF/constant/dynamicMeshDict @@ -0,0 +1,60 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object motionProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dynamicFvMesh solidBodyMotionFvMesh; + +solidBodyMotionFvMeshCoeffs +{ + solidBodyMotionFunction SDA; + + SDACoeffs + { + // Centre of gravity + CofG (0 0 0); + + // Model scale ratio + lamda 50; + + // Max roll amplitude [rad] + rollAmax 0.22654; + + // Min roll amplitude [rad] + rollAmin 0.10472; + + // Heave amplitude [m] + heaveA 3.79; + + // Sway amplitude [m] + swayA 2.34; + + // Damping Coefficient [-] + Q 2.00; + + // Time Period for liquid [sec] + Tp 13.93; + + // Natural Period of Ship [sec] + Tpn 11.93; + + // Reference time step [sec] + dTi 0.059; + + // Incr. in Tp/unit 'dTi'[-] + dTp -0.001; + } +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D3DoF/constant/environmentalProperties b/tutorials/interDyMFoam/sloshingTank3D3DoF/constant/environmentalProperties new file mode 100644 index 0000000000..40232c0c40 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D3DoF/constant/environmentalProperties @@ -0,0 +1,19 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object environmentalProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +g g [0 1 -2 0 0 0 0] (0 0 -9.81); + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D3DoF/constant/polyMesh/blockMeshDict b/tutorials/interDyMFoam/sloshingTank3D3DoF/constant/polyMesh/blockMeshDict new file mode 100644 index 0000000000..0d21d11148 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D3DoF/constant/polyMesh/blockMeshDict @@ -0,0 +1,137 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object blockMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// General m4 macros + + + + + + + + + + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// User-defined parameters + +convertToMeters 1; + + // Length of tank (x-direction) + // Breadth of tank (y-direction) + // Depth of tank (z-direction) + + // Depth to the top (height) of lower chamfer + // Height of upper chamfer + + // Angle of lower chamfer to the horizontal + // Angle of upper chamfer to the horizontal + + // Centre of gravity in y-direction + // Centre of gravity in z-direction + + // Number of cells in the length (1 for 2D) + // Number of cells in the breadth + // Number of cells in the height of the lower champfer + // Number of cells in the height between the chamfers + // Number of cells in the height of the upper champfer + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// Derived parameters + + // Breadth to the top (height) of lower chamfer + // Breadth of upper chamfer + + + + + + + + + + + + + + + + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// Parametric description + +vertices +( + (-10 -15 -10.0) // Vertex bllcb = 0 + (-10 -20 -5) // Vertex bllc = 1 + (-10 -20 10) // Vertex bluc = 2 + (-10 -10 20) // Vertex bluct = 3 + (-10 15 -10.0) // Vertex brlcb = 4 + (-10 20 -5) // Vertex brlc = 5 + (-10 20 10) // Vertex bruc = 6 + (-10 10 20) // Vertex bruct = 7 + + (10 -15 -10.0) // Vertex fllcb = 8 + (10 -20 -5) // Vertex fllc = 9 + (10 -20 10) // Vertex fluc = 10 + (10 -10 20) // Vertex fluct = 11 + (10 15 -10.0) // Vertex frlcb = 12 + (10 20 -5) // Vertex frlc = 13 + (10 20 10) // Vertex fruc = 14 + (10 10 20) // Vertex fruct = 15 +); + +blocks +( + // block0 + hex (0 4 5 1 8 12 13 9) + (40 6 19) + simpleGrading (1 1 1) + + // block1 + hex (1 5 6 2 9 13 14 10) + (40 16 19) + simpleGrading (1 1 1) + + // block2 + hex (2 6 7 3 10 14 15 11) + (40 12 19) + simpleGrading (1 1 1) +); + +patches +( + patch walls + ( + (0 4 12 8) + (4 5 13 12) + (5 6 14 13) + (6 7 15 14) + (7 3 11 15) + (3 2 10 11) + (2 1 9 10) + (1 0 8 9) + (8 12 13 9) + (9 13 14 10) + (10 14 15 11) + (0 1 5 4) + (1 2 6 5) + (2 3 7 6) + ) +); + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D3DoF/constant/polyMesh/blockMeshDict.m4 b/tutorials/interDyMFoam/sloshingTank3D3DoF/constant/polyMesh/blockMeshDict.m4 new file mode 100644 index 0000000000..5e355fd702 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D3DoF/constant/polyMesh/blockMeshDict.m4 @@ -0,0 +1,137 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object blockMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// General m4 macros + +changecom(//)changequote([,]) +define(calc, [esyscmd(perl -e 'use Math::Trig; use POSIX; printf ($1)')]) +define(VCOUNT, 0) +define(vlabel, [[// ]Vertex $1 = VCOUNT define($1, VCOUNT)define([VCOUNT], incr(VCOUNT))]) + +define(hex2D, hex (b$1 b$2 b$3 b$4 f$1 f$2 f$3 f$4)) +define(quad2D, (b$1 b$2 f$2 f$1)) +define(frontQuad, (f$1 f$2 f$3 f$4)) +define(backQuad, (b$1 b$4 b$3 b$2)) + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// User-defined parameters + +convertToMeters 1; + +define(l, 20) // Length of tank (x-direction) +define(b, 40) // Breadth of tank (y-direction) +define(h, 30) // Depth of tank (z-direction) + +define(hlc, 5) // Depth to the top (height) of lower chamfer +define(huc, 10) // Height of upper chamfer + +define(thetalc, 45) // Angle of lower chamfer to the horizontal +define(thetauc, 45) // Angle of upper chamfer to the horizontal + +define(CofGy, calc(b/2.0)) // Centre of gravity in y-direction +define(CofGz, 10.0) // Centre of gravity in z-direction + +define(Nl, 19) // Number of cells in the length (1 for 2D) +define(Nb, 40) // Number of cells in the breadth +define(Nhlc, 6) // Number of cells in the height of the lower champfer +define(Nh, 16) // Number of cells in the height between the chamfers +define(Nhuc, 12) // Number of cells in the height of the upper champfer + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// Derived parameters + +define(blc, calc(hlc/tan(deg2rad(thetalc)))) // Breadth to the top (height) of lower chamfer +define(buc, calc(huc/tan(deg2rad(thetauc)))) // Breadth of upper chamfer + +define(Yl, -CofGy) +define(Yllc, calc(Yl + blc)) +define(Yluc, calc(Yl + buc)) + +define(Yr, calc(Yl + b)) +define(Yrlc, calc(Yr - blc)) +define(Yruc, calc(Yr - buc)) + +define(Zb, -CofGz) +define(Zlc, calc(Zb + hlc)) +define(Zt, calc(Zb + h)) +define(Zuc, calc(Zt - huc)) + +define(Xf, calc(l/2.0)) +define(Xb, calc(Xf - l)) + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// Parametric description + +vertices +( + (Xb Yllc Zb) vlabel(bllcb) + (Xb Yl Zlc) vlabel(bllc) + (Xb Yl Zuc) vlabel(bluc) + (Xb Yluc Zt) vlabel(bluct) + (Xb Yrlc Zb) vlabel(brlcb) + (Xb Yr Zlc) vlabel(brlc) + (Xb Yr Zuc) vlabel(bruc) + (Xb Yruc Zt) vlabel(bruct) + + (Xf Yllc Zb) vlabel(fllcb) + (Xf Yl Zlc) vlabel(fllc) + (Xf Yl Zuc) vlabel(fluc) + (Xf Yluc Zt) vlabel(fluct) + (Xf Yrlc Zb) vlabel(frlcb) + (Xf Yr Zlc) vlabel(frlc) + (Xf Yr Zuc) vlabel(fruc) + (Xf Yruc Zt) vlabel(fruct) +); + +blocks +( + // block0 + hex2D(llcb, rlcb, rlc, llc) + (Nb Nhlc Nl) + simpleGrading (1 1 1) + + // block1 + hex2D(llc, rlc, ruc, luc) + (Nb Nh Nl) + simpleGrading (1 1 1) + + // block2 + hex2D(luc, ruc, ruct, luct) + (Nb Nhuc Nl) + simpleGrading (1 1 1) +); + +patches +( + patch walls + ( + quad2D(llcb, rlcb) + quad2D(rlcb, rlc) + quad2D(rlc, ruc) + quad2D(ruc, ruct) + quad2D(ruct, luct) + quad2D(luct, luc) + quad2D(luc, llc) + quad2D(llc, llcb) + frontQuad(llcb, rlcb, rlc, llc) + frontQuad(llc, rlc, ruc, luc) + frontQuad(luc, ruc, ruct, luct) + backQuad(llcb, rlcb, rlc, llc) + backQuad(llc, rlc, ruc, luc) + backQuad(luc, ruc, ruct, luct) + ) +); + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D3DoF/constant/polyMesh/boundary b/tutorials/interDyMFoam/sloshingTank3D3DoF/constant/polyMesh/boundary new file mode 100644 index 0000000000..28068f37d4 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D3DoF/constant/polyMesh/boundary @@ -0,0 +1,28 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class polyBoundaryMesh; + location "constant/polyMesh"; + object boundary; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +1 +( + walls + { + type patch; + nFaces 5532; + startFace 74754; + } +) + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D3DoF/constant/transportProperties b/tutorials/interDyMFoam/sloshingTank3D3DoF/constant/transportProperties new file mode 100644 index 0000000000..c20854a903 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D3DoF/constant/transportProperties @@ -0,0 +1,33 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object transportProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +phase1 +{ + transportModel Newtonian; + nu nu [0 2 -1 0 0 0 0] 1e-6; + rho rho [1 -3 0 0 0 0 0] 998.2; +} + +phase2 +{ + transportModel Newtonian; + nu nu [0 2 -1 0 0 0 0] 1.48e-05; + rho rho [1 -3 0 0 0 0 0] 1; +} + +sigma sigma [1 0 -2 0 0 0 0] 0.0; + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D3DoF/system/controlDict b/tutorials/interDyMFoam/sloshingTank3D3DoF/system/controlDict new file mode 100644 index 0000000000..b721c9c058 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D3DoF/system/controlDict @@ -0,0 +1,109 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +application sloshingFoam; + +startFrom startTime; + +startTime 0; + +stopAt endTime; + +endTime 40; + +deltaT 0.01; + +writeControl adjustableRunTime; + +writeInterval 0.05; + +purgeWrite 0; + +writeFormat ascii; + +writePrecision 6; + +writeCompression compressed; + +timeFormat general; + +timePrecision 6; + +runTimeModifiable yes; + +adjustTimeStep yes; + +maxCo 0.5; + +maxDeltaT 1; + +functions +( + probes + { + // Type of functionObject + type probes; + + // Name of the directory for the probe data + name probes; + + // Locations to be probed. runTime modifiable! + probeLocations + ( + (0 9.95 19.77) + (0 -9.95 19.77) + ); + + // Fields to be probed. runTime modifiable! + fields + ( + p + ); + } + + /* + wallPressure + { + // Type of functionObject + type surfaces; + + // Where to load it from (if not already in solver) + functionObjectLibs ("libsampling.so"); + + // Output every 10th time step + interval 10; + + surfaceFormat raw; + + fields + ( + p + ); + + surfaces + ( + walls + { + type patch; + patchName walls; + triangulate false; + } + ); + } + */ +); + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D3DoF/system/decomposeParDict b/tutorials/interDyMFoam/sloshingTank3D3DoF/system/decomposeParDict new file mode 100644 index 0000000000..d4594e0947 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D3DoF/system/decomposeParDict @@ -0,0 +1,56 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object decomposeParDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +numberOfSubdomains 16; + +method hierarchical; + +simpleCoeffs +{ + n (2 2 1); + delta 0.001; +} + +hierarchicalCoeffs +{ + n (4 2 2); + delta 0.001; + order xyz; +} + +metisCoeffs +{ + processorWeights + ( + 1 + 1 + 1 + 1 + ); +} + +manualCoeffs +{ + dataFile ""; +} + +distributed no; + +roots +( +); + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D3DoF/system/fvSchemes b/tutorials/interDyMFoam/sloshingTank3D3DoF/system/fvSchemes new file mode 100644 index 0000000000..f089e4e5e6 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D3DoF/system/fvSchemes @@ -0,0 +1,59 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{ + default Euler; +} + +gradSchemes +{ + default Gauss linear; + grad(U) Gauss linear; + grad(gamma) Gauss linear; +} + +divSchemes +{ + div(rho*phi,U) Gauss vanLeerV; + div(phi,gamma) Gauss vanLeer; + div(phirb,gamma) Gauss vanLeer; +} + +laplacianSchemes +{ + default Gauss linear corrected; +} + +interpolationSchemes +{ + default linear; +} + +snGradSchemes +{ + default corrected; +} + +fluxRequired +{ + default no; + pd; + pcorr; + gamma; +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D3DoF/system/fvSolution b/tutorials/interDyMFoam/sloshingTank3D3DoF/system/fvSolution new file mode 100644 index 0000000000..3aaca52375 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D3DoF/system/fvSolution @@ -0,0 +1,123 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +solvers +{ + pcorr PCG + { + preconditioner GAMG + { + tolerance 1e-5; + relTol 0; + + smoother DICGaussSeidel; + nPreSweeps 0; + nPostSweeps 2; + nBottomSweeps 2; + + cacheAgglomeration false; + nCellsInCoarsestLevel 10; + agglomerator faceAreaPair; + mergeLevels 1; + }; + + tolerance 1e-5; + relTol 0; + maxIter 100; + }; + + pd GAMG + { + tolerance 1e-8; + relTol 0.01; + + smoother DIC; + nPreSweeps 0; + nPostSweeps 2; + nFinestSweeps 2; + + cacheAgglomeration true; + nCellsInCoarsestLevel 10; + agglomerator faceAreaPair; + mergeLevels 1; + }; + + pdFinal PCG + { + preconditioner GAMG + { + tolerance 2e-9; + relTol 0; + + nVcycles 2; + + smoother DICGaussSeidel; + nPreSweeps 2; + nPostSweeps 2; + nFinestSweeps 2; + + cacheAgglomeration true; + nCellsInCoarsestLevel 10; + agglomerator faceAreaPair; + mergeLevels 1; + }; + + tolerance 2e-9; + relTol 0; + maxIter 20; + }; + + U smoothSolver + { + smoother GaussSeidel; + tolerance 1e-6; + relTol 0; + nSweeps 1; + }; +} + +PISO +{ + momentumPredictor no; + nCorrectors 2; + nNonOrthogonalCorrectors 0; + nGammaCorr 1; + nGammaSubCycles 3; + cGamma 1.5; + correctPhi no; + + pRefProbe + { + fields + ( + p + ); + + probeLocations + ( + (0 0 0.15) + ); + } + + pRefValue 1e5; +} + +relaxationFactors +{ + U 1.0; +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D3DoF/system/setFieldsDict b/tutorials/interDyMFoam/sloshingTank3D3DoF/system/setFieldsDict new file mode 100644 index 0000000000..2c881a7ba4 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D3DoF/system/setFieldsDict @@ -0,0 +1,35 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object setFieldsDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +defaultFieldValues +( + volScalarFieldValue gamma 0 +); + +regions +( + boxToCell + { + box (-100 -100 -100) (100 100 0); + + fieldValues + ( + volScalarFieldValue gamma 1 + ); + } +); + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D6DoF/0/U b/tutorials/interDyMFoam/sloshingTank3D6DoF/0/U new file mode 100644 index 0000000000..df1f4c5a6c --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D6DoF/0/U @@ -0,0 +1,30 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volVectorField; + object U; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -1 0 0 0 0]; + +internalField uniform (0 0 0); + +boundaryField +{ + walls + { + type movingWallVelocity; + value uniform (0 0 0); + } +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D6DoF/0/gamma.org b/tutorials/interDyMFoam/sloshingTank3D6DoF/0/gamma.org new file mode 100644 index 0000000000..85902dcba5 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D6DoF/0/gamma.org @@ -0,0 +1,29 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + object gamma; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + walls + { + type zeroGradient; + } +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D6DoF/0/pd b/tutorials/interDyMFoam/sloshingTank3D6DoF/0/pd new file mode 100644 index 0000000000..25379b239c --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D6DoF/0/pd @@ -0,0 +1,29 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + object pd; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -2 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + walls + { + type zeroGradient; + } +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D6DoF/Allclean b/tutorials/interDyMFoam/sloshingTank3D6DoF/Allclean new file mode 100755 index 0000000000..2ffbd01add --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D6DoF/Allclean @@ -0,0 +1,4 @@ +#!/bin/sh + +foamCleanTutorials cases +rm -rf 0/gamma.gz probes wallPressure pRefProbe diff --git a/tutorials/interDyMFoam/sloshingTank3D6DoF/Allrun b/tutorials/interDyMFoam/sloshingTank3D6DoF/Allrun new file mode 100755 index 0000000000..748dcf65ba --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D6DoF/Allrun @@ -0,0 +1,9 @@ +#!/bin/sh +# Source tutorial run functions +. $WM_PROJECT_DIR/bin/tools/RunFunctions + +m4 < constant/polyMesh/blockMeshDict.m4 > constant/polyMesh/blockMeshDict +runApplication blockMesh +cp 0/gamma.org 0/gamma +runApplication setFields +runApplication interDyMFoam diff --git a/tutorials/interDyMFoam/sloshingTank3D6DoF/constant/6DoF.dat b/tutorials/interDyMFoam/sloshingTank3D6DoF/constant/6DoF.dat new file mode 100644 index 0000000000..0cf1f34768 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D6DoF/constant/6DoF.dat @@ -0,0 +1,105 @@ + +100 +( +(0 ((0 0 0) (0 0 0))) +(0.40404 ((0.401298 0.952899 0.321827) (4.82741 2.79073 2.00649))) +(0.808081 ((0.786273 1.8071 0.635266) (9.52899 5.3597 3.93137))) +(1.21212 ((1.13927 2.47414 0.932149) (13.9822 7.5028 5.69634))) +(1.61616 ((1.44593 2.88493 1.20474) (18.071 9.04972 7.22963))) +(2.0202 ((1.69377 2.99691 1.44593) (21.6889 9.87755 8.46886))) +(2.42424 ((1.87273 2.7985 1.64943) (24.7414 9.92051 9.36363))) +(2.82828 ((1.97551 2.31024 1.80994) (27.1492 9.17518 9.87755))) +(3.23232 ((1.99794 1.5827 1.92329) (28.8493 7.7008 9.98971))) +(3.63636 ((1.93911 0.691238 1.9865) (29.7975 5.61451 9.69556))) +(4.0404 ((1.80141 -0.271818 1.99794) (29.9691 3.08209 9.00705))) +(4.44444 ((1.59044 -1.20672 1.95731) (29.3597 0.304768 7.9522))) +(4.84848 ((1.31478 -2.01664 1.86567) (27.985 -2.49677 6.5739))) +(5.25253 ((0.985644 -2.61769 1.7254) (25.881 -5.09992 4.92822))) +(5.65657 ((0.616418 -2.94762 1.54016) (23.1024 -7.29782 3.08209))) +(6.06061 ((0.22212 -2.97226 1.31478) (19.7217 -8.91584 1.1106))) +(6.46465 ((-0.181212 -2.68905 1.05513) (15.827 -9.82541 -0.906061))) +(6.86869 ((-0.577174 -2.12733 0.767988) (11.5198 -9.95425 -2.88587))) +(7.27273 ((-0.94966 -1.34528 0.460825) (6.91238 -9.29213 -4.7483))) +(7.67677 ((-1.28352 -0.42389 0.141652) (2.12479 -7.89165 -6.4176))) +(8.08081 ((-1.56518 0.541401 -0.181212) (-2.71818 -5.8641 -7.82588))) +(8.48485 ((-1.78317 1.45062 -0.499354) (-7.49031 -3.37059 -8.91584))) +(8.88889 ((-1.92863 2.20959 -0.804481) (-12.0672 -0.609253 -9.64317))) +(9.29293 ((-1.99566 2.73971 -1.08864) (-16.3296 2.20049 -9.97828))) +(9.69697 ((-1.98151 2.98607 -1.34443) (-20.1664 4.83539 -9.90753))) +(10.101 ((-1.88676 2.92315 -1.56518) (-23.4776 7.08607 -9.43381))) +(10.5051 ((-1.71528 2.55748 -1.74513) (-26.1769 8.77369 -8.57639))) +(10.9091 ((-1.47403 1.92692 -1.8796) (-28.194 9.76415 -7.37013))) +(11.3131 ((-1.17282 1.09679 -1.96508) (-29.4762 9.97875 -5.8641))) +(11.7172 ((-0.823912 0.153055 -1.99935) (-29.9902 9.40043 -4.11956))) +(12.1212 ((-0.441492 -0.806529 -1.98151) (-29.7226 8.07517 -2.20746))) +(12.5253 ((-0.0411152 -1.68258 -1.91202) (-28.6803 6.10824 -0.205576))) +(12.9293 ((0.360934 -2.38436 -1.7927) (-26.8905 3.65596 1.80467))) +(13.3333 ((0.748302 -2.83919 -1.62666) (-24.3999 0.913172 3.74151))) +(13.7374 ((1.10523 -2.99995 -1.41822) (-21.2733 -1.90217 5.52617))) +(14.1414 ((1.41721 -2.85 -1.17282) (-17.5923 -4.56637 7.08607))) +(14.5455 ((1.67155 -2.40487 -0.896852) (-13.4528 -6.86773 8.35775))) +(14.9495 ((1.8579 -1.71066 -0.597509) (-8.96264 -8.62338 9.28948))) +(15.3535 ((1.96868 -0.839275 -0.282593) (-4.2389 -9.69381 9.84339))) +(15.7576 ((1.99938 0.119039 0.0396874) (0.595311 -9.99397 9.99692))) +(16.1616 ((1.94877 1.06502 0.360934) (5.41401 -9.50001 9.74385))) +(16.5657 ((1.81889 1.9007 0.672773) (10.0916 -8.25118 9.09446))) +(16.9697 ((1.61503 2.53952 0.967078) (14.5062 -6.34671 8.07517))) +(17.3737 ((1.34549 2.91531 1.23618) (18.5427 -3.93793 6.72743))) +(17.7778 ((1.02121 2.98915 1.47306) (22.0959 -1.21624 5.10606))) +(18.1818 ((0.655401 2.75341 1.67155) (25.0732 1.60209 3.27701))) +(18.5859 ((0.262934 2.23248 1.82647) (27.3971 4.29312 1.31467))) +(18.9899 ((-0.140228 1.48033 1.93379) (29.0069 6.64301 -0.70114))) +(19.3939 ((-0.537686 0.574858 1.99071) (29.8607 8.46506 -2.68843))) +(19.798 ((-0.913275 -0.390153 1.99575) (29.9362 9.61447 -4.56637))) +(20.202 ((-1.25172 -1.31476 1.94877) (29.2315 9.99991 -6.25859))) +(20.6061 ((-1.53925 -2.10319 1.851) (27.765 9.59076 -7.69624))) +(21.0101 ((-1.76417 -2.67378 1.70499) (25.5748 8.41953 -8.82086))) +(21.4141 ((-1.91734 -2.96745 1.51454) (22.7181 6.57928 -9.58671))) +(21.8182 ((-1.99253 -2.95377 1.28462) (19.2692 4.21624 -9.96263))) +(22.2222 ((-1.98667 -2.63416 1.02121) (15.3182 1.51818 -9.93333))) +(22.6263 ((-1.9 -2.04172 0.731192) (10.9679 -1.30051 -9.50001))) +(23.0303 ((-1.73606 -1.23782 0.422115) (6.33173 -4.01587 -8.68029))) +(23.4343 ((-1.5015 -0.305712 0.102037) (1.53055 -6.41212 -7.50751))) +(23.8384 ((-1.20588 0.658059 -0.220701) (-3.31051 -8.29887 -6.02938))) +(24.2424 ((-0.861202 1.55367 -0.537686) (-8.06529 -9.52619 -4.30601))) +(24.6465 ((-0.4815 2.28837 -0.840658) (-12.6099 -9.99656 -2.4075))) +(25.0505 ((-0.082213 2.78605 -1.12172) (-16.8258 -9.6726 -0.411065))) +(25.4545 ((0.320417 2.99518 -1.37355) (-20.6032 -8.58006 1.60209))) +(25.8586 ((0.710015 2.89408 -1.58957) (-23.8436 -6.80574 3.55008))) +(26.2626 ((1.07073 2.49324 -1.76417) (-26.4626 -4.49064 5.35367))) +(26.6667 ((1.3879 1.83417 -1.89279) (-28.3919 -1.81871 6.93952))) +(27.0707 ((1.64862 0.985126 -1.97208) (-29.5812 0.997727 8.2431))) +(27.4747 ((1.84228 0.0340511 -1.99997) (-29.9995 3.73489 9.21142))) +(27.8788 ((1.96101 -0.92055 -1.97573) (-29.636 6.17528 9.80507))) +(28.2828 ((1.99998 -1.77981 -1.9) (-28.5 8.12498 9.99991))) +(28.6869 ((1.9576 -2.45473 -1.77475) (-26.6213 9.42907 9.78802))) +(29.0909 ((1.8356 -2.8754 -1.60325) (-24.0487 9.98392 9.17802))) +(29.4949 ((1.63894 -2.99826 -1.38996) (-20.8494 9.74545 8.19472))) +(29.899 ((1.37562 -2.81059 -1.14044) (-17.1066 8.73261 6.8781))) +(30.303 ((1.05635 -2.33181 -0.861202) (-12.918 7.02588 5.28174))) +(30.7071 ((0.694108 -1.61153 -0.559517) (-8.39275 4.76086 3.47054))) +(31.1111 ((0.303637 -0.724328 -0.243249) (-3.64873 2.11755 1.51818))) +(31.5152 ((-0.0991843 0.23789 0.0793591) (1.19039 -0.694017 -0.495921))) +(31.9192 ((-0.497971 1.17547 0.399899) (5.99848 -3.45044 -2.48986))) +(32.3232 ((-0.876504 1.9913 0.710015) (10.6502 -5.93269 -4.38252))) +(32.7273 ((-1.21939 2.60089 1.00163) (15.0244 -7.94353 -6.09693))) +(33.1313 ((-1.51267 2.9411 1.26713) (19.007 -9.32318 -7.56336))) +(33.5354 ((-1.74443 2.97669 1.49961) (22.4942 -9.96201 -8.72215))) +(33.9394 ((-1.90524 2.70397 1.69301) (25.3952 -9.80925 -9.52619))) +(34.3434 ((-1.98855 2.1512 1.84228) (27.6342 -8.87705 -9.94276))) +(34.7475 ((-1.99099 1.37563 1.94354) (29.1531 -7.23948 -9.95493))) +(35.1515 ((-1.91244 0.457572 1.99414) (29.9121 -5.02667 -9.56219))) +(35.5556 ((-1.75611 -0.507874 1.99277) (29.8915 -2.41443 -8.78053))) +(35.9596 ((-1.52835 -1.42072 1.93946) (29.0919 0.389661 -7.64173))) +(36.3636 ((-1.23842 -2.18642 1.8356) (27.5341 3.16279 -6.19211))) +(36.7677 ((-0.898128 -2.72566 1.68391) (25.2586 5.6846 -4.49064))) +(37.1717 ((-0.521304 -2.9826 1.48832) (22.3248 7.75471 -2.60652))) +(37.5758 ((-0.123276 -2.93062 1.25394) (18.8092 9.20863 -0.61638))) +(37.9798 ((0.279766 -2.57512 0.986886) (14.8033 9.93084 1.39883))) +(38.3838 ((0.671428 -1.9529 0.694108) (10.4116 9.86394 3.35714))) +(38.7879 ((1.03578 -1.12841 0.383239) (5.74858 9.01325 5.17891))) +(39.1919 ((1.35801 -0.187052 0.0623811) (0.935716 7.44637 6.79003))) +(39.596 ((1.625 0.77368 -0.260102) (-3.90153 5.2878 8.12498))) +(40 ((1.82589 1.65428 -0.575807) (-8.6371 2.70906 9.12945))) +) + diff --git a/tutorials/interDyMFoam/sloshingTank3D6DoF/constant/RASProperties b/tutorials/interDyMFoam/sloshingTank3D6DoF/constant/RASProperties new file mode 100644 index 0000000000..ac1efb34c5 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D6DoF/constant/RASProperties @@ -0,0 +1,173 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object RASProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +// RASModel kEpsilon; +RASModel laminar; + +turbulence off; + +laminarCoeffs +{ +} + +kEpsilonCoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphaEps 0.76923; +} + +RNGkEpsilonCoeffs +{ + Cmu 0.0845; + C1 1.42; + C2 1.68; + alphak 1.39; + alphaEps 1.39; + eta0 4.38; + beta 0.012; +} + +NonlinearKEShihCoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphak 1; + alphaEps 0.76932; + A1 1.25; + A2 1000; + Ctau1 -4; + Ctau2 13; + Ctau3 -2; + alphaKsi 0.9; +} + +LienCubicKECoeffs +{ + C1 1.44; + C2 1.92; + alphak 1; + alphaEps 0.76923; + A1 1.25; + A2 1000; + Ctau1 -4; + Ctau2 13; + Ctau3 -2; + alphaKsi 0.9; +} + +QZetaCoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphaZeta 0.76923; + anisotropic no; +} + +LaunderSharmaKECoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphaEps 0.76923; +} + +LamBremhorstKECoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphaEps 0.76923; +} + +LienCubicKELowReCoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphak 1; + alphaEps 0.76923; + A1 1.25; + A2 1000; + Ctau1 -4; + Ctau2 13; + Ctau3 -2; + alphaKsi 0.9; + Am 0.016; + Aepsilon 0.263; + Amu 0.00222; +} + +LienLeschzinerLowReCoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphak 1; + alphaEps 0.76923; + Am 0.016; + Aepsilon 0.263; + Amu 0.00222; +} + +LRRCoeffs +{ + Cmu 0.09; + Clrr1 1.8; + Clrr2 0.6; + C1 1.44; + C2 1.92; + Cs 0.25; + Ceps 0.15; + alphaEps 0.76923; +} + +LaunderGibsonRSTMCoeffs +{ + Cmu 0.09; + Clg1 1.8; + Clg2 0.6; + C1 1.44; + C2 1.92; + C1Ref 0.5; + C2Ref 0.3; + Cs 0.25; + Ceps 0.15; + alphaEps 0.76923; + alphaR 1.22; +} + +SpalartAllmarasCoeffs +{ + alphaNut 1.5; + Cb1 0.1355; + Cb2 0.622; + Cw2 0.3; + Cw3 2; + Cv1 7.1; + Cv2 5.0; +} + +wallFunctionCoeffs +{ + kappa 0.4187; + E 9; +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D6DoF/constant/dynamicMeshDict b/tutorials/interDyMFoam/sloshingTank3D6DoF/constant/dynamicMeshDict new file mode 100644 index 0000000000..56eb2294e8 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D6DoF/constant/dynamicMeshDict @@ -0,0 +1,42 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.4 | +| \\ / A nd | Web: http://www.openfoam.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ + +FoamFile +{ + version 2.0; + format ascii; + + root ""; + case ""; + instance ""; + local ""; + + class dictionary; + object motionProperties; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dynamicFvMesh solidBodyMotionFvMesh; + +solidBodyMotionFvMeshCoeffs +{ + solidBodyMotionFunction SKA; + + SKACoeffs + { + // Centre of gravity + CofG (0 0 0); + + // Time data file name + timeDataFileName "constant/6DoF.dat"; + } +} + + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D6DoF/constant/environmentalProperties b/tutorials/interDyMFoam/sloshingTank3D6DoF/constant/environmentalProperties new file mode 100644 index 0000000000..40232c0c40 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D6DoF/constant/environmentalProperties @@ -0,0 +1,19 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object environmentalProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +g g [0 1 -2 0 0 0 0] (0 0 -9.81); + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D6DoF/constant/polyMesh/blockMeshDict b/tutorials/interDyMFoam/sloshingTank3D6DoF/constant/polyMesh/blockMeshDict new file mode 100644 index 0000000000..0d21d11148 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D6DoF/constant/polyMesh/blockMeshDict @@ -0,0 +1,137 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object blockMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// General m4 macros + + + + + + + + + + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// User-defined parameters + +convertToMeters 1; + + // Length of tank (x-direction) + // Breadth of tank (y-direction) + // Depth of tank (z-direction) + + // Depth to the top (height) of lower chamfer + // Height of upper chamfer + + // Angle of lower chamfer to the horizontal + // Angle of upper chamfer to the horizontal + + // Centre of gravity in y-direction + // Centre of gravity in z-direction + + // Number of cells in the length (1 for 2D) + // Number of cells in the breadth + // Number of cells in the height of the lower champfer + // Number of cells in the height between the chamfers + // Number of cells in the height of the upper champfer + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// Derived parameters + + // Breadth to the top (height) of lower chamfer + // Breadth of upper chamfer + + + + + + + + + + + + + + + + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// Parametric description + +vertices +( + (-10 -15 -10.0) // Vertex bllcb = 0 + (-10 -20 -5) // Vertex bllc = 1 + (-10 -20 10) // Vertex bluc = 2 + (-10 -10 20) // Vertex bluct = 3 + (-10 15 -10.0) // Vertex brlcb = 4 + (-10 20 -5) // Vertex brlc = 5 + (-10 20 10) // Vertex bruc = 6 + (-10 10 20) // Vertex bruct = 7 + + (10 -15 -10.0) // Vertex fllcb = 8 + (10 -20 -5) // Vertex fllc = 9 + (10 -20 10) // Vertex fluc = 10 + (10 -10 20) // Vertex fluct = 11 + (10 15 -10.0) // Vertex frlcb = 12 + (10 20 -5) // Vertex frlc = 13 + (10 20 10) // Vertex fruc = 14 + (10 10 20) // Vertex fruct = 15 +); + +blocks +( + // block0 + hex (0 4 5 1 8 12 13 9) + (40 6 19) + simpleGrading (1 1 1) + + // block1 + hex (1 5 6 2 9 13 14 10) + (40 16 19) + simpleGrading (1 1 1) + + // block2 + hex (2 6 7 3 10 14 15 11) + (40 12 19) + simpleGrading (1 1 1) +); + +patches +( + patch walls + ( + (0 4 12 8) + (4 5 13 12) + (5 6 14 13) + (6 7 15 14) + (7 3 11 15) + (3 2 10 11) + (2 1 9 10) + (1 0 8 9) + (8 12 13 9) + (9 13 14 10) + (10 14 15 11) + (0 1 5 4) + (1 2 6 5) + (2 3 7 6) + ) +); + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D6DoF/constant/polyMesh/blockMeshDict.m4 b/tutorials/interDyMFoam/sloshingTank3D6DoF/constant/polyMesh/blockMeshDict.m4 new file mode 100644 index 0000000000..5e355fd702 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D6DoF/constant/polyMesh/blockMeshDict.m4 @@ -0,0 +1,137 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object blockMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// General m4 macros + +changecom(//)changequote([,]) +define(calc, [esyscmd(perl -e 'use Math::Trig; use POSIX; printf ($1)')]) +define(VCOUNT, 0) +define(vlabel, [[// ]Vertex $1 = VCOUNT define($1, VCOUNT)define([VCOUNT], incr(VCOUNT))]) + +define(hex2D, hex (b$1 b$2 b$3 b$4 f$1 f$2 f$3 f$4)) +define(quad2D, (b$1 b$2 f$2 f$1)) +define(frontQuad, (f$1 f$2 f$3 f$4)) +define(backQuad, (b$1 b$4 b$3 b$2)) + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// User-defined parameters + +convertToMeters 1; + +define(l, 20) // Length of tank (x-direction) +define(b, 40) // Breadth of tank (y-direction) +define(h, 30) // Depth of tank (z-direction) + +define(hlc, 5) // Depth to the top (height) of lower chamfer +define(huc, 10) // Height of upper chamfer + +define(thetalc, 45) // Angle of lower chamfer to the horizontal +define(thetauc, 45) // Angle of upper chamfer to the horizontal + +define(CofGy, calc(b/2.0)) // Centre of gravity in y-direction +define(CofGz, 10.0) // Centre of gravity in z-direction + +define(Nl, 19) // Number of cells in the length (1 for 2D) +define(Nb, 40) // Number of cells in the breadth +define(Nhlc, 6) // Number of cells in the height of the lower champfer +define(Nh, 16) // Number of cells in the height between the chamfers +define(Nhuc, 12) // Number of cells in the height of the upper champfer + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// Derived parameters + +define(blc, calc(hlc/tan(deg2rad(thetalc)))) // Breadth to the top (height) of lower chamfer +define(buc, calc(huc/tan(deg2rad(thetauc)))) // Breadth of upper chamfer + +define(Yl, -CofGy) +define(Yllc, calc(Yl + blc)) +define(Yluc, calc(Yl + buc)) + +define(Yr, calc(Yl + b)) +define(Yrlc, calc(Yr - blc)) +define(Yruc, calc(Yr - buc)) + +define(Zb, -CofGz) +define(Zlc, calc(Zb + hlc)) +define(Zt, calc(Zb + h)) +define(Zuc, calc(Zt - huc)) + +define(Xf, calc(l/2.0)) +define(Xb, calc(Xf - l)) + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// Parametric description + +vertices +( + (Xb Yllc Zb) vlabel(bllcb) + (Xb Yl Zlc) vlabel(bllc) + (Xb Yl Zuc) vlabel(bluc) + (Xb Yluc Zt) vlabel(bluct) + (Xb Yrlc Zb) vlabel(brlcb) + (Xb Yr Zlc) vlabel(brlc) + (Xb Yr Zuc) vlabel(bruc) + (Xb Yruc Zt) vlabel(bruct) + + (Xf Yllc Zb) vlabel(fllcb) + (Xf Yl Zlc) vlabel(fllc) + (Xf Yl Zuc) vlabel(fluc) + (Xf Yluc Zt) vlabel(fluct) + (Xf Yrlc Zb) vlabel(frlcb) + (Xf Yr Zlc) vlabel(frlc) + (Xf Yr Zuc) vlabel(fruc) + (Xf Yruc Zt) vlabel(fruct) +); + +blocks +( + // block0 + hex2D(llcb, rlcb, rlc, llc) + (Nb Nhlc Nl) + simpleGrading (1 1 1) + + // block1 + hex2D(llc, rlc, ruc, luc) + (Nb Nh Nl) + simpleGrading (1 1 1) + + // block2 + hex2D(luc, ruc, ruct, luct) + (Nb Nhuc Nl) + simpleGrading (1 1 1) +); + +patches +( + patch walls + ( + quad2D(llcb, rlcb) + quad2D(rlcb, rlc) + quad2D(rlc, ruc) + quad2D(ruc, ruct) + quad2D(ruct, luct) + quad2D(luct, luc) + quad2D(luc, llc) + quad2D(llc, llcb) + frontQuad(llcb, rlcb, rlc, llc) + frontQuad(llc, rlc, ruc, luc) + frontQuad(luc, ruc, ruct, luct) + backQuad(llcb, rlcb, rlc, llc) + backQuad(llc, rlc, ruc, luc) + backQuad(luc, ruc, ruct, luct) + ) +); + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D6DoF/constant/polyMesh/boundary b/tutorials/interDyMFoam/sloshingTank3D6DoF/constant/polyMesh/boundary new file mode 100644 index 0000000000..28068f37d4 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D6DoF/constant/polyMesh/boundary @@ -0,0 +1,28 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class polyBoundaryMesh; + location "constant/polyMesh"; + object boundary; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +1 +( + walls + { + type patch; + nFaces 5532; + startFace 74754; + } +) + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D6DoF/constant/transportProperties b/tutorials/interDyMFoam/sloshingTank3D6DoF/constant/transportProperties new file mode 100644 index 0000000000..c20854a903 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D6DoF/constant/transportProperties @@ -0,0 +1,33 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object transportProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +phase1 +{ + transportModel Newtonian; + nu nu [0 2 -1 0 0 0 0] 1e-6; + rho rho [1 -3 0 0 0 0 0] 998.2; +} + +phase2 +{ + transportModel Newtonian; + nu nu [0 2 -1 0 0 0 0] 1.48e-05; + rho rho [1 -3 0 0 0 0 0] 1; +} + +sigma sigma [1 0 -2 0 0 0 0] 0.0; + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D6DoF/gen6DoF/Make/files b/tutorials/interDyMFoam/sloshingTank3D6DoF/gen6DoF/Make/files new file mode 100644 index 0000000000..5d4b8d2712 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D6DoF/gen6DoF/Make/files @@ -0,0 +1,3 @@ +gen6DoF.C + +EXE = $(FOAM_USER_APPBIN)/gen6DoF diff --git a/tutorials/interDyMFoam/sloshingTank3D6DoF/gen6DoF/Make/options b/tutorials/interDyMFoam/sloshingTank3D6DoF/gen6DoF/Make/options new file mode 100644 index 0000000000..fa15f12452 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D6DoF/gen6DoF/Make/options @@ -0,0 +1,5 @@ +EXE_INC = \ + -I$(LIB_SRC)/finiteVolume/lnInclude + +EXE_LIBS = \ + -lfiniteVolume diff --git a/tutorials/interDyMFoam/sloshingTank3D6DoF/gen6DoF/gen6DoF.C b/tutorials/interDyMFoam/sloshingTank3D6DoF/gen6DoF/gen6DoF.C new file mode 100644 index 0000000000..0d97918551 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D6DoF/gen6DoF/gen6DoF.C @@ -0,0 +1,97 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM 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 2 of the License, or (at your + option) any later version. + + OpenFOAM 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 OpenFOAM; if not, write to the Free Software Foundation, + Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +Application + gen6DoF + +Description + Generate simple sinusoidal 6-DoF motion control-file. + +\*---------------------------------------------------------------------------*/ + +#include "List.H" +#include "vector.H" +#include "Vector2D.H" +#include "Tuple2.H" +#include "OFstream.H" + +using namespace Foam; + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// Main program: + +int main(int argc, char *argv[]) +{ + // End-time of the table + const scalar endTime = 40; + + // Number of entries in the table + const label nTimes = 100; + + // Amplitude of the translation [m] + const vector transAmp(2, 3, 2); + + // Frequency of the translation [rad/s] + const vector transOmega(0.5, 0.8, 0.4); + + // Amplitude of the rotation [deg] + const vector rotAmp(30, 10, 10); + + // Frequency of the rotation [rad/s] + const vector rotOmega(0.4, 0.7, 0.5); + + List > > timeValues(nTimes); + + forAll(timeValues, i) + { + scalar t = (endTime*i)/(nTimes - 1); + timeValues[i].first() = t; + + timeValues[i].second()[0] = vector + ( + transAmp.x()*Foam::sin(transOmega.x()*t), + transAmp.y()*Foam::sin(transOmega.y()*t), + transAmp.z()*Foam::sin(transOmega.z()*t) + ); + + timeValues[i].second()[1] = vector + ( + rotAmp.x()*Foam::sin(rotOmega.x()*t), + rotAmp.y()*Foam::sin(rotOmega.y()*t), + rotAmp.z()*Foam::sin(rotOmega.z()*t) + ); + } + + { + OFstream dataFile("6DoF.dat"); + dataFile << timeValues << endl; + } + + Info << "End\n" << endl; + + return 0; +} + + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D6DoF/system/controlDict b/tutorials/interDyMFoam/sloshingTank3D6DoF/system/controlDict new file mode 100644 index 0000000000..b721c9c058 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D6DoF/system/controlDict @@ -0,0 +1,109 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +application sloshingFoam; + +startFrom startTime; + +startTime 0; + +stopAt endTime; + +endTime 40; + +deltaT 0.01; + +writeControl adjustableRunTime; + +writeInterval 0.05; + +purgeWrite 0; + +writeFormat ascii; + +writePrecision 6; + +writeCompression compressed; + +timeFormat general; + +timePrecision 6; + +runTimeModifiable yes; + +adjustTimeStep yes; + +maxCo 0.5; + +maxDeltaT 1; + +functions +( + probes + { + // Type of functionObject + type probes; + + // Name of the directory for the probe data + name probes; + + // Locations to be probed. runTime modifiable! + probeLocations + ( + (0 9.95 19.77) + (0 -9.95 19.77) + ); + + // Fields to be probed. runTime modifiable! + fields + ( + p + ); + } + + /* + wallPressure + { + // Type of functionObject + type surfaces; + + // Where to load it from (if not already in solver) + functionObjectLibs ("libsampling.so"); + + // Output every 10th time step + interval 10; + + surfaceFormat raw; + + fields + ( + p + ); + + surfaces + ( + walls + { + type patch; + patchName walls; + triangulate false; + } + ); + } + */ +); + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D6DoF/system/decomposeParDict b/tutorials/interDyMFoam/sloshingTank3D6DoF/system/decomposeParDict new file mode 100644 index 0000000000..d4594e0947 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D6DoF/system/decomposeParDict @@ -0,0 +1,56 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object decomposeParDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +numberOfSubdomains 16; + +method hierarchical; + +simpleCoeffs +{ + n (2 2 1); + delta 0.001; +} + +hierarchicalCoeffs +{ + n (4 2 2); + delta 0.001; + order xyz; +} + +metisCoeffs +{ + processorWeights + ( + 1 + 1 + 1 + 1 + ); +} + +manualCoeffs +{ + dataFile ""; +} + +distributed no; + +roots +( +); + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D6DoF/system/fvSchemes b/tutorials/interDyMFoam/sloshingTank3D6DoF/system/fvSchemes new file mode 100644 index 0000000000..f089e4e5e6 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D6DoF/system/fvSchemes @@ -0,0 +1,59 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{ + default Euler; +} + +gradSchemes +{ + default Gauss linear; + grad(U) Gauss linear; + grad(gamma) Gauss linear; +} + +divSchemes +{ + div(rho*phi,U) Gauss vanLeerV; + div(phi,gamma) Gauss vanLeer; + div(phirb,gamma) Gauss vanLeer; +} + +laplacianSchemes +{ + default Gauss linear corrected; +} + +interpolationSchemes +{ + default linear; +} + +snGradSchemes +{ + default corrected; +} + +fluxRequired +{ + default no; + pd; + pcorr; + gamma; +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D6DoF/system/fvSolution b/tutorials/interDyMFoam/sloshingTank3D6DoF/system/fvSolution new file mode 100644 index 0000000000..3aaca52375 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D6DoF/system/fvSolution @@ -0,0 +1,123 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +solvers +{ + pcorr PCG + { + preconditioner GAMG + { + tolerance 1e-5; + relTol 0; + + smoother DICGaussSeidel; + nPreSweeps 0; + nPostSweeps 2; + nBottomSweeps 2; + + cacheAgglomeration false; + nCellsInCoarsestLevel 10; + agglomerator faceAreaPair; + mergeLevels 1; + }; + + tolerance 1e-5; + relTol 0; + maxIter 100; + }; + + pd GAMG + { + tolerance 1e-8; + relTol 0.01; + + smoother DIC; + nPreSweeps 0; + nPostSweeps 2; + nFinestSweeps 2; + + cacheAgglomeration true; + nCellsInCoarsestLevel 10; + agglomerator faceAreaPair; + mergeLevels 1; + }; + + pdFinal PCG + { + preconditioner GAMG + { + tolerance 2e-9; + relTol 0; + + nVcycles 2; + + smoother DICGaussSeidel; + nPreSweeps 2; + nPostSweeps 2; + nFinestSweeps 2; + + cacheAgglomeration true; + nCellsInCoarsestLevel 10; + agglomerator faceAreaPair; + mergeLevels 1; + }; + + tolerance 2e-9; + relTol 0; + maxIter 20; + }; + + U smoothSolver + { + smoother GaussSeidel; + tolerance 1e-6; + relTol 0; + nSweeps 1; + }; +} + +PISO +{ + momentumPredictor no; + nCorrectors 2; + nNonOrthogonalCorrectors 0; + nGammaCorr 1; + nGammaSubCycles 3; + cGamma 1.5; + correctPhi no; + + pRefProbe + { + fields + ( + p + ); + + probeLocations + ( + (0 0 0.15) + ); + } + + pRefValue 1e5; +} + +relaxationFactors +{ + U 1.0; +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D6DoF/system/setFieldsDict b/tutorials/interDyMFoam/sloshingTank3D6DoF/system/setFieldsDict new file mode 100644 index 0000000000..2c881a7ba4 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D6DoF/system/setFieldsDict @@ -0,0 +1,35 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object setFieldsDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +defaultFieldValues +( + volScalarFieldValue gamma 0 +); + +regions +( + boxToCell + { + box (-100 -100 -100) (100 100 0); + + fieldValues + ( + volScalarFieldValue gamma 1 + ); + } +); + +// ************************************************************************* // From 2b91f04baf9a672175a450ccb63765477488b05c Mon Sep 17 00:00:00 2001 From: henry Date: Fri, 4 Jul 2008 13:49:50 +0100 Subject: [PATCH 26/28] Minor change to motion settings. --- .../constant/dynamicMeshDict | 18 +++++++++--------- .../constant/dynamicMeshDict | 18 +++++++++--------- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/tutorials/interDyMFoam/sloshingTank2D3DoF/constant/dynamicMeshDict b/tutorials/interDyMFoam/sloshingTank2D3DoF/constant/dynamicMeshDict index e7a0ec06d6..2b9f0bed11 100644 --- a/tutorials/interDyMFoam/sloshingTank2D3DoF/constant/dynamicMeshDict +++ b/tutorials/interDyMFoam/sloshingTank2D3DoF/constant/dynamicMeshDict @@ -29,28 +29,28 @@ solidBodyMotionFvMeshCoeffs lamda 50; // Max roll amplitude [rad] - rollAmax 0.22654; + rollAmax 0.2; // Min roll amplitude [rad] - rollAmin 0.10472; + rollAmin 0.1; // Heave amplitude [m] - heaveA 3.79; + heaveA 4; // Sway amplitude [m] - swayA 2.34; + swayA 2.4; // Damping Coefficient [-] - Q 2.00; - + Q 2; + // Time Period for liquid [sec] - Tp 13.93; + Tp 14; // Natural Period of Ship [sec] - Tpn 11.93; + Tpn 12; // Reference time step [sec] - dTi 0.059; + dTi 0.06; // Incr. in Tp/unit 'dTi'[-] dTp -0.001; diff --git a/tutorials/interDyMFoam/sloshingTank3D3DoF/constant/dynamicMeshDict b/tutorials/interDyMFoam/sloshingTank3D3DoF/constant/dynamicMeshDict index e7a0ec06d6..2b9f0bed11 100644 --- a/tutorials/interDyMFoam/sloshingTank3D3DoF/constant/dynamicMeshDict +++ b/tutorials/interDyMFoam/sloshingTank3D3DoF/constant/dynamicMeshDict @@ -29,28 +29,28 @@ solidBodyMotionFvMeshCoeffs lamda 50; // Max roll amplitude [rad] - rollAmax 0.22654; + rollAmax 0.2; // Min roll amplitude [rad] - rollAmin 0.10472; + rollAmin 0.1; // Heave amplitude [m] - heaveA 3.79; + heaveA 4; // Sway amplitude [m] - swayA 2.34; + swayA 2.4; // Damping Coefficient [-] - Q 2.00; - + Q 2; + // Time Period for liquid [sec] - Tp 13.93; + Tp 14; // Natural Period of Ship [sec] - Tpn 11.93; + Tpn 12; // Reference time step [sec] - dTi 0.059; + dTi 0.06; // Incr. in Tp/unit 'dTi'[-] dTp -0.001; From c683276733dd3052a06b11b53621d84baf6e6784 Mon Sep 17 00:00:00 2001 From: andy Date: Fri, 4 Jul 2008 18:46:45 +0100 Subject: [PATCH 27/28] updated time varying boundary conditions --- ...eVaryingUniformFixedValuePointPatchField.C | 77 +-- ...eVaryingUniformFixedValuePointPatchField.H | 17 +- .../interpolationTable/interpolationTable.C | 482 ++++++++++++++++++ .../interpolationTable.H} | 116 +++-- .../interpolations/timeSeries/timeSeries.C | 402 --------------- src/finiteVolume/Make/files | 4 +- ...flowRateInletVelocityFvPatchVectorField.C} | 56 +- ...flowRateInletVelocityFvPatchVectorField.H} | 65 +-- ...gFlowRateInletVelocityFvPatchVectorField.C | 141 +++++ ...FlowRateInletVelocityFvPatchVectorField.H} | 74 ++- ...sFlowRateInletVelocityFvPatchVectorField.C | 200 -------- ...timeVaryingUniformFixedValueFvPatchField.C | 78 +-- ...timeVaryingUniformFixedValueFvPatchField.H | 18 +- ...ngUniformTotalPressureFvPatchScalarField.C | 74 +-- ...ngUniformTotalPressureFvPatchScalarField.H | 17 +- 15 files changed, 823 insertions(+), 998 deletions(-) create mode 100644 src/OpenFOAM/interpolations/interpolationTable/interpolationTable.C rename src/OpenFOAM/interpolations/{timeSeries/timeSeries.H => interpolationTable/interpolationTable.H} (57%) delete mode 100644 src/OpenFOAM/interpolations/timeSeries/timeSeries.C rename src/finiteVolume/fields/fvPatchFields/derived/{massFlowRateInletVelocity/massFlowRateInletVelocityFvPatchVectorField.C => flowRateInletVelocity/flowRateInletVelocityFvPatchVectorField.C} (75%) rename src/finiteVolume/fields/fvPatchFields/derived/{massFlowRateInletVelocity/massFlowRateInletVelocityFvPatchVectorField.H => flowRateInletVelocity/flowRateInletVelocityFvPatchVectorField.H} (70%) create mode 100644 src/finiteVolume/fields/fvPatchFields/derived/timeVaryingFlowRateInletVelocity/timeVaryingFlowRateInletVelocityFvPatchVectorField.C rename src/finiteVolume/fields/fvPatchFields/derived/{timeVaryingMassFlowRateInletVelocity/timeVaryingMassFlowRateInletVelocityFvPatchVectorField.H => timeVaryingFlowRateInletVelocity/timeVaryingFlowRateInletVelocityFvPatchVectorField.H} (66%) delete mode 100644 src/finiteVolume/fields/fvPatchFields/derived/timeVaryingMassFlowRateInletVelocity/timeVaryingMassFlowRateInletVelocityFvPatchVectorField.C diff --git a/src/OpenFOAM/fields/pointPatchFields/derived/timeVaryingUniformFixedValue/timeVaryingUniformFixedValuePointPatchField.C b/src/OpenFOAM/fields/pointPatchFields/derived/timeVaryingUniformFixedValue/timeVaryingUniformFixedValuePointPatchField.C index b2074123a9..2ce7ada7ea 100644 --- a/src/OpenFOAM/fields/pointPatchFields/derived/timeVaryingUniformFixedValue/timeVaryingUniformFixedValuePointPatchField.C +++ b/src/OpenFOAM/fields/pointPatchFields/derived/timeVaryingUniformFixedValue/timeVaryingUniformFixedValuePointPatchField.C @@ -28,8 +28,6 @@ License #include "Time.H" #include "IFstream.H" -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // template @@ -57,8 +55,7 @@ timeVaryingUniformFixedValuePointPatchField ) : fixedValuePointPatchField(ptf, p, iF, mapper), - timeDataFile_(ptf.timeDataFile_), - timeSeries_(ptf.timeBounding()) + timeSeries_(ptf.timeSeries_) {} @@ -73,8 +70,7 @@ timeVaryingUniformFixedValuePointPatchField ) : fixedValuePointPatchField(p, iF), - timeDataFile_(dict.lookup("timeDataFile")), - timeSeries_(word(dict.lookup("timeBounding"))) + timeSeries_(this->db(), dict) { updateCoeffs(); } @@ -89,8 +85,7 @@ timeVaryingUniformFixedValuePointPatchField ) : fixedValuePointPatchField(ptf), - timeDataFile_(ptf.timeDataFile_), - timeSeries_(ptf.timeBounding()) + timeSeries_(ptf.timeSeries_) {} @@ -104,67 +99,12 @@ timeVaryingUniformFixedValuePointPatchField ) : fixedValuePointPatchField(ptf, iF), - timeDataFile_(ptf.timeDataFile_), - timeSeries_(ptf.timeBounding()) + timeSeries_(ptf.timeSeries_) {} // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // -template -Type -Foam::timeVaryingUniformFixedValuePointPatchField:: -currentValue() -{ - if (timeSeries_.size() == 0) - { - fileName fName(timeDataFile_); - fName.expand(); - - if (fName.size() == 0) - { - FatalErrorIn - ( - "timeVaryingUniformFixedValuePointPatchField" - "::currentValue()" - ) << "timeDataFile not specified for Patch " - << this->patch().name() - << exit(FatalError); - } - else - { - // relative path - if (fName[0] != '/') - { - fName = this->db().path()/fName; - } - - // just in case we change the interface to timeSeries - word boundType = timeBounding(); - - IFstream(fName)() >> timeSeries_; - timeSeries_.bounding(boundType); - - // be a bit paranoid and check that the list is okay - timeSeries_.check(); - } - - if (timeSeries_.size() == 0) - { - FatalErrorIn - ( - "timeVaryingUniformFixedValuePointPatchField" - "::currentValue()" - ) << "empty time series for Patch " - << this->patch().name() - << exit(FatalError); - } - } - - return timeSeries_(this->db().time().timeOutputValue()); -} - - template void Foam::timeVaryingUniformFixedValuePointPatchField::updateCoeffs() { @@ -173,7 +113,7 @@ void Foam::timeVaryingUniformFixedValuePointPatchField::updateCoeffs() return; } - this->operator==(currentValue()); + this->operator==(timeSeries_(this->db().time().timeOutputValue())); fixedValuePointPatchField::updateCoeffs(); } @@ -182,13 +122,8 @@ template void Foam::timeVaryingUniformFixedValuePointPatchField::write(Ostream& os) const { fixedValuePointPatchField::write(os); - os.writeKeyword("timeDataFile") - << timeDataFile_ << token::END_STATEMENT << nl; - os.writeKeyword("timeBounding") - << timeBounding() << token::END_STATEMENT << nl; + timeSeries_.write(os); } -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - // ************************************************************************* // diff --git a/src/OpenFOAM/fields/pointPatchFields/derived/timeVaryingUniformFixedValue/timeVaryingUniformFixedValuePointPatchField.H b/src/OpenFOAM/fields/pointPatchFields/derived/timeVaryingUniformFixedValue/timeVaryingUniformFixedValuePointPatchField.H index eee6a44439..e13150034d 100644 --- a/src/OpenFOAM/fields/pointPatchFields/derived/timeVaryingUniformFixedValue/timeVaryingUniformFixedValuePointPatchField.H +++ b/src/OpenFOAM/fields/pointPatchFields/derived/timeVaryingUniformFixedValue/timeVaryingUniformFixedValuePointPatchField.H @@ -40,7 +40,7 @@ SourceFiles #define timeVaryingUniformFixedValuePointPatchField_H #include "fixedValuePointPatchField.H" -#include "timeSeries.H" +#include "interpolationTable.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -58,14 +58,9 @@ class timeVaryingUniformFixedValuePointPatchField { // Private data - //- file containing time/uniformFixedValue - fileName timeDataFile_; - //- the time series being used, including the bounding treatment - timeSeries timeSeries_; + interpolationTable timeSeries_; - //- interpolate the value at the current time - Type currentValue(); public: @@ -138,14 +133,8 @@ public: // Access - //- Return the out-of-bounds treatment as a word - word timeBounding() const - { - return timeSeries_.bounding(); - } - //- Return the time series used - const timeSeries& timeData() const + const interpolationTable& timeSeries() const { return timeSeries_; } diff --git a/src/OpenFOAM/interpolations/interpolationTable/interpolationTable.C b/src/OpenFOAM/interpolations/interpolationTable/interpolationTable.C new file mode 100644 index 0000000000..e2f1f92e77 --- /dev/null +++ b/src/OpenFOAM/interpolations/interpolationTable/interpolationTable.C @@ -0,0 +1,482 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM 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 2 of the License, or (at your + option) any later version. + + OpenFOAM 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 OpenFOAM; if not, write to the Free Software Foundation, + Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +\*---------------------------------------------------------------------------*/ + +#include "interpolationTable.H" +#include "IFstream.H" +#include "objectRegistry.H" + +// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // + +template +Foam::interpolationTable::interpolationTable() +: + List >(), + dict_(dictionary::null), + boundAction_(interpolationTable::WARN), + fileName_("undefined_fileName") +{} + + +template +Foam::interpolationTable::interpolationTable +( + const objectRegistry& obr, + const dictionary& dict +) +: + List >(), + dict_(dict), + boundAction_(wordToBoundAction(dict.lookup("boundAction"))), + fileName_(dict.lookup("fileName")) +{ + fileName_.expand(); + + // Correct for relative path + if (fileName_[0] != '/') + { + fileName_ = obr.db().path()/fileName_; + } + + // Read data from file + IFstream(fileName_)() >> *this; + + // Check that the data is okay + check(); + + if (this->size() == 0) + { + FatalErrorIn + ( + "Foam::interpolationTable::interpolationTable" + "(const dictionary& dict)" + ) << "table is empty" << nl + << exit(FatalError); + } +} + + +template +Foam::interpolationTable::interpolationTable +( + const interpolationTable& interpTable +) +: + List >(interpTable), + dict_(interpTable.dict_), + boundAction_(interpTable.boundAction_), + fileName_(interpTable.fileName_) +{} + + +// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // + +template +Foam::interpolationTable::~interpolationTable() +{} + + +// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // + +template +Foam::word Foam::interpolationTable::boundActionToWord +( + const boundActions& bound +) const +{ + word enumName("warn"); + + switch (bound) + { + case interpolationTable::ERROR: + { + enumName = "error"; + break; + } + case interpolationTable::WARN: + { + enumName = "warn"; + break; + } + case interpolationTable::CLAMP: + { + enumName = "clamp"; + break; + } + case interpolationTable::REPEAT: + { + enumName = "repeat"; + break; + } + } + + return enumName; +} + + +template +typename Foam::interpolationTable::boundActions +Foam::interpolationTable::wordToBoundAction +( + const word& bound +) const +{ + if (bound == "error") + { + return interpolationTable::ERROR; + } + else if (bound == "warn") + { + return interpolationTable::WARN; + } + else if (bound == "clamp") + { + return interpolationTable::CLAMP; + } + else if (bound == "repeat") + { + return interpolationTable::REPEAT; + } + else + { + WarningIn + ( + "Foam::interpolationTable::wordToBoundAction(const word&)" + ) << "bad bounding specifier " << bound << " using 'warn'" << endl; + + return interpolationTable::WARN; + } +} + + +template +void Foam::interpolationTable::check() const +{ + label n = size(); + scalar prevValue = List >::operator[](0).first(); + + for (label i=1; i >::operator[](i).first(); + + // avoid duplicate values (divide-by-zero error) + if (currValue <= prevValue) + { + FatalErrorIn + ( + "Foam::interpolationTable::checkOrder() const" + ) << "out-of-order value: " + << currValue << " at index " << i << nl + << exit(FatalError); + } + prevValue = currValue; + } +} + + +template +typename Foam::interpolationTable::boundActions +Foam::interpolationTable::boundAction +( + const boundActions& bound +) +{ + boundActions prev = boundAction_; + boundAction_ = bound; + return prev; +} + + +template +void Foam::interpolationTable::write(Ostream& os) const +{ + os.writeKeyword("fileName") + << fileName_ << token::END_STATEMENT << nl; + os.writeKeyword("boundAction") + << boundActionToWord(boundAction_) << token::END_STATEMENT << nl; +} + + +// * * * * * * * * * * * * * * * Member Operators * * * * * * * * * * * * * // + +template +const Foam::Tuple2& +Foam::interpolationTable::operator[](const label i) const +{ + label ii = i; + label n = size(); + + if (n <= 1) + { + ii = 0; + } + else if (ii < 0) + { + switch (boundAction_) + { + case interpolationTable::ERROR: + { + FatalErrorIn + ( + "Foam::interpolationTable::operator[]" + "(const label) const" + ) << "index (" << ii << ") underflow" << nl + << exit(FatalError); + break; + } + case interpolationTable::WARN: + { + WarningIn + ( + "Foam::interpolationTable::operator[]" + "(const label) const" + ) << "index (" << ii << ") underflow" << nl + << " Continuing with the first entry" + << endl; + // fall-through to 'CLAMP' + } + case interpolationTable::CLAMP: + { + ii = 0; + break; + } + case interpolationTable::REPEAT: + { + while (ii < 0) + { + ii += n; + } + break; + } + } + } + else if (ii >= n) + { + switch (boundAction_) + { + case interpolationTable::ERROR: + { + FatalErrorIn + ( + "Foam::interpolationTable::operator[]" + "(const label) const" + ) << "index (" << ii << ") overflow" << nl + << exit(FatalError); + break; + } + case interpolationTable::WARN: + { + WarningIn + ( + "Foam::interpolationTable::operator[]" + "(const label) const" + ) << "index (" << ii << ") overflow" << nl + << " Continuing with the last entry" + << endl; + // fall-through to 'CLAMP' + } + case interpolationTable::CLAMP: + { + ii = n - 1; + break; + } + case interpolationTable::REPEAT: + { + while (ii >= n) + { + ii -= n; + } + break; + } + } + } + + return List >::operator[](ii); +} + + +template +Type Foam::interpolationTable::operator()(const scalar value) const +{ + label n = size(); + + if (n <= 1) + { + return List >::operator[](0).second(); + } + + scalar minLimit = List >::operator[](0).first(); + scalar maxLimit = List >::operator[](n-1).first(); + scalar lookupValue = value; + + if (lookupValue < minLimit) + { + switch (boundAction_) + { + case interpolationTable::ERROR: + { + FatalErrorIn + ( + "Foam::interpolationTable::operator[]" + "(const scalar) const" + ) << "value (" << lookupValue << ") underflow" << nl + << exit(FatalError); + break; + } + case interpolationTable::WARN: + { + WarningIn + ( + "Foam::interpolationTable::operator[]" + "(const scalar) const" + ) << "value (" << lookupValue << ") underflow" << nl + << " Continuing with the first entry" + << endl; + // fall-through to 'CLAMP' + } + case interpolationTable::CLAMP: + { + return List >::operator[](0).second(); + break; + } + case interpolationTable::REPEAT: + { + // adjust lookupValue to >= 0 + while (lookupValue < 0) + { + lookupValue += maxLimit; + } + break; + } + } + } + else if (lookupValue >= maxLimit) + { + switch (boundAction_) + { + case interpolationTable::ERROR: + { + FatalErrorIn + ( + "Foam::interpolationTable::operator[]" + "(const label) const" + ) << "value (" << lookupValue << ") overflow" << nl + << exit(FatalError); + break; + } + case interpolationTable::WARN: + { + WarningIn + ( + "Foam::interpolationTable::operator[]" + "(const label) const" + ) << "value (" << lookupValue << ") overflow" << nl + << " Continuing with the last entry" + << endl; + // fall-through to 'CLAMP' + } + case interpolationTable::CLAMP: + { + return List >::operator[](n-1).second(); + break; + } + case interpolationTable::REPEAT: + { + // adjust lookupValue <= maxLimit + while (lookupValue > maxLimit) + { + lookupValue -= maxLimit; + } + break; + } + } + } + + label lo = 0; + label hi = 0; + + // look for the correct range + for (label i = 0; i < n; ++i) + { + if (lookupValue >= List >::operator[](i).first()) + { + lo = hi = i; + } + else + { + hi = i; + break; + } + } + + if (lo == hi) + { + // we are at the end of the table - or there is only a single entry + return List >::operator[](hi).second(); + } + else if (hi == 0) + { + // this treatment should should only occur under these conditions: + // -> the 'REPEAT' treatment + // -> (0 <= value <= minLimit) + // -> minLimit > 0 + // Use the value at maxLimit as the value for value=0 + lo = n - 1; + + return + ( + List >::operator[](lo).second() + + ( + List >::operator[](hi).second() + - List >::operator[](lo).second() + ) + *(lookupValue / minLimit) + ); + } + else + { + // normal interpolation + return + ( + List >::operator[](lo).second() + + ( + List >::operator[](hi).second() + - List >::operator[](lo).second() + ) + *( + lookupValue + - List >::operator[](lo).first() + ) + /( + List >::operator[](hi).first() + - List >::operator[](lo).first() + ) + ); + } +} + + +// ************************************************************************* // diff --git a/src/OpenFOAM/interpolations/timeSeries/timeSeries.H b/src/OpenFOAM/interpolations/interpolationTable/interpolationTable.H similarity index 57% rename from src/OpenFOAM/interpolations/timeSeries/timeSeries.H rename to src/OpenFOAM/interpolations/interpolationTable/interpolationTable.H index 09433e3ff9..207e19f91c 100644 --- a/src/OpenFOAM/interpolations/timeSeries/timeSeries.H +++ b/src/OpenFOAM/interpolations/interpolationTable/interpolationTable.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::timeSeries + Foam::interpolationTable Description A list of times and values. @@ -40,12 +40,12 @@ Note - Accessing a list with a single element will always return the same value. SourceFiles - timeSeries.C + interpolationTable.C \*---------------------------------------------------------------------------*/ -#ifndef timeSeries_H -#define timeSeries_H +#ifndef interpolationTable_H +#define interpolationTable_H #include "List.H" #include "Tuple2.H" @@ -55,21 +55,23 @@ SourceFiles namespace Foam { +class objectRegistry; + /*---------------------------------------------------------------------------*\ - Class timeSeries Declaration + Class interpolationTable Declaration \*---------------------------------------------------------------------------*/ -template -class timeSeries +template +class interpolationTable : - public List > + public List > { public: // Public data types - //- Enumeration for handling out-of-bound times - enum bounds + //- Enumeration for handling out-of-bound values + enum boundActions { ERROR, /*!< Exit with a FatalError */ WARN, /*!< Issue warning and clamp value (default) */ @@ -77,86 +79,96 @@ public: REPEAT /*!< Treat as a repeating list */ }; + private: // Private data - //- Enumeration for handling out-of-bound times - bounds bounding_; + //- Parent dictionary + const dictionary& dict_; + + //- Enumeration for handling out-of-bound values + boundActions boundAction_; + + //- File name + fileName fileName_; + public: // Constructors - //- Construct null, optionally with a given bounding - timeSeries(const bounds = timeSeries::WARN); + //- Construct null + interpolationTable(); - //- Construct null with a given bounding - timeSeries(const word&); + //- Construct from objectRegistry and dictionary + interpolationTable(const objectRegistry& obr, const dictionary& dict); - //- Construct from Istream, optionally with a given bounding - timeSeries(Istream&, const bounds = timeSeries::WARN); + //- Construct copy + interpolationTable(const interpolationTable& interpTable); - //- Construct from Istream with a given bounding - timeSeries(Istream&, const word&); - // Destructor + //- Destructor + ~interpolationTable(); - ~timeSeries(); // Member Functions - // Access + // Access - //- Return the size - label size() const - { - return List >::size(); - } + //- Return the size + label size() const + { + return List >::size(); + } - //- Return the out-of-bounds treatment as a word - word bounding() const; + //- Return the out-of-bounds treatment as a word + word boundActionToWord(const boundActions& bound) const; - // Check + //- Return the out-of-bounds treatment as an enumeration + boundActions wordToBoundAction(const word& bound) const; - //- Check that list is monotonically increasing - // Exit with a FatalError if there is a problem - void check() const; - // Edit + // Check - //- Set the out-of-bounds treatment from enum, return previous setting - bounds bounding(const bounds& bound) - { - bounds prev = bounding_; - bounding_ = bound; - return prev; - } + //- Check that list is monotonically increasing + // Exit with a FatalError if there is a problem + void check() const; - //- Set the out-of-bounds treatment from word - void bounding(const word& bound); - // Member Operators + // Edit - //- Return an element of constant Tuple2 - const Tuple2& operator[](const label) const; + //- Set the out-of-bounds treatment from enum, return previous + // setting + boundActions boundAction(const boundActions& bound); - //- Return an interpolated value - T operator()(const scalar) const; + // Member Operators + + //- Return an element of constant Tuple2 + const Tuple2& operator[](const label) const; + + //- Return an interpolated value + Type operator()(const scalar) const; + + + // I-O + + //- Write + void write(Ostream& os) const; }; + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // } // End namespace Foam // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - #ifdef NoRepository -# include "timeSeries.C" +# include "interpolationTable.C" #endif #endif + // ************************************************************************* // diff --git a/src/OpenFOAM/interpolations/timeSeries/timeSeries.C b/src/OpenFOAM/interpolations/timeSeries/timeSeries.C deleted file mode 100644 index a886251c67..0000000000 --- a/src/OpenFOAM/interpolations/timeSeries/timeSeries.C +++ /dev/null @@ -1,402 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM 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 2 of the License, or (at your - option) any later version. - - OpenFOAM 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 OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "timeSeries.H" -#include "Istream.H" - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -template -Foam::timeSeries::timeSeries(const bounds bound) -: - List >(), - bounding_(bound) -{} - - -template -Foam::timeSeries::timeSeries(const word& bound) -: - List >(), - bounding_(timeSeries::WARN) -{ - bounding(bound); -} - - -template -Foam::timeSeries::timeSeries(Istream& is, const bounds bound) -: - List >(is), - bounding_(bound) -{} - - -template -Foam::timeSeries::timeSeries(Istream& is, const word& bound) -: - List >(is), - bounding_(timeSeries::WARN) -{ - bounding(bound); -} - - -// * * * * * * * * * * * * * * * * Selectors * * * * * * * * * * * * * * * * // - -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -template -Foam::timeSeries::~timeSeries() -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -template -Foam::word Foam::timeSeries::bounding() const -{ - word enumName("warn"); - - switch (bounding_) - { - case timeSeries::ERROR: - enumName = "error"; - break; - - case timeSeries::WARN: - enumName = "warn"; - break; - - case timeSeries::CLAMP: - enumName = "clamp"; - break; - - case timeSeries::REPEAT: - enumName = "repeat"; - break; - } - - return enumName; -} - - -template -void Foam::timeSeries::bounding(const word& bound) -{ - if (bound == "error") - { - bounding_ = timeSeries::ERROR; - } - else if (bound == "warn") - { - bounding_ = timeSeries::WARN; - } - else if (bound == "clamp") - { - bounding_ = timeSeries::CLAMP; - } - else if (bound == "repeat") - { - bounding_ = timeSeries::REPEAT; - } - else - { - WarningIn("Foam::timeSeries::boundingEnum(const word&)") - << "bad bounding specifier " << bound << " using 'warn'" << endl; - - bounding_ = timeSeries::WARN; - } -} - - -template -void Foam::timeSeries::check() const -{ - label n = size(); - scalar prevTime = List >::operator[](0).first(); - - for (label i = 1; i < n; ++i) - { - const scalar currTime = List >::operator[](i).first(); - - // avoid duplicate times (divide-by-zero error) - if (currTime <= prevTime) - { - FatalErrorIn - ( - "Foam::timeSeries::checkOrder() const" - ) << "out-of-order time: " - << currTime << " at index " << i << nl - << exit(FatalError); - } - prevTime = currTime; - } -} - - -// * * * * * * * * * * * * * * * Member Operators * * * * * * * * * * * * * // - - -template -const Foam::Tuple2& -Foam::timeSeries::operator[](const label i) const -{ - label ii = i; - label n = size(); - - if (n <= 1) - { - ii = 0; - } - else if (ii < 0) - { - switch (bounding_) - { - case timeSeries::ERROR: - FatalErrorIn - ( - "Foam::timeSeries::operator[](const label) const" - ) << "index (" << ii << ") underflow" << nl - << exit(FatalError); - break; - - case timeSeries::WARN: - WarningIn - ( - "Foam::timeSeries::operator[](const label) const" - ) << "index (" << ii << ") underflow" << nl - << " Continuing with the first entry" - << endl; - // fall-through to 'CLAMP' - - case timeSeries::CLAMP: - ii = 0; - break; - - case timeSeries::REPEAT: - while (ii < 0) - { - ii += n; - } - break; - } - } - else if (ii >= n) - { - switch (bounding_) - { - case timeSeries::ERROR: - FatalErrorIn - ( - "Foam::timeSeries::operator[](const label) const" - ) << "index (" << ii << ") overflow" << nl - << exit(FatalError); - break; - - case timeSeries::WARN: - WarningIn - ( - "Foam::timeSeries::operator[](const label) const" - ) << "index (" << ii << ") overflow" << nl - << " Continuing with the last entry" - << endl; - // fall-through to 'CLAMP' - - case timeSeries::CLAMP: - ii = n - 1; - break; - - case timeSeries::REPEAT: - while (ii >= n) - { - ii -= n; - } - break; - } - } - - return List >::operator[](ii); -} - - -template -T Foam::timeSeries::operator()(const scalar timeValue) const -{ - label n = size(); - - if (n <= 1) - { - return List >::operator[](0).second(); - } - - scalar minTime = List >::operator[](0).first(); - scalar maxTime = List >::operator[](n-1).first(); - scalar lookupTime = timeValue; - - if (lookupTime < minTime) - { - switch (bounding_) - { - case timeSeries::ERROR: - FatalErrorIn - ( - "Foam::timeSeries::operator[](const scalar) const" - ) << "time (" << lookupTime << ") underflow" << nl - << exit(FatalError); - break; - - case timeSeries::WARN: - WarningIn - ( - "Foam::timeSeries::operator[](const scalar) const" - ) << "time (" << lookupTime << ") underflow" << nl - << " Continuing with the first entry" - << endl; - // fall-through to 'CLAMP' - - case timeSeries::CLAMP: - return List >::operator[](0).second(); - break; - - case timeSeries::REPEAT: - // adjust lookupTime to >= 0 - while (lookupTime < 0) - { - lookupTime += maxTime; - } - break; - } - } - else if (lookupTime >= maxTime) - { - switch (bounding_) - { - case timeSeries::ERROR: - FatalErrorIn - ( - "Foam::timeSeries::operator[](const label) const" - ) << "time (" << lookupTime << ") overflow" << nl - << exit(FatalError); - break; - - case timeSeries::WARN: - WarningIn - ( - "Foam::timeSeries::operator[](const label) const" - ) << "time (" << lookupTime << ") overflow" << nl - << " Continuing with the last entry" - << endl; - // fall-through to 'CLAMP' - - case timeSeries::CLAMP: - return List >::operator[](n-1).second(); - break; - - case timeSeries::REPEAT: - // adjust lookupTime <= maxTime - while (lookupTime > maxTime) - { - lookupTime -= maxTime; - } - break; - } - } - - label lo = 0; - label hi = 0; - - // look for the correct range - for (label i = 0; i < n; ++i) - { - if (lookupTime >= List >::operator[](i).first()) - { - lo = hi = i; - } - else - { - hi = i; - break; - } - } - - if (lo == hi) - { - // we are at the end of the table - or there is only a single entry - return List >::operator[](hi).second(); - } - else if (hi == 0) - { - // this treatment should should only occur under these condition: - // -> the 'REPEAT' treatment - // -> (0 <= time <= minTime) - // -> minTime > 0 - // Use the value at maxTime as the value for time=0 - lo = n - 1; - - return - ( - List >::operator[](lo).second() - + - ( - List >::operator[](hi).second() - - List >::operator[](lo).second() - ) - * (lookupTime / minTime) - ); - } - else - { - // normal interpolation - return - ( - List >::operator[](lo).second() - + - ( - List >::operator[](hi).second() - - List >::operator[](lo).second() - ) - * - ( - lookupTime - - List >::operator[](lo).first() - ) - / - ( - List >::operator[](hi).first() - - List >::operator[](lo).first() - ) - ); - } -} - - -// ************************************************************************* // diff --git a/src/finiteVolume/Make/files b/src/finiteVolume/Make/files index d0e560c73b..d4a3e0ff78 100644 --- a/src/finiteVolume/Make/files +++ b/src/finiteVolume/Make/files @@ -78,7 +78,7 @@ $(derivedFvPatchFields)/freestream/freestreamFvPatchFields.C $(derivedFvPatchFields)/freestreamPressure/freestreamPressureFvPatchScalarField.C $(derivedFvPatchFields)/inletOutlet/inletOutletFvPatchFields.C $(derivedFvPatchFields)/inletOutletTotalTemperature/inletOutletTotalTemperatureFvPatchScalarField.C -$(derivedFvPatchFields)/massFlowRateInletVelocity/massFlowRateInletVelocityFvPatchVectorField.C +$(derivedFvPatchFields)/flowRateInletVelocity/flowRateInletVelocityFvPatchVectorField.C $(derivedFvPatchFields)/movingWallVelocity/movingWallVelocityFvPatchVectorField.C $(derivedFvPatchFields)/oscillatingFixedValue/oscillatingFixedValueFvPatchFields.C $(derivedFvPatchFields)/outletInlet/outletInletFvPatchFields.C @@ -96,7 +96,7 @@ $(derivedFvPatchFields)/surfaceNormalFixedValue/surfaceNormalFixedValueFvPatchVe $(derivedFvPatchFields)/syringePressure/syringePressureFvPatchScalarField.C $(derivedFvPatchFields)/timeVaryingMappedFixedValue/AverageIOFields.C $(derivedFvPatchFields)/timeVaryingMappedFixedValue/timeVaryingMappedFixedValueFvPatchFields.C -$(derivedFvPatchFields)/timeVaryingMassFlowRateInletVelocity/timeVaryingMassFlowRateInletVelocityFvPatchVectorField.C +$(derivedFvPatchFields)/timeVaryingFlowRateInletVelocity/timeVaryingFlowRateInletVelocityFvPatchVectorField.C $(derivedFvPatchFields)/timeVaryingUniformFixedValue/timeVaryingUniformFixedValueFvPatchFields.C $(derivedFvPatchFields)/totalPressure/totalPressureFvPatchScalarField.C $(derivedFvPatchFields)/timeVaryingUniformTotalPressure/timeVaryingUniformTotalPressureFvPatchScalarField.C diff --git a/src/finiteVolume/fields/fvPatchFields/derived/massFlowRateInletVelocity/massFlowRateInletVelocityFvPatchVectorField.C b/src/finiteVolume/fields/fvPatchFields/derived/flowRateInletVelocity/flowRateInletVelocityFvPatchVectorField.C similarity index 75% rename from src/finiteVolume/fields/fvPatchFields/derived/massFlowRateInletVelocity/massFlowRateInletVelocityFvPatchVectorField.C rename to src/finiteVolume/fields/fvPatchFields/derived/flowRateInletVelocity/flowRateInletVelocityFvPatchVectorField.C index 393cac55d0..c3427b4bde 100644 --- a/src/finiteVolume/fields/fvPatchFields/derived/massFlowRateInletVelocity/massFlowRateInletVelocityFvPatchVectorField.C +++ b/src/finiteVolume/fields/fvPatchFields/derived/flowRateInletVelocity/flowRateInletVelocityFvPatchVectorField.C @@ -24,7 +24,7 @@ License \*---------------------------------------------------------------------------*/ -#include "massFlowRateInletVelocityFvPatchVectorField.H" +#include "flowRateInletVelocityFvPatchVectorField.H" #include "volFields.H" #include "addToRunTimeSelectionTable.H" #include "fvPatchFieldMapper.H" @@ -33,38 +33,40 @@ License // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // Foam:: -massFlowRateInletVelocityFvPatchVectorField:: -massFlowRateInletVelocityFvPatchVectorField +flowRateInletVelocityFvPatchVectorField:: +flowRateInletVelocityFvPatchVectorField ( const fvPatch& p, const DimensionedField& iF ) : fixedValueFvPatchField(p, iF), - massFlowRate_(0), + flowRate_(0), phiName_("phi"), rhoName_("rho") {} + Foam:: -massFlowRateInletVelocityFvPatchVectorField:: -massFlowRateInletVelocityFvPatchVectorField +flowRateInletVelocityFvPatchVectorField:: +flowRateInletVelocityFvPatchVectorField ( - const massFlowRateInletVelocityFvPatchVectorField& ptf, + const flowRateInletVelocityFvPatchVectorField& ptf, const fvPatch& p, const DimensionedField& iF, const fvPatchFieldMapper& mapper ) : fixedValueFvPatchField(ptf, p, iF, mapper), - massFlowRate_(ptf.massFlowRate_), + flowRate_(ptf.flowRate_), phiName_(ptf.phiName_), rhoName_(ptf.rhoName_) {} + Foam:: -massFlowRateInletVelocityFvPatchVectorField:: -massFlowRateInletVelocityFvPatchVectorField +flowRateInletVelocityFvPatchVectorField:: +flowRateInletVelocityFvPatchVectorField ( const fvPatch& p, const DimensionedField& iF, @@ -72,7 +74,7 @@ massFlowRateInletVelocityFvPatchVectorField ) : fixedValueFvPatchField(p, iF, dict), - massFlowRate_(readScalar(dict.lookup("massFlowRate"))), + flowRate_(readScalar(dict.lookup("flowRate"))), phiName_("phi"), rhoName_("rho") { @@ -87,29 +89,31 @@ massFlowRateInletVelocityFvPatchVectorField } } + Foam:: -massFlowRateInletVelocityFvPatchVectorField:: -massFlowRateInletVelocityFvPatchVectorField +flowRateInletVelocityFvPatchVectorField:: +flowRateInletVelocityFvPatchVectorField ( - const massFlowRateInletVelocityFvPatchVectorField& ptf + const flowRateInletVelocityFvPatchVectorField& ptf ) : fixedValueFvPatchField(ptf), - massFlowRate_(ptf.massFlowRate_), + flowRate_(ptf.flowRate_), phiName_(ptf.phiName_), rhoName_(ptf.rhoName_) {} + Foam:: -massFlowRateInletVelocityFvPatchVectorField:: -massFlowRateInletVelocityFvPatchVectorField +flowRateInletVelocityFvPatchVectorField:: +flowRateInletVelocityFvPatchVectorField ( - const massFlowRateInletVelocityFvPatchVectorField& ptf, + const flowRateInletVelocityFvPatchVectorField& ptf, const DimensionedField& iF ) : fixedValueFvPatchField(ptf, iF), - massFlowRate_(ptf.massFlowRate_), + flowRate_(ptf.flowRate_), phiName_(ptf.phiName_), rhoName_(ptf.rhoName_) {} @@ -117,7 +121,7 @@ massFlowRateInletVelocityFvPatchVectorField // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // -void Foam::massFlowRateInletVelocityFvPatchVectorField::updateCoeffs() +void Foam::flowRateInletVelocityFvPatchVectorField::updateCoeffs() { if (updated()) { @@ -125,7 +129,7 @@ void Foam::massFlowRateInletVelocityFvPatchVectorField::updateCoeffs() } // a simpler way of doing this would be nice - scalar avgU = -massFlowRate_/gSum(patch().magSf()); + scalar avgU = -flowRate_/gSum(patch().magSf()); vectorField n = patch().nf(); @@ -151,23 +155,23 @@ void Foam::massFlowRateInletVelocityFvPatchVectorField::updateCoeffs() { FatalErrorIn ( - "massFlowRateInletVelocityFvPatchVectorField::updateCoeffs()" + "flowRateInletVelocityFvPatchVectorField::updateCoeffs()" ) << "dimensions of phi are incorrect" << "\n on patch " << this->patch().name() << " of field " << this->dimensionedInternalField().name() << " in file " << this->dimensionedInternalField().objectPath() - << exit(FatalError); + << nl << exit(FatalError); } fixedValueFvPatchField::updateCoeffs(); } -void Foam::massFlowRateInletVelocityFvPatchVectorField::write(Ostream& os) const +void Foam::flowRateInletVelocityFvPatchVectorField::write(Ostream& os) const { fvPatchField::write(os); - os.writeKeyword("massFlowRate") << massFlowRate_ + os.writeKeyword("flowRate") << flowRate_ << token::END_STATEMENT << nl; if (phiName_ != "phi") @@ -191,7 +195,7 @@ namespace Foam makePatchTypeField ( fvPatchVectorField, - massFlowRateInletVelocityFvPatchVectorField + flowRateInletVelocityFvPatchVectorField ); } diff --git a/src/finiteVolume/fields/fvPatchFields/derived/massFlowRateInletVelocity/massFlowRateInletVelocityFvPatchVectorField.H b/src/finiteVolume/fields/fvPatchFields/derived/flowRateInletVelocity/flowRateInletVelocityFvPatchVectorField.H similarity index 70% rename from src/finiteVolume/fields/fvPatchFields/derived/massFlowRateInletVelocity/massFlowRateInletVelocityFvPatchVectorField.H rename to src/finiteVolume/fields/fvPatchFields/derived/flowRateInletVelocity/flowRateInletVelocityFvPatchVectorField.H index 8171e24db6..b0c8de9b2f 100644 --- a/src/finiteVolume/fields/fvPatchFields/derived/massFlowRateInletVelocity/massFlowRateInletVelocityFvPatchVectorField.H +++ b/src/finiteVolume/fields/fvPatchFields/derived/flowRateInletVelocity/flowRateInletVelocityFvPatchVectorField.H @@ -23,19 +23,22 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::massFlowRateInletVelocityFvPatchVectorField + Foam::flowRateInletVelocityFvPatchVectorField Description - Describes an massflow normal vector boundary condition by its magnitude - as an integral over its area. - The current density is used to correct the velocity. + Describes an volumetric/mass flow normal vector boundary condition by its + magnitude as an integral over its area. + The basis of the patch (volumetric or mass) is determined by the + dimensions of the flux, phi. + The current density is used to correct the velocity when applying the mass + basis. Example of the boundary condition specification: @verbatim inlet { - type massFlowRateInletVelocity; - massFlowRate 0.2; // Mass flow rate [kg/s] + type flowRateInletVelocity; + flowRate 0.2; // Volumetric/mass flow rate [m3/s or kg/s] value uniform (0 0 0); // placeholder } @endverbatim @@ -46,12 +49,12 @@ Note - Strange behaviour with potentialFoam since the U equation is not solved SourceFiles - massFlowRateInletVelocityFvPatchVectorField.C + flowRateInletVelocityFvPatchVectorField.C \*---------------------------------------------------------------------------*/ -#ifndef massFlowRateInletVelocityFvPatchVectorField_H -#define massFlowRateInletVelocityFvPatchVectorField_H +#ifndef flowRateInletVelocityFvPatchVectorField_H +#define flowRateInletVelocityFvPatchVectorField_H #include "fixedValueFvPatchFields.H" @@ -60,17 +63,17 @@ SourceFiles namespace Foam { /*---------------------------------------------------------------------------*\ - Class massFlowRateInletVelocityFvPatch Declaration + Class flowRateInletVelocityFvPatch Declaration \*---------------------------------------------------------------------------*/ -class massFlowRateInletVelocityFvPatchVectorField +class flowRateInletVelocityFvPatchVectorField : public fixedValueFvPatchVectorField { // Private data - //- Inlet integral mass flow rate - scalar massFlowRate_; + //- Inlet integral flow rate + scalar flowRate_; //- Name of the flux transporting the field word phiName_; @@ -82,20 +85,20 @@ class massFlowRateInletVelocityFvPatchVectorField public: //- Runtime type information - TypeName("massFlowRateInletVelocity"); + TypeName("flowRateInletVelocity"); // Constructors //- Construct from patch and internal field - massFlowRateInletVelocityFvPatchVectorField + flowRateInletVelocityFvPatchVectorField ( const fvPatch&, const DimensionedField& ); //- Construct from patch, internal field and dictionary - massFlowRateInletVelocityFvPatchVectorField + flowRateInletVelocityFvPatchVectorField ( const fvPatch&, const DimensionedField&, @@ -103,20 +106,20 @@ public: ); //- Construct by mapping given - // massFlowRateInletVelocityFvPatchVectorField + // flowRateInletVelocityFvPatchVectorField // onto a new patch - massFlowRateInletVelocityFvPatchVectorField + flowRateInletVelocityFvPatchVectorField ( - const massFlowRateInletVelocityFvPatchVectorField&, + const flowRateInletVelocityFvPatchVectorField&, const fvPatch&, const DimensionedField&, const fvPatchFieldMapper& ); //- Construct as copy - massFlowRateInletVelocityFvPatchVectorField + flowRateInletVelocityFvPatchVectorField ( - const massFlowRateInletVelocityFvPatchVectorField& + const flowRateInletVelocityFvPatchVectorField& ); //- Construct and return a clone @@ -124,14 +127,14 @@ public: { return tmp ( - new massFlowRateInletVelocityFvPatchVectorField(*this) + new flowRateInletVelocityFvPatchVectorField(*this) ); } //- Construct as copy setting internal field reference - massFlowRateInletVelocityFvPatchVectorField + flowRateInletVelocityFvPatchVectorField ( - const massFlowRateInletVelocityFvPatchVectorField&, + const flowRateInletVelocityFvPatchVectorField&, const DimensionedField& ); @@ -143,7 +146,7 @@ public: { return tmp ( - new massFlowRateInletVelocityFvPatchVectorField(*this, iF) + new flowRateInletVelocityFvPatchVectorField(*this, iF) ); } @@ -152,16 +155,16 @@ public: // Access - //- Return the mass flux - scalar massFlowRate() const + //- Return the flux + scalar flowRate() const { - return massFlowRate_; + return flowRate_; } - //- Return reference to the mass flux to allow adjustment - scalar& massFlowRate() + //- Return reference to the flux to allow adjustment + scalar& flowRate() { - return massFlowRate_; + return flowRate_; } diff --git a/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingFlowRateInletVelocity/timeVaryingFlowRateInletVelocityFvPatchVectorField.C b/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingFlowRateInletVelocity/timeVaryingFlowRateInletVelocityFvPatchVectorField.C new file mode 100644 index 0000000000..f492d86c77 --- /dev/null +++ b/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingFlowRateInletVelocity/timeVaryingFlowRateInletVelocityFvPatchVectorField.C @@ -0,0 +1,141 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2006-2008 OpenCFD Ltd. + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM 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 2 of the License, or (at your + option) any later version. + + OpenFOAM 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 OpenFOAM; if not, write to the Free Software Foundation, + Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +\*---------------------------------------------------------------------------*/ + +#include "timeVaryingFlowRateInletVelocityFvPatchVectorField.H" +#include "volFields.H" +#include "addToRunTimeSelectionTable.H" +#include "fvPatchFieldMapper.H" +#include "surfaceFields.H" +#include "Time.H" +#include "IFstream.H" + +// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // + +Foam:: +timeVaryingFlowRateInletVelocityFvPatchVectorField:: +timeVaryingFlowRateInletVelocityFvPatchVectorField +( + const fvPatch& p, + const DimensionedField& iF +) +: + flowRateInletVelocityFvPatchVectorField(p, iF), + timeSeries_() +{} + + +Foam:: +timeVaryingFlowRateInletVelocityFvPatchVectorField:: +timeVaryingFlowRateInletVelocityFvPatchVectorField +( + const timeVaryingFlowRateInletVelocityFvPatchVectorField& ptf, + const fvPatch& p, + const DimensionedField& iF, + const fvPatchFieldMapper& mapper +) +: + flowRateInletVelocityFvPatchVectorField(ptf, p, iF, mapper), + timeSeries_(ptf.timeSeries_) +{} + + +Foam:: +timeVaryingFlowRateInletVelocityFvPatchVectorField:: +timeVaryingFlowRateInletVelocityFvPatchVectorField +( + const fvPatch& p, + const DimensionedField& iF, + const dictionary& dict +) +: + flowRateInletVelocityFvPatchVectorField(p, iF, dict), + timeSeries_(this->db(), dict) +{} + + +Foam:: +timeVaryingFlowRateInletVelocityFvPatchVectorField:: +timeVaryingFlowRateInletVelocityFvPatchVectorField +( + const timeVaryingFlowRateInletVelocityFvPatchVectorField& ptf +) +: + flowRateInletVelocityFvPatchVectorField(ptf), + timeSeries_(ptf.timeSeries_) +{} + + +Foam:: +timeVaryingFlowRateInletVelocityFvPatchVectorField:: +timeVaryingFlowRateInletVelocityFvPatchVectorField +( + const timeVaryingFlowRateInletVelocityFvPatchVectorField& ptf, + const DimensionedField& iF +) +: + flowRateInletVelocityFvPatchVectorField(ptf, iF), + timeSeries_(ptf.timeSeries_) +{} + + +// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // + +void Foam:: +timeVaryingFlowRateInletVelocityFvPatchVectorField:: +updateCoeffs() +{ + if (updated()) + { + return; + } + + flowRate() = timeSeries_(this->db().time().timeOutputValue()); + flowRateInletVelocityFvPatchVectorField::updateCoeffs(); +} + + +void Foam:: +timeVaryingFlowRateInletVelocityFvPatchVectorField:: +write(Ostream& os) const +{ + flowRateInletVelocityFvPatchVectorField::write(os); + timeSeries_.write(os); +} + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + makePatchTypeField + ( + fvPatchVectorField, + timeVaryingFlowRateInletVelocityFvPatchVectorField + ); +} + + +// ************************************************************************* // diff --git a/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingMassFlowRateInletVelocity/timeVaryingMassFlowRateInletVelocityFvPatchVectorField.H b/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingFlowRateInletVelocity/timeVaryingFlowRateInletVelocityFvPatchVectorField.H similarity index 66% rename from src/finiteVolume/fields/fvPatchFields/derived/timeVaryingMassFlowRateInletVelocity/timeVaryingMassFlowRateInletVelocityFvPatchVectorField.H rename to src/finiteVolume/fields/fvPatchFields/derived/timeVaryingFlowRateInletVelocity/timeVaryingFlowRateInletVelocityFvPatchVectorField.H index f400c9ce4a..5713450f91 100644 --- a/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingMassFlowRateInletVelocity/timeVaryingMassFlowRateInletVelocityFvPatchVectorField.H +++ b/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingFlowRateInletVelocity/timeVaryingFlowRateInletVelocityFvPatchVectorField.H @@ -23,19 +23,19 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::timeVaryingMassFlowRateInletVelocityFvPatchVectorField + Foam::timeVaryingFlowRateInletVelocityFvPatchVectorField Description - A time-varying form of a massflow normal vector boundary condition. + A time-varying form of a flow normal vector boundary condition. Example of the boundary condition specification: @verbatim inlet { - type timeVaryingMassFlowRateInletVelocity; - massFlowRate 0.2; // Massflow rate [kg/s] + type timeVaryingFlowRateInletVelocity; + flowRate 0.2; // Volumetric/mass flow rate [m3/s or kg/s] value uniform (0 0 0); // placeholder - timeDataFile "time-series"; + fileName "time-series"; timeBounding repeat; // (error|warn|clamp|repeat) } @endverbatim @@ -46,58 +46,54 @@ Note - strange behaviour with potentialFoam since the U equation is not solved See Also - Foam::timeSeries and Foam::massFlowRateInletVelocityFvPatchVectorField + Foam::timeSeries and Foam::flowRateInletVelocityFvPatchVectorField SourceFiles - timeVaryingMassFlowRateInletVelocityFvPatchVectorField.C + timeVaryingFlowRateInletVelocityFvPatchVectorField.C \*---------------------------------------------------------------------------*/ -#ifndef timeVaryingMassFlowRateInletVelocityFvPatchVectorField_H -#define timeVaryingMassFlowRateInletVelocityFvPatchVectorField_H +#ifndef timeVaryingFlowRateInletVelocityFvPatchVectorField_H +#define timeVaryingFlowRateInletVelocityFvPatchVectorField_H + +#include "flowRateInletVelocityFvPatchVectorField.H" +#include "interpolationTable.H" -#include "massFlowRateInletVelocityFvPatchVectorField.H" -#include "timeSeries.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // namespace Foam { /*---------------------------------------------------------------------------*\ - Class timeVaryingMassFlowRateInletVelocityFvPatch Declaration + Class timeVaryingFlowRateInletVelocityFvPatch Declaration \*---------------------------------------------------------------------------*/ -class timeVaryingMassFlowRateInletVelocityFvPatchVectorField +class timeVaryingFlowRateInletVelocityFvPatchVectorField : - public massFlowRateInletVelocityFvPatchVectorField + public flowRateInletVelocityFvPatchVectorField { // Private data - //- file containing time/massFlowRate - fileName timeDataFile_; - //- the time series being used, including the bounding treatment - timeSeries timeSeries_; + interpolationTable timeSeries_; - //- interpolate the value at the current time - scalar currentValue(); public: //- Runtime type information - TypeName("timeVaryingMassFlowRateInletVelocity"); + TypeName("timeVaryingFlowRateInletVelocity"); // Constructors //- Construct from patch and internal field - timeVaryingMassFlowRateInletVelocityFvPatchVectorField + timeVaryingFlowRateInletVelocityFvPatchVectorField ( const fvPatch&, const DimensionedField& ); //- Construct from patch, internal field and dictionary - timeVaryingMassFlowRateInletVelocityFvPatchVectorField + timeVaryingFlowRateInletVelocityFvPatchVectorField ( const fvPatch&, const DimensionedField&, @@ -105,18 +101,18 @@ public: ); //- Construct by mapping given patch field onto a new patch - timeVaryingMassFlowRateInletVelocityFvPatchVectorField + timeVaryingFlowRateInletVelocityFvPatchVectorField ( - const timeVaryingMassFlowRateInletVelocityFvPatchVectorField&, + const timeVaryingFlowRateInletVelocityFvPatchVectorField&, const fvPatch&, const DimensionedField&, const fvPatchFieldMapper& ); //- Construct as copy - timeVaryingMassFlowRateInletVelocityFvPatchVectorField + timeVaryingFlowRateInletVelocityFvPatchVectorField ( - const timeVaryingMassFlowRateInletVelocityFvPatchVectorField& + const timeVaryingFlowRateInletVelocityFvPatchVectorField& ); //- Construct and return a clone @@ -124,14 +120,14 @@ public: { return tmp ( - new timeVaryingMassFlowRateInletVelocityFvPatchVectorField(*this) + new timeVaryingFlowRateInletVelocityFvPatchVectorField(*this) ); } //- Construct as copy setting internal field reference - timeVaryingMassFlowRateInletVelocityFvPatchVectorField + timeVaryingFlowRateInletVelocityFvPatchVectorField ( - const timeVaryingMassFlowRateInletVelocityFvPatchVectorField&, + const timeVaryingFlowRateInletVelocityFvPatchVectorField&, const DimensionedField& ); @@ -143,34 +139,34 @@ public: { return tmp ( - new timeVaryingMassFlowRateInletVelocityFvPatchVectorField(*this, iF) + new timeVaryingFlowRateInletVelocityFvPatchVectorField + ( + *this, + iF + ) ); } + // Member functions // Access - //- Return the out-of-bounds treatment as a word - word timeBounding() const - { - return timeSeries_.bounding(); - } - //- Return the time series used - const timeSeries& timeData() const + const interpolationTable& timeSeries() const { return timeSeries_; } + // Evaluation functions //- Update the coefficients associated with the patch field virtual void updateCoeffs(); + //- Write virtual void write(Ostream&) const; - }; diff --git a/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingMassFlowRateInletVelocity/timeVaryingMassFlowRateInletVelocityFvPatchVectorField.C b/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingMassFlowRateInletVelocity/timeVaryingMassFlowRateInletVelocityFvPatchVectorField.C deleted file mode 100644 index 9526998a57..0000000000 --- a/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingMassFlowRateInletVelocity/timeVaryingMassFlowRateInletVelocityFvPatchVectorField.C +++ /dev/null @@ -1,200 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 2006-2008 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM 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 2 of the License, or (at your - option) any later version. - - OpenFOAM 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 OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "timeVaryingMassFlowRateInletVelocityFvPatchVectorField.H" -#include "volFields.H" -#include "addToRunTimeSelectionTable.H" -#include "fvPatchFieldMapper.H" -#include "surfaceFields.H" -#include "Time.H" -#include "IFstream.H" - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -Foam:: -timeVaryingMassFlowRateInletVelocityFvPatchVectorField:: -timeVaryingMassFlowRateInletVelocityFvPatchVectorField -( - const fvPatch& p, - const DimensionedField& iF -) -: - massFlowRateInletVelocityFvPatchVectorField(p, iF) -{} - - -Foam:: -timeVaryingMassFlowRateInletVelocityFvPatchVectorField:: -timeVaryingMassFlowRateInletVelocityFvPatchVectorField -( - const timeVaryingMassFlowRateInletVelocityFvPatchVectorField& ptf, - const fvPatch& p, - const DimensionedField& iF, - const fvPatchFieldMapper& mapper -) -: - massFlowRateInletVelocityFvPatchVectorField(ptf, p, iF, mapper), - timeDataFile_(ptf.timeDataFile_), - timeSeries_(ptf.timeBounding()) -{} - - -Foam:: -timeVaryingMassFlowRateInletVelocityFvPatchVectorField:: -timeVaryingMassFlowRateInletVelocityFvPatchVectorField -( - const fvPatch& p, - const DimensionedField& iF, - const dictionary& dict -) -: - massFlowRateInletVelocityFvPatchVectorField(p, iF, dict), - timeDataFile_(dict.lookup("timeDataFile")), - timeSeries_(word(dict.lookup("timeBounding"))) -{} - - -Foam:: -timeVaryingMassFlowRateInletVelocityFvPatchVectorField:: -timeVaryingMassFlowRateInletVelocityFvPatchVectorField -( - const timeVaryingMassFlowRateInletVelocityFvPatchVectorField& ptf -) -: - massFlowRateInletVelocityFvPatchVectorField(ptf), - timeDataFile_(ptf.timeDataFile_), - timeSeries_(ptf.timeBounding()) -{} - - -Foam:: -timeVaryingMassFlowRateInletVelocityFvPatchVectorField:: -timeVaryingMassFlowRateInletVelocityFvPatchVectorField -( - const timeVaryingMassFlowRateInletVelocityFvPatchVectorField& ptf, - const DimensionedField& iF -) -: - massFlowRateInletVelocityFvPatchVectorField(ptf, iF), - timeDataFile_(ptf.timeDataFile_), - timeSeries_(ptf.timeBounding()) -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -Foam::scalar -Foam::timeVaryingMassFlowRateInletVelocityFvPatchVectorField:: -currentValue() -{ - if (timeSeries_.size() == 0) - { - fileName fName(timeDataFile_); - fName.expand(); - - if (fName.size() == 0) - { - FatalErrorIn - ( - "timeVaryingMassFlowRateInletVelocity" - "::currentValue()" - ) << "timeDataFile not specified for Patch " - << this->patch().name() - << exit(FatalError); - } - else - { - // relative path - if (fName[0] != '/') - { - fName = this->db().path()/fName; - } - - // just in case we change the interface to timeSeries - word boundType = timeBounding(); - - IFstream(fName)() >> timeSeries_; - timeSeries_.bounding(boundType); - - // be a bit paranoid and check that the list is okay - timeSeries_.check(); - } - - if (timeSeries_.size() == 0) - { - FatalErrorIn - ( - "timeVaryingMassFlowRateInletVelocity" - "::currentValue()" - ) << "empty time series for Patch " - << this->patch().name() - << exit(FatalError); - } - } - - return timeSeries_(this->db().time().timeOutputValue()); -} - - -void Foam:: -timeVaryingMassFlowRateInletVelocityFvPatchVectorField:: -updateCoeffs() -{ - if (updated()) - { - return; - } - - massFlowRate() = currentValue(); - massFlowRateInletVelocityFvPatchVectorField::updateCoeffs(); -} - - -void Foam:: -timeVaryingMassFlowRateInletVelocityFvPatchVectorField:: -write(Ostream& os) const -{ - massFlowRateInletVelocityFvPatchVectorField::write(os); - os.writeKeyword("timeDataFile") - << timeDataFile_ << token::END_STATEMENT << nl; - os.writeKeyword("timeBounding") - << timeBounding() << token::END_STATEMENT << nl; -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - makePatchTypeField - ( - fvPatchVectorField, - timeVaryingMassFlowRateInletVelocityFvPatchVectorField - ); -} - - -// ************************************************************************* // diff --git a/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingUniformFixedValue/timeVaryingUniformFixedValueFvPatchField.C b/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingUniformFixedValue/timeVaryingUniformFixedValueFvPatchField.C index 646ee136d5..dc09d678b2 100644 --- a/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingUniformFixedValue/timeVaryingUniformFixedValueFvPatchField.C +++ b/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingUniformFixedValue/timeVaryingUniformFixedValueFvPatchField.C @@ -38,7 +38,8 @@ timeVaryingUniformFixedValueFvPatchField const DimensionedField& iF ) : - fixedValueFvPatchField(p, iF) + fixedValueFvPatchField(p, iF), + timeSeries_() {} @@ -52,8 +53,7 @@ timeVaryingUniformFixedValueFvPatchField ) : fixedValueFvPatchField(p, iF), - timeDataFile_(dict.lookup("timeDataFile")), - timeSeries_(word(dict.lookup("timeBounding"))) + timeSeries_(this->db(), dict) { if (dict.found("value")) { @@ -77,8 +77,7 @@ timeVaryingUniformFixedValueFvPatchField ) : fixedValueFvPatchField(ptf, p, iF, mapper), - timeDataFile_(ptf.timeDataFile_), - timeSeries_(ptf.timeBounding()) + timeSeries_(ptf.timeSeries_) {} @@ -90,8 +89,7 @@ timeVaryingUniformFixedValueFvPatchField ) : fixedValueFvPatchField(ptf), - timeDataFile_(ptf.timeDataFile_), - timeSeries_(ptf.timeBounding()) + timeSeries_(ptf.timeSeries_) {} @@ -104,66 +102,12 @@ timeVaryingUniformFixedValueFvPatchField ) : fixedValueFvPatchField(ptf, iF), - timeDataFile_(ptf.timeDataFile_), - timeSeries_(ptf.timeBounding()) + timeSeries_(ptf.timeSeries_) {} // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // -template -Type Foam::timeVaryingUniformFixedValueFvPatchField:: -currentValue() -{ - if (timeSeries_.size() == 0) - { - fileName fName(timeDataFile_); - fName.expand(); - - if (fName.size() == 0) - { - FatalErrorIn - ( - "timeVaryingUniformFixedValueFvPatchField" - "::currentValue()" - ) << "timeDataFile not specified for Patch " - << this->patch().name() - << exit(FatalError); - } - else - { - // relative path - if (fName[0] != '/') - { - fName = this->db().path()/fName; - } - - // just in case we change the interface to timeSeries - word boundType = timeBounding(); - - IFstream(fName)() >> timeSeries_; - timeSeries_.bounding(boundType); - - // be a bit paranoid and check that the list is okay - timeSeries_.check(); - } - - if (timeSeries_.size() == 0) - { - FatalErrorIn - ( - "timeVaryingUniformFixedValueFvPatchField" - "::currentValue()" - ) << "empty time series for Patch " - << this->patch().name() - << exit(FatalError); - } - } - - return timeSeries_(this->db().time().timeOutputValue()); -} - - template void Foam::timeVaryingUniformFixedValueFvPatchField::updateCoeffs() { @@ -172,7 +116,10 @@ void Foam::timeVaryingUniformFixedValueFvPatchField::updateCoeffs() return; } - fvPatchField::operator==(currentValue()); + fvPatchField::operator== + ( + timeSeries_(this->db().time().timeOutputValue()) + ); fixedValueFvPatchField::updateCoeffs(); } @@ -184,10 +131,7 @@ void Foam::timeVaryingUniformFixedValueFvPatchField::write ) const { fvPatchField::write(os); - os.writeKeyword("timeDataFile") - << timeDataFile_ << token::END_STATEMENT << nl; - os.writeKeyword("timeBounding") - << timeBounding() << token::END_STATEMENT << nl; + timeSeries_.write(os); this->writeEntry("value", os); } diff --git a/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingUniformFixedValue/timeVaryingUniformFixedValueFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingUniformFixedValue/timeVaryingUniformFixedValueFvPatchField.H index 36f4b02e48..1491c0a53c 100644 --- a/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingUniformFixedValue/timeVaryingUniformFixedValueFvPatchField.H +++ b/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingUniformFixedValue/timeVaryingUniformFixedValueFvPatchField.H @@ -54,7 +54,7 @@ SourceFiles #define timeVaryingUniformFixedValueFvPatchField_H #include "fixedValueFvPatchField.H" -#include "timeSeries.H" +#include "interpolationTable.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -72,14 +72,8 @@ class timeVaryingUniformFixedValueFvPatchField { // Private data - //- File containing time/uniformFixedValue - fileName timeDataFile_; - //- The time series being used, including the bounding treatment - timeSeries timeSeries_; - - //- Interpolate the value at the current time - Type currentValue(); + interpolationTable timeSeries_; public: @@ -153,14 +147,8 @@ public: // Access - //- Return the out-of-bounds treatment as a word - word timeBounding() const - { - return timeSeries_.bounding(); - } - //- Return the time series used - const timeSeries& timeData() const + const interpolationTable& timeSeries() const { return timeSeries_; } diff --git a/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingUniformTotalPressure/timeVaryingUniformTotalPressureFvPatchScalarField.C b/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingUniformTotalPressure/timeVaryingUniformTotalPressureFvPatchScalarField.C index c7407adf98..711fccdbc6 100644 --- a/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingUniformTotalPressure/timeVaryingUniformTotalPressureFvPatchScalarField.C +++ b/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingUniformTotalPressure/timeVaryingUniformTotalPressureFvPatchScalarField.C @@ -46,8 +46,8 @@ timeVaryingUniformTotalPressureFvPatchScalarField rhoName_("undefined"), psiName_("undefined"), gamma_(0.0), - p0_(0.0) - + p0_(0.0), + totalPressureTimeSeries_() {} @@ -66,8 +66,7 @@ timeVaryingUniformTotalPressureFvPatchScalarField psiName_(dict.lookup("psi")), gamma_(readScalar(dict.lookup("gamma"))), p0_(readScalar(dict.lookup("p0"))), - totalPressureDataFileName_(dict.lookup("totalPressureDataFileName")), - totalPressureTimeSeries_(word(dict.lookup("timeBounding"))) + totalPressureTimeSeries_(this->db(), dict) { if (dict.found("value")) { @@ -99,8 +98,7 @@ timeVaryingUniformTotalPressureFvPatchScalarField psiName_(ptf.psiName_), gamma_(ptf.gamma_), p0_(ptf.p0_), - totalPressureDataFileName_(ptf.totalPressureDataFileName_), - totalPressureTimeSeries_(ptf.timeBounding()) + totalPressureTimeSeries_(ptf.totalPressureTimeSeries_) {} @@ -117,8 +115,7 @@ timeVaryingUniformTotalPressureFvPatchScalarField psiName_(tppsf.psiName_), gamma_(tppsf.gamma_), p0_(tppsf.p0_), - totalPressureDataFileName_(tppsf.totalPressureDataFileName_), - totalPressureTimeSeries_(tppsf.timeBounding()) + totalPressureTimeSeries_(tppsf.totalPressureTimeSeries_) {} @@ -136,64 +133,12 @@ timeVaryingUniformTotalPressureFvPatchScalarField psiName_(tppsf.psiName_), gamma_(tppsf.gamma_), p0_(tppsf.p0_), - totalPressureDataFileName_(tppsf.totalPressureDataFileName_), - totalPressureTimeSeries_(tppsf.timeBounding()) + totalPressureTimeSeries_(tppsf.totalPressureTimeSeries_) {} // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // -Foam::scalar Foam::timeVaryingUniformTotalPressureFvPatchScalarField:: -currentValue() -{ - if (totalPressureTimeSeries_.size() == 0) - { - fileName fName(totalPressureDataFileName_); - fName.expand(); - - if (fName.size() == 0) - { - FatalErrorIn - ( - "timeVaryingUniformFixedValueFvPatchField::currentValue()" - ) << "timeDataFile not specified for Patch " - << patch().name() - << exit(FatalError); - } - else - { - // relative path - if (fName[0] != '/') - { - fName = db().path()/fName; - } - - // just in case we change the interface to timeSeries - word boundType = timeBounding(); - - IFstream(fName)() >> totalPressureTimeSeries_; - totalPressureTimeSeries_.bounding(boundType); - - // be a bit paranoid and check that the list is okay - totalPressureTimeSeries_.check(); - } - - if (totalPressureTimeSeries_.size() == 0) - { - FatalErrorIn - ( - "timeVaryingUniformFixedValueFvPatchField" - "::currentValue()" - ) << "empty time series for Patch " - << this->patch().name() - << exit(FatalError); - } - } - - return totalPressureTimeSeries_(this->db().time().timeOutputValue()); -} - - void Foam::timeVaryingUniformTotalPressureFvPatchScalarField::updateCoeffs ( const vectorField& Up @@ -204,7 +149,7 @@ void Foam::timeVaryingUniformTotalPressureFvPatchScalarField::updateCoeffs return; } - p0_ = currentValue(); + p0_ = totalPressureTimeSeries_(this->db().time().timeOutputValue()); const fvsPatchField& phip = patch().lookupPatchField(phiName_); @@ -279,10 +224,7 @@ void Foam::timeVaryingUniformTotalPressureFvPatchScalarField::write(Ostream& os) os.writeKeyword("psi") << psiName_ << token::END_STATEMENT << nl; os.writeKeyword("gamma") << gamma_ << token::END_STATEMENT << nl; os.writeKeyword("p0") << p0_ << token::END_STATEMENT << endl; - os.writeKeyword("totalPressureDataFileName") - << totalPressureDataFileName_ << token::END_STATEMENT << nl; - os.writeKeyword("timeBounding") - << timeBounding() << token::END_STATEMENT << nl; + totalPressureTimeSeries_.write(os); writeEntry("value", os); } diff --git a/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingUniformTotalPressure/timeVaryingUniformTotalPressureFvPatchScalarField.H b/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingUniformTotalPressure/timeVaryingUniformTotalPressureFvPatchScalarField.H index 48d4b99961..4bfead28d1 100644 --- a/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingUniformTotalPressure/timeVaryingUniformTotalPressureFvPatchScalarField.H +++ b/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingUniformTotalPressure/timeVaryingUniformTotalPressureFvPatchScalarField.H @@ -38,7 +38,7 @@ SourceFiles #define timeVaryingUniformTotalPressureFvPatchScalarField_H #include "fixedValueFvPatchFields.H" -#include "timeSeries.H" +#include "interpolationTable.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -74,11 +74,8 @@ class timeVaryingUniformTotalPressureFvPatchScalarField //- Total pressure scalar p0_; - fileName totalPressureDataFileName_; - timeSeries totalPressureTimeSeries_; - - //- Interpolate the value at the current time - scalar currentValue(); + //- Table of time vs total pressure + interpolationTable totalPressureTimeSeries_; public: @@ -189,14 +186,8 @@ public: return p0_; } - //- Return the out-of-bounds treatment as a word - word timeBounding() const - { - return totalPressureTimeSeries_.bounding(); - } - //- Return the time series used - const timeSeries& totalPressureTimeSeries() const + const interpolationTable& totalPressureTimeSeries() const { return totalPressureTimeSeries_; } From b2744a5eeb2ea1035e92742f082c7c8a385ffb92 Mon Sep 17 00:00:00 2001 From: andy Date: Fri, 4 Jul 2008 18:49:57 +0100 Subject: [PATCH 28/28] small update to headers for usage --- .../timeVaryingFlowRateInletVelocityFvPatchVectorField.H | 2 +- .../timeVaryingUniformFixedValueFvPatchField.H | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingFlowRateInletVelocity/timeVaryingFlowRateInletVelocityFvPatchVectorField.H b/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingFlowRateInletVelocity/timeVaryingFlowRateInletVelocityFvPatchVectorField.H index 5713450f91..cbacacb4c5 100644 --- a/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingFlowRateInletVelocity/timeVaryingFlowRateInletVelocityFvPatchVectorField.H +++ b/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingFlowRateInletVelocity/timeVaryingFlowRateInletVelocityFvPatchVectorField.H @@ -36,7 +36,7 @@ Description flowRate 0.2; // Volumetric/mass flow rate [m3/s or kg/s] value uniform (0 0 0); // placeholder fileName "time-series"; - timeBounding repeat; // (error|warn|clamp|repeat) + boundAction repeat; // (error|warn|clamp|repeat) } @endverbatim diff --git a/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingUniformFixedValue/timeVaryingUniformFixedValueFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingUniformFixedValue/timeVaryingUniformFixedValueFvPatchField.H index 1491c0a53c..bd073c24b1 100644 --- a/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingUniformFixedValue/timeVaryingUniformFixedValueFvPatchField.H +++ b/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingUniformFixedValue/timeVaryingUniformFixedValueFvPatchField.H @@ -33,8 +33,8 @@ Description inlet { type timeVaryingUniformFixedValue; - timeDataFile "time-series"; - timeBounding clamp; // (error|warn|clamp|repeat) + fileName "time-series"; + boundAction clamp; // (error|warn|clamp|repeat) } @endverbatim