mirror of
https://github.com/ParticulateFlow/CFDEMcoupling-PFM.git
synced 2025-12-08 06:37:44 +00:00
Cleanup
This commit is contained in:
@ -1,41 +0,0 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
|
||||||
| ========= | |
|
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
|
||||||
| \\ / O peration | Version: 1.6 |
|
|
||||||
| \\ / A nd | Web: http://www.OpenFOAM.org |
|
|
||||||
| \\/ M anipulation | |
|
|
||||||
\*---------------------------------------------------------------------------*/
|
|
||||||
FoamFile
|
|
||||||
{
|
|
||||||
version 2.0;
|
|
||||||
format ascii;
|
|
||||||
class volVectorField;
|
|
||||||
object gradPSmooth;
|
|
||||||
}
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
dimensions [1 -2 -2 0 0 0 0];
|
|
||||||
|
|
||||||
internalField uniform (0 0 0);
|
|
||||||
|
|
||||||
boundaryField
|
|
||||||
{
|
|
||||||
|
|
||||||
walls
|
|
||||||
{
|
|
||||||
type zeroGradient;
|
|
||||||
}
|
|
||||||
|
|
||||||
outlet
|
|
||||||
{
|
|
||||||
type zeroGradient;
|
|
||||||
}
|
|
||||||
|
|
||||||
atmosphere
|
|
||||||
{
|
|
||||||
type zeroGradient;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
|
||||||
@ -1,41 +0,0 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
|
||||||
| ========= | |
|
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
|
||||||
| \\ / O peration | Version: 1.6 |
|
|
||||||
| \\ / A nd | Web: http://www.OpenFOAM.org |
|
|
||||||
| \\/ M anipulation | |
|
|
||||||
\*---------------------------------------------------------------------------*/
|
|
||||||
FoamFile
|
|
||||||
{
|
|
||||||
version 2.0;
|
|
||||||
format ascii;
|
|
||||||
class volScalarField;
|
|
||||||
object refField;
|
|
||||||
}
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
dimensions [0 1 0 0 0 0 0];
|
|
||||||
|
|
||||||
internalField uniform 0;
|
|
||||||
|
|
||||||
boundaryField
|
|
||||||
{
|
|
||||||
|
|
||||||
walls
|
|
||||||
{
|
|
||||||
type zeroGradient;
|
|
||||||
}
|
|
||||||
|
|
||||||
outlet
|
|
||||||
{
|
|
||||||
type zeroGradient;
|
|
||||||
}
|
|
||||||
|
|
||||||
atmosphere
|
|
||||||
{
|
|
||||||
type zeroGradient;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
|
||||||
@ -1,318 +0,0 @@
|
|||||||
/*---------------------------------------------------------------------------*\
|
|
||||||
| ========= | |
|
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
|
||||||
| \\ / O peration | Version: 1.4 |
|
|
||||||
| \\ / A nd | Web: http://www.openfoam.org |
|
|
||||||
| \\/ M anipulation | |
|
|
||||||
\*---------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
|
|
||||||
FoamFile
|
|
||||||
{
|
|
||||||
version 2.0;
|
|
||||||
format ascii;
|
|
||||||
|
|
||||||
root "";
|
|
||||||
case "";
|
|
||||||
instance "";
|
|
||||||
local "";
|
|
||||||
|
|
||||||
class dictionary;
|
|
||||||
object couplingProperties;
|
|
||||||
}
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
//===========================================================================//
|
|
||||||
// sub-models & settings
|
|
||||||
|
|
||||||
syncMode false;
|
|
||||||
//verbose;
|
|
||||||
useDDTvoidfraction;
|
|
||||||
|
|
||||||
|
|
||||||
modelType "A"; // A or B
|
|
||||||
|
|
||||||
couplingInterval 100;
|
|
||||||
|
|
||||||
voidFractionModel divided; //bigParticle; //trilinear; //centre; //divided;
|
|
||||||
|
|
||||||
locateModel engine;//turboEngineM2M;//
|
|
||||||
|
|
||||||
meshMotionModel noMeshMotion;
|
|
||||||
|
|
||||||
regionModel allRegion;
|
|
||||||
|
|
||||||
IOModel basicIO;
|
|
||||||
|
|
||||||
probeModel off; //particleProbe; //off;
|
|
||||||
|
|
||||||
dataExchangeModel twoWayMPI;//twoWayFiles;//twoWayM2M;//oneWayVTK;//
|
|
||||||
|
|
||||||
averagingModel dense;//dilute;//
|
|
||||||
|
|
||||||
clockModel standardClock;//off;
|
|
||||||
|
|
||||||
smoothingModel constDiffSmoothing; //off;// localPSizeDiffSmoothing;// constDiffSmoothing; //
|
|
||||||
|
|
||||||
forceModels
|
|
||||||
(
|
|
||||||
//GidaspowDrag
|
|
||||||
//BeetstraDrag
|
|
||||||
//DiFeliceDrag
|
|
||||||
//gradPForce
|
|
||||||
gradPForceSmooth
|
|
||||||
viscForce
|
|
||||||
KochHillDrag
|
|
||||||
//interface
|
|
||||||
//DEMbasedDrag
|
|
||||||
//RongDrag
|
|
||||||
//Archimedes
|
|
||||||
//volWeightedAverage
|
|
||||||
//totalMomentumExchange
|
|
||||||
//particleCellVolume
|
|
||||||
//fieldTimeAverage
|
|
||||||
//surfaceTensionForce
|
|
||||||
);
|
|
||||||
|
|
||||||
momCoupleModels
|
|
||||||
(
|
|
||||||
implicitCouple
|
|
||||||
);
|
|
||||||
|
|
||||||
turbulenceModelType "RASProperties";//"LESProperties";//
|
|
||||||
|
|
||||||
//===========================================================================//
|
|
||||||
// sub-model properties
|
|
||||||
|
|
||||||
localPSizeDiffSmoothingProps
|
|
||||||
{
|
|
||||||
lowerLimit 0.1;
|
|
||||||
upperLimit 1e10;
|
|
||||||
dSmoothingLength 1.5e-3;
|
|
||||||
Csmoothing 1.0;
|
|
||||||
}
|
|
||||||
|
|
||||||
constDiffSmoothingProps
|
|
||||||
{
|
|
||||||
lowerLimit 0.1;
|
|
||||||
upperLimit 1e10;
|
|
||||||
smoothingLength 6e-3;
|
|
||||||
}
|
|
||||||
|
|
||||||
implicitCoupleProps
|
|
||||||
{
|
|
||||||
velFieldName "U";
|
|
||||||
granVelFieldName "Us";
|
|
||||||
voidfractionFieldName "voidfraction";
|
|
||||||
}
|
|
||||||
|
|
||||||
ArchimedesProps
|
|
||||||
{
|
|
||||||
gravityFieldName "g";
|
|
||||||
treatForceDEM true;
|
|
||||||
}
|
|
||||||
gradPForceProps
|
|
||||||
{
|
|
||||||
pFieldName "p";
|
|
||||||
voidfractionFieldName "voidfraction";
|
|
||||||
velocityFieldName "U";
|
|
||||||
//interpolation true;
|
|
||||||
}
|
|
||||||
|
|
||||||
viscForceProps
|
|
||||||
{
|
|
||||||
velocityFieldName "U";
|
|
||||||
//interpolation false;
|
|
||||||
verbose true;
|
|
||||||
}
|
|
||||||
volWeightedAverageProps
|
|
||||||
{
|
|
||||||
scalarFieldNames
|
|
||||||
(
|
|
||||||
voidfraction
|
|
||||||
);
|
|
||||||
vectorFieldNames
|
|
||||||
(
|
|
||||||
);
|
|
||||||
upperThreshold 0.999;
|
|
||||||
lowerThreshold 0;
|
|
||||||
verbose true;
|
|
||||||
}
|
|
||||||
totalMomentumExchangeProps
|
|
||||||
{
|
|
||||||
implicitMomExFieldName "Ksl";
|
|
||||||
explicitMomExFieldName "none";
|
|
||||||
fluidVelFieldName "U";
|
|
||||||
granVelFieldName "Us";
|
|
||||||
}
|
|
||||||
GidaspowDragProps
|
|
||||||
{
|
|
||||||
verbose true;
|
|
||||||
velFieldName "U";
|
|
||||||
voidfractionFieldName "voidfraction";
|
|
||||||
interpolation true;
|
|
||||||
phi 1;
|
|
||||||
}
|
|
||||||
DEMbasedDragProps
|
|
||||||
{
|
|
||||||
velFieldName "U";
|
|
||||||
voidfractionFieldName "voidfraction";
|
|
||||||
}
|
|
||||||
|
|
||||||
DiFeliceDragProps
|
|
||||||
{
|
|
||||||
//verbose true;
|
|
||||||
velFieldName "U";
|
|
||||||
voidfractionFieldName "voidfraction";
|
|
||||||
granVelFieldName "Us";
|
|
||||||
interpolation true;
|
|
||||||
}
|
|
||||||
|
|
||||||
KochHillDragProps
|
|
||||||
{
|
|
||||||
//verbose true;
|
|
||||||
velFieldName "U";
|
|
||||||
voidfractionFieldName "voidfraction";
|
|
||||||
//interpolation true;
|
|
||||||
//forceSubModels
|
|
||||||
//(
|
|
||||||
// ImExCorr
|
|
||||||
//);
|
|
||||||
implForceDEM true;
|
|
||||||
//implForceDEMaccumulated true;
|
|
||||||
//explicitCorr true;
|
|
||||||
}
|
|
||||||
|
|
||||||
BeetstraDragProps
|
|
||||||
{
|
|
||||||
velFieldName "U";
|
|
||||||
gravityFieldName "g";
|
|
||||||
rhoParticle 2000.;
|
|
||||||
voidfractionFieldName "voidfraction";
|
|
||||||
interpolation ;
|
|
||||||
useFilteredDragModel ;
|
|
||||||
useParcelSizeDependentFilteredDrag ;
|
|
||||||
k 0.05;
|
|
||||||
aLimit 0.0;
|
|
||||||
// verbose true;
|
|
||||||
}
|
|
||||||
|
|
||||||
RongDragProps
|
|
||||||
{
|
|
||||||
verbose true;
|
|
||||||
velFieldName "U";
|
|
||||||
voidfractionFieldName "voidfraction";
|
|
||||||
interpolation true;
|
|
||||||
implForceDEM true;
|
|
||||||
implForceDEMaccumulated true;
|
|
||||||
granVelFieldName "Us";
|
|
||||||
}
|
|
||||||
|
|
||||||
virtualMassForceProps
|
|
||||||
{
|
|
||||||
velFieldName "U";
|
|
||||||
}
|
|
||||||
|
|
||||||
particleCellVolumeProps
|
|
||||||
{
|
|
||||||
upperThreshold 0.999;
|
|
||||||
lowerThreshold 0.;
|
|
||||||
verbose true;
|
|
||||||
}
|
|
||||||
|
|
||||||
fieldStoreProps
|
|
||||||
{
|
|
||||||
scalarFieldNames
|
|
||||||
(
|
|
||||||
);
|
|
||||||
|
|
||||||
vectorFieldNames
|
|
||||||
(
|
|
||||||
"U"
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
oneWayVTKProps
|
|
||||||
{
|
|
||||||
couplingFilename "vtk_out%4.4d.vtk";
|
|
||||||
maxNumberOfParticles 30000;
|
|
||||||
}
|
|
||||||
|
|
||||||
twoWayFilesProps
|
|
||||||
{
|
|
||||||
maxNumberOfParticles 10100;
|
|
||||||
}
|
|
||||||
|
|
||||||
centreProps
|
|
||||||
{
|
|
||||||
alphaMin 0.1;
|
|
||||||
}
|
|
||||||
|
|
||||||
engineProps
|
|
||||||
{
|
|
||||||
treeSearch true;
|
|
||||||
}
|
|
||||||
|
|
||||||
turboEngineM2MProps
|
|
||||||
{
|
|
||||||
turboEngineProps
|
|
||||||
{
|
|
||||||
treeSearch true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
dividedProps
|
|
||||||
{
|
|
||||||
alphaMin 0.01;
|
|
||||||
// porosity 0.5;
|
|
||||||
//interpolation true;
|
|
||||||
}
|
|
||||||
|
|
||||||
twoWayMPIProps
|
|
||||||
{
|
|
||||||
liggghtsPath "../DEM/in.liggghts_equilibrate";
|
|
||||||
}
|
|
||||||
twoWayM2MProps
|
|
||||||
{
|
|
||||||
maxNumberOfParticles 10100;
|
|
||||||
liggghtsPath "../DEM/in.liggghts_equilibrate";
|
|
||||||
}
|
|
||||||
surfaceTensionForceProps
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
trilinearProps
|
|
||||||
{
|
|
||||||
alphaMin 0.01;
|
|
||||||
}
|
|
||||||
|
|
||||||
bigParticleProps
|
|
||||||
{
|
|
||||||
alphaMin 0.01;
|
|
||||||
maxCellsPerParticle 1000;
|
|
||||||
porosity 100.0;
|
|
||||||
}
|
|
||||||
|
|
||||||
gradPForceSmoothProps
|
|
||||||
{
|
|
||||||
pFieldName "p";
|
|
||||||
voidfractionFieldName "voidfraction";
|
|
||||||
velocityFieldName "U";
|
|
||||||
smoothingModel "temporalSmoothing";
|
|
||||||
//smoothingModel "constDiffSmoothing";
|
|
||||||
//interpolation true;
|
|
||||||
alpha 1000.0;
|
|
||||||
temporalSmoothingProps
|
|
||||||
{
|
|
||||||
lowerLimit 0.1;
|
|
||||||
upperLimit 1e10;
|
|
||||||
//referenceField "p";
|
|
||||||
referenceField "p_rgh";
|
|
||||||
alpha 0.01;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
// ************************************************************************* //
|
|
||||||
@ -1,318 +0,0 @@
|
|||||||
/*---------------------------------------------------------------------------*\
|
|
||||||
| ========= | |
|
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
|
||||||
| \\ / O peration | Version: 1.4 |
|
|
||||||
| \\ / A nd | Web: http://www.openfoam.org |
|
|
||||||
| \\/ M anipulation | |
|
|
||||||
\*---------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
|
|
||||||
FoamFile
|
|
||||||
{
|
|
||||||
version 2.0;
|
|
||||||
format ascii;
|
|
||||||
|
|
||||||
root "";
|
|
||||||
case "";
|
|
||||||
instance "";
|
|
||||||
local "";
|
|
||||||
|
|
||||||
class dictionary;
|
|
||||||
object couplingProperties;
|
|
||||||
}
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
//===========================================================================//
|
|
||||||
// sub-models & settings
|
|
||||||
|
|
||||||
syncMode false;
|
|
||||||
//verbose;
|
|
||||||
useDDTvoidfraction;
|
|
||||||
|
|
||||||
|
|
||||||
modelType "A"; // A or B
|
|
||||||
|
|
||||||
couplingInterval 100;
|
|
||||||
|
|
||||||
voidFractionModel divided; //bigParticle; //trilinear; //centre; //divided;
|
|
||||||
|
|
||||||
locateModel engine;//turboEngineM2M;//
|
|
||||||
|
|
||||||
meshMotionModel noMeshMotion;
|
|
||||||
|
|
||||||
regionModel allRegion;
|
|
||||||
|
|
||||||
IOModel basicIO;
|
|
||||||
|
|
||||||
probeModel off; //particleProbe; //off;
|
|
||||||
|
|
||||||
dataExchangeModel twoWayMPI;//twoWayFiles;//twoWayM2M;//oneWayVTK;//
|
|
||||||
|
|
||||||
averagingModel dense;//dilute;//
|
|
||||||
|
|
||||||
clockModel standardClock;//off;
|
|
||||||
|
|
||||||
smoothingModel constDiffSmoothing; //off;// localPSizeDiffSmoothing;// constDiffSmoothing; //
|
|
||||||
|
|
||||||
forceModels
|
|
||||||
(
|
|
||||||
//GidaspowDrag
|
|
||||||
//BeetstraDrag
|
|
||||||
//DiFeliceDrag
|
|
||||||
//gradPForce
|
|
||||||
gradPForceSmooth
|
|
||||||
viscForce
|
|
||||||
KochHillDrag
|
|
||||||
//interface
|
|
||||||
//DEMbasedDrag
|
|
||||||
//RongDrag
|
|
||||||
//Archimedes
|
|
||||||
//volWeightedAverage
|
|
||||||
//totalMomentumExchange
|
|
||||||
//particleCellVolume
|
|
||||||
//fieldTimeAverage
|
|
||||||
//surfaceTensionForce
|
|
||||||
);
|
|
||||||
|
|
||||||
momCoupleModels
|
|
||||||
(
|
|
||||||
implicitCouple
|
|
||||||
);
|
|
||||||
|
|
||||||
turbulenceModelType "RASProperties";//"LESProperties";//
|
|
||||||
|
|
||||||
//===========================================================================//
|
|
||||||
// sub-model properties
|
|
||||||
|
|
||||||
localPSizeDiffSmoothingProps
|
|
||||||
{
|
|
||||||
lowerLimit 0.1;
|
|
||||||
upperLimit 1e10;
|
|
||||||
dSmoothingLength 1.5e-3;
|
|
||||||
Csmoothing 1.0;
|
|
||||||
}
|
|
||||||
|
|
||||||
constDiffSmoothingProps
|
|
||||||
{
|
|
||||||
lowerLimit 0.1;
|
|
||||||
upperLimit 1e10;
|
|
||||||
smoothingLength 6e-3;
|
|
||||||
}
|
|
||||||
|
|
||||||
implicitCoupleProps
|
|
||||||
{
|
|
||||||
velFieldName "U";
|
|
||||||
granVelFieldName "Us";
|
|
||||||
voidfractionFieldName "voidfraction";
|
|
||||||
}
|
|
||||||
|
|
||||||
ArchimedesProps
|
|
||||||
{
|
|
||||||
gravityFieldName "g";
|
|
||||||
treatForceDEM true;
|
|
||||||
}
|
|
||||||
gradPForceProps
|
|
||||||
{
|
|
||||||
pFieldName "p";
|
|
||||||
voidfractionFieldName "voidfraction";
|
|
||||||
velocityFieldName "U";
|
|
||||||
//interpolation true;
|
|
||||||
}
|
|
||||||
|
|
||||||
viscForceProps
|
|
||||||
{
|
|
||||||
velocityFieldName "U";
|
|
||||||
//interpolation false;
|
|
||||||
verbose true;
|
|
||||||
}
|
|
||||||
volWeightedAverageProps
|
|
||||||
{
|
|
||||||
scalarFieldNames
|
|
||||||
(
|
|
||||||
voidfraction
|
|
||||||
);
|
|
||||||
vectorFieldNames
|
|
||||||
(
|
|
||||||
);
|
|
||||||
upperThreshold 0.999;
|
|
||||||
lowerThreshold 0;
|
|
||||||
verbose true;
|
|
||||||
}
|
|
||||||
totalMomentumExchangeProps
|
|
||||||
{
|
|
||||||
implicitMomExFieldName "Ksl";
|
|
||||||
explicitMomExFieldName "none";
|
|
||||||
fluidVelFieldName "U";
|
|
||||||
granVelFieldName "Us";
|
|
||||||
}
|
|
||||||
GidaspowDragProps
|
|
||||||
{
|
|
||||||
verbose true;
|
|
||||||
velFieldName "U";
|
|
||||||
voidfractionFieldName "voidfraction";
|
|
||||||
interpolation true;
|
|
||||||
phi 1;
|
|
||||||
}
|
|
||||||
DEMbasedDragProps
|
|
||||||
{
|
|
||||||
velFieldName "U";
|
|
||||||
voidfractionFieldName "voidfraction";
|
|
||||||
}
|
|
||||||
|
|
||||||
DiFeliceDragProps
|
|
||||||
{
|
|
||||||
//verbose true;
|
|
||||||
velFieldName "U";
|
|
||||||
voidfractionFieldName "voidfraction";
|
|
||||||
granVelFieldName "Us";
|
|
||||||
interpolation true;
|
|
||||||
}
|
|
||||||
|
|
||||||
KochHillDragProps
|
|
||||||
{
|
|
||||||
//verbose true;
|
|
||||||
velFieldName "U";
|
|
||||||
voidfractionFieldName "voidfraction";
|
|
||||||
//interpolation true;
|
|
||||||
//forceSubModels
|
|
||||||
//(
|
|
||||||
// ImExCorr
|
|
||||||
//);
|
|
||||||
implForceDEM true;
|
|
||||||
//implForceDEMaccumulated true;
|
|
||||||
//explicitCorr true;
|
|
||||||
}
|
|
||||||
|
|
||||||
BeetstraDragProps
|
|
||||||
{
|
|
||||||
velFieldName "U";
|
|
||||||
gravityFieldName "g";
|
|
||||||
rhoParticle 2000.;
|
|
||||||
voidfractionFieldName "voidfraction";
|
|
||||||
interpolation ;
|
|
||||||
useFilteredDragModel ;
|
|
||||||
useParcelSizeDependentFilteredDrag ;
|
|
||||||
k 0.05;
|
|
||||||
aLimit 0.0;
|
|
||||||
// verbose true;
|
|
||||||
}
|
|
||||||
|
|
||||||
RongDragProps
|
|
||||||
{
|
|
||||||
verbose true;
|
|
||||||
velFieldName "U";
|
|
||||||
voidfractionFieldName "voidfraction";
|
|
||||||
interpolation true;
|
|
||||||
implForceDEM true;
|
|
||||||
implForceDEMaccumulated true;
|
|
||||||
granVelFieldName "Us";
|
|
||||||
}
|
|
||||||
|
|
||||||
virtualMassForceProps
|
|
||||||
{
|
|
||||||
velFieldName "U";
|
|
||||||
}
|
|
||||||
|
|
||||||
particleCellVolumeProps
|
|
||||||
{
|
|
||||||
upperThreshold 0.999;
|
|
||||||
lowerThreshold 0.;
|
|
||||||
verbose true;
|
|
||||||
}
|
|
||||||
|
|
||||||
fieldStoreProps
|
|
||||||
{
|
|
||||||
scalarFieldNames
|
|
||||||
(
|
|
||||||
);
|
|
||||||
|
|
||||||
vectorFieldNames
|
|
||||||
(
|
|
||||||
"U"
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
oneWayVTKProps
|
|
||||||
{
|
|
||||||
couplingFilename "vtk_out%4.4d.vtk";
|
|
||||||
maxNumberOfParticles 30000;
|
|
||||||
}
|
|
||||||
|
|
||||||
twoWayFilesProps
|
|
||||||
{
|
|
||||||
maxNumberOfParticles 10100;
|
|
||||||
}
|
|
||||||
|
|
||||||
centreProps
|
|
||||||
{
|
|
||||||
alphaMin 0.1;
|
|
||||||
}
|
|
||||||
|
|
||||||
engineProps
|
|
||||||
{
|
|
||||||
treeSearch true;
|
|
||||||
}
|
|
||||||
|
|
||||||
turboEngineM2MProps
|
|
||||||
{
|
|
||||||
turboEngineProps
|
|
||||||
{
|
|
||||||
treeSearch true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
dividedProps
|
|
||||||
{
|
|
||||||
alphaMin 0.01;
|
|
||||||
// porosity 0.5;
|
|
||||||
//interpolation true;
|
|
||||||
}
|
|
||||||
|
|
||||||
twoWayMPIProps
|
|
||||||
{
|
|
||||||
liggghtsPath "../DEM/in.liggghts_run";
|
|
||||||
}
|
|
||||||
twoWayM2MProps
|
|
||||||
{
|
|
||||||
maxNumberOfParticles 10100;
|
|
||||||
liggghtsPath "../DEM/in.liggghts_run";
|
|
||||||
}
|
|
||||||
surfaceTensionForceProps
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
trilinearProps
|
|
||||||
{
|
|
||||||
alphaMin 0.01;
|
|
||||||
}
|
|
||||||
|
|
||||||
bigParticleProps
|
|
||||||
{
|
|
||||||
alphaMin 0.01;
|
|
||||||
maxCellsPerParticle 1000;
|
|
||||||
porosity 100.0;
|
|
||||||
}
|
|
||||||
|
|
||||||
gradPForceSmoothProps
|
|
||||||
{
|
|
||||||
pFieldName "p";
|
|
||||||
voidfractionFieldName "voidfraction";
|
|
||||||
velocityFieldName "U";
|
|
||||||
smoothingModel "temporalSmoothing";
|
|
||||||
//smoothingModel "constDiffSmoothing";
|
|
||||||
//interpolation true;
|
|
||||||
alpha 1000.0;
|
|
||||||
temporalSmoothingProps
|
|
||||||
{
|
|
||||||
lowerLimit 0.1;
|
|
||||||
upperLimit 1e10;
|
|
||||||
//referenceField "p";
|
|
||||||
referenceField "p_rgh";
|
|
||||||
alpha 0.01;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
// ************************************************************************* //
|
|
||||||
@ -1,70 +0,0 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
|
||||||
| ========= | |
|
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
|
||||||
| \\ / O peration | Version: 1.6 |
|
|
||||||
| \\ / A nd | Web: www.OpenFOAM.org |
|
|
||||||
| \\/ M anipulation | |
|
|
||||||
\*---------------------------------------------------------------------------*/
|
|
||||||
FoamFile
|
|
||||||
{
|
|
||||||
version 2.0;
|
|
||||||
format ascii;
|
|
||||||
class dictionary;
|
|
||||||
location "system";
|
|
||||||
object controlDict;
|
|
||||||
}
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
application pisoFoam;
|
|
||||||
|
|
||||||
startFrom startTime;
|
|
||||||
|
|
||||||
startTime 0;
|
|
||||||
|
|
||||||
stopAt endTime;
|
|
||||||
|
|
||||||
endTime 5; //60
|
|
||||||
|
|
||||||
deltaT 0.005;
|
|
||||||
|
|
||||||
writeControl adjustableRunTime;
|
|
||||||
|
|
||||||
writeInterval 0.5;
|
|
||||||
|
|
||||||
purgeWrite 0;
|
|
||||||
|
|
||||||
writeFormat ascii;
|
|
||||||
|
|
||||||
writePrecision 6;
|
|
||||||
|
|
||||||
writeCompression uncompressed;
|
|
||||||
|
|
||||||
timeFormat general;
|
|
||||||
|
|
||||||
timePrecision 6;
|
|
||||||
|
|
||||||
runTimeModifiable yes;
|
|
||||||
|
|
||||||
adjustTimeStep no;
|
|
||||||
|
|
||||||
maxCo 0.1;
|
|
||||||
maxAlphaCo 0.1;
|
|
||||||
|
|
||||||
|
|
||||||
libs (
|
|
||||||
|
|
||||||
);
|
|
||||||
|
|
||||||
functions
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
|
||||||
@ -1,70 +0,0 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
|
||||||
| ========= | |
|
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
|
||||||
| \\ / O peration | Version: 1.6 |
|
|
||||||
| \\ / A nd | Web: www.OpenFOAM.org |
|
|
||||||
| \\/ M anipulation | |
|
|
||||||
\*---------------------------------------------------------------------------*/
|
|
||||||
FoamFile
|
|
||||||
{
|
|
||||||
version 2.0;
|
|
||||||
format ascii;
|
|
||||||
class dictionary;
|
|
||||||
location "system";
|
|
||||||
object controlDict;
|
|
||||||
}
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
application pisoFoam;
|
|
||||||
|
|
||||||
startFrom startTime;
|
|
||||||
|
|
||||||
startTime 5;
|
|
||||||
|
|
||||||
stopAt endTime;
|
|
||||||
|
|
||||||
endTime 65;
|
|
||||||
|
|
||||||
deltaT 0.005;
|
|
||||||
|
|
||||||
writeControl adjustableRunTime;
|
|
||||||
|
|
||||||
writeInterval 0.5;
|
|
||||||
|
|
||||||
purgeWrite 0;
|
|
||||||
|
|
||||||
writeFormat ascii;
|
|
||||||
|
|
||||||
writePrecision 6;
|
|
||||||
|
|
||||||
writeCompression uncompressed;
|
|
||||||
|
|
||||||
timeFormat general;
|
|
||||||
|
|
||||||
timePrecision 6;
|
|
||||||
|
|
||||||
runTimeModifiable yes;
|
|
||||||
|
|
||||||
adjustTimeStep no;
|
|
||||||
|
|
||||||
maxCo 0.1;
|
|
||||||
maxAlphaCo 0.1;
|
|
||||||
|
|
||||||
|
|
||||||
libs (
|
|
||||||
|
|
||||||
);
|
|
||||||
|
|
||||||
functions
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
|
||||||
@ -1,143 +0,0 @@
|
|||||||
###############################################
|
|
||||||
#geometry
|
|
||||||
variable cylRadius equal 0.1
|
|
||||||
variable cylHeight equal 0.08
|
|
||||||
|
|
||||||
# Radiuses of servo wall for force calculation
|
|
||||||
variable r1 equal 0.02
|
|
||||||
variable r2 equal 0.04
|
|
||||||
variable r3 equal 0.06
|
|
||||||
variable r4 equal 0.08
|
|
||||||
variable r5 equal 0.1
|
|
||||||
|
|
||||||
#particle variables
|
|
||||||
variable rho equal 1500 # particle density
|
|
||||||
|
|
||||||
# time parameters
|
|
||||||
variable dt equal 0.00005 # Time step
|
|
||||||
variable outInterval equal 0.5 # Dump interval to be consistent with controlDict
|
|
||||||
|
|
||||||
# DEM-parameters
|
|
||||||
variable yM equal 5.e6 # Young's modulus
|
|
||||||
variable pR equal 0.45 # Poisson ratio
|
|
||||||
variable rest equal 0.3 # coefficient of restitution
|
|
||||||
variable fric equal 0.5 # coefficient of friction
|
|
||||||
variable cV equal 0.1 # characteristic velocity
|
|
||||||
variable skin equal 0.001
|
|
||||||
|
|
||||||
# variables for the servo walls
|
|
||||||
#Pressure acting on the servo wall (Pa)
|
|
||||||
variable p1 equal 800
|
|
||||||
variable p2 equal 800
|
|
||||||
variable p3 equal 800
|
|
||||||
variable p4 equal 800
|
|
||||||
variable p5 equal 800
|
|
||||||
|
|
||||||
variable A1 equal PI*${r1}^2
|
|
||||||
variable A2 equal PI*(${r2}^2-${r1}^2)
|
|
||||||
variable A3 equal PI*(${r3}^2-${r2}^2)
|
|
||||||
variable A4 equal PI*(${r4}^2-${r3}^2)
|
|
||||||
variable A5 equal PI*(${r5}^2-${r4}^2)
|
|
||||||
|
|
||||||
variable ctrlForceR1 equal -${p1}*${A1} # target value of the force
|
|
||||||
variable ctrlForceR2 equal -${p2}*${A2} # target value of the force
|
|
||||||
variable ctrlForceR3 equal -${p3}*${A3} # target value of the force
|
|
||||||
variable ctrlForceR4 equal -${p4}*${A4} # target value of the force
|
|
||||||
variable ctrlForceR5 equal -${p5}*${A5} # target value of the force
|
|
||||||
|
|
||||||
variable maxVel equal 0.25*${skin}/${dt}
|
|
||||||
|
|
||||||
# controller parameter (servo wall)
|
|
||||||
variable ctrlKp equal 1e-2
|
|
||||||
variable ctrlKi equal 0.0
|
|
||||||
variable ctrlKd equal 0.0
|
|
||||||
|
|
||||||
# particle settling loop parameters
|
|
||||||
variable vthre equal 0.01
|
|
||||||
|
|
||||||
# calculated parameters
|
|
||||||
variable dumpInterval equal ${outInterval}/${dt}
|
|
||||||
|
|
||||||
|
|
||||||
###############################################
|
|
||||||
|
|
||||||
log ../DEM/log.liggghts
|
|
||||||
thermo_log ../DEM/post/thermo.txt
|
|
||||||
|
|
||||||
atom_style granular
|
|
||||||
atom_modify map array
|
|
||||||
communicate single vel yes
|
|
||||||
|
|
||||||
boundary f f f
|
|
||||||
newton off
|
|
||||||
|
|
||||||
units si
|
|
||||||
processors 2 2 1
|
|
||||||
|
|
||||||
# read the restart file
|
|
||||||
read_restart ../DEM/post/restart/fill.restart
|
|
||||||
|
|
||||||
neighbor ${skin} bin
|
|
||||||
neigh_modify delay 0
|
|
||||||
|
|
||||||
# Material properties required for granular pair styles
|
|
||||||
|
|
||||||
fix m1 all property/global youngsModulus peratomtype ${yM}
|
|
||||||
fix m2 all property/global poissonsRatio peratomtype ${pR}
|
|
||||||
fix m3 all property/global coefficientRestitution peratomtypepair 1 ${rest}
|
|
||||||
fix m4 all property/global coefficientFriction peratomtypepair 1 ${fric}
|
|
||||||
|
|
||||||
# pair style
|
|
||||||
pair_style gran model hertz tangential history # Hertzian without cohesion
|
|
||||||
pair_coeff * *
|
|
||||||
|
|
||||||
# timestep, gravity
|
|
||||||
timestep ${dt}
|
|
||||||
fix gravi all gravity 9.81 vector 0.0 0.0 -1.0
|
|
||||||
|
|
||||||
# walls
|
|
||||||
fix cylWall all wall/gran model hertz tangential history primitive type 1 zcylinder 0.1 0 0
|
|
||||||
fix botWall all wall/gran model hertz tangential history primitive type 1 zplane 0
|
|
||||||
|
|
||||||
fix servoR1 all mesh/surface/stress/servo file ../DEM/stls/r1.stl type 1 scale 1. com 0 0 0 ctrlPV force axis 0. 0. 1. target_val ${ctrlForceR1} vel_max ${maxVel} kp ${ctrlKp} ki ${ctrlKi} kd ${ctrlKd} #verbose no move 0.0 0.0 7.8
|
|
||||||
|
|
||||||
fix servoR2 all mesh/surface/stress/servo file ../DEM/stls/r2.stl type 1 scale 1. com 0 0 0 ctrlPV force axis 0. 0. 1. target_val ${ctrlForceR2} vel_max ${maxVel} kp ${ctrlKp} ki ${ctrlKi} kd ${ctrlKd} #verbose no move 0.0 0.0 7.8
|
|
||||||
|
|
||||||
fix servoR3 all mesh/surface/stress/servo file ../DEM/stls/r3.stl type 1 scale 1. com 0 0 0 ctrlPV force axis 0. 0. 1. target_val ${ctrlForceR3} vel_max ${maxVel} kp ${ctrlKp} ki ${ctrlKi} kd ${ctrlKd} #verbose no move 0.0 0.0 7.8
|
|
||||||
|
|
||||||
fix servoR4 all mesh/surface/stress/servo file ../DEM/stls/r4.stl type 1 scale 1. com 0 0 0 ctrlPV force axis 0. 0. 1. target_val ${ctrlForceR4} vel_max ${maxVel} kp ${ctrlKp} ki ${ctrlKi} kd ${ctrlKd} #verbose no move 0.0 0.0 7.8
|
|
||||||
|
|
||||||
fix servoR5 all mesh/surface/stress/servo file ../DEM/stls/r5.stl type 1 scale 1. com 0 0 0 ctrlPV force axis 0. 0. 1. target_val ${ctrlForceR5} vel_max ${maxVel} kp ${ctrlKp} ki ${ctrlKi} kd ${ctrlKd} #verbose no move 0.0 0.0 7.8
|
|
||||||
|
|
||||||
fix walls all wall/gran model hertz tangential history mesh n_meshes 5 meshes servoR1 servoR2 servoR3 servoR4 servoR5
|
|
||||||
|
|
||||||
# change the particles density
|
|
||||||
set group all density ${rho}
|
|
||||||
|
|
||||||
# cfd coupling
|
|
||||||
fix cfd all couple/cfd couple_every 100000000 mpi
|
|
||||||
fix cfd2 all couple/cfd/force/implicit
|
|
||||||
|
|
||||||
# apply nve integration to all particles that are inserted as single particles
|
|
||||||
fix integr all nve/sphere
|
|
||||||
|
|
||||||
# center of mass
|
|
||||||
compute centerOfMass all com
|
|
||||||
|
|
||||||
# compute total dragforce
|
|
||||||
compute dragtotal all reduce sum f_dragforce[1] f_dragforce[2] f_dragforce[3]
|
|
||||||
|
|
||||||
# screen output
|
|
||||||
compute rke all erotate/sphere
|
|
||||||
thermo_style custom step atoms ke c_rke vol c_centerOfMass[3] c_dragtotal[1] c_dragtotal[2] c_dragtotal[3]
|
|
||||||
thermo 100
|
|
||||||
thermo_modify lost ignore norm no
|
|
||||||
compute_modify thermo_temp dynamic yes
|
|
||||||
|
|
||||||
#compute position all property/atom x y z
|
|
||||||
fix ts_check all check/timestep/gran 100 0.1 0.1
|
|
||||||
dump dmp all custom ${dumpInterval} ../DEM/post/dump*.liggghts_run id type x y z vx vy vz fx fy fz f_dragforce[1] f_dragforce[2] f_dragforce[3] radius
|
|
||||||
dump servoWall all mesh/stl ${dumpInterval} ../DEM/post/dump*.servoWall.stl servoR1 servoR2 servoR3 servoR4 servoR5
|
|
||||||
|
|
||||||
run 1
|
|
||||||
|
|
||||||
@ -1,31 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
#===================================================================#
|
|
||||||
# allrun script for cfdemSolverMultiphase
|
|
||||||
#===================================================================#
|
|
||||||
|
|
||||||
#- define variables
|
|
||||||
casePath="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")"
|
|
||||||
nrProcs=4;
|
|
||||||
|
|
||||||
#fill with the particles
|
|
||||||
cd $casePath/DEM
|
|
||||||
mpirun -np $nrProcs liggghts < in.liggghts_fill |& tee $casePath/log_init
|
|
||||||
|
|
||||||
|
|
||||||
#Run 5 seconds of coupled simulation with closed outlet to equilibrate the system
|
|
||||||
cd $casePath/CFD
|
|
||||||
cp -r 0.org 0
|
|
||||||
cp system/controlDict.init system/controlDict
|
|
||||||
cp constant/couplingProperties.init constant/couplingProperties
|
|
||||||
setFields
|
|
||||||
decomposePar -force
|
|
||||||
mpirun -np $nrProcs cfdemSolverMultiphase -parallel |& tee $casePath/log_equilibrate
|
|
||||||
reconstructPar -latestTime
|
|
||||||
mv 5 $casePath/DEM/post/restart/
|
|
||||||
|
|
||||||
#switch the outlet boundary conditions to open for the run simulation, easier done manually or by using groovyBC...
|
|
||||||
perl -0777 -i.original -pe 's/ outlet\n {\n type zeroGradient;/ outlet\n {\n type fixedValue;\n value uniform 0;/igs' $casePath/DEM/post/restart/5/p_rgh
|
|
||||||
|
|
||||||
perl -0777 -i.original -pe 's/ outlet\n {\n type fixedValue;/ outlet\n {\n type inletOutlet;\n inletValue uniform (0 0 0);/igs' $casePath/DEM/post/restart/5/U
|
|
||||||
|
|
||||||
@ -1,318 +0,0 @@
|
|||||||
/*---------------------------------------------------------------------------*\
|
|
||||||
| ========= | |
|
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
|
||||||
| \\ / O peration | Version: 1.4 |
|
|
||||||
| \\ / A nd | Web: http://www.openfoam.org |
|
|
||||||
| \\/ M anipulation | |
|
|
||||||
\*---------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
|
|
||||||
FoamFile
|
|
||||||
{
|
|
||||||
version 2.0;
|
|
||||||
format ascii;
|
|
||||||
|
|
||||||
root "";
|
|
||||||
case "";
|
|
||||||
instance "";
|
|
||||||
local "";
|
|
||||||
|
|
||||||
class dictionary;
|
|
||||||
object couplingProperties;
|
|
||||||
}
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
//===========================================================================//
|
|
||||||
// sub-models & settings
|
|
||||||
|
|
||||||
syncMode false;
|
|
||||||
//verbose;
|
|
||||||
useDDTvoidfraction;
|
|
||||||
|
|
||||||
|
|
||||||
modelType "A"; // A or B
|
|
||||||
|
|
||||||
couplingInterval 100;
|
|
||||||
|
|
||||||
voidFractionModel divided; //bigParticle; //trilinear; //centre; //divided;
|
|
||||||
|
|
||||||
locateModel engine;//turboEngineM2M;//
|
|
||||||
|
|
||||||
meshMotionModel noMeshMotion;
|
|
||||||
|
|
||||||
regionModel allRegion;
|
|
||||||
|
|
||||||
IOModel basicIO;
|
|
||||||
|
|
||||||
probeModel off; //particleProbe; //off;
|
|
||||||
|
|
||||||
dataExchangeModel twoWayMPI;//twoWayFiles;//twoWayM2M;//oneWayVTK;//
|
|
||||||
|
|
||||||
averagingModel dense;//dilute;//
|
|
||||||
|
|
||||||
clockModel standardClock;//off;
|
|
||||||
|
|
||||||
smoothingModel constDiffSmoothing; //off;// localPSizeDiffSmoothing;// constDiffSmoothing; //
|
|
||||||
|
|
||||||
forceModels
|
|
||||||
(
|
|
||||||
//GidaspowDrag
|
|
||||||
//BeetstraDrag
|
|
||||||
//DiFeliceDrag
|
|
||||||
//gradPForce
|
|
||||||
gradPForceSmooth
|
|
||||||
viscForce
|
|
||||||
KochHillDrag
|
|
||||||
//interface
|
|
||||||
//DEMbasedDrag
|
|
||||||
//RongDrag
|
|
||||||
//Archimedes
|
|
||||||
//volWeightedAverage
|
|
||||||
//totalMomentumExchange
|
|
||||||
//particleCellVolume
|
|
||||||
//fieldTimeAverage
|
|
||||||
//surfaceTensionForce
|
|
||||||
);
|
|
||||||
|
|
||||||
momCoupleModels
|
|
||||||
(
|
|
||||||
implicitCouple
|
|
||||||
);
|
|
||||||
|
|
||||||
turbulenceModelType "RASProperties";//"LESProperties";//
|
|
||||||
|
|
||||||
//===========================================================================//
|
|
||||||
// sub-model properties
|
|
||||||
|
|
||||||
localPSizeDiffSmoothingProps
|
|
||||||
{
|
|
||||||
lowerLimit 0.1;
|
|
||||||
upperLimit 1e10;
|
|
||||||
dSmoothingLength 1.5e-3;
|
|
||||||
Csmoothing 1.0;
|
|
||||||
}
|
|
||||||
|
|
||||||
constDiffSmoothingProps
|
|
||||||
{
|
|
||||||
lowerLimit 0.1;
|
|
||||||
upperLimit 1e10;
|
|
||||||
smoothingLength 6e-3;
|
|
||||||
}
|
|
||||||
|
|
||||||
implicitCoupleProps
|
|
||||||
{
|
|
||||||
velFieldName "U";
|
|
||||||
granVelFieldName "Us";
|
|
||||||
voidfractionFieldName "voidfraction";
|
|
||||||
}
|
|
||||||
|
|
||||||
ArchimedesProps
|
|
||||||
{
|
|
||||||
gravityFieldName "g";
|
|
||||||
treatForceDEM true;
|
|
||||||
}
|
|
||||||
gradPForceProps
|
|
||||||
{
|
|
||||||
pFieldName "p";
|
|
||||||
voidfractionFieldName "voidfraction";
|
|
||||||
velocityFieldName "U";
|
|
||||||
//interpolation true;
|
|
||||||
}
|
|
||||||
|
|
||||||
viscForceProps
|
|
||||||
{
|
|
||||||
velocityFieldName "U";
|
|
||||||
//interpolation false;
|
|
||||||
verbose true;
|
|
||||||
}
|
|
||||||
volWeightedAverageProps
|
|
||||||
{
|
|
||||||
scalarFieldNames
|
|
||||||
(
|
|
||||||
voidfraction
|
|
||||||
);
|
|
||||||
vectorFieldNames
|
|
||||||
(
|
|
||||||
);
|
|
||||||
upperThreshold 0.999;
|
|
||||||
lowerThreshold 0;
|
|
||||||
verbose true;
|
|
||||||
}
|
|
||||||
totalMomentumExchangeProps
|
|
||||||
{
|
|
||||||
implicitMomExFieldName "Ksl";
|
|
||||||
explicitMomExFieldName "none";
|
|
||||||
fluidVelFieldName "U";
|
|
||||||
granVelFieldName "Us";
|
|
||||||
}
|
|
||||||
GidaspowDragProps
|
|
||||||
{
|
|
||||||
verbose true;
|
|
||||||
velFieldName "U";
|
|
||||||
voidfractionFieldName "voidfraction";
|
|
||||||
interpolation true;
|
|
||||||
phi 1;
|
|
||||||
}
|
|
||||||
DEMbasedDragProps
|
|
||||||
{
|
|
||||||
velFieldName "U";
|
|
||||||
voidfractionFieldName "voidfraction";
|
|
||||||
}
|
|
||||||
|
|
||||||
DiFeliceDragProps
|
|
||||||
{
|
|
||||||
//verbose true;
|
|
||||||
velFieldName "U";
|
|
||||||
voidfractionFieldName "voidfraction";
|
|
||||||
granVelFieldName "Us";
|
|
||||||
interpolation true;
|
|
||||||
}
|
|
||||||
|
|
||||||
KochHillDragProps
|
|
||||||
{
|
|
||||||
//verbose true;
|
|
||||||
velFieldName "U";
|
|
||||||
voidfractionFieldName "voidfraction";
|
|
||||||
//interpolation true;
|
|
||||||
//forceSubModels
|
|
||||||
//(
|
|
||||||
// ImExCorr
|
|
||||||
//);
|
|
||||||
implForceDEM true;
|
|
||||||
//implForceDEMaccumulated true;
|
|
||||||
//explicitCorr true;
|
|
||||||
}
|
|
||||||
|
|
||||||
BeetstraDragProps
|
|
||||||
{
|
|
||||||
velFieldName "U";
|
|
||||||
gravityFieldName "g";
|
|
||||||
rhoParticle 2000.;
|
|
||||||
voidfractionFieldName "voidfraction";
|
|
||||||
interpolation ;
|
|
||||||
useFilteredDragModel ;
|
|
||||||
useParcelSizeDependentFilteredDrag ;
|
|
||||||
k 0.05;
|
|
||||||
aLimit 0.0;
|
|
||||||
// verbose true;
|
|
||||||
}
|
|
||||||
|
|
||||||
RongDragProps
|
|
||||||
{
|
|
||||||
verbose true;
|
|
||||||
velFieldName "U";
|
|
||||||
voidfractionFieldName "voidfraction";
|
|
||||||
interpolation true;
|
|
||||||
implForceDEM true;
|
|
||||||
implForceDEMaccumulated true;
|
|
||||||
granVelFieldName "Us";
|
|
||||||
}
|
|
||||||
|
|
||||||
virtualMassForceProps
|
|
||||||
{
|
|
||||||
velFieldName "U";
|
|
||||||
}
|
|
||||||
|
|
||||||
particleCellVolumeProps
|
|
||||||
{
|
|
||||||
upperThreshold 0.999;
|
|
||||||
lowerThreshold 0.;
|
|
||||||
verbose true;
|
|
||||||
}
|
|
||||||
|
|
||||||
fieldStoreProps
|
|
||||||
{
|
|
||||||
scalarFieldNames
|
|
||||||
(
|
|
||||||
);
|
|
||||||
|
|
||||||
vectorFieldNames
|
|
||||||
(
|
|
||||||
"U"
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
oneWayVTKProps
|
|
||||||
{
|
|
||||||
couplingFilename "vtk_out%4.4d.vtk";
|
|
||||||
maxNumberOfParticles 30000;
|
|
||||||
}
|
|
||||||
|
|
||||||
twoWayFilesProps
|
|
||||||
{
|
|
||||||
maxNumberOfParticles 10100;
|
|
||||||
}
|
|
||||||
|
|
||||||
centreProps
|
|
||||||
{
|
|
||||||
alphaMin 0.1;
|
|
||||||
}
|
|
||||||
|
|
||||||
engineProps
|
|
||||||
{
|
|
||||||
treeSearch true;
|
|
||||||
}
|
|
||||||
|
|
||||||
turboEngineM2MProps
|
|
||||||
{
|
|
||||||
turboEngineProps
|
|
||||||
{
|
|
||||||
treeSearch true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
dividedProps
|
|
||||||
{
|
|
||||||
alphaMin 0.01;
|
|
||||||
// porosity 0.5;
|
|
||||||
//interpolation true;
|
|
||||||
}
|
|
||||||
|
|
||||||
twoWayMPIProps
|
|
||||||
{
|
|
||||||
liggghtsPath "../DEM/in.liggghts_equilibrate";
|
|
||||||
}
|
|
||||||
twoWayM2MProps
|
|
||||||
{
|
|
||||||
maxNumberOfParticles 10100;
|
|
||||||
liggghtsPath "../DEM/in.liggghts_equilibrate";
|
|
||||||
}
|
|
||||||
surfaceTensionForceProps
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
trilinearProps
|
|
||||||
{
|
|
||||||
alphaMin 0.01;
|
|
||||||
}
|
|
||||||
|
|
||||||
bigParticleProps
|
|
||||||
{
|
|
||||||
alphaMin 0.01;
|
|
||||||
maxCellsPerParticle 1000;
|
|
||||||
porosity 100.0;
|
|
||||||
}
|
|
||||||
|
|
||||||
gradPForceSmoothProps
|
|
||||||
{
|
|
||||||
pFieldName "p";
|
|
||||||
voidfractionFieldName "voidfraction";
|
|
||||||
velocityFieldName "U";
|
|
||||||
smoothingModel "temporalSmoothing";
|
|
||||||
//smoothingModel "constDiffSmoothing";
|
|
||||||
//interpolation true;
|
|
||||||
alpha 1000.0;
|
|
||||||
temporalSmoothingProps
|
|
||||||
{
|
|
||||||
lowerLimit 0.1;
|
|
||||||
upperLimit 1e10;
|
|
||||||
//referenceField "p";
|
|
||||||
referenceField "p_rgh";
|
|
||||||
alpha 0.01;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
// ************************************************************************* //
|
|
||||||
@ -1,318 +0,0 @@
|
|||||||
/*---------------------------------------------------------------------------*\
|
|
||||||
| ========= | |
|
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
|
||||||
| \\ / O peration | Version: 1.4 |
|
|
||||||
| \\ / A nd | Web: http://www.openfoam.org |
|
|
||||||
| \\/ M anipulation | |
|
|
||||||
\*---------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
|
|
||||||
FoamFile
|
|
||||||
{
|
|
||||||
version 2.0;
|
|
||||||
format ascii;
|
|
||||||
|
|
||||||
root "";
|
|
||||||
case "";
|
|
||||||
instance "";
|
|
||||||
local "";
|
|
||||||
|
|
||||||
class dictionary;
|
|
||||||
object couplingProperties;
|
|
||||||
}
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
//===========================================================================//
|
|
||||||
// sub-models & settings
|
|
||||||
|
|
||||||
syncMode false;
|
|
||||||
//verbose;
|
|
||||||
useDDTvoidfraction;
|
|
||||||
|
|
||||||
|
|
||||||
modelType "A"; // A or B
|
|
||||||
|
|
||||||
couplingInterval 100;
|
|
||||||
|
|
||||||
voidFractionModel divided; //bigParticle; //trilinear; //centre; //divided;
|
|
||||||
|
|
||||||
locateModel engine;//turboEngineM2M;//
|
|
||||||
|
|
||||||
meshMotionModel noMeshMotion;
|
|
||||||
|
|
||||||
regionModel allRegion;
|
|
||||||
|
|
||||||
IOModel basicIO;
|
|
||||||
|
|
||||||
probeModel off; //particleProbe; //off;
|
|
||||||
|
|
||||||
dataExchangeModel twoWayMPI;//twoWayFiles;//twoWayM2M;//oneWayVTK;//
|
|
||||||
|
|
||||||
averagingModel dense;//dilute;//
|
|
||||||
|
|
||||||
clockModel standardClock;//off;
|
|
||||||
|
|
||||||
smoothingModel constDiffSmoothing; //off;// localPSizeDiffSmoothing;// constDiffSmoothing; //
|
|
||||||
|
|
||||||
forceModels
|
|
||||||
(
|
|
||||||
//GidaspowDrag
|
|
||||||
//BeetstraDrag
|
|
||||||
//DiFeliceDrag
|
|
||||||
//gradPForce
|
|
||||||
gradPForceSmooth
|
|
||||||
viscForce
|
|
||||||
KochHillDrag
|
|
||||||
//interface
|
|
||||||
//DEMbasedDrag
|
|
||||||
//RongDrag
|
|
||||||
//Archimedes
|
|
||||||
//volWeightedAverage
|
|
||||||
//totalMomentumExchange
|
|
||||||
//particleCellVolume
|
|
||||||
//fieldTimeAverage
|
|
||||||
//surfaceTensionForce
|
|
||||||
);
|
|
||||||
|
|
||||||
momCoupleModels
|
|
||||||
(
|
|
||||||
implicitCouple
|
|
||||||
);
|
|
||||||
|
|
||||||
turbulenceModelType "RASProperties";//"LESProperties";//
|
|
||||||
|
|
||||||
//===========================================================================//
|
|
||||||
// sub-model properties
|
|
||||||
|
|
||||||
localPSizeDiffSmoothingProps
|
|
||||||
{
|
|
||||||
lowerLimit 0.1;
|
|
||||||
upperLimit 1e10;
|
|
||||||
dSmoothingLength 1.5e-3;
|
|
||||||
Csmoothing 1.0;
|
|
||||||
}
|
|
||||||
|
|
||||||
constDiffSmoothingProps
|
|
||||||
{
|
|
||||||
lowerLimit 0.1;
|
|
||||||
upperLimit 1e10;
|
|
||||||
smoothingLength 6e-3;
|
|
||||||
}
|
|
||||||
|
|
||||||
implicitCoupleProps
|
|
||||||
{
|
|
||||||
velFieldName "U";
|
|
||||||
granVelFieldName "Us";
|
|
||||||
voidfractionFieldName "voidfraction";
|
|
||||||
}
|
|
||||||
|
|
||||||
ArchimedesProps
|
|
||||||
{
|
|
||||||
gravityFieldName "g";
|
|
||||||
treatForceDEM true;
|
|
||||||
}
|
|
||||||
gradPForceProps
|
|
||||||
{
|
|
||||||
pFieldName "p";
|
|
||||||
voidfractionFieldName "voidfraction";
|
|
||||||
velocityFieldName "U";
|
|
||||||
//interpolation true;
|
|
||||||
}
|
|
||||||
|
|
||||||
viscForceProps
|
|
||||||
{
|
|
||||||
velocityFieldName "U";
|
|
||||||
//interpolation false;
|
|
||||||
verbose true;
|
|
||||||
}
|
|
||||||
volWeightedAverageProps
|
|
||||||
{
|
|
||||||
scalarFieldNames
|
|
||||||
(
|
|
||||||
voidfraction
|
|
||||||
);
|
|
||||||
vectorFieldNames
|
|
||||||
(
|
|
||||||
);
|
|
||||||
upperThreshold 0.999;
|
|
||||||
lowerThreshold 0;
|
|
||||||
verbose true;
|
|
||||||
}
|
|
||||||
totalMomentumExchangeProps
|
|
||||||
{
|
|
||||||
implicitMomExFieldName "Ksl";
|
|
||||||
explicitMomExFieldName "none";
|
|
||||||
fluidVelFieldName "U";
|
|
||||||
granVelFieldName "Us";
|
|
||||||
}
|
|
||||||
GidaspowDragProps
|
|
||||||
{
|
|
||||||
verbose true;
|
|
||||||
velFieldName "U";
|
|
||||||
voidfractionFieldName "voidfraction";
|
|
||||||
interpolation true;
|
|
||||||
phi 1;
|
|
||||||
}
|
|
||||||
DEMbasedDragProps
|
|
||||||
{
|
|
||||||
velFieldName "U";
|
|
||||||
voidfractionFieldName "voidfraction";
|
|
||||||
}
|
|
||||||
|
|
||||||
DiFeliceDragProps
|
|
||||||
{
|
|
||||||
//verbose true;
|
|
||||||
velFieldName "U";
|
|
||||||
voidfractionFieldName "voidfraction";
|
|
||||||
granVelFieldName "Us";
|
|
||||||
interpolation true;
|
|
||||||
}
|
|
||||||
|
|
||||||
KochHillDragProps
|
|
||||||
{
|
|
||||||
//verbose true;
|
|
||||||
velFieldName "U";
|
|
||||||
voidfractionFieldName "voidfraction";
|
|
||||||
//interpolation true;
|
|
||||||
//forceSubModels
|
|
||||||
//(
|
|
||||||
// ImExCorr
|
|
||||||
//);
|
|
||||||
implForceDEM true;
|
|
||||||
//implForceDEMaccumulated true;
|
|
||||||
//explicitCorr true;
|
|
||||||
}
|
|
||||||
|
|
||||||
BeetstraDragProps
|
|
||||||
{
|
|
||||||
velFieldName "U";
|
|
||||||
gravityFieldName "g";
|
|
||||||
rhoParticle 2000.;
|
|
||||||
voidfractionFieldName "voidfraction";
|
|
||||||
interpolation ;
|
|
||||||
useFilteredDragModel ;
|
|
||||||
useParcelSizeDependentFilteredDrag ;
|
|
||||||
k 0.05;
|
|
||||||
aLimit 0.0;
|
|
||||||
// verbose true;
|
|
||||||
}
|
|
||||||
|
|
||||||
RongDragProps
|
|
||||||
{
|
|
||||||
verbose true;
|
|
||||||
velFieldName "U";
|
|
||||||
voidfractionFieldName "voidfraction";
|
|
||||||
interpolation true;
|
|
||||||
implForceDEM true;
|
|
||||||
implForceDEMaccumulated true;
|
|
||||||
granVelFieldName "Us";
|
|
||||||
}
|
|
||||||
|
|
||||||
virtualMassForceProps
|
|
||||||
{
|
|
||||||
velFieldName "U";
|
|
||||||
}
|
|
||||||
|
|
||||||
particleCellVolumeProps
|
|
||||||
{
|
|
||||||
upperThreshold 0.999;
|
|
||||||
lowerThreshold 0.;
|
|
||||||
verbose true;
|
|
||||||
}
|
|
||||||
|
|
||||||
fieldStoreProps
|
|
||||||
{
|
|
||||||
scalarFieldNames
|
|
||||||
(
|
|
||||||
);
|
|
||||||
|
|
||||||
vectorFieldNames
|
|
||||||
(
|
|
||||||
"U"
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
oneWayVTKProps
|
|
||||||
{
|
|
||||||
couplingFilename "vtk_out%4.4d.vtk";
|
|
||||||
maxNumberOfParticles 30000;
|
|
||||||
}
|
|
||||||
|
|
||||||
twoWayFilesProps
|
|
||||||
{
|
|
||||||
maxNumberOfParticles 10100;
|
|
||||||
}
|
|
||||||
|
|
||||||
centreProps
|
|
||||||
{
|
|
||||||
alphaMin 0.1;
|
|
||||||
}
|
|
||||||
|
|
||||||
engineProps
|
|
||||||
{
|
|
||||||
treeSearch true;
|
|
||||||
}
|
|
||||||
|
|
||||||
turboEngineM2MProps
|
|
||||||
{
|
|
||||||
turboEngineProps
|
|
||||||
{
|
|
||||||
treeSearch true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
dividedProps
|
|
||||||
{
|
|
||||||
alphaMin 0.01;
|
|
||||||
// porosity 0.5;
|
|
||||||
//interpolation true;
|
|
||||||
}
|
|
||||||
|
|
||||||
twoWayMPIProps
|
|
||||||
{
|
|
||||||
liggghtsPath "../DEM/in.liggghts_run";
|
|
||||||
}
|
|
||||||
twoWayM2MProps
|
|
||||||
{
|
|
||||||
maxNumberOfParticles 10100;
|
|
||||||
liggghtsPath "../DEM/in.liggghts_run";
|
|
||||||
}
|
|
||||||
surfaceTensionForceProps
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
trilinearProps
|
|
||||||
{
|
|
||||||
alphaMin 0.01;
|
|
||||||
}
|
|
||||||
|
|
||||||
bigParticleProps
|
|
||||||
{
|
|
||||||
alphaMin 0.01;
|
|
||||||
maxCellsPerParticle 1000;
|
|
||||||
porosity 100.0;
|
|
||||||
}
|
|
||||||
|
|
||||||
gradPForceSmoothProps
|
|
||||||
{
|
|
||||||
pFieldName "p";
|
|
||||||
voidfractionFieldName "voidfraction";
|
|
||||||
velocityFieldName "U";
|
|
||||||
smoothingModel "temporalSmoothing";
|
|
||||||
//smoothingModel "constDiffSmoothing";
|
|
||||||
//interpolation true;
|
|
||||||
alpha 1000.0;
|
|
||||||
temporalSmoothingProps
|
|
||||||
{
|
|
||||||
lowerLimit 0.1;
|
|
||||||
upperLimit 1e10;
|
|
||||||
//referenceField "p";
|
|
||||||
referenceField "p_rgh";
|
|
||||||
alpha 0.01;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
// ************************************************************************* //
|
|
||||||
@ -1,70 +0,0 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
|
||||||
| ========= | |
|
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
|
||||||
| \\ / O peration | Version: 1.6 |
|
|
||||||
| \\ / A nd | Web: www.OpenFOAM.org |
|
|
||||||
| \\/ M anipulation | |
|
|
||||||
\*---------------------------------------------------------------------------*/
|
|
||||||
FoamFile
|
|
||||||
{
|
|
||||||
version 2.0;
|
|
||||||
format ascii;
|
|
||||||
class dictionary;
|
|
||||||
location "system";
|
|
||||||
object controlDict;
|
|
||||||
}
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
application pisoFoam;
|
|
||||||
|
|
||||||
startFrom startTime;
|
|
||||||
|
|
||||||
startTime 0;
|
|
||||||
|
|
||||||
stopAt endTime;
|
|
||||||
|
|
||||||
endTime 5; //60
|
|
||||||
|
|
||||||
deltaT 0.005;
|
|
||||||
|
|
||||||
writeControl adjustableRunTime;
|
|
||||||
|
|
||||||
writeInterval 0.5;
|
|
||||||
|
|
||||||
purgeWrite 0;
|
|
||||||
|
|
||||||
writeFormat ascii;
|
|
||||||
|
|
||||||
writePrecision 6;
|
|
||||||
|
|
||||||
writeCompression uncompressed;
|
|
||||||
|
|
||||||
timeFormat general;
|
|
||||||
|
|
||||||
timePrecision 6;
|
|
||||||
|
|
||||||
runTimeModifiable yes;
|
|
||||||
|
|
||||||
adjustTimeStep no;
|
|
||||||
|
|
||||||
maxCo 0.1;
|
|
||||||
maxAlphaCo 0.1;
|
|
||||||
|
|
||||||
|
|
||||||
libs (
|
|
||||||
|
|
||||||
);
|
|
||||||
|
|
||||||
functions
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
|
||||||
@ -1,70 +0,0 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
|
||||||
| ========= | |
|
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
|
||||||
| \\ / O peration | Version: 1.6 |
|
|
||||||
| \\ / A nd | Web: www.OpenFOAM.org |
|
|
||||||
| \\/ M anipulation | |
|
|
||||||
\*---------------------------------------------------------------------------*/
|
|
||||||
FoamFile
|
|
||||||
{
|
|
||||||
version 2.0;
|
|
||||||
format ascii;
|
|
||||||
class dictionary;
|
|
||||||
location "system";
|
|
||||||
object controlDict;
|
|
||||||
}
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
application pisoFoam;
|
|
||||||
|
|
||||||
startFrom startTime;
|
|
||||||
|
|
||||||
startTime 5;
|
|
||||||
|
|
||||||
stopAt endTime;
|
|
||||||
|
|
||||||
endTime 65;
|
|
||||||
|
|
||||||
deltaT 0.005;
|
|
||||||
|
|
||||||
writeControl adjustableRunTime;
|
|
||||||
|
|
||||||
writeInterval 0.5;
|
|
||||||
|
|
||||||
purgeWrite 0;
|
|
||||||
|
|
||||||
writeFormat ascii;
|
|
||||||
|
|
||||||
writePrecision 6;
|
|
||||||
|
|
||||||
writeCompression uncompressed;
|
|
||||||
|
|
||||||
timeFormat general;
|
|
||||||
|
|
||||||
timePrecision 6;
|
|
||||||
|
|
||||||
runTimeModifiable yes;
|
|
||||||
|
|
||||||
adjustTimeStep no;
|
|
||||||
|
|
||||||
maxCo 0.1;
|
|
||||||
maxAlphaCo 0.1;
|
|
||||||
|
|
||||||
|
|
||||||
libs (
|
|
||||||
|
|
||||||
);
|
|
||||||
|
|
||||||
functions
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
|
||||||
@ -1,143 +0,0 @@
|
|||||||
###############################################
|
|
||||||
#geometry
|
|
||||||
variable cylRadius equal 0.1
|
|
||||||
variable cylHeight equal 0.08
|
|
||||||
|
|
||||||
# Radiuses of servo wall for force calculation
|
|
||||||
variable r1 equal 0.02
|
|
||||||
variable r2 equal 0.04
|
|
||||||
variable r3 equal 0.06
|
|
||||||
variable r4 equal 0.08
|
|
||||||
variable r5 equal 0.1
|
|
||||||
|
|
||||||
#particle variables
|
|
||||||
variable rho equal 1500 # particle density
|
|
||||||
|
|
||||||
# time parameters
|
|
||||||
variable dt equal 0.00005 # Time step
|
|
||||||
variable outInterval equal 0.5 # Dump interval to be consistent with controlDict
|
|
||||||
|
|
||||||
# DEM-parameters
|
|
||||||
variable yM equal 5.e6 # Young's modulus
|
|
||||||
variable pR equal 0.45 # Poisson ratio
|
|
||||||
variable rest equal 0.3 # coefficient of restitution
|
|
||||||
variable fric equal 0.5 # coefficient of friction
|
|
||||||
variable cV equal 0.1 # characteristic velocity
|
|
||||||
variable skin equal 0.001
|
|
||||||
|
|
||||||
# variables for the servo walls
|
|
||||||
#Pressure acting on the servo wall (Pa)
|
|
||||||
variable p1 equal 800
|
|
||||||
variable p2 equal 800
|
|
||||||
variable p3 equal 800
|
|
||||||
variable p4 equal 800
|
|
||||||
variable p5 equal 800
|
|
||||||
|
|
||||||
variable A1 equal PI*${r1}^2
|
|
||||||
variable A2 equal PI*(${r2}^2-${r1}^2)
|
|
||||||
variable A3 equal PI*(${r3}^2-${r2}^2)
|
|
||||||
variable A4 equal PI*(${r4}^2-${r3}^2)
|
|
||||||
variable A5 equal PI*(${r5}^2-${r4}^2)
|
|
||||||
|
|
||||||
variable ctrlForceR1 equal -${p1}*${A1} # target value of the force
|
|
||||||
variable ctrlForceR2 equal -${p2}*${A2} # target value of the force
|
|
||||||
variable ctrlForceR3 equal -${p3}*${A3} # target value of the force
|
|
||||||
variable ctrlForceR4 equal -${p4}*${A4} # target value of the force
|
|
||||||
variable ctrlForceR5 equal -${p5}*${A5} # target value of the force
|
|
||||||
|
|
||||||
variable maxVel equal 0.25*${skin}/${dt}
|
|
||||||
|
|
||||||
# controller parameter (servo wall)
|
|
||||||
variable ctrlKp equal 1e-2
|
|
||||||
variable ctrlKi equal 0.0
|
|
||||||
variable ctrlKd equal 0.0
|
|
||||||
|
|
||||||
# particle settling loop parameters
|
|
||||||
variable vthre equal 0.01
|
|
||||||
|
|
||||||
# calculated parameters
|
|
||||||
variable dumpInterval equal ${outInterval}/${dt}
|
|
||||||
|
|
||||||
|
|
||||||
###############################################
|
|
||||||
|
|
||||||
log ../DEM/log.liggghts
|
|
||||||
thermo_log ../DEM/post/thermo.txt
|
|
||||||
|
|
||||||
atom_style granular
|
|
||||||
atom_modify map array
|
|
||||||
communicate single vel yes
|
|
||||||
|
|
||||||
boundary f f f
|
|
||||||
newton off
|
|
||||||
|
|
||||||
units si
|
|
||||||
processors 2 2 1
|
|
||||||
|
|
||||||
# read the restart file
|
|
||||||
read_restart ../DEM/post/restart/fill.restart
|
|
||||||
|
|
||||||
neighbor ${skin} bin
|
|
||||||
neigh_modify delay 0
|
|
||||||
|
|
||||||
# Material properties required for granular pair styles
|
|
||||||
|
|
||||||
fix m1 all property/global youngsModulus peratomtype ${yM}
|
|
||||||
fix m2 all property/global poissonsRatio peratomtype ${pR}
|
|
||||||
fix m3 all property/global coefficientRestitution peratomtypepair 1 ${rest}
|
|
||||||
fix m4 all property/global coefficientFriction peratomtypepair 1 ${fric}
|
|
||||||
|
|
||||||
# pair style
|
|
||||||
pair_style gran model hertz tangential history # Hertzian without cohesion
|
|
||||||
pair_coeff * *
|
|
||||||
|
|
||||||
# timestep, gravity
|
|
||||||
timestep ${dt}
|
|
||||||
fix gravi all gravity 9.81 vector 0.0 0.0 -1.0
|
|
||||||
|
|
||||||
# walls
|
|
||||||
fix cylWall all wall/gran model hertz tangential history primitive type 1 zcylinder 0.1 0 0
|
|
||||||
fix botWall all wall/gran model hertz tangential history primitive type 1 zplane 0
|
|
||||||
|
|
||||||
fix servoR1 all mesh/surface/stress/servo file ../DEM/stls/r1.stl type 1 scale 1. com 0 0 0 ctrlPV force axis 0. 0. 1. target_val ${ctrlForceR1} vel_max ${maxVel} kp ${ctrlKp} ki ${ctrlKi} kd ${ctrlKd} #verbose no move 0.0 0.0 7.8
|
|
||||||
|
|
||||||
fix servoR2 all mesh/surface/stress/servo file ../DEM/stls/r2.stl type 1 scale 1. com 0 0 0 ctrlPV force axis 0. 0. 1. target_val ${ctrlForceR2} vel_max ${maxVel} kp ${ctrlKp} ki ${ctrlKi} kd ${ctrlKd} #verbose no move 0.0 0.0 7.8
|
|
||||||
|
|
||||||
fix servoR3 all mesh/surface/stress/servo file ../DEM/stls/r3.stl type 1 scale 1. com 0 0 0 ctrlPV force axis 0. 0. 1. target_val ${ctrlForceR3} vel_max ${maxVel} kp ${ctrlKp} ki ${ctrlKi} kd ${ctrlKd} #verbose no move 0.0 0.0 7.8
|
|
||||||
|
|
||||||
fix servoR4 all mesh/surface/stress/servo file ../DEM/stls/r4.stl type 1 scale 1. com 0 0 0 ctrlPV force axis 0. 0. 1. target_val ${ctrlForceR4} vel_max ${maxVel} kp ${ctrlKp} ki ${ctrlKi} kd ${ctrlKd} #verbose no move 0.0 0.0 7.8
|
|
||||||
|
|
||||||
fix servoR5 all mesh/surface/stress/servo file ../DEM/stls/r5.stl type 1 scale 1. com 0 0 0 ctrlPV force axis 0. 0. 1. target_val ${ctrlForceR5} vel_max ${maxVel} kp ${ctrlKp} ki ${ctrlKi} kd ${ctrlKd} #verbose no move 0.0 0.0 7.8
|
|
||||||
|
|
||||||
fix walls all wall/gran model hertz tangential history mesh n_meshes 5 meshes servoR1 servoR2 servoR3 servoR4 servoR5
|
|
||||||
|
|
||||||
# change the particles density
|
|
||||||
set group all density ${rho}
|
|
||||||
|
|
||||||
# cfd coupling
|
|
||||||
fix cfd all couple/cfd couple_every 100000000 mpi
|
|
||||||
fix cfd2 all couple/cfd/force/implicit
|
|
||||||
|
|
||||||
# apply nve integration to all particles that are inserted as single particles
|
|
||||||
fix integr all nve/sphere
|
|
||||||
|
|
||||||
# center of mass
|
|
||||||
compute centerOfMass all com
|
|
||||||
|
|
||||||
# compute total dragforce
|
|
||||||
compute dragtotal all reduce sum f_dragforce[1] f_dragforce[2] f_dragforce[3]
|
|
||||||
|
|
||||||
# screen output
|
|
||||||
compute rke all erotate/sphere
|
|
||||||
thermo_style custom step atoms ke c_rke vol c_centerOfMass[3] c_dragtotal[1] c_dragtotal[2] c_dragtotal[3]
|
|
||||||
thermo 100
|
|
||||||
thermo_modify lost ignore norm no
|
|
||||||
compute_modify thermo_temp dynamic yes
|
|
||||||
|
|
||||||
#compute position all property/atom x y z
|
|
||||||
fix ts_check all check/timestep/gran 100 0.1 0.1
|
|
||||||
dump dmp all custom ${dumpInterval} ../DEM/post/dump*.liggghts_run id type x y z vx vy vz fx fy fz f_dragforce[1] f_dragforce[2] f_dragforce[3] radius
|
|
||||||
dump servoWall all mesh/stl ${dumpInterval} ../DEM/post/dump*.servoWall.stl servoR1 servoR2 servoR3 servoR4 servoR5
|
|
||||||
|
|
||||||
run 1
|
|
||||||
|
|
||||||
@ -1,98 +0,0 @@
|
|||||||
###############################################
|
|
||||||
#geometry
|
|
||||||
variable cylRadius equal 0.1
|
|
||||||
variable cylHeight equal 0.08
|
|
||||||
|
|
||||||
#particle variables
|
|
||||||
variable rho equal 2500 # particle density
|
|
||||||
variable radi equal 0.003 # particle radius
|
|
||||||
variable nParticles equal 17000
|
|
||||||
|
|
||||||
# time parameters
|
|
||||||
variable totTime equal 1.0 # Total runtime in seconds
|
|
||||||
variable dt equal 0.00001
|
|
||||||
variable outInterval equal 0.1 # Dump interval to be consistent with controlDict
|
|
||||||
|
|
||||||
# DEM-parameters
|
|
||||||
variable yM equal 5.e6 # Young's modulus
|
|
||||||
variable pR equal 0.45 # Poisson ratio
|
|
||||||
variable rest equal 0.3 # coefficient of restitution
|
|
||||||
variable fric equal 0.5 # coefficient of friction
|
|
||||||
variable cV equal 0.1 # characteristic velocity
|
|
||||||
variable skin equal 0.001
|
|
||||||
|
|
||||||
# calculated parameters
|
|
||||||
variable nrIterations equal ${totTime}/${dt}
|
|
||||||
variable dumpInterval equal ${outInterval}/${dt}
|
|
||||||
variable insRate equal 2*${nParticles}/${totTime}
|
|
||||||
|
|
||||||
###############################################
|
|
||||||
|
|
||||||
atom_style granular
|
|
||||||
atom_modify map array
|
|
||||||
communicate single vel yes
|
|
||||||
|
|
||||||
boundary f f f
|
|
||||||
newton off
|
|
||||||
|
|
||||||
units si
|
|
||||||
processors 2 2 1
|
|
||||||
|
|
||||||
region reg block -${cylRadius} ${cylRadius} -${cylRadius} ${cylRadius} 0 0.15 units box
|
|
||||||
create_box 1 reg
|
|
||||||
|
|
||||||
neighbor ${skin} bin
|
|
||||||
neigh_modify delay 0
|
|
||||||
|
|
||||||
|
|
||||||
# Material properties required for granular pair styles
|
|
||||||
|
|
||||||
fix m1 all property/global youngsModulus peratomtype ${yM}
|
|
||||||
fix m2 all property/global poissonsRatio peratomtype ${pR}
|
|
||||||
fix m3 all property/global coefficientRestitution peratomtypepair 1 ${rest}
|
|
||||||
fix m4 all property/global coefficientFriction peratomtypepair 1 ${fric}
|
|
||||||
|
|
||||||
# pair style
|
|
||||||
pair_style gran model hertz tangential history # Hertzian without cohesion
|
|
||||||
pair_coeff * *
|
|
||||||
|
|
||||||
# timestep, gravity
|
|
||||||
timestep ${dt}
|
|
||||||
fix gravi all gravity 9.81 vector 0.0 0.0 -1.0
|
|
||||||
|
|
||||||
# walls
|
|
||||||
fix cylWall all wall/gran model hertz tangential history primitive type 1 zcylinder 0.1 0 0
|
|
||||||
fix botWall all wall/gran model hertz tangential history primitive type 1 zplane 0
|
|
||||||
fix cone all mesh/surface file ../DEM/stls/cone.stl type 1
|
|
||||||
|
|
||||||
fix walls all wall/gran model hertz tangential history mesh n_meshes 1 meshes cone
|
|
||||||
|
|
||||||
# particle distributions and insertion
|
|
||||||
region bc cylinder z 0 0 ${cylRadius} 0.07 0.12 #${cylHeight}
|
|
||||||
fix pts1 all particletemplate/sphere 1 atom_type 1 density constant ${rho} radius constant ${radi}
|
|
||||||
fix pdd1 all particledistribution/discrete 1 1 pts1 1.0
|
|
||||||
|
|
||||||
fix ins all insert/rate/region seed 1001 distributiontemplate pdd1 nparticles ${nParticles} particlerate ${insRate} insert_every 1000 overlapcheck yes region bc ntry_mc 10000
|
|
||||||
|
|
||||||
# apply nve integration to all particles that are inserted as single particles
|
|
||||||
fix integr all nve/sphere
|
|
||||||
|
|
||||||
# screen output
|
|
||||||
compute rke all erotate/sphere
|
|
||||||
thermo_style custom step atoms ke c_rke vol
|
|
||||||
thermo 1000
|
|
||||||
thermo_modify lost ignore norm no
|
|
||||||
compute_modify thermo_temp dynamic yes
|
|
||||||
|
|
||||||
compute pos all property/atom x y z
|
|
||||||
# insert the first particles so that dump is not empty
|
|
||||||
run 1
|
|
||||||
dump dmp all custom ${dumpInterval} post/dump*.liggghts_init id type x y z ix iy iz vx vy vz fx fy fz omegax omegay omegaz radius c_pos[1] c_pos[2] c_pos[3]
|
|
||||||
dump myStl1 all stl ${dumpInterval} ../DEM/post/dump.liggghts_init*.stl
|
|
||||||
|
|
||||||
run ${nrIterations} upto
|
|
||||||
|
|
||||||
region particleRm cylinder z 0 0 ${cylRadius} 0.08 0.15
|
|
||||||
delete_atoms region particleRm
|
|
||||||
|
|
||||||
write_restart post/restart/fill.restart
|
|
||||||
@ -1,31 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
#===================================================================#
|
|
||||||
# allrun script for cfdemSolverMultiphase
|
|
||||||
#===================================================================#
|
|
||||||
|
|
||||||
#- define variables
|
|
||||||
casePath="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")"
|
|
||||||
nrProcs=4;
|
|
||||||
|
|
||||||
#fill with the particles
|
|
||||||
cd $casePath/DEM
|
|
||||||
mpirun -np $nrProcs liggghts < in.liggghts_fill |& tee $casePath/log_init
|
|
||||||
|
|
||||||
|
|
||||||
#Run 5 seconds of coupled simulation with closed outlet to equilibrate the system
|
|
||||||
cd $casePath/CFD
|
|
||||||
cp -r 0.org 0
|
|
||||||
cp system/controlDict.init system/controlDict
|
|
||||||
cp constant/couplingProperties.init constant/couplingProperties
|
|
||||||
setFields
|
|
||||||
decomposePar -force
|
|
||||||
mpirun -np $nrProcs cfdemSolverMultiphase -parallel |& tee $casePath/log_equilibrate
|
|
||||||
reconstructPar -latestTime
|
|
||||||
mv 5 $casePath/DEM/post/restart/
|
|
||||||
|
|
||||||
#switch the outlet boundary conditions to open for the run simulation, easier done manually or by using groovyBC...
|
|
||||||
perl -0777 -i.original -pe 's/ outlet\n {\n type zeroGradient;/ outlet\n {\n type fixedValue;\n value uniform 0;/igs' $casePath/DEM/post/restart/5/p_rgh
|
|
||||||
|
|
||||||
perl -0777 -i.original -pe 's/ outlet\n {\n type fixedValue;/ outlet\n {\n type inletOutlet;\n inletValue uniform (0 0 0);/igs' $casePath/DEM/post/restart/5/U
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user