TUT: Adding new MPPICDyMFoam and uncoupledKinematicParcelDyMFoam tutorials

STY: Style and header-content changes
This commit is contained in:
Sergio Ferraris
2020-09-03 12:07:20 -07:00
committed by Andrew Heather
parent 6d4e72dc3f
commit 06a0bf1868
51 changed files with 5607 additions and 27 deletions

View File

@ -111,7 +111,6 @@ int main(int argc, char *argv[])
continuousPhaseTransport.correct();
muc = rhoc*continuousPhaseTransport.nu();
Info<< "Evolving " << kinematicCloud.name() << endl;
kinematicCloud.evolve();
// Update continuous phase volume fraction field

View File

@ -470,13 +470,6 @@ void Foam::particle::hitCyclicAMIPatch
const label sendFacei = cpp.whichFace(facei_);
const label receiveFacei = cpp.pointFace(sendFacei, displacement, pos);
if (false)
{
Info<< "My new pos : " << pos << endl;
Info<< "Particle " << origId() << " crossing AMI from " << cpp.name()
<< " to " << receiveCpp.name() << endl << endl;
}
if (receiveFacei < 0)
{
// If the patch face of the particle is not known assume that the
@ -495,9 +488,15 @@ void Foam::particle::hitCyclicAMIPatch
vector displacementT = displacement;
cpp.reverseTransformDirection(displacementT, sendFacei);
// NOTE: The ray used to find the hit location accross the AMI might not
// be consistent in the displacement direction. Therefore a particle can
// be looping accross AMI patches indefinitely. Advancing the particle
// trajectory inside the cell is a possible solution.
const vector dispDir = cpp.fraction()*displacementT;
stepFraction_ += cpp.fraction();
locate
(
pos,
pos + dispDir,
&displacementT,
mesh_.faceOwner()[facei_],
false,
@ -534,7 +533,6 @@ void Foam::particle::hitCyclicAMIPatch
//if (onBoundaryFace())
{
//DebugVar("On boudanry")
// vector receiveNormal, receiveDisplacement;
// patchData(receiveNormal, receiveDisplacement);
//

View File

@ -758,12 +758,10 @@ void Foam::KinematicCloud<CloudType>::preEvolve
if (this->dampingModel().active())
{
DebugVar("dampingModel")
this->dampingModel().cacheFields(true);
}
if (this->packingModel().active())
{
DebugVar("packingModel")
this->packingModel().cacheFields(true);
}
@ -895,6 +893,48 @@ void Foam::KinematicCloud<CloudType>::info()
injectors_.info(Info);
this->surfaceFilm().info(Info);
this->patchInteraction().info(Info);
if (this->packingModel().active())
{
tmp<volScalarField> alpha = this->theta();
if (this->db().time().writeTime())
{
alpha().write();
}
const scalar alphaMin = gMin(alpha().primitiveField());
const scalar alphaMax = gMax(alpha().primitiveField());
Info<< " Min cell volume fraction = " << alphaMin << endl;
Info<< " Max cell volume fraction = " << alphaMax << endl;
if (alphaMax < SMALL)
{
return;
}
scalar nMin = GREAT;
forAll(this->mesh().cells(), celli)
{
const label n = this->cellOccupancy()[celli].size();
if (n > 0)
{
const scalar nPack = n*alphaMax/alpha()[celli];
if (nPack < nMin)
{
nMin = nPack;
}
}
}
reduce(nMin, minOp<scalar>());
Info<< " Min dense number of parcels = " << nMin << endl;
}
}

View File

@ -361,7 +361,6 @@ bool Foam::KinematicParcel<ParcelType>::move
const scalar dt = (p.stepFraction() - sfrac)*trackTime;
// Avoid problems with extremely small timesteps
if (dt > ROOTVSMALL)
{
@ -386,12 +385,11 @@ bool Foam::KinematicParcel<ParcelType>::move
{
cloud.functions().postFace(p, ttd.keepParticle);
}
cloud.functions().postMove(p, dt, start, ttd.keepParticle);
if (p.active() && p.onFace() && ttd.keepParticle)
{
p.hitFace(f*s - d, cloud, ttd);
p.hitFace(s, cloud, ttd);
}
}

View File

@ -294,7 +294,7 @@ bool Foam::LocalInteraction<CloudType>::correct
// Calculate motion relative to patch velocity
U -= Up;
if (mag(U) < this->Urmax())
if (mag(Up) > 0 && mag(U) < this->Urmax())
{
WarningInFunction
<< "Particle U the same as patch "

View File

@ -162,7 +162,7 @@ Foam::PatchInteractionModel<CloudType>::PatchInteractionModel
UName_(this->coeffDict().template getOrDefault<word>("U", "U")),
escapedParcels_(0),
escapedMass_(0.0),
Urmax_(this->coeffDict().template getOrDefault<scalar>("UrMax", 1e-4))
Urmax_(this->coeffDict().template getOrDefault<scalar>("UrMax", 0))
{}

View File

@ -211,7 +211,7 @@ bool Foam::StandardWallInteraction<CloudType>::correct
// Calculate motion relative to patch velocity
U -= Up;
if (mag(U) < this->Urmax())
if (mag(Up) > 0 && mag(U) < this->Urmax())
{
WarningInFunction
<< "Particle U the same as patch "

View File

@ -92,8 +92,6 @@ Foam::AveragingMethod<Type>::New
dict.template getOrDefault<word>(typeName, "basic")
);
//Info<< "Selecting averaging method " << modelType << endl;
auto cstrIter = dictionaryConstructorTablePtr_->cfind(modelType);
if (!cstrIter.found())

View File

@ -52,6 +52,11 @@ License
#include "makeSprayParcelAtomizationModels.H"
#include "makeSprayParcelBreakupModels.H"
// MPPIC sub-models
#include "makeMPPICParcelDampingModels.H"
#include "makeMPPICParcelIsotropyModels.H"
#include "makeMPPICParcelPackingModels.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
makeParcelCloudFunctionObjects(basicSprayCloud);
@ -78,5 +83,9 @@ makeParticleForceModelType(DistortedSphereDragForce, basicSprayCloud);
makeSprayParcelAtomizationModels(basicSprayCloud);
makeSprayParcelBreakupModels(basicSprayCloud);
// MPPIC sub-models
makeMPPICParcelDampingModels(basicSprayCloud);
makeMPPICParcelIsotropyModels(basicSprayCloud);
makeMPPICParcelPackingModels(basicSprayCloud);
// ************************************************************************* //

View File

@ -1069,7 +1069,8 @@ const
{
const face& f = srcPatch[srcFacei];
pointHit ray = f.ray(tgtPoint, n, srcPoints);
pointHit ray =
f.ray(tgtPoint, n, srcPoints, intersection::algorithm::VISIBLE);
if (ray.hit())
{
@ -1078,6 +1079,7 @@ const
}
else if (ray.distance() < nearest.distance())
{
nearest = ray;
nearestFacei = srcFacei;
}
@ -1116,7 +1118,8 @@ const
{
const face& f = tgtPatch[tgtFacei];
pointHit ray = f.ray(srcPoint, n, tgtPoints);
pointHit ray =
f.ray(srcPoint, n, tgtPoints, intersection::algorithm::VISIBLE);
if (ray.hit())
{
@ -1131,9 +1134,9 @@ const
nearestFacei = tgtFacei;
}
}
if (nearest.hit() || nearest.eligibleMiss())
{
srcPoint = nearest.rawPoint();
return nearestFacei;
}

View File

@ -568,6 +568,7 @@ Foam::cyclicAMIPolyPatch::cyclicAMIPolyPatch
coupledPolyPatch(name, size, start, index, bm, patchType, transform),
nbrPatchName_(word::null),
nbrPatchID_(-1),
fraction_(Zero),
rotationAxis_(Zero),
rotationCentre_(Zero),
rotationAngleDefined_(false),
@ -603,6 +604,7 @@ Foam::cyclicAMIPolyPatch::cyclicAMIPolyPatch
nbrPatchName_(dict.getOrDefault<word>("neighbourPatch", word::null)),
coupleGroup_(dict),
nbrPatchID_(-1),
fraction_(dict.getOrDefault<scalar>("fraction", Zero)),
rotationAxis_(Zero),
rotationCentre_(Zero),
rotationAngleDefined_(false),
@ -707,6 +709,7 @@ Foam::cyclicAMIPolyPatch::cyclicAMIPolyPatch
nbrPatchName_(pp.nbrPatchName_),
coupleGroup_(pp.coupleGroup_),
nbrPatchID_(-1),
fraction_(pp.fraction_),
rotationAxis_(pp.rotationAxis_),
rotationCentre_(pp.rotationCentre_),
rotationAngleDefined_(pp.rotationAngleDefined_),
@ -742,6 +745,7 @@ Foam::cyclicAMIPolyPatch::cyclicAMIPolyPatch
nbrPatchName_(nbrPatchName),
coupleGroup_(pp.coupleGroup_),
nbrPatchID_(-1),
fraction_(pp.fraction_),
rotationAxis_(pp.rotationAxis_),
rotationCentre_(pp.rotationCentre_),
rotationAngleDefined_(pp.rotationAngleDefined_),
@ -784,6 +788,7 @@ Foam::cyclicAMIPolyPatch::cyclicAMIPolyPatch
nbrPatchName_(pp.nbrPatchName_),
coupleGroup_(pp.coupleGroup_),
nbrPatchID_(-1),
fraction_(pp.fraction_),
rotationAxis_(pp.rotationAxis_),
rotationCentre_(pp.rotationCentre_),
rotationAngleDefined_(pp.rotationAngleDefined_),
@ -1153,6 +1158,8 @@ void Foam::cyclicAMIPolyPatch::write(Ostream& os) const
os.writeEntry("tgtSize", tgtFaceIDs_.size());
os.writeEntry("moveFaceCentres", moveFaceCentres_);
}
os.writeEntryIfDifferent<scalar>("fraction", Zero, fraction_);
}

View File

@ -97,6 +97,9 @@ protected:
//- Index of other half
mutable label nbrPatchID_;
//- Particle displacement fraction accross AMI
const scalar fraction_;
// Transformations
@ -357,6 +360,9 @@ public:
//- Neighbour patch ID
virtual label neighbPatchID() const;
//- Particle fraction increase between AMI pathces
inline scalar fraction() const;
//- Does this side own the patch?
virtual bool owner() const;

View File

@ -58,6 +58,13 @@ inline const Foam::word& Foam::cyclicAMIPolyPatch::neighbPatchName() const
return nbrPatchName_;
}
inline Foam::scalar Foam::cyclicAMIPolyPatch::fraction() const
{
return fraction_;
}
inline const Foam::scalarListList& Foam::cyclicAMIPolyPatch::weights() const
{
if (owner())

View File

@ -0,0 +1,40 @@
/*--------------------------------*- 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;
object U;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -1 0 0 0 0];
internalField uniform (0 0 0);
boundaryField
{
sides
{
type symmetry;
}
top
{
type noSlip;
}
bottom
{
type noSlip;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,42 @@
/*--------------------------------*- 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
{
sides
{
type symmetry;
}
top
{
type fixedFluxPressure;
value $internalField;
}
bottom
{
type fixedFluxPressure;
value $internalField;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,27 @@
/*--------------------------------*- 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 dynamicMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dynamicFvMesh dynamicMotionSolverFvMesh;
motionSolver solidBody;
solidBodyMotionFunction oscillatingLinearMotion;
amplitude (3 0 0);
omega 0.1; // rad/s (.5 rps)
// ************************************************************************* //

View File

@ -0,0 +1,21 @@
/*--------------------------------*- 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 uniformDimensionedVectorField;
object g;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -2 0 0 0 0];
value (0 0 -9.81);
// ************************************************************************* //

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,187 @@
/*--------------------------------*- 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 kinematicCloudProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solution
{
active true;
coupled true;
transient yes;
cellValueSourceCorrection off;
interpolationSchemes
{
rho.air cell;
U.air cellPoint;
mu.air cell;
}
averagingMethod dual;
integrationSchemes
{
U Euler;
}
sourceTerms
{
schemes
{
U semiImplicit 1;
}
}
}
constantProperties
{
rho0 2526;
alphaMax 0.9;
}
subModels
{
particleForces
{
ErgunWenYuDrag
{
alphac alpha.air;
}
}
injectionModels
{
model1
{
type manualInjection;
massTotal 0;
parcelBasisType fixed;
nParticle 750;
SOI 0;
positionsFile "kinematicCloudPositions";
U0 (0 0 0);
sizeDistribution
{
type fixedValue;
fixedValueDistribution
{
value 0.0003;
}
}
}
}
dispersionModel none;
patchInteractionModel localInteraction;
localInteractionCoeffs
{
patches
(
sides
{
type rebound;
e 1;
mu 0.09;
}
top
{
type rebound;
e 1;
mu 0.09;
}
bottom
{
type rebound;
e 1;
mu 0.09;
}
);
}
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 true;
particleStressModel
{
type HarrisCrighton;
alphaPacked 0.6;
pSolid 10.0;
beta 2.0;
eps 1.0e-2;
}
}
dampingModel none;//relaxation;
relaxationCoeffs
{
timeScaleModel
{
type nonEquilibrium;
alphaPacked 0.6;
e 0.9;
}
}
isotropyModel stochastic;
stochasticCoeffs
{
timeScaleModel
{
type isotropic;
alphaPacked 0.6;
e 0.9;
}
}
stochasticCollisionModel none;
radiation off;
}
cloudFunctions
{}
// ************************************************************************* //

View File

@ -0,0 +1,25 @@
/*--------------------------------*- 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 transportProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
continuousPhase air;
rho.air 1.2;
transportModel Newtonian;
nu 1e-05;
// ************************************************************************* //

View File

@ -0,0 +1,20 @@
/*--------------------------------*- 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 turbulenceProperties.air;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
simulationType laminar;
// ************************************************************************* //

View File

@ -0,0 +1,74 @@
/*--------------------------------*- 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 0.001;
vertices
(
(-9.2 -9.2 0)
( 9.2 -9.2 0)
( 9.2 9.2 0)
(-9.2 9.2 0)
(-9.2 -9.2 300)
( 9.2 -9.2 300)
( 9.2 9.2 300)
(-9.2 9.2 300)
);
blocks
(
hex (0 1 2 3 4 5 6 7) (1 1 40) simpleGrading (1 1 1)
);
edges
(
);
boundary
(
sides
{
type symmetry;
faces
(
(0 1 5 4)
(1 2 6 5)
(2 3 7 6)
(3 0 4 7)
);
}
top
{
type wall;
faces
(
(4 5 6 7)
);
}
bottom
{
type wall;
faces
(
(0 1 2 3)
);
}
);
// ************************************************************************* //

View File

@ -0,0 +1,48 @@
/*--------------------------------*- 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 controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
application MPPICFoam;
startFrom startTime;
startTime 0;
stopAt endTime;
endTime 1;
deltaT 2e-4;
writeControl runTime;
writeInterval 0.01;
purgeWrite 0;
writeFormat ascii;
writePrecision 8;
writeCompression off;
timeFormat general;
timePrecision 6;
runTimeModifiable yes;
// ************************************************************************* //

View File

@ -0,0 +1,58 @@
/*--------------------------------*- 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 fvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
ddtSchemes
{
default Euler;
}
d2dt2Schemes
{
default Euler;
}
gradSchemes
{
default Gauss linear;
}
divSchemes
{
default none;
div(alphaPhi.air,U.air) Gauss linearUpwindV unlimited;
div(((alpha.air*nuEff.air)*dev2(T(grad(U.air))))) Gauss linear;
div(phiGByA,kinematicCloud:alpha) Gauss linear;
}
laplacianSchemes
{
default Gauss linear corrected;
}
interpolationSchemes
{
default linear;
}
snGradSchemes
{
default corrected;
}
// ************************************************************************* //

View File

@ -0,0 +1,89 @@
/*--------------------------------*- 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 fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solvers
{
p
{
solver GAMG;
tolerance 1e-6;
relTol 0.01;
smoother GaussSeidel;
}
pFinal
{
$p;
relTol 0;
}
pcorrFinal
{
$p;
relTol 0;
}
U.air
{
solver smoothSolver;
smoother symGaussSeidel;
tolerance 1e-05;
relTol 0.1;
}
U.airFinal
{
solver smoothSolver;
smoother symGaussSeidel;
tolerance 1e-05;
relTol 0;
}
kinematicCloud:alpha
{
solver smoothSolver;
smoother symGaussSeidel;
tolerance 1e-06;
relTol 0;
}
}
PIMPLE
{
nOuterCorrectors 1;
nCorrectors 2;
momentumPredictor yes;
nNonOrthogonalCorrectors 0;
pRefCell 0;
pRefValue 0;
checkMeshCourantNo no;
correctPhi no;
}
relaxationFactors
{
fields
{
".*" 1;
}
equations
{
".*" 1;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,48 @@
/*--------------------------------*- 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 T;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 1 0 0 0];
internalField uniform 350;
boundaryField
{
AMI1a
{
type cyclicAMI;
value $internalField;
}
AMI1b
{
type cyclicAMI;
value $internalField;
}
".*"
{
type zeroGradient;
value $internalField;
}
defaultFaces
{
type empty;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,55 @@
/*--------------------------------*- 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 volVectorField;
object U.air;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -1 0 0 0 0];
internalField uniform (0 0 0);
boundaryField
{
AMI1a
{
type cyclicAMI;
value uniform (0 0 0);
}
AMI1b
{
type cyclicAMI;
value uniform (0 0 0);
}
rotor
{
type movingWallVelocity;
value uniform (0 0 0);
}
".*"
{
type fixedValue;
value uniform (0 0 0);
}
defaultFaces
{
type empty;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,54 @@
/*--------------------------------*- 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
{
AMI1a
{
type cyclicAMI;
value $internalField;
}
AMI1b
{
type cyclicAMI;
value $internalField;
}
outlet
{
type fixedValue;
value $internalField;
}
".*"
{
type zeroGradient;
value $internalField;
}
defaultFaces
{
type empty;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,34 @@
/*--------------------------------*- 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 dynamicMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dynamicFvMesh dynamicMotionSolverFvMesh;
motionSolverLibs (fvMotionSolvers);
motionSolver solidBody;
cellZone rotor;
solidBodyMotionFunction rotatingMotion;
rotatingMotionCoeffs
{
origin (0.225 0.15 0);
axis (0 0 1);
omega 5; // rad/s
}
// ************************************************************************* //

View File

@ -0,0 +1,21 @@
/*--------------------------------*- 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 uniformDimensionedVectorField;
object g;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -2 0 0 0 0];
value ( 0 -9.81 0 );
// ************************************************************************* //

View File

@ -0,0 +1,170 @@
/*--------------------------------*- 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 particleProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solution
{
active true;
coupled false;
transient yes;
cellValueSourceCorrection off;
maxCo 0.3;
averagingMethod dual;
sourceTerms
{
schemes
{
U semiImplicit 1;
}
}
interpolationSchemes
{
rho cell;
U.air cellPoint;
mu.air cell;
rho.air cell;
}
integrationSchemes
{
U Euler;
}
}
constantProperties
{
rho0 1000;
alphaMax 0.9;
}
subModels
{
particleForces
{
gravity;
ErgunWenYuDrag
{
alphac alpha.air;
}
}
injectionModels
{
model1
{
type patchInjection;
parcelBasisType fixed;
patch inlet;
U0 (0.3 0 0);
nParticle 1;
parcelsPerSecond 20000;
sizeDistribution
{
type uniform;
uniformDistribution
{
minValue 5e-03;
maxValue 5e-03;
}
}
flowRateProfile constant 1;
massTotal 2000000;
SOI 0;
duration 2;
}
}
dispersionModel none;
patchInteractionModel none;
heatTransferModel none;
surfaceFilmModel none;
collisionModel none;
patchInteractionModel standardWallInteraction;
standardWallInteractionCoeffs
{
type rebound; // stick, escape
e 0.6; // elasticity coeff
mu 0.09; // tan coeff
UrMax 1e-4; // relative U of particle after collision
// bellow which the particle is considered
// at the same U as the patch and deleted
}
stochasticCollisionModel none;
packingModel explicit;
explicitCoeffs
{
particleStressModel
{
type HarrisCrighton;
alphaPacked 0.6;
pSolid 8.0;
beta 2;
eps 1.0e-7;
}
correctionLimitingMethod
{
type absolute;
e 0.7;
}
}
dampingModel none;
relaxationCoeffs
{
timeScaleModel
{
type isotropic;
alphaPacked 0.6;
e 0.88;
}
}
isotropyModel none;
stochasticCoeffs
{
timeScaleModel
{
type isotropic;
alphaPacked 0.6;
e 0.8;
}
}
radiation off;
}
cloudFunctions
{}
// ************************************************************************* //

View File

@ -0,0 +1,25 @@
/*--------------------------------*- 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 transportProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
continuousPhase air;
rho.air 1.2;
transportModel Newtonian;
nu 1e-05;
// ************************************************************************* //

View File

@ -0,0 +1,20 @@
/*--------------------------------*- 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 turbulenceProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
simulationType laminar;
// ************************************************************************* //

View File

@ -0,0 +1,421 @@
/*--------------------------------*- 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) //p0
(0 0.1 0) //p1
(0 0.2 0) //p2
(0 0.3 0) //p3
(0.075 0 0) //p4
(0.116747 0.0875 0) //p5
(0.116747 0.2125 0) //p6
(0.075 0.3 0) //p7
(0.225 -0.2 0) //p8
(0.225 0 0) //p9
(0.225 0.025 0) //p10
(0.225 0.275 0) //p11
(0.225 0.3 0) //p12
(0.225 0.5 0) //p13
(0.375 -0.2 0) //p14
(0.375 0 0) //p15
(0.333253 0.0875 0) //p16
(0.333253 0.2125 0) //p17
(0.375 0.3 0) //p18
(0.375 0.5 0) //p19
(1.225 -0.2 0) //p20
(1.225 0 0) //p21
(1.225 0.0875 0) //p22
(1.225 0.2125 0) //p23
(1.225 0.3 0) //p24
(1.225 0.5 0) //p25
//domain back
(0 0 0.10) //p26
(0 0.1 0.10) //p27
(0 0.2 0.10) //p28
(0 0.3 0.10) //p29
(0.075 0 0.10) //p30
(0.116747 0.0875 0.10) //p31
(0.116747 0.2125 0.10) //p32
(0.075 0.3 0.10) //p33
(0.225 -0.2 0.10) //p34
(0.225 0 0.10) //p35
(0.225 0.025 0.10) //p36
(0.225 0.275 0.10) //p37
(0.225 0.3 0.10) //p38
(0.225 0.5 0.10) //p39
(0.375 -0.2 0.10) //p40
(0.375 0 0.10) //p41
(0.333253 0.0875 0.10) //p42
(0.333253 0.2125 0.10) //p43
(0.375 0.3 0.10) //p44
(0.375 0.5 0.10) //p45
(1.225 -0.2 0.10) //p46
(1.225 0 0.10) //p47
(1.225 0.0875 0.10) //p48
(1.225 0.2125 0.10) //p49
(1.225 0.3 0.10) //p50
(1.225 0.5 0.10) //p51
//rotorfront
(0.192524 0.13125 0) //p52
(0.121077 0.09 0) //p53
(0.116747 0.0875 0) //p54
(0.192524 0.16875 0) //p55
(0.121077 0.21 0) //p56
(0.116747 0.2125 0) //p57
(0.192524 0.16875 0) //p58
(0.121077 0.21 0) //p59
(0.116747 0.2125 0) //p60
(0.225 0.1875 0) //61
(0.225 0.27 0) //62
(0.225 0.275 0) //63
(0.225 0.1875 0) //64
(0.225 0.27 0) //65
(0.225 0.275 0) //66
(0.257476 0.16875 0) //67
(0.328923 0.21 0) //68
(0.333253 0.2125 0) //69
(0.257476 0.16875 0) //70
(0.328923 0.21 0) //71
(0.333253 0.2125 0) //72
(0.257476 0.13125 0) //73
(0.328923 0.09 0) //74
(0.333253 0.0875 0) //75
(0.257476 0.13125 0) //76
(0.328923 0.09 0) //77
(0.333253 0.0875 0) //78
(0.225 0.1125 0) //79
(0.225 0.03 0) //80
(0.225 0.025 0) //81
(0.225 0.1125 0) //82
(0.225 0.03 0) //83
(0.225 0.025 0) //84
(0.192524 0.13125 0) //p85
(0.121077 0.09 0) //p86
(0.116747 0.0875 0) //p87
//rotorback
(0.192524 0.13125 0.1) //p88
(0.121077 0.09 0.1) //p89
(0.116747 0.0875 0.1) //p90
(0.192524 0.16875 0.1) //p91
(0.121077 0.21 0.1) //p92
(0.116747 0.2125 0.1) //p93
(0.192524 0.16875 0.1) //p94
(0.121077 0.21 0.1) //p95
(0.116747 0.2125 0.1) //p96
(0.225 0.1875 0.1) //97
(0.225 0.27 0.1) //98
(0.225 0.275 0.1) //99
(0.225 0.1875 0.1) //100
(0.225 0.27 0.1) //101
(0.225 0.275 0.1) //102
(0.257476 0.16875 0.1) //103
(0.328923 0.21 0.1) //104
(0.333253 0.2125 0.1) //105
(0.257476 0.16875 0.1) //106
(0.328923 0.21 0.1) //107
(0.333253 0.2125 0.1) //108
(0.257476 0.13125 0.1) //109
(0.328923 0.09 0.1) //110
(0.333253 0.0875 0.1) //111
(0.257476 0.13125 0.1) //112
(0.328923 0.09 0.1) //113
(0.333253 0.0875 0.1) //114
(0.225 0.1125 0.1) //115
(0.225 0.03 0.1) //116
(0.225 0.025 0.1) //117
(0.225 0.1125 0.1) //118
(0.225 0.03 0.1) //119
(0.225 0.025 0.1) //120
(0.192524 0.13125 0.1) //p121
(0.121077 0.09 0.1) //p122
(0.116747 0.0875 0.1) //p123
);
blocks
(
//domain
hex (0 4 5 1 26 30 31 27) domain (5 5 1) simpleGrading (1 1 1) //b0
hex (1 5 6 2 27 31 32 28) domain (5 5 1) simpleGrading (1 1 1) //b1
hex (2 6 7 3 28 32 33 29) domain (5 5 1) simpleGrading (1 1 1) //b2
hex (4 9 10 5 30 35 36 31) domain (5 5 1) simpleGrading (1 1 1) //b3
hex (6 11 12 7 32 37 38 33) domain (5 5 1) simpleGrading (1 1 1) //b4
hex (8 14 15 9 34 40 41 35) domain (5 10 1) simpleGrading (1 1 1) //b5
hex (9 15 16 10 35 41 42 36) domain (5 5 1) simpleGrading (1 1 1) //b6
hex (11 17 18 12 37 43 44 38) domain (5 5 1) simpleGrading (1 1 1) //b7
hex (12 18 19 13 38 44 45 39) domain (5 10 1) simpleGrading (1 1 1) //b8
hex (14 20 21 15 40 46 47 41) domain (20 10 1) simpleGrading (1 1 1)//b9
hex (15 21 22 16 41 47 48 42) domain (20 5 1) simpleGrading (1 1 1)//b10
hex (16 22 23 17 42 48 49 43) domain (20 5 1) simpleGrading (1 1 1)//b11
hex (17 23 24 18 43 49 50 44) domain (20 5 1) simpleGrading (1 1 1)//b12
hex (18 24 25 19 44 50 51 45) domain (20 10 1) simpleGrading (1 1 1)//b13
//rotor
hex (52 55 56 53 88 91 92 89) rotor (5 5 1) simpleGrading (1 1 1) //b14
hex (58 61 62 59 94 97 98 95) rotor (5 5 1) simpleGrading (1 1 1) //b15
hex (64 67 68 65 100 103 104 101) rotor (5 5 1) simpleGrading (1 1 1) //b16
hex (70 73 74 71 106 109 110 107) rotor (5 5 1) simpleGrading (1 1 1) //b17
hex (76 79 80 77 112 115 116 113) rotor (5 5 1) simpleGrading (1 1 1) //b18
hex (82 85 86 83 118 121 122 119) rotor (5 5 1) simpleGrading (1 1 1) //b19
hex (53 56 57 54 89 92 93 90) rotor (5 1 1) simpleGrading (1 1 1) //b20
hex (59 62 63 60 95 98 99 96) rotor (5 1 1) simpleGrading (1 1 1) //b21
hex (65 68 69 66 101 104 105 102) rotor (5 1 1) simpleGrading (1 1 1) //b22
hex (71 74 75 72 107 110 111 108) rotor (5 1 1) simpleGrading (1 1 1) //b23
hex (77 80 81 78 113 116 117 114) rotor (5 1 1) simpleGrading (1 1 1) //b24
hex (83 86 87 84 119 122 123 120) rotor (5 1 1) simpleGrading (1 1 1) //b25
);
edges
(
///// outer AMI
arc 10 5 (0.1625 0.041747 0)
arc 5 6 (0.1 0.15 0)
arc 6 11 (0.1625 0.258253 0)
arc 11 17 (0.2875 0.258253 0)
arc 17 16 (0.35 0.15 0)
arc 16 10 (0.2875 0.041747 0)
arc 36 31 (0.1625 0.041747 0.1)
arc 31 32 (0.1 0.15 0.1)
arc 32 37 (0.1625 0.258253 0.1)
arc 37 43 (0.2875 0.258253 0.1)
arc 43 42 (0.35 0.15 0.1)
arc 42 36 (0.2875 0.041747 0.1)
//inner AMI
arc 84 87 (0.1625 0.041747 0)
arc 54 57 (0.1 0.15 0)
arc 60 63 (0.1625 0.258253 0)
arc 66 69 (0.2875 0.258253 0)
arc 72 75 (0.35 0.15 0)
arc 78 81 (0.2875 0.041747 0)
arc 120 123 (0.1625 0.041747 0.1)
arc 90 93 (0.1 0.15 0.1)
arc 96 99 (0.1625 0.258253 0.1)
arc 102 105 (0.2875 0.258253 0.1)
arc 108 111 (0.35 0.15 0.1)
arc 114 117 (0.2875 0.041747 0.1)
//outer rotor
arc 83 86 (0.165 0.046077 0)
arc 53 56 (0.105 0.15 0)
arc 59 62 (0.165 0.253923 0)
arc 65 68 (0.285 0.253923 0)
arc 71 74 (0.345 0.15 0)
arc 77 80 (0.285 0.046077 0)
arc 119 122 (0.165 0.046077 0.1)
arc 89 92 (0.105 0.15 0.1)
arc 95 98 (0.165 0.253923 0.1)
arc 101 104 (0.285 0.253923 0.1)
arc 107 110 (0.345 0.15 0.1)
arc 113 116 (0.285 0.046077 0.1)
//inner rotor
arc 82 85 (0.20625 0.117524 0)
arc 52 55 (0.1875 0.15 0)
arc 58 61 (0.20625 0.182476 0)
arc 64 67 (0.24375 0.182476 0)
arc 70 73 (0.2625 0.15 0)
arc 76 79 (0.24375 0.117524 0)
arc 118 121 (0.20625 0.117524 0.1)
arc 88 91 (0.1875 0.15 0.1)
arc 94 97 (0.20625 0.182476 0.1)
arc 100 103 (0.24375 0.182476 0.1)
arc 106 109 (0.2625 0.15 0.1)
arc 112 115 (0.24375 0.117524 0.1)
);
boundary
(
walls
{
type wall;
faces
(
(0 4 30 26)
(4 9 35 30)
(9 8 34 35)
(3 7 33 29)
(7 12 38 33)
(12 13 39 38)
);
}
floor
{
type wall;
faces
(
(8 14 40 34)
(14 20 46 40)
);
}
roof
{
type wall;
faces
(
(13 19 45 39)
(19 25 51 45)
);
}
inlet
{
type patch;
faces
(
(0 1 27 26)
(1 2 28 27)
(2 3 29 28)
);
}
outlet
{
type patch;
faces
(
(20 21 47 46)
(21 22 48 47)
(22 23 49 48)
(23 24 50 49)
(24 25 51 50)
);
}
AMI1a
{
type cyclicAMI;
fraction 0.05;
matchTolerance 0.0001;
transform noOrdering;
neighbourPatch AMI1b;
faces
(
(10 5 31 36)
(5 6 32 31)
(6 11 37 32)
(11 17 43 37)
(17 16 42 43)
(16 10 36 42)
);
}
AMI1b
{
type cyclicAMI;
fraction 0.05;
matchTolerance 0.0001;
transform noOrdering;
neighbourPatch AMI1a;
faces
(
(84 87 123 120)
(54 57 93 90)
(60 63 99 96)
(66 69 105 102)
(72 75 111 108)
(78 81 117 114)
);
}
rotor
{
type wall;
faces
(
(82 83 119 118)
(83 84 120 119)
(79 80 116 115)
(80 81 117 116)
(85 86 122 121)
(86 87 123 122)
(52 53 89 88)
(53 54 90 89)
(55 56 92 91)
(56 57 93 92)
(58 59 95 94)
(59 60 96 95)
(61 62 98 97)
(62 63 99 98)
(64 65 101 100)
(65 66 102 101)
(67 68 104 103)
(68 69 105 104)
(70 71 107 106)
(71 72 108 107)
(76 77 113 112)
(77 78 114 113)
(73 74 110 109)
(74 75 111 110)
(82 85 121 118)
(52 55 91 88)
(58 61 97 94)
(64 67 103 100)
(70 73 109 106)
(76 79 115 112)
);
}
);
// ************************************************************************* //

View File

@ -0,0 +1,53 @@
/*--------------------------------*- 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 controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
DebugSwitches
{
particle 0;
}
application MPPICDyMFoam;
startFrom startTime;
startTime 0;
stopAt endTime;
endTime 2;
deltaT 1e-3;
writeControl runTime;
writeInterval 0.01;
purgeWrite 0;
writeFormat binary;
writePrecision 6;
writeCompression off;
timeFormat general;
timePrecision 6;
runTimeModifiable no;
// ************************************************************************* //

View File

@ -0,0 +1,58 @@
/*--------------------------------*- 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 fvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
ddtSchemes
{
default Euler;
}
d2dt2Schemes
{
default Euler;
}
gradSchemes
{
default Gauss linear;
}
divSchemes
{
default none;
div(alphaPhi.air,U.air) Gauss linearUpwindV limited 1;
div(((alpha.air*nuEff.air)*dev2(T(grad(U.air))))) Gauss linear;
div(phiGByA,kinematicCloud:alpha) Gauss linear;
}
laplacianSchemes
{
default Gauss linear corrected;
}
interpolationSchemes
{
default linear;
}
snGradSchemes
{
default corrected;
}
// ************************************************************************* //

View File

@ -0,0 +1,84 @@
/*--------------------------------*- 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 fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solvers
{
"(p|pcorr)"
{
solver GAMG;
tolerance 1e-7;
relTol 0.01;
smoother GaussSeidel;
maxIter 20;
}
"(pFinal|pcorrFinal)"
{
$p;
relTol 0;
}
U.air
{
solver smoothSolver;
smoother symGaussSeidel;
tolerance 1e-05;
relTol 0.1;
}
U.airFinal
{
solver smoothSolver;
smoother symGaussSeidel;
tolerance 1e-05;
relTol 0;
}
kinematicCloud:alpha
{
solver smoothSolver;
smoother symGaussSeidel;
tolerance 1e-06;
relTol 0;
}
}
PIMPLE
{
nOuterCorrectors 1;
nCorrectors 3;
momentumPredictor no;
nNonOrthogonalCorrectors 0;
pRefCell 0;
pRefValue 0;
checkMeshCourantNo no;
correctPhi no;
}
relaxationFactors
{
fields
{
".*" 1;
}
equations
{
".*" 1;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,48 @@
/*--------------------------------*- 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 T;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 1 0 0 0];
internalField uniform 350;
boundaryField
{
AMI1a
{
type cyclicAMI;
value $internalField;
}
AMI1b
{
type cyclicAMI;
value $internalField;
}
".*"
{
type zeroGradient;
value $internalField;
}
defaultFaces
{
type empty;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,54 @@
/*--------------------------------*- 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 volVectorField;
object U;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -1 0 0 0 0];
internalField uniform (0 0 0);
boundaryField
{
AMI1a
{
type cyclicAMI;
value uniform (0 0 0);
}
AMI1b
{
type cyclicAMI;
value uniform (0 0 0);
}
rotor
{
type movingWallVelocity;
value uniform (0 0 0);
}
".*"
{
type fixedValue;
value uniform (0 0 0);
}
defaultFaces
{
type empty;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,48 @@
/*--------------------------------*- 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 [1 -1 -2 0 0 0 0];
internalField uniform 100000;
boundaryField
{
AMI1a
{
type cyclicAMI;
value $internalField;
}
AMI1b
{
type cyclicAMI;
value $internalField;
}
".*"
{
type zeroGradient;
value $internalField;
}
defaultFaces
{
type empty;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,8 @@
#!/bin/sh
cd "${0%/*}" || exit # Run from this directory
. ${WM_PROJECT_DIR:?}/bin/tools/CleanFunctions # Tutorial clean functions
#------------------------------------------------------------------------------
cleanCase0
#------------------------------------------------------------------------------

View File

@ -0,0 +1,12 @@
#!/bin/sh
cd "${0%/*}" || exit # Run from this directory
. ${WM_PROJECT_DIR:?}/bin/tools/RunFunctions # Tutorial run functions
#------------------------------------------------------------------------------
restore0Dir
runApplication blockMesh
runApplication $(getApplication)
#------------------------------------------------------------------------------

View File

@ -0,0 +1,34 @@
/*--------------------------------*- 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 dynamicMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dynamicFvMesh dynamicMotionSolverFvMesh;
motionSolverLibs (fvMotionSolvers);
motionSolver solidBody;
cellZone rotor;
solidBodyMotionFunction rotatingMotion;
rotatingMotionCoeffs
{
origin (0.225 0.15 0);
axis (0 0 1);
omega 5; // rad/s
}
// ************************************************************************* //

View File

@ -0,0 +1,21 @@
/*--------------------------------*- 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 uniformDimensionedVectorField;
object g;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -2 0 0 0 0];
value ( 0 -9.81 0 );
// ************************************************************************* //

View File

@ -0,0 +1,119 @@
/*--------------------------------*- 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 particleProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solution
{
active true;
coupled false;
transient yes;
cellValueSourceCorrection off;
maxCo 0.3;
sourceTerms
{
schemes
{
}
}
interpolationSchemes
{
rho cell;
U cellPoint;
thermo:mu cell;
}
integrationSchemes
{
U Euler;
}
}
constantProperties
{
rho0 1000;
constantVolume true;
}
subModels
{
particleForces
{
//sphereDrag;
//gravity;
}
injectionModels
{
model1
{
type patchInjection;
parcelBasisType fixed;
patch inlet;
U0 (0.1 0 0);
nParticle 1;
parcelsPerSecond 20000000;
sizeDistribution
{
type uniform;
uniformDistribution
{
minValue 50e-06;
maxValue 50e-06;
}
}
flowRateProfile constant 1;
massTotal 2000000;
SOI 0;
duration 0.00001;
}
}
dispersionModel none;
patchInteractionModel none;
heatTransferModel none;
surfaceFilmModel none;
collisionModel none;
patchInteractionModel standardWallInteraction;
standardWallInteractionCoeffs
{
type rebound; // stick, escape
e 0.9; // optional - elasticity coeff
mu 0.09; // optional - restitution coeff
UrMax 1e-4;
}
stochasticCollisionModel none;
radiation off;
}
cloudFunctions
{}
// ************************************************************************* //

View File

@ -0,0 +1,47 @@
/*--------------------------------*- 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 thermophysicalProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
thermoType
{
type hePsiThermo;
mixture pureMixture;
transport const;
thermo eConst;
equationOfState perfectGas;
specie specie;
energy sensibleInternalEnergy;
}
mixture
{
specie
{
molWeight 28.9;
}
thermodynamics
{
Cv 712;
Hf 0;
}
transport
{
mu 1.8e-05;
Pr 0.7;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,20 @@
/*--------------------------------*- 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 turbulenceProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
simulationType laminar;
// ************************************************************************* //

View File

@ -0,0 +1,420 @@
/*--------------------------------*- 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) //p0
(0 0.1 0) //p1
(0 0.2 0) //p2
(0 0.3 0) //p3
(0.075 0 0) //p4
(0.116747 0.0875 0) //p5
(0.116747 0.2125 0) //p6
(0.075 0.3 0) //p7
(0.225 -0.2 0) //p8
(0.225 0 0) //p9
(0.225 0.025 0) //p10
(0.225 0.275 0) //p11
(0.225 0.3 0) //p12
(0.225 0.5 0) //p13
(0.375 -0.2 0) //p14
(0.375 0 0) //p15
(0.333253 0.0875 0) //p16
(0.333253 0.2125 0) //p17
(0.375 0.3 0) //p18
(0.375 0.5 0) //p19
(1.225 -0.2 0) //p20
(1.225 0 0) //p21
(1.225 0.0875 0) //p22
(1.225 0.2125 0) //p23
(1.225 0.3 0) //p24
(1.225 0.5 0) //p25
//domain back
(0 0 0.10) //p26
(0 0.1 0.10) //p27
(0 0.2 0.10) //p28
(0 0.3 0.10) //p29
(0.075 0 0.10) //p30
(0.116747 0.0875 0.10) //p31
(0.116747 0.2125 0.10) //p32
(0.075 0.3 0.10) //p33
(0.225 -0.2 0.10) //p34
(0.225 0 0.10) //p35
(0.225 0.025 0.10) //p36
(0.225 0.275 0.10) //p37
(0.225 0.3 0.10) //p38
(0.225 0.5 0.10) //p39
(0.375 -0.2 0.10) //p40
(0.375 0 0.10) //p41
(0.333253 0.0875 0.10) //p42
(0.333253 0.2125 0.10) //p43
(0.375 0.3 0.10) //p44
(0.375 0.5 0.10) //p45
(1.225 -0.2 0.10) //p46
(1.225 0 0.10) //p47
(1.225 0.0875 0.10) //p48
(1.225 0.2125 0.10) //p49
(1.225 0.3 0.10) //p50
(1.225 0.5 0.10) //p51
//rotorfront
(0.192524 0.13125 0) //p52
(0.121077 0.09 0) //p53
(0.116747 0.0875 0) //p54
(0.192524 0.16875 0) //p55
(0.121077 0.21 0) //p56
(0.116747 0.2125 0) //p57
(0.192524 0.16875 0) //p58
(0.121077 0.21 0) //p59
(0.116747 0.2125 0) //p60
(0.225 0.1875 0) //61
(0.225 0.27 0) //62
(0.225 0.275 0) //63
(0.225 0.1875 0) //64
(0.225 0.27 0) //65
(0.225 0.275 0) //66
(0.257476 0.16875 0) //67
(0.328923 0.21 0) //68
(0.333253 0.2125 0) //69
(0.257476 0.16875 0) //70
(0.328923 0.21 0) //71
(0.333253 0.2125 0) //72
(0.257476 0.13125 0) //73
(0.328923 0.09 0) //74
(0.333253 0.0875 0) //75
(0.257476 0.13125 0) //76
(0.328923 0.09 0) //77
(0.333253 0.0875 0) //78
(0.225 0.1125 0) //79
(0.225 0.03 0) //80
(0.225 0.025 0) //81
(0.225 0.1125 0) //82
(0.225 0.03 0) //83
(0.225 0.025 0) //84
(0.192524 0.13125 0) //p85
(0.121077 0.09 0) //p86
(0.116747 0.0875 0) //p87
//rotorback
(0.192524 0.13125 0.1) //p88
(0.121077 0.09 0.1) //p89
(0.116747 0.0875 0.1) //p90
(0.192524 0.16875 0.1) //p91
(0.121077 0.21 0.1) //p92
(0.116747 0.2125 0.1) //p93
(0.192524 0.16875 0.1) //p94
(0.121077 0.21 0.1) //p95
(0.116747 0.2125 0.1) //p96
(0.225 0.1875 0.1) //97
(0.225 0.27 0.1) //98
(0.225 0.275 0.1) //99
(0.225 0.1875 0.1) //100
(0.225 0.27 0.1) //101
(0.225 0.275 0.1) //102
(0.257476 0.16875 0.1) //103
(0.328923 0.21 0.1) //104
(0.333253 0.2125 0.1) //105
(0.257476 0.16875 0.1) //106
(0.328923 0.21 0.1) //107
(0.333253 0.2125 0.1) //108
(0.257476 0.13125 0.1) //109
(0.328923 0.09 0.1) //110
(0.333253 0.0875 0.1) //111
(0.257476 0.13125 0.1) //112
(0.328923 0.09 0.1) //113
(0.333253 0.0875 0.1) //114
(0.225 0.1125 0.1) //115
(0.225 0.03 0.1) //116
(0.225 0.025 0.1) //117
(0.225 0.1125 0.1) //118
(0.225 0.03 0.1) //119
(0.225 0.025 0.1) //120
(0.192524 0.13125 0.1) //p121
(0.121077 0.09 0.1) //p122
(0.116747 0.0875 0.1) //p123
);
blocks
(
//domain
hex (0 4 5 1 26 30 31 27) domain (5 5 1) simpleGrading (1 1 1) //b0
hex (1 5 6 2 27 31 32 28) domain (5 5 1) simpleGrading (1 1 1) //b1
hex (2 6 7 3 28 32 33 29) domain (5 5 1) simpleGrading (1 1 1) //b2
hex (4 9 10 5 30 35 36 31) domain (5 5 1) simpleGrading (1 1 1) //b3
hex (6 11 12 7 32 37 38 33) domain (5 5 1) simpleGrading (1 1 1) //b4
hex (8 14 15 9 34 40 41 35) domain (5 10 1) simpleGrading (1 1 1) //b5
hex (9 15 16 10 35 41 42 36) domain (5 5 1) simpleGrading (1 1 1) //b6
hex (11 17 18 12 37 43 44 38) domain (5 5 1) simpleGrading (1 1 1) //b7
hex (12 18 19 13 38 44 45 39) domain (5 10 1) simpleGrading (1 1 1) //b8
hex (14 20 21 15 40 46 47 41) domain (20 10 1) simpleGrading (1 1 1)//b9
hex (15 21 22 16 41 47 48 42) domain (20 5 1) simpleGrading (1 1 1)//b10
hex (16 22 23 17 42 48 49 43) domain (20 5 1) simpleGrading (1 1 1)//b11
hex (17 23 24 18 43 49 50 44) domain (20 5 1) simpleGrading (1 1 1)//b12
hex (18 24 25 19 44 50 51 45) domain (20 10 1) simpleGrading (1 1 1)//b13
//rotor
hex (52 55 56 53 88 91 92 89) rotor (5 5 1) simpleGrading (1 1 1) //b14
hex (58 61 62 59 94 97 98 95) rotor (5 5 1) simpleGrading (1 1 1) //b15
hex (64 67 68 65 100 103 104 101) rotor (5 5 1) simpleGrading (1 1 1) //b16
hex (70 73 74 71 106 109 110 107) rotor (5 5 1) simpleGrading (1 1 1) //b17
hex (76 79 80 77 112 115 116 113) rotor (5 5 1) simpleGrading (1 1 1) //b18
hex (82 85 86 83 118 121 122 119) rotor (5 5 1) simpleGrading (1 1 1) //b19
hex (53 56 57 54 89 92 93 90) rotor (5 1 1) simpleGrading (1 1 1) //b20
hex (59 62 63 60 95 98 99 96) rotor (5 1 1) simpleGrading (1 1 1) //b21
hex (65 68 69 66 101 104 105 102) rotor (5 1 1) simpleGrading (1 1 1) //b22
hex (71 74 75 72 107 110 111 108) rotor (5 1 1) simpleGrading (1 1 1) //b23
hex (77 80 81 78 113 116 117 114) rotor (5 1 1) simpleGrading (1 1 1) //b24
hex (83 86 87 84 119 122 123 120) rotor (5 1 1) simpleGrading (1 1 1) //b25
);
edges
(
///// outer AMI
arc 10 5 (0.1625 0.041747 0)
arc 5 6 (0.1 0.15 0)
arc 6 11 (0.1625 0.258253 0)
arc 11 17 (0.2875 0.258253 0)
arc 17 16 (0.35 0.15 0)
arc 16 10 (0.2875 0.041747 0)
arc 36 31 (0.1625 0.041747 0.1)
arc 31 32 (0.1 0.15 0.1)
arc 32 37 (0.1625 0.258253 0.1)
arc 37 43 (0.2875 0.258253 0.1)
arc 43 42 (0.35 0.15 0.1)
arc 42 36 (0.2875 0.041747 0.1)
//inner AMI
arc 84 87 (0.1625 0.041747 0)
arc 54 57 (0.1 0.15 0)
arc 60 63 (0.1625 0.258253 0)
arc 66 69 (0.2875 0.258253 0)
arc 72 75 (0.35 0.15 0)
arc 78 81 (0.2875 0.041747 0)
arc 120 123 (0.1625 0.041747 0.1)
arc 90 93 (0.1 0.15 0.1)
arc 96 99 (0.1625 0.258253 0.1)
arc 102 105 (0.2875 0.258253 0.1)
arc 108 111 (0.35 0.15 0.1)
arc 114 117 (0.2875 0.041747 0.1)
//outer rotor
arc 83 86 (0.165 0.046077 0)
arc 53 56 (0.105 0.15 0)
arc 59 62 (0.165 0.253923 0)
arc 65 68 (0.285 0.253923 0)
arc 71 74 (0.345 0.15 0)
arc 77 80 (0.285 0.046077 0)
arc 119 122 (0.165 0.046077 0.1)
arc 89 92 (0.105 0.15 0.1)
arc 95 98 (0.165 0.253923 0.1)
arc 101 104 (0.285 0.253923 0.1)
arc 107 110 (0.345 0.15 0.1)
arc 113 116 (0.285 0.046077 0.1)
//inner rotor
arc 82 85 (0.20625 0.117524 0)
arc 52 55 (0.1875 0.15 0)
arc 58 61 (0.20625 0.182476 0)
arc 64 67 (0.24375 0.182476 0)
arc 70 73 (0.2625 0.15 0)
arc 76 79 (0.24375 0.117524 0)
arc 118 121 (0.20625 0.117524 0.1)
arc 88 91 (0.1875 0.15 0.1)
arc 94 97 (0.20625 0.182476 0.1)
arc 100 103 (0.24375 0.182476 0.1)
arc 106 109 (0.2625 0.15 0.1)
arc 112 115 (0.24375 0.117524 0.1)
);
boundary
(
walls
{
type wall;
faces
(
(0 4 30 26)
(4 9 35 30)
(9 8 34 35)
(3 7 33 29)
(7 12 38 33)
(12 13 39 38)
);
}
floor
{
type wall;
faces
(
(8 14 40 34)
(14 20 46 40)
);
}
roof
{
type wall;
faces
(
(13 19 45 39)
(19 25 51 45)
);
}
inlet
{
type patch;
faces
(
(0 1 27 26)
(1 2 28 27)
(2 3 29 28)
);
}
outlet
{
type patch;
faces
(
(20 21 47 46)
(21 22 48 47)
(22 23 49 48)
(23 24 50 49)
(24 25 51 50)
);
}
AMI1a
{
type cyclicAMI;
matchTolerance 0.0001;
transform noOrdering;
neighbourPatch AMI1b;
faces
(
(10 5 31 36)
(5 6 32 31)
(6 11 37 32)
(11 17 43 37)
(17 16 42 43)
(16 10 36 42)
);
}
AMI1b
{
type cyclicAMI;
matchTolerance 0.0001;
transform noOrdering;
neighbourPatch AMI1a;
faces
(
(84 87 123 120)
(54 57 93 90)
(60 63 99 96)
(66 69 105 102)
(72 75 111 108)
(78 81 117 114)
);
}
rotor
{
type wall;
faces
(
(82 83 119 118)
(83 84 120 119)
(79 80 116 115)
(80 81 117 116)
(85 86 122 121)
(86 87 123 122)
(52 53 89 88)
(53 54 90 89)
(55 56 92 91)
(56 57 93 92)
(58 59 95 94)
(59 60 96 95)
(61 62 98 97)
(62 63 99 98)
(64 65 101 100)
(65 66 102 101)
(67 68 104 103)
(68 69 105 104)
(70 71 107 106)
(71 72 108 107)
(76 77 113 112)
(77 78 114 113)
(73 74 110 109)
(74 75 111 110)
(82 85 121 118)
(52 55 91 88)
(58 61 97 94)
(64 67 103 100)
(70 73 109 106)
(76 79 115 112)
);
}
);
// ************************************************************************* //

View File

@ -0,0 +1,53 @@
/*--------------------------------*- 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 controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
DebugSwitches
{
particle 0;
}
application uncoupledKinematicParcelDyMFoam;
startFrom startTime;
startTime 0;
stopAt endTime;
endTime 2;
deltaT 1e-3;
writeControl runTime;
writeInterval 0.01;
purgeWrite 0;
writeFormat binary;
writePrecision 6;
writeCompression off;
timeFormat general;
timePrecision 6;
runTimeModifiable yes;
// ************************************************************************* //

View File

@ -0,0 +1,43 @@
/*--------------------------------*- 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 fvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
ddtSchemes
{
default Euler;
}
gradSchemes
{
default none;
}
divSchemes
{
default none;
}
laplacianSchemes
{
default none;
}
interpolationSchemes
{
default linear;
}
// ************************************************************************* //

View File

@ -0,0 +1,21 @@
/*--------------------------------*- 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 fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solvers
{}
// ************************************************************************* //