From 7cb95eb754a61b8ba24736c77b507149d8c6b464 Mon Sep 17 00:00:00 2001 From: goniva Date: Thu, 13 Jun 2013 09:32:48 +0200 Subject: [PATCH] release on 2013-06-13_09-32-47 --- README | 81 ++++ doc/CFDEMcoupling_Manual.html | 32 +- doc/CFDEMcoupling_Manual.pdf | Bin 501643 -> 505180 bytes doc/CFDEMcoupling_Manual.txt | 1 + doc/forceModel_particleCellVolume.html | 59 +++ doc/forceModel_particleCellVolume.txt | 54 +++ doc/githubAccess_public.pdf | Bin 362471 -> 362471 bytes doc/smoothingModel.html | 8 +- doc/smoothingModel.txt | 6 +- doc/smoothingModel_constDiffSmoothing.html | 14 +- doc/smoothingModel_constDiffSmoothing.txt | 13 +- doc/voidFractionModel_GaussVoidFraction.html | 6 + doc/voidFractionModel_GaussVoidFraction.txt | 5 + ...FractionModel_bigParticleVoidFraction.html | 8 +- ...dFractionModel_bigParticleVoidFraction.txt | 7 +- doc/voidFractionModel_centreVoidFraction.html | 10 +- doc/voidFractionModel_centreVoidFraction.txt | 9 +- ...voidFractionModel_dividedVoidFraction.html | 6 + doc/voidFractionModel_dividedVoidFraction.txt | 5 + src/lagrangian/cfdemParticle/Make/files | 30 +- .../cfdemParticle/cfdTools/versionInfo.H | 6 +- .../cfdemParticle/cfdemCloud/cfdemCloud.C | 3 +- .../twoWayM2M/library/error.d | 20 +- .../twoWayM2M/library/error.o | Bin 490328 -> 490320 bytes .../twoWayM2M/library/files.o | Bin 14048 -> 14040 bytes .../twoWayM2M/library/irregular.d | 20 +- .../twoWayM2M/library/irregular.o | Bin 531608 -> 531608 bytes .../twoWayM2M/library/lammps_data_write.d | 20 +- .../twoWayM2M/library/lammps_data_write.o | Bin 527336 -> 527336 bytes .../twoWayM2M/library/libcouple.a | Bin 4297110 -> 4297054 bytes .../twoWayM2M/library/many2many.d | 20 +- .../twoWayM2M/library/many2many.o | Bin 599128 -> 599120 bytes .../twoWayM2M/library/many2one.d | 20 +- .../twoWayM2M/library/many2one.o | Bin 500344 -> 500336 bytes .../twoWayM2M/library/memory.d | 20 +- .../twoWayM2M/library/memory.o | Bin 503408 -> 503400 bytes .../twoWayM2M/library/one2many.d | 20 +- .../twoWayM2M/library/one2many.o | Bin 557296 -> 557288 bytes .../twoWayM2M/library/send2one.d | 20 +- .../twoWayM2M/library/send2one.o | Bin 497592 -> 497584 bytes .../dataExchangeModel/twoWayMPI/twoWayMPI.C | 8 +- .../KochHillRWDrag/KochHillRWDrag.C | 406 ++++++++++++++++++ .../KochHillRWDrag/KochHillRWDrag.H | 135 ++++++ .../particleCellVolume/particleCellVolume.C | 148 +++++++ .../particleCellVolume/particleCellVolume.H | 108 +++++ .../volWeightedAverage/volWeightedAverage.C | 8 +- .../implicitCouple/implicitCouple.C | 2 +- .../constDiffSmoothing/constDiffSmoothing.C | 89 +++- .../constDiffSmoothing/constDiffSmoothing.H | 12 +- .../smoothingModel/noSmoothing/noSmoothing.C | 5 + .../smoothingModel/noSmoothing/noSmoothing.H | 2 + .../smoothingModel/smoothingModel.C | 11 + .../smoothingModel/smoothingModel.H | 7 + .../GaussVoidFraction/GaussVoidFraction.C | 4 +- .../bigParticleVoidFraction.C | 4 +- .../centreVoidFraction/centreVoidFraction.C | 6 +- .../dividedVoidFraction/dividedVoidFraction.C | 4 +- .../dividedVoidFractionMS.C | 4 +- .../voidFractionModel/voidFractionModel.C | 3 +- .../voidFractionModel/voidFractionModel.H | 6 + .../ErgunTestMPI/CFD/system/fvSolution | 9 + .../ErgunTestMPI/DEM/post/dummy | 4 + .../ErgunTestMPI/parCFDDEMrun.sh | 3 +- .../CFD/constant/couplingProperties | 18 + .../CFD/constant/couplingProperties | 30 +- 65 files changed, 1409 insertions(+), 150 deletions(-) create mode 100644 README create mode 100644 doc/forceModel_particleCellVolume.html create mode 100644 doc/forceModel_particleCellVolume.txt create mode 100755 src/lagrangian/cfdemParticle/subModels/forceModel/KochHillRWDrag/KochHillRWDrag.C create mode 100755 src/lagrangian/cfdemParticle/subModels/forceModel/KochHillRWDrag/KochHillRWDrag.H create mode 100644 src/lagrangian/cfdemParticle/subModels/forceModel/particleCellVolume/particleCellVolume.C create mode 100644 src/lagrangian/cfdemParticle/subModels/forceModel/particleCellVolume/particleCellVolume.H diff --git a/README b/README new file mode 100644 index 00000000..fd2ca756 --- /dev/null +++ b/README @@ -0,0 +1,81 @@ +/*---------------------------------------------------------------------------*\ + CFDEMcoupling - Open Source CFD-DEM coupling + + CFDEMcoupling is part of the CFDEMproject + www.cfdem.com + Christoph Goniva, christoph.goniva@cfdem.com + Copyright 2009-2012 JKU Linz + Copyright 2012- DCS Computing GmbH, Linz +------------------------------------------------------------------------------- +License + This file is part of CFDEMcoupling. + + CFDEMcoupling 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 3 of the License, or (at your + option) any later version. + + CFDEMcoupling 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 CFDEMcoupling; if not, write to the Free Software Foundation, + Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +Description + This code is designed to realize coupled CFD-DEM simulations using LIGGGHTS + and OpenFOAM. Note: this code is not part of OpenFOAM (see DISCLAIMER). +\*---------------------------------------------------------------------------*/ + + +CFDEM coupling provides an open source parallel coupled CFD-DEM framework +combining the strengths of LIGGGHTS DEM code and the Open Source +CFD package OpenFOAM(R)(*). The CFDEMcoupling toolbox allows to expand +standard CFD solvers of OpenFOAM(R)(*) to include a coupling to the DEM +code LIGGGHTS. In this toolbox the particle representation within the +CFD solver is organized by "cloud" classes. Key functionalities are organised +in sub-models (e.g. force models, data exchange models, etc.) which can easily +be selected and combined by dictionary settings. + +The coupled solvers run fully parallel on distributed-memory clusters. + +Features are: + +- its modular approach allows users to easily implement new models +- its MPI parallelization enables to use it for large scale problems +- the "forum"_lws on CFD-DEM gives the possibility to exchange with other + users / developers +- the use of GIT allows to easily update to the latest version +- basic documentation is provided + +The file structure: + +- "src" directory including the source files of the coupling toolbox and models +- "applications" directory including the solver files for coupled CFD-DEM simulations +- "doc" directory including the documentation of CFDEMcoupling +- "tutorials" directory including basic tutorial cases showing the functionality + + + +Details on installation are given on the "www.cfdem.com" + +The functionality of this CFD-DEM framwork is described via "tutorial cases" showing +how to use different solvers and models. + +CFDEMcoupling stands for Computational Fluid Dynamics (CFD) - +Discrete Element Method (DEM) coupling. + +CFDEMcoupling is an open-source code, distributed freely under the terms of the +GNU Public License (GPL). + +Core development of CFDEMcoupling is done by +Christoph Goniva and Christoph Kloss, both at DCS Computing GmbH, 2012 + + +\*---------------------------------------------------------------------------*/ +(*) "OpenFOAM(R)"_of is a registered trade mark of the ESI Group. +This offering is not affiliated, approved or endorsed by ESI Group, +the producer of the OpenFOAMĀ® software and owner of the OpenFOAMĀ® trade mark. +\*---------------------------------------------------------------------------*/ diff --git a/doc/CFDEMcoupling_Manual.html b/doc/CFDEMcoupling_Manual.html index 2e48e155..7fea5f97 100644 --- a/doc/CFDEMcoupling_Manual.html +++ b/doc/CFDEMcoupling_Manual.html @@ -218,22 +218,22 @@ listing below of styles within certain commands. forceModel_KochHillDragforceModel_LaEuScalarTemp forceModel_MeiLiftforceModel_SchillerNaumannDrag forceModel_ShirgaonkarIBforceModel_gradPForce -forceModel_noDragforceModel_virtualMassForce -forceModel_viscForceliggghtsCommandModel -liggghtsCommandModel_executeliggghtsCommandModel_readLiggghtsData -liggghtsCommandModel_runLiggghtsliggghtsCommandModel_writeLiggghts -locateModellocateModel_engineSearch -locateModel_engineSearchIBlocateModel_standardSearch -locateModel_turboEngineM2MSearchlocateModel_turboEngineSearch -meshMotionModelmeshMotionModel_noMeshMotion -momCoupleModelmomCoupleModel_explicitCouple -momCoupleModel_implicitCouplemomCoupleModel_noCouple -regionModelregionModel_allRegion -smoothingModelsmoothingModel_constDiffSmoothing -smoothingModel_noSmoothingvoidfractionModel -voidfractionModel_GaussVoidFractionvoidfractionModel_IBVoidFraction -voidfractionModel_bigParticleVoidFractionvoidfractionModel_centreVoidFraction -voidfractionModel_dividedVoidFraction +forceModel_noDragforceModel_particleCellVolume +forceModel_virtualMassForceforceModel_viscForce +liggghtsCommandModelliggghtsCommandModel_execute +liggghtsCommandModel_readLiggghtsDataliggghtsCommandModel_runLiggghts +liggghtsCommandModel_writeLiggghtslocateModel +locateModel_engineSearchlocateModel_engineSearchIB +locateModel_standardSearchlocateModel_turboEngineM2MSearch +locateModel_turboEngineSearchmeshMotionModel +meshMotionModel_noMeshMotionmomCoupleModel +momCoupleModel_explicitCouplemomCoupleModel_implicitCouple +momCoupleModel_noCoupleregionModel +regionModel_allRegionsmoothingModel +smoothingModel_constDiffSmoothingsmoothingModel_noSmoothing +voidfractionModelvoidfractionModel_GaussVoidFraction +voidfractionModel_IBVoidFractionvoidfractionModel_bigParticleVoidFraction +voidfractionModel_centreVoidFractionvoidfractionModel_dividedVoidFraction diff --git a/doc/CFDEMcoupling_Manual.pdf b/doc/CFDEMcoupling_Manual.pdf index ba0dd6d14cdf29e3ba02e233b5136e03c423acfd..94af00aa76e0e911c2aaae7a533810e1134927a3 100644 GIT binary patch delta 52312 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 +
CFDEMproject WWW Site - CFDEM Commands +
+ + + + +
+ +

forceModel_particleCellVolume command +

+

Syntax: +

+

Defined in couplingProperties dictionary. +

+
forceModels
+(
+    particleCellVolume
+);
+particleCellVolumeProps
+{
+    upperThreshold value;
+    lowerThreshold value2;
+    verbous;
+}; 
+
+
  • value = only cells with a field value (magnitude) lower than this upper threshold are considered + +
  • value2 = only cells with a field value (magnitude) greater than this lower threshold are considered + + + +

    Examples: +

    +
    forceModels
    +(
    +    particleCellVolume
    +);
    +particleCellVolumeProps
    +{
    +    upperThreshold 0.999;
    +    lowerThreshold 0;
    +    verbous;
    +} 
    +
    +

    Description: +

    +

    This "forceModel" does not influence the particles or the simulation - it is a postprocessing tool! The total volume of the particles as they are represented on the CFD mesh is calculated. +At "writeTime" a field named particleCellVolume , where scalarField is the name of the original field, is written. This can be can the be probed using standard function object probes. Using the verbous option a screen output is given. +

    +

    Restrictions: +

    +

    None. +

    +

    Related commands: +

    +

    forceModel +

    + diff --git a/doc/forceModel_particleCellVolume.txt b/doc/forceModel_particleCellVolume.txt new file mode 100644 index 00000000..f60eb486 --- /dev/null +++ b/doc/forceModel_particleCellVolume.txt @@ -0,0 +1,54 @@ +"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c + +:link(lws,http://www.cfdem.com) +:link(lc,CFDEMcoupling_Manual.html#comm) + +:line + +forceModel_particleCellVolume command :h3 + +[Syntax:] + +Defined in couplingProperties dictionary. + +forceModels +( + particleCellVolume +); +particleCellVolumeProps +\{ + upperThreshold value; + lowerThreshold value2; + verbous; +\}; :pre + +{value} = only cells with a field value (magnitude) lower than this upper threshold are considered :l +{value2} = only cells with a field value (magnitude) greater than this lower threshold are considered :l +:ule + +[Examples:] + +forceModels +( + particleCellVolume +); +particleCellVolumeProps +\{ + upperThreshold 0.999; + lowerThreshold 0; + verbous; +\} :pre + +[Description:] + +This "forceModel" does not influence the particles or the simulation - it is a postprocessing tool! The total volume of the particles as they are represented on the CFD mesh is calculated. +At "writeTime" a field named particleCellVolume , where scalarField is the name of the original field, is written. This can be can the be probed using standard function object probes. Using the verbous option a screen output is given. + +[Restrictions:] + +None. + +[Related commands:] + +"forceModel"_forceModel.html + diff --git a/doc/githubAccess_public.pdf b/doc/githubAccess_public.pdf index 892d2ad2c7a6572f1e8204791e9a2cbb524bd4c1..300b497c688f60c0b5916f8d1b0fe5a83049a65a 100644 GIT binary patch delta 107 zcmaFfFZR4&Y(hJSnW3?PrLmDoV}ENuV{1QCYd>>qKg-sB*57T8CW&T72C1e7=H^M} iiK%I6rfFuDCMG6^$z}%0smaN9HiiULOh4VuDgyweNg{dx delta 107 zcmaFfFZR4&Y(hJSsiB#nnUT3^V}ENuV{1QCYd>>qKg-sB*57T8DJDi{24=>oX{kx3 ismT^*iDnjw25AT03HiiULOh4VuDgyw=#v?}n diff --git a/doc/smoothingModel.html b/doc/smoothingModel.html index 2adb878a..7d7617b4 100644 --- a/doc/smoothingModel.html +++ b/doc/smoothingModel.html @@ -21,13 +21,17 @@

    smoothingModel off; 
     
    +
    smoothingModel  constDiffSmoothing; 
    +
    +
    smoothingModel  localPSizeDiffSmoothing; 
    +

    Note: This examples list might not be complete - please look for other models (smoothingModel_XY) in this documentation.

    Description:

    -

    The smoothingModel is the base class for models smoothen the exchange fields. +

    The smoothingModel is the base class for models that smoothen the exchange fields (i.e., voidfraction and the Ksl field in case of implicit force coupling). This is relevant in case one uses a small grid resolution compared to the local particle diameter (or parcel diameter in case one uses a parcel approach).

    -

    Restrictions: none. +

    Restrictions: These models are in beta testing.

    Default: none.

    diff --git a/doc/smoothingModel.txt b/doc/smoothingModel.txt index 13133406..a0bb7060 100644 --- a/doc/smoothingModel.txt +++ b/doc/smoothingModel.txt @@ -18,13 +18,15 @@ model = name of the smoothingModel to be applied :ul [Examples:] smoothingModel off; :pre +smoothingModel constDiffSmoothing; :pre +smoothingModel localPSizeDiffSmoothing; :pre Note: This examples list might not be complete - please look for other models (smoothingModel_XY) in this documentation. [Description:] -The smoothingModel is the base class for models smoothen the exchange fields. +The smoothingModel is the base class for models that smoothen the exchange fields (i.e., voidfraction and the Ksl field in case of implicit force coupling). This is relevant in case one uses a small grid resolution compared to the local particle diameter (or parcel diameter in case one uses a parcel approach). -[Restrictions:] none. +[Restrictions:] These models are in beta testing. [Default:] none. diff --git a/doc/smoothingModel_constDiffSmoothing.html b/doc/smoothingModel_constDiffSmoothing.html index 48456c29..edfb3fb8 100644 --- a/doc/smoothingModel_constDiffSmoothing.html +++ b/doc/smoothingModel_constDiffSmoothing.html @@ -18,29 +18,33 @@ constDiffSmoothingProps { lowerLimit number1; upperLimit number2; - DT number3; + smoothingLength lengthScale; }
    • number1 = scalar fields will be bound to this lower value
    • number2 = scalar fields will be bound to this upper value -
    • number3 = diffusion constant +
    • lengthScale = length scale over which the exchange fields will be smoothed out + +

    Examples:

    constDiffSmoothingProps
     {
         lowerLimit 0.1;
         upperLimit 1e10;
    -    DT 1e-3;
    +    smoothingLength 1500e-6;
     } 
     

    Description:

    -

    The "constDiffSmoothing" model is a basic smoothingModel model which reads a diffusion coefficient being used for smoothening the exchange fields (voidfraction, Ksl, f if present). +

    The "constDiffSmoothing" model is a basic smoothingModel model which reads a smoothing length scale being used for smoothening the exchange fields (voidfraction, Ksl, f if present). This model can be used for smoothing explicit force coupling fields, as well as implicit fource coupling algorithms +(see solver "cfdemSolverPisoImEx").

    -

    Restrictions: none. +

    Restrictions: Should be used for monodisperse cases only. +Time derivatives of the voidfraction field are calculated incorrectly, so don't use them in your solver when smoothing is applied.

    Related commands:

    diff --git a/doc/smoothingModel_constDiffSmoothing.txt b/doc/smoothingModel_constDiffSmoothing.txt index 68ab56bb..3fe9c8d9 100644 --- a/doc/smoothingModel_constDiffSmoothing.txt +++ b/doc/smoothingModel_constDiffSmoothing.txt @@ -16,12 +16,13 @@ constDiffSmoothingProps \{ lowerLimit number1; upperLimit number2; - DT number3; + smoothingLength lengthScale; \} :pre {number1} = scalar fields will be bound to this lower value :ulb,l {number2} = scalar fields will be bound to this upper value :l -{number3} = diffusion constant :l +{lengthScale} = length scale over which the exchange fields will be smoothed out :l +:ule [Examples:] @@ -29,14 +30,16 @@ constDiffSmoothingProps \{ lowerLimit 0.1; upperLimit 1e10; - DT 1e-3; + smoothingLength 1500e-6; \} :pre [Description:] -The "constDiffSmoothing" model is a basic smoothingModel model which reads a diffusion coefficient being used for smoothening the exchange fields (voidfraction, Ksl, f if present). +The "constDiffSmoothing" model is a basic smoothingModel model which reads a smoothing length scale being used for smoothening the exchange fields (voidfraction, Ksl, f if present). This model can be used for smoothing explicit force coupling fields, as well as implicit fource coupling algorithms +(see solver "cfdemSolverPisoImEx"). -[Restrictions:] none. +[Restrictions:] Should be used for monodisperse cases only. +Time derivatives of the voidfraction field are calculated incorrectly, so don't use them in your solver when smoothing is applied. [Related commands:] diff --git a/doc/voidFractionModel_GaussVoidFraction.html b/doc/voidFractionModel_GaussVoidFraction.html index 976c6be0..c976b46d 100644 --- a/doc/voidFractionModel_GaussVoidFraction.html +++ b/doc/voidFractionModel_GaussVoidFraction.html @@ -19,6 +19,7 @@ GaussProps maxCellsPerParticle number1; alphaMin number2; scaleUpVol number3; + weight number4; }
    • number1 = max number of cells covered by a partilce (search will fail when more than number1 cells are covered by the particle) @@ -27,6 +28,8 @@ GaussProps
    • number3 = diameter of the particle's representation is artificially increased according to number3 * Vparticle, volume remains unaltered! +
    • number4 = scaling of the particle volume to account for porosity or agglomerations. +

    Examples: @@ -37,6 +40,7 @@ GaussProps maxCellsPerParticle 1000; alphaMin 0.10; scaleUpVol 5.0; + weight 1.; }

    Description: @@ -45,6 +49,8 @@ GaussProps

    The region of influence of a particle can be increased artificially by "scaleUpVol", which blows up the particles, but keeps their volume (for voidfraction calculation) constant.

    +

    The particle volume occupied in the CFD domain can be adjusted by the parameter "weight", using Vparticle=dsphere^3*pi/6*weight. +

    Restrictions: none.

    Related commands: diff --git a/doc/voidFractionModel_GaussVoidFraction.txt b/doc/voidFractionModel_GaussVoidFraction.txt index 969c09f3..dd0c6adf 100644 --- a/doc/voidFractionModel_GaussVoidFraction.txt +++ b/doc/voidFractionModel_GaussVoidFraction.txt @@ -17,11 +17,13 @@ GaussProps maxCellsPerParticle number1; alphaMin number2; scaleUpVol number3; + weight number4; \} :pre {number1} = max number of cells covered by a partilce (search will fail when more than {number1} cells are covered by the particle) :ulb,l {number2} = mininmum limit for voidfraction :l {number3} = diameter of the particle's representation is artificially increased according to {number3} * Vparticle, volume remains unaltered! :l +{number4} = scaling of the particle volume to account for porosity or agglomerations. :l :ule [Examples:] @@ -32,6 +34,7 @@ GaussProps maxCellsPerParticle 1000; alphaMin 0.10; scaleUpVol 5.0; + weight 1.; \} :pre [Description:] @@ -40,6 +43,8 @@ The Gauss voidFraction model is supposed to be used when a particle (or it's rep The region of influence of a particle can be increased artificially by "scaleUpVol", which blows up the particles, but keeps their volume (for voidfraction calculation) constant. +The particle volume occupied in the CFD domain can be adjusted by the parameter "weight", using Vparticle=dsphere^3*pi/6*weight. + [Restrictions:] none. [Related commands:] diff --git a/doc/voidFractionModel_bigParticleVoidFraction.html b/doc/voidFractionModel_bigParticleVoidFraction.html index 8a13e4f7..76605fe1 100644 --- a/doc/voidFractionModel_bigParticleVoidFraction.html +++ b/doc/voidFractionModel_bigParticleVoidFraction.html @@ -19,6 +19,7 @@ bigParticleProps maxCellsPerParticle number1; alphaMin number2; scaleUpVol number3; + weight number4; }

    • number1 = max number of cells covered by a partilce (search will fail when more than number1 cells are covered by the particle) @@ -27,6 +28,8 @@ bigParticleProps
    • number3 = diameter of the particle's representation is artificially increased according to number3 * Vparticle, volume remains unaltered! +
    • number4 = scaling of the particle volume to account for porosity or agglomerations. +

    Examples: @@ -37,6 +40,7 @@ bigParticleProps maxCellsPerParticle 1000; alphaMin 0.10; scaleUpVol 5.0; + weight 1.; }

    Description: @@ -45,7 +49,9 @@ bigParticleProps

    The region of influence of a particle can be increased artificially by "scaleUpVol", which blows up the particles, but keeps their volume (for voidfraction calculation) constant.

    -

    Code of this sub-model contributed by Alice Hager, JKU. +

    The particle volume occupied in the CFD domain can be adjusted by the parameter "weight", using Vparticle=dsphere^3*pi/6*weight. +

    +

    Parts of this sub-model contributed by Alice Hager, JKU.

    Restrictions: none.

    diff --git a/doc/voidFractionModel_bigParticleVoidFraction.txt b/doc/voidFractionModel_bigParticleVoidFraction.txt index baa109c3..2b816fe6 100644 --- a/doc/voidFractionModel_bigParticleVoidFraction.txt +++ b/doc/voidFractionModel_bigParticleVoidFraction.txt @@ -17,11 +17,13 @@ bigParticleProps maxCellsPerParticle number1; alphaMin number2; scaleUpVol number3; + weight number4; \} :pre {number1} = max number of cells covered by a partilce (search will fail when more than {number1} cells are covered by the particle) :ulb,l {number2} = mininmum limit for voidfraction :l {number3} = diameter of the particle's representation is artificially increased according to {number3} * Vparticle, volume remains unaltered! :l +{number4} = scaling of the particle volume to account for porosity or agglomerations. :l :ule [Examples:] @@ -32,6 +34,7 @@ bigParticleProps maxCellsPerParticle 1000; alphaMin 0.10; scaleUpVol 5.0; + weight 1.; \} :pre [Description:] @@ -40,7 +43,9 @@ The bigParticle voidFraction model is supposed to be used when a particle (or it The region of influence of a particle can be increased artificially by "scaleUpVol", which blows up the particles, but keeps their volume (for voidfraction calculation) constant. -Code of this sub-model contributed by Alice Hager, JKU. +The particle volume occupied in the CFD domain can be adjusted by the parameter "weight", using Vparticle=dsphere^3*pi/6*weight. + +Parts of this sub-model contributed by Alice Hager, JKU. [Restrictions:] none. diff --git a/doc/voidFractionModel_centreVoidFraction.html b/doc/voidFractionModel_centreVoidFraction.html index cfe8a547..0e480d97 100644 --- a/doc/voidFractionModel_centreVoidFraction.html +++ b/doc/voidFractionModel_centreVoidFraction.html @@ -16,10 +16,13 @@
    voidfractionModel centre;
     centreProps
     {
    -    alphaMin value;
    +    alphaMin number1;
    +    weight number2;
     } 
     
    -