andreas0209@hotmail.com |
July 3, 2015 06:27 |
Particle tracking in and after MRF
3 Attachment(s)
Hi
I am trying to simulate a particle laden air flow in a turbomachinery setup. The setup is a rectangular tunnel with a rotor and a nacelle in the middle. To simulate the rotation of the rotor I am using a multiple reference frame (MRF) approach (in defined in snappyHexmMesh and fvOptions). The solver is simpleReactingParcleFoam.
snappyHexMesh:
Code:
geometry
{
Dynamic6.stl {type triSurfaceMesh; name Dynamic;}
Nacelle.stl {type triSurfaceMesh; name Nacelle;}
MRFcylinder
{
type searchableCylinder;
point1 (7.9 0 0);
point2 (9.1 0 0);
radius 1.27;
name MRFcylinder;
}
cylinder {type searchableCylinder; point1 (9.1 0 0); point2 (11.8 0 0); radius 1.27;}
};
//-----------------------------------------
castellatedMeshControls
{
// Refinement parameters
maxLocalCells 10000000;
maxGlobalCells 20000000;
minRefinementCells 10;
maxLoadUnbalance 0.10;
nCellsBetweenLevels 3;
// Explicit feature edge refinement
features
(
// {file "Dynamic_advanced.eMesh"; level 4;}
{file "Dynamic6.eMesh"; level 2;}
{file "Nacelle.eMesh"; level 2;}
);
// Surface based refinement
refinementSurfaces
{
Dynamic {level (5 6); patchInfo {type wall;}}
Nacelle {level (5 6); patchInfo {type wall;}}
MRFcylinder
{
level (5 6); patchInfo {type patch;}
faceZone MRF; //name of faceZone
cellZone MRF; // name of cellZone
cellZoneInside inside; // to include all cells inside enclosed cyl.
}
}
fvOptions:
Code:
MRF1
{
type MRFSource;
active true;
selectionMode cellZone;
cellZone MRF;
MRFSourceCoeffs
{
nonRotatingPatches
(
inlet
outlet
walls
Nacelle
);
// Fixed patches (by default they 'move' with the MRF zone)
origin (10 0 0); //1.2
axis (1 0 0);
omega constant 260;//=1900rpm (V=d*pi*n; v=omega*r)
}
}
reactingCloud1Properties
Code:
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 2.3.0 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "constant";
object reactingCloud1Properties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solution
{
active true;
coupled true;
transient no;//no;
calcFrequency 10;
maxTrackTime 5;
maxCo 0.3;
cellValueSourceCorrection on;
sourceTerms
{
resetOnStartup false;
schemes
{
rho semiImplicit 1;
U semiImplicit 1;
Yi semiImplicit 1;
h semiImplicit 1;
radiation semiImplicit 1;
}
}
interpolationSchemes
{
rho cell;
U cellPoint;
thermo:mu cell;
T cell;
Cp cell;
kappa cell;
p cell;
}
integrationSchemes
{
U Euler;
T analytical;
}
}
constantProperties
{
rho0 1000;
T0 350;
Cp0 4100;
constantVolume false;
}
subModels
{
particleForces
{
sphereDrag;
gravity;
}
injectionModels
{
model1
{
type patchInjection;
massFlowRate 0.8e-05;
parcelBasisType mass;
patchName inlet;
parcelsPerSecond 500;
duration 1; // NOTE: set to 1 for steady state
U0 (300 0 0);
position (0 0 0);
direction (1 0 0);
flowRateProfile constant 1;
sizeDistribution
{
type general; //fixedValue;
generalDistribution //fixedValueDistribution
{
distribution
(
(10e-07 0.0025)
(15e-07 0.0528)
(20e-07 0.2795)
(25e-07 1.0918)
(30e-07 2.3988)
(35e-07 4.4227)
(40e-07 6.3888)
(45e-07 8.6721)
(50e-07 10.3153)
(55e-07 11.6259)
(60e-07 12.0030)
(65e-07 10.4175)
(70e-07 10.8427)
(75e-07 8.0016)
(80e-07 6.1333)
(85e-07 3.8827)
(90e-07 3.4688)
);
}
}
}
}
dispersionModel stochasticDispersionRAS;
patchInteractionModel none;//standardWallInteraction;
heatTransferModel none;//RanzMarshall;
compositionModel singleMixtureFraction;
phaseChangeModel none; //liquidEvaporation;
devolatilisationModel none;
surfaceReactionModel none;
stochasticCollisionModel none;
surfaceFilmModel none;
radiation off;
standardWallInteractionCoeffs
{
type rebound;
}
/*RanzMarshallCoeffs
{
BirdCorrection off;
}*/
singleMixtureFractionCoeffs
{
phases
(
gas
{
}
liquid
{
}
solid
{
ash 1;
}
);
YGasTot0 0;
YLiquidTot0 0;
YSolidTot0 1;
}
/*liquidEvaporationCoeffs
{
enthalpyTransfer enthalpyDifference;
activeLiquids ( H2O );
}*/
}
cloudFunctions
{
patchPostProcessing1
{
type patchPostProcessing;
maxStoredParcels 200; //100
patches ( inlet ); //( outlet );
}
particleTracks1
{
type particleTracks;
trackInterval 5; //5;
maxSamples 100000;
resetOnWrite yes;
}
}
The aim of this study is to simulate the particle flow around and though the rotor to see if there is a size dependent change in the flow behaviour of these particles.
My problem is that the flow profile and the streamlines look quite ok, but the particle "stuck" somehow at the dynamic part. Also there is a small discontinuity in the the streamline at the dynamic part.
I checked nearly every single setting option (variation in rotational speed, size of the particles, different inlet velocities, k and epsilon values etc.) without success.
I would be more than grateful if someone of you experienced openFoam experts could take a look into my settings or if someone has a hint how to get rid of this effect.
Thank you!
Andreas
|