Files
OpenFOAM-12/tutorials/incompressibleDenseParticleFluid/cyclone/constant/cloudProperties
Henry Weller 41705e9eca Lagrangian: Added support for automatic run-time load-balancing
Optional CPU load caching can be switched-on for Lagrangian cloud tracking
and/or chemistry integration using the new cpuLoad switch in the cloudProperties
or chemistryProperties dictionary files respectively and used for
multi-constraint load-balancing by the fvMeshDistributorsLoadBalancer specified
in the dynamicMeshDict file

distributor
{
    type            loadBalancer;

    libs            ("libfvMeshDistributors.so");

    multiConstraint true;
    redistributionInterval  10;
}

which used the distributor specified in the decomposeParDict file, e.g.

numberOfSubdomains 12;

decomposer      simple;
distributor     zoltan;
libs            ("libzoltanDecomp.so");

simpleCoeffs
{
    n           (2 2 3);
}

zoltanCoeffs
{
    lb_method   rcb;
}

The incompressibleDenseParticleFluid/cyclone case has been updated to
demonstrate this new functionality and shows a speedup ~50% using the Zoltan RCB
multi-constraint distributor.  The multicomponentFluid/counterFlowFlame2D_GRI
case has also been updated to use the new cpuLoad switch.
2024-05-16 13:46:20 +01:00

185 lines
3.5 KiB
C++

/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class dictionary;
location "constant";
object cloudProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
type MPPICCloud;
cpuLoad true;
solution
{
coupled true;
transient yes;
cellValueSourceCorrection off;
maxCo 1.0;
interpolationSchemes
{
rho.air cell;
U.air cellPoint;
mu.air cell;
alpha.air cell;
}
averagingMethod dual;
integrationSchemes
{
U Euler;
}
sourceTerms
{
schemes
{
U semiImplicit 1;
}
}
}
constantProperties
{
rho0 1000;
}
subModels
{
particleForces
{
ErgunWenYuDrag
{
alphac alpha.air;
}
gravity;
}
injectionModels
{
model1
{
type patchInjection;
massFlowRate 10;
SOI 1;
uniformParcelSize volume;
patchName inlet;
duration 4;
parcelsPerSecond 100644;
U0 (-10 0 0);
flowRateProfile constant 1;
sizeDistribution
{
type normal;
Q 3;
min 20e-6;
max 180e-6;
mu 100e-6;
sigma 25e-6;
}
}
}
dispersionModel none;
patchInteractionModel localInteraction;
localInteractionCoeffs
{
patches
(
walls
{
type rebound;
e 0.97;
mu 0.09;
}
inlet
{
type rebound;
e 0.97;
mu 0.09;
}
outlet
{
type escape;
}
);
}
heatTransferModel none;
surfaceFilmModel none;
packingModel implicit;
explicitCoeffs
{
particleStressModel
{
type HarrisCrighton;
alphaPacked 0.6;
pSolid 10.0;
beta 2.0;
eps 1.0e-7;
}
correctionLimitingMethod
{
type absolute;
e 0.9;
}
}
implicitCoeffs
{
alphaMin 0.0001;
rhoMin 1.0;
applyLimiting true;
applyGravity false;
particleStressModel
{
type HarrisCrighton;
alphaPacked 0.6;
pSolid 5.0;
beta 2.0;
eps 1.0e-2;
}
}
dampingModel none;
isotropyModel stochastic;
stochasticCoeffs
{
timeScaleModel
{
type isotropic;
alphaPacked 0.6;
e 0.9;
}
}
stochasticCollisionModel none;
radiation off;
}
cloudFunctions
{}
// ************************************************************************* //