P4tr1ck_St4r |
October 11, 2020 09:27 |
DPMFoam - Periodic boundary condition
I am new in OpenFoam and I need to track a cloud of particles in a channel with periodic boundary conditions. I have two main problems:
1. The cyclic boundary condition looks not working for particles. They stick on the outlet boundary.
2. The particle's flow slowing down over time. I have read that this can be solved by adding fvOptions, but I don't know how to do that.
blockMeshDict
Code:
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2006 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object blockMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
scale 1;
vertices
(
(0 0 0)
(10 0 0)
(10 1 0)
(0 1 0)
(0 0 2)
(10 0 2)
(10 1 2)
(0 1 2)
);
blocks
(
hex (0 1 2 3 4 5 6 7) (90 50 1) simpleGrading (1 1 1)
);
edges
(
);
boundary
(
inlet
{
type cyclic;
neighbourPatch outlet;
transform translational;
separationVector (10 0 0);
faces
(
(4 7 3 0)
);
}
outlet
{
type cyclic;
neighbourPatch inlet;
transform translational;
separationVector (-10 0 0);
faces
(
(5 1 2 6)
);
}
top
{
type wall;
faces
(
(7 6 2 3)
);
}
bottom
{
type wall;
faces
(
(0 1 5 4)
);
}
walls
{
type wall;
faces
(
(4 5 6 7)
(0 3 2 1)
);
}
);
// ************************************************************************* //
kinematicCloudProperties
Code:
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2006 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "constant";
object kinematicCloudProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solution
{
active true;
coupled true;
transient yes;
cellValueSourceCorrection off;
interpolationSchemes
{
rho.air cell;
U.air cellPoint;
mu.air cell;
}
integrationSchemes
{
U Euler;
}
sourceTerms
{
schemes
{
U semiImplicit 1;
}
}
}
constantProperties
{
parcelTypeId 1;
rhoMin 2;
minParcelMass 1.04e-6;
rho0 2;
youngsModulus 1e8;
poissonsRatio 0.35;
constantVolume true;
alphaMax 0.99;
}
subModels
{
particleForces
{
ErgunWenYuDrag
{
alphac alpha.air;
}
gravity;
}
injectionModels
{
model1
{
type manualInjection;
massTotal 0;
parcelBasisType fixed;
nParticle 1;
SOI 0;
positionsFile "kinematicCloudPositions";
U0 (0.5 0 0);
sizeDistribution
{
type fixedValue;
fixedValueDistribution
{
value 0.01;
}
}
}
}
dispersionModel none;
patchInteractionModel standardWallInteraction;
StandardWallInteractionCoeffs
{
type rebound;
e 0.97;
mu 0.09;
}
heatTransferModel none;
surfaceFilmModel none;
collisionModel pairCollision;
pairCollisionCoeffs
{
maxInteractionDistance 0.0025;
writeReferredParticleCloud no;
pairModel pairSpringSliderDashpot;
pairSpringSliderDashpotCoeffs
{
useEquivalentSize no;
alpha 0.02;
b 1.5;
mu 0.10;
cohesionEnergyDensity 0;
collisionResolutionSteps 12;
};
wallModel wallSpringSliderDashpot;
wallSpringSliderDashpotCoeffs
{
useEquivalentSize no;
collisionResolutionSteps 12;
youngsModulus 1e8;
poissonsRatio 0.23;
alpha 0.01;
b 1.5;
mu 0.09;
cohesionEnergyDensity 0;
};
U U.air;
}
stochasticCollisionModel none;
radiation off;
}
cloudFunctions
{}
// ************************************************************************* //
0/U.air
Code:
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2006 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format binary;
class volVectorField;
location "0";
object U.air;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -1 0 0 0 0];
internalField uniform (1 0 0);
boundaryField
{
walls
{
type noSlip;
}
top
{
type noSlip;
}
bottom
{
type noSlip;
}
outlet
{
type cyclic;
}
inlet
{
type cyclic;
}
}
// ************************************************************************* //
0/p
Code:
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2006 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
object p;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -2 0 0 0 0];
internalField uniform 0;
boundaryField
{
walls
{
type fixedFluxPressure;
phi phi.air;
value $internalField;
}
inlet
{
type cyclic;
}
outlet
{
type cyclic;
}
top
{
type fixedFluxPressure;
phi phi.air;
value $internalField;
}
bottom
{
type fixedFluxPressure;
phi phi.air;
value $internalField;
}
}
// ************************************************************************* //
Hope that helps!
|