mirror of
https://github.com/ParticulateFlow/CFDEMcoupling-PFM.git
synced 2025-12-08 06:37:44 +00:00
Merge branch 'develop' of https://github.com/ParticulateFlow/CFDEMcoupling into develop
This commit is contained in:
@ -8,9 +8,11 @@ particleCloud.energyCoefficients(QCoeff);
|
||||
|
||||
Cpv = he.name() == "e" ? thermo.Cv() : thermo.Cp();
|
||||
|
||||
// correct source for the thermodynamic reference temperature
|
||||
// dimensionedScalar Tref("Tref", dimTemperature, T[0]-he[0]/(Cpv[0]+SMALL));
|
||||
// Qsource += QCoeff*Tref;
|
||||
// For implict T terms in the energy/enthalpy transport equation, use
|
||||
// (he_n+1 - he_n) / (T_n+1 - T_n) = Cpv to eliminate T_n+1 with he_n+1.
|
||||
// This formula is valid for ideal gases with e=e(T) and h=h(T). For
|
||||
// incompressible fluids, e=e(T) holds, too, but enthalpy would need correction
|
||||
// terms accounting for pressure variations.
|
||||
|
||||
fvScalarMatrix EEqn
|
||||
(
|
||||
@ -26,13 +28,13 @@ fvScalarMatrix EEqn
|
||||
)
|
||||
: -dpdt
|
||||
)
|
||||
// net heat transfer from particles to fluid
|
||||
- Qsource
|
||||
- QCoeff*T
|
||||
- fvm::Sp(QCoeff/Cpv, he)
|
||||
// thermal conduction of the fluid with effective conductivity
|
||||
+ QCoeff/Cpv*he
|
||||
- fvc::laplacian(voidfraction*thCond,T)
|
||||
- fvm::laplacian(voidfraction*thCond/Cpv,he)
|
||||
// + particle-fluid energy transfer due to work
|
||||
// + fluid energy dissipation due to shearing
|
||||
+ fvc::laplacian(voidfraction*thCond/Cpv,he)
|
||||
==
|
||||
// + combustion->Sh()
|
||||
fvOptions(rho, he)
|
||||
|
||||
31
tutorials/cfdemSolverPiso/bubblingFluidizedBed/Allrun.sh
Executable file
31
tutorials/cfdemSolverPiso/bubblingFluidizedBed/Allrun.sh
Executable file
@ -0,0 +1,31 @@
|
||||
#!/bin/bash
|
||||
#------------------------------------------------------------------------------
|
||||
# allrun script for bubbling fluidized bed test case
|
||||
# run bubblingFluidizedBed
|
||||
# Daniel Queteschiner - October 2021
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
#- define variables
|
||||
casePath="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")"
|
||||
|
||||
#- include functions
|
||||
source $CFDEM_PROJECT_DIR/etc/functions.sh
|
||||
|
||||
# check if mesh was built
|
||||
if [ -f "$casePath/CFD/constant/polyMesh/points" ]; then
|
||||
echo "mesh was built before - using old mesh"
|
||||
else
|
||||
echo "mesh needs to be built"
|
||||
cd $casePath/CFD
|
||||
blockMesh
|
||||
fi
|
||||
|
||||
if [ -f "$casePath/DEM/post/restart/liggghts.restart" ]; then
|
||||
echo "LIGGGHTS init was run before - using existing restart file"
|
||||
else
|
||||
#- run serial DEM
|
||||
$casePath/DEMrun.sh
|
||||
fi
|
||||
|
||||
#- run parallel CFD-DEM
|
||||
bash $casePath/parCFDDEMrun.sh
|
||||
39
tutorials/cfdemSolverPiso/bubblingFluidizedBed/CFD/0/Ksl
Normal file
39
tutorials/cfdemSolverPiso/bubblingFluidizedBed/CFD/0/Ksl
Normal file
@ -0,0 +1,39 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Version: 6
|
||||
\\/ M anipulation |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class volScalarField;
|
||||
object Ksl;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
dimensions [1 -3 -1 0 0 0 0];
|
||||
|
||||
internalField uniform 0;
|
||||
|
||||
boundaryField
|
||||
{
|
||||
wall
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
|
||||
inlet
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
|
||||
outlet
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
||||
44
tutorials/cfdemSolverPiso/bubblingFluidizedBed/CFD/0/U
Normal file
44
tutorials/cfdemSolverPiso/bubblingFluidizedBed/CFD/0/U
Normal file
@ -0,0 +1,44 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Version: 6
|
||||
\\/ 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
|
||||
{
|
||||
wall
|
||||
{
|
||||
type slip;
|
||||
}
|
||||
|
||||
inlet
|
||||
{
|
||||
type uniformFixedValue;
|
||||
uniformValue table
|
||||
(
|
||||
(0.000 (0 0 0.0066))
|
||||
(0.100 (0 0 0.6600)) // 2x minimum fluidization velocity
|
||||
);
|
||||
}
|
||||
|
||||
outlet
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
||||
39
tutorials/cfdemSolverPiso/bubblingFluidizedBed/CFD/0/Us
Normal file
39
tutorials/cfdemSolverPiso/bubblingFluidizedBed/CFD/0/Us
Normal file
@ -0,0 +1,39 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Version: 6
|
||||
\\/ M anipulation |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class volVectorField;
|
||||
object Us;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
dimensions [0 1 -1 0 0 0 0];
|
||||
|
||||
internalField uniform (0 0 0);
|
||||
|
||||
boundaryField
|
||||
{
|
||||
wall
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
|
||||
inlet
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
|
||||
outlet
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
||||
40
tutorials/cfdemSolverPiso/bubblingFluidizedBed/CFD/0/p
Normal file
40
tutorials/cfdemSolverPiso/bubblingFluidizedBed/CFD/0/p
Normal file
@ -0,0 +1,40 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Version: 6
|
||||
\\/ M anipulation |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class volScalarField;
|
||||
object p;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
dimensions [0 2 -2 0 0 0 0];
|
||||
|
||||
internalField uniform 0;
|
||||
|
||||
boundaryField
|
||||
{
|
||||
wall
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
|
||||
inlet
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
|
||||
outlet
|
||||
{
|
||||
type fixedValue;
|
||||
value $internalField;
|
||||
}
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
||||
39
tutorials/cfdemSolverPiso/bubblingFluidizedBed/CFD/0/rho
Normal file
39
tutorials/cfdemSolverPiso/bubblingFluidizedBed/CFD/0/rho
Normal file
@ -0,0 +1,39 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Version: 6
|
||||
\\/ M anipulation |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class volScalarField;
|
||||
object rho;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
dimensions [1 -3 0 0 0 0 0];
|
||||
|
||||
internalField uniform 1.13;
|
||||
|
||||
boundaryField
|
||||
{
|
||||
wall
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
|
||||
inlet
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
|
||||
outlet
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,41 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Version: 6
|
||||
\\/ M anipulation |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class volScalarField;
|
||||
object voidfraction;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
dimensions [0 0 0 0 0 0 0];
|
||||
|
||||
internalField uniform 1;
|
||||
|
||||
boundaryField
|
||||
{
|
||||
wall
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
|
||||
inlet
|
||||
{
|
||||
type fixedValue;
|
||||
value uniform 1;
|
||||
}
|
||||
|
||||
outlet
|
||||
{
|
||||
type fixedValue;
|
||||
value uniform 1;
|
||||
}
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,110 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Version: 6
|
||||
\\/ M anipulation |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
location "constant";
|
||||
object couplingProperties;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
// sub-models & settings
|
||||
|
||||
syncMode false;
|
||||
|
||||
modelType "A";
|
||||
|
||||
couplingInterval 100;
|
||||
|
||||
voidFractionModel divided;
|
||||
|
||||
locateModel engine;
|
||||
|
||||
meshMotionModel noMeshMotion;
|
||||
|
||||
regionModel allRegion;
|
||||
|
||||
IOModel off;
|
||||
|
||||
probeModel off;
|
||||
|
||||
dataExchangeModel twoWayMPI;
|
||||
|
||||
averagingModel dense;
|
||||
|
||||
clockModel off;
|
||||
|
||||
smoothingModel off;
|
||||
|
||||
forceModels
|
||||
(
|
||||
BeetstraDrag
|
||||
gradPForce
|
||||
viscForce
|
||||
);
|
||||
|
||||
momCoupleModels
|
||||
(
|
||||
implicitCouple
|
||||
);
|
||||
|
||||
turbulenceModelType "turbulenceProperties";
|
||||
|
||||
|
||||
// sub-model properties
|
||||
|
||||
implicitCoupleProps
|
||||
{
|
||||
velFieldName "U";
|
||||
granVelFieldName "Us";
|
||||
voidfractionFieldName "voidfraction";
|
||||
}
|
||||
|
||||
|
||||
gradPForceProps
|
||||
{
|
||||
pFieldName "p";
|
||||
voidfractionFieldName "voidfraction";
|
||||
velocityFieldName "U";
|
||||
interpolation true;
|
||||
}
|
||||
|
||||
viscForceProps
|
||||
{
|
||||
velocityFieldName "U";
|
||||
interpolation true;
|
||||
}
|
||||
|
||||
BeetstraDragProps
|
||||
{
|
||||
velFieldName "U";
|
||||
granVelFieldName "Us";
|
||||
rhoParticle 1000.;
|
||||
voidfractionFieldName "voidfraction";
|
||||
interpolation true;
|
||||
}
|
||||
|
||||
engineProps
|
||||
{
|
||||
treeSearch true;
|
||||
}
|
||||
|
||||
dividedProps
|
||||
{
|
||||
alphaMin 0.01;
|
||||
scaleUpVol 1.0;
|
||||
}
|
||||
|
||||
twoWayMPIProps
|
||||
{
|
||||
liggghtsPath "../DEM/in.liggghts_run";
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,22 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Version: 6
|
||||
\\/ M anipulation |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class uniformDimensionedVectorField;
|
||||
location "constant";
|
||||
object g;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
dimensions [0 1 -2 0 0 0 0];
|
||||
value ( 0 0 -9.81 );
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,31 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Version: 6
|
||||
\\/ M anipulation |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
location "constant";
|
||||
object liggghtsCommands;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
liggghtsCommandModels
|
||||
(
|
||||
runLiggghts
|
||||
writeLiggghts
|
||||
);
|
||||
|
||||
writeLiggghtsProps
|
||||
{
|
||||
writeLast off;
|
||||
writeName "post/restart/liggghts.restartCFDEM";
|
||||
overwrite on;
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,23 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Version: 6
|
||||
\\/ M anipulation |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
location "constant";
|
||||
object transportProperties;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
transportModel Newtonian;
|
||||
|
||||
nu [0 2 -1 0 0 0 0] 14.88e-6;
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,20 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Version: 6
|
||||
\\/ M anipulation |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
location "constant";
|
||||
object turbulenceProperties;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
simulationType laminar;
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,70 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Version: 6
|
||||
\\/ M anipulation |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
object blockMeshDict;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
convertToMeters 1;
|
||||
|
||||
vertices
|
||||
(
|
||||
( 0.0432 0.0000 -0.0048 )
|
||||
( 0.0000 0.0000 -0.0048 )
|
||||
( 0.0000 0.0100 -0.0048 )
|
||||
( 0.0432 0.0100 -0.0048 )
|
||||
|
||||
( 0.0432 0.0000 0.1200 )
|
||||
( 0.0000 0.0000 0.1200 )
|
||||
( 0.0000 0.0100 0.1200 )
|
||||
( 0.0432 0.0100 0.1200 )
|
||||
);
|
||||
|
||||
blocks
|
||||
(
|
||||
hex (1 0 3 2 5 4 7 6) (12 1 26) simpleGrading (1 1 1)
|
||||
);
|
||||
|
||||
boundary
|
||||
(
|
||||
inlet
|
||||
{
|
||||
type patch;
|
||||
faces
|
||||
(
|
||||
(0 1 2 3)
|
||||
);
|
||||
}
|
||||
|
||||
outlet
|
||||
{
|
||||
type patch;
|
||||
faces
|
||||
(
|
||||
(4 7 6 5)
|
||||
);
|
||||
}
|
||||
|
||||
wall
|
||||
{
|
||||
type wall;
|
||||
faces
|
||||
(
|
||||
(1 0 4 5)
|
||||
(0 3 7 4)
|
||||
(3 2 6 7)
|
||||
(2 1 5 6)
|
||||
);
|
||||
}
|
||||
);
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,85 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Version: 6
|
||||
\\/ M anipulation |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
location "system";
|
||||
object controlDict;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
application cfdemSolverPiso;
|
||||
|
||||
startFrom startTime;
|
||||
|
||||
startTime 0;
|
||||
|
||||
stopAt endTime;
|
||||
|
||||
endTime 2.1;
|
||||
|
||||
deltaT 0.00025;
|
||||
|
||||
writeControl adjustableRunTime;
|
||||
|
||||
writeInterval 0.003;
|
||||
|
||||
purgeWrite 0;
|
||||
|
||||
writeFormat ascii;
|
||||
|
||||
writePrecision 6;
|
||||
|
||||
writeCompression off;
|
||||
|
||||
timeFormat general;
|
||||
|
||||
timePrecision 6;
|
||||
|
||||
runTimeModifiable true;
|
||||
|
||||
adjustTimeStep no;
|
||||
|
||||
maxCo 0.8;
|
||||
|
||||
|
||||
functions
|
||||
{
|
||||
probes
|
||||
{
|
||||
type probes;
|
||||
functionObjectLibs ("libsampling.so");
|
||||
name probes;
|
||||
probeLocations
|
||||
(
|
||||
(0.0018 0.005 0.022)
|
||||
(0.0054 0.005 0.022)
|
||||
(0.0090 0.005 0.022)
|
||||
(0.0126 0.005 0.022)
|
||||
(0.0162 0.005 0.022)
|
||||
(0.0198 0.005 0.022)
|
||||
(0.0234 0.005 0.022)
|
||||
(0.0270 0.005 0.022)
|
||||
(0.0306 0.005 0.022)
|
||||
(0.0342 0.005 0.022)
|
||||
(0.0378 0.005 0.022)
|
||||
(0.0414 0.005 0.022)
|
||||
);
|
||||
|
||||
// fields to be probed
|
||||
fields (voidfraction);
|
||||
|
||||
// write at same frequency as fields
|
||||
writeControl timeStep;
|
||||
writeInterval 12;
|
||||
}
|
||||
|
||||
}
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,28 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Version: 6
|
||||
\\/ M anipulation |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
location "system";
|
||||
object decomposeParDict;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
numberOfSubdomains 4;
|
||||
|
||||
method simple;
|
||||
|
||||
simpleCoeffs
|
||||
{
|
||||
n (2 1 2);
|
||||
delta 0.001;
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,60 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Version: 6
|
||||
\\/ M anipulation |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
location "system";
|
||||
object fvSchemes;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
ddtSchemes
|
||||
{
|
||||
default Euler;
|
||||
}
|
||||
|
||||
gradSchemes
|
||||
{
|
||||
default Gauss linear;
|
||||
}
|
||||
|
||||
divSchemes
|
||||
{
|
||||
default Gauss linear;
|
||||
div(phi,U) Gauss limitedLinearV 1;
|
||||
div(phi,k) Gauss limitedLinear 1;
|
||||
div(phi,epsilon) Gauss limitedLinear 1;
|
||||
div(phi,R) Gauss limitedLinear 1;
|
||||
div(phi,nuTilda) Gauss limitedLinear 1;
|
||||
}
|
||||
|
||||
laplacianSchemes
|
||||
{
|
||||
default Gauss linear corrected;
|
||||
}
|
||||
|
||||
interpolationSchemes
|
||||
{
|
||||
default linear;
|
||||
}
|
||||
|
||||
snGradSchemes
|
||||
{
|
||||
default corrected;
|
||||
}
|
||||
|
||||
fluxRequired
|
||||
{
|
||||
default no;
|
||||
p ;
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,61 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Version: 6
|
||||
\\/ M anipulation |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
location "system";
|
||||
object fvSolution;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
solvers
|
||||
{
|
||||
p
|
||||
{
|
||||
solver PCG;
|
||||
preconditioner DIC;
|
||||
tolerance 1e-06;
|
||||
relTol 0.1;
|
||||
}
|
||||
|
||||
pFinal
|
||||
{
|
||||
$p;
|
||||
tolerance 1e-06;
|
||||
relTol 0;
|
||||
}
|
||||
|
||||
"(U|k|epsilon|R|nuTilda)"
|
||||
{
|
||||
solver PBiCG;
|
||||
preconditioner DILU;
|
||||
tolerance 1e-05;
|
||||
relTol 0;
|
||||
}
|
||||
|
||||
"(voidfraction|Us|Ksl|dSmoothing|UsNext|voidfractionNext)"
|
||||
{
|
||||
solver PCG;
|
||||
preconditioner DIC;
|
||||
tolerance 1e-05;
|
||||
relTol 0;
|
||||
}
|
||||
}
|
||||
|
||||
PISO
|
||||
{
|
||||
nCorrectors 4;
|
||||
nNonOrthogonalCorrectors 1;
|
||||
pRefCell 0;
|
||||
pRefValue 0;
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,105 @@
|
||||
################################################################################
|
||||
# brief: Bubbling fluidized bed - creating particle bed #
|
||||
# #
|
||||
# Bubbling in a fluidized bed of Geldart D particles (d=1.2mm, rho=1000kg/m3) #
|
||||
# Cf. Case B by Khawaja, H.A., J. Comput. Multiph. Flows 7(4), 227-240 (2015) #
|
||||
# #
|
||||
# authors: Daniel Queteschiner #
|
||||
# date: Oct 2021 #
|
||||
# copyright: 2021- JKU Linz #
|
||||
################################################################################
|
||||
|
||||
echo both
|
||||
|
||||
# define the attributes associated with the particles,
|
||||
# 'granular' (or 'sphere') style uses diameter, mass and angular velocity
|
||||
atom_style granular
|
||||
|
||||
# use an array to map particle IDs to local storage index,
|
||||
atom_modify map array
|
||||
|
||||
# set simulation domain to be fixed in x y z
|
||||
boundary f f f
|
||||
|
||||
# save communication by turning off Newton's 3rd law for pairwise interaction,
|
||||
# note: this setting only influences communication between procs, Newton's
|
||||
# 3rd law is still used for contact force calculations
|
||||
newton off
|
||||
|
||||
# use a single value for ghost particle cutoff distance and
|
||||
# enable velocity to be communicated with ghost particles
|
||||
communicate single vel yes
|
||||
|
||||
# set unit system to SI
|
||||
units si
|
||||
|
||||
# define the region used as simulation domain (min/max X, min/max Y, min/max Z)
|
||||
region domain block 0.0 0.0432 0.0 0.01 0.0 0.1248 units box
|
||||
|
||||
# create the simulation domain and 2 material types (with friction/frictionless)
|
||||
create_box 2 domain
|
||||
|
||||
# specify the skin distance for neighbor list generation
|
||||
neighbor 0.0003 bin
|
||||
neigh_modify delay 0
|
||||
|
||||
|
||||
# define the material properties required for granular pair styles
|
||||
# type 1 = particles / walls with friction
|
||||
# type 2 = frictionless walls
|
||||
fix m1 all property/global youngsModulus peratomtype 1.2e8 1.2e8
|
||||
fix m2 all property/global poissonsRatio peratomtype 0.3 0.3
|
||||
fix m3 all property/global coefficientRestitution peratomtypepair 2 0.986 0.986 0.986 0.986
|
||||
fix m4 all property/global coefficientFriction peratomtypepair 2 0.1 0.0 0.0 0.0
|
||||
|
||||
# specify contact model to use
|
||||
pair_style gran model hertz tangential history
|
||||
pair_coeff * *
|
||||
|
||||
# set the time step
|
||||
timestep 0.0000025
|
||||
|
||||
# apply gravity
|
||||
fix gravity all gravity 9.81 vector 0.0 0.0 -1.0
|
||||
|
||||
# define walls
|
||||
fix xwall1 all wall/gran model hertz tangential history primitive type 1 xplane 0.0000
|
||||
fix xwall2 all wall/gran model hertz tangential history primitive type 1 xplane 0.0432
|
||||
fix ywall1 all wall/gran model hertz tangential history primitive type 2 yplane 0.0000
|
||||
fix ywall2 all wall/gran model hertz tangential history primitive type 2 yplane 0.0100
|
||||
fix zwall1 all wall/gran model hertz tangential history primitive type 1 zplane 0.0000
|
||||
|
||||
# particle distributions and insertion
|
||||
fix pts1 all particletemplate/sphere 367127 atom_type 1 density constant 1000 radius constant 0.0006
|
||||
fix pdd1 all particledistribution/discrete 681573 1 pts1 1.0
|
||||
|
||||
fix ins all insert/pack seed 4763687 distributiontemplate pdd1 vel constant 0.0 0.0 -0.15 &
|
||||
insert_every once overlapcheck yes all_in yes particles_in_region 9240 region domain
|
||||
|
||||
# use constant NVE integration to update position, velocity and angular velocity
|
||||
fix integr all nve/sphere
|
||||
|
||||
# output settings, include kinetic energy
|
||||
thermo_style custom step atoms ke
|
||||
|
||||
# set frequency of output
|
||||
thermo 1000
|
||||
|
||||
# ignore particles leaving the simulation domain,
|
||||
# do not normalize thermodynamic output values by the number of atoms
|
||||
thermo_modify lost ignore norm no
|
||||
compute_modify thermo_temp dynamic yes
|
||||
|
||||
# insert the first particles so that dump is not empty
|
||||
run 1
|
||||
|
||||
# output particle properties
|
||||
dump dmp all custom/vtk 5000 post/liggghts_init_*.vtk id type x y z vx vy vz &
|
||||
fx fy fz omegax omegay omegaz radius
|
||||
|
||||
# run up to 160000 time steps (0.4s)
|
||||
run 160000 upto
|
||||
|
||||
# write the restart file
|
||||
write_restart post/restart/liggghts.restart
|
||||
|
||||
@ -0,0 +1,95 @@
|
||||
################################################################################
|
||||
# brief: Bubbling fluidized bed - particles driven by air flow #
|
||||
# #
|
||||
# Bubbling in a fluidized bed of Geldart D particles (d=1.2mm, rho=1000kg/m3) #
|
||||
# Cf. Case B by Khawaja, H.A., J. Comput. Multiph. Flows 7(4), 227-240 (2015) #
|
||||
# #
|
||||
# authors: Daniel Queteschiner #
|
||||
# date: Oct 2021 #
|
||||
# copyright: 2021- JKU Linz #
|
||||
################################################################################
|
||||
|
||||
log ../DEM/log.liggghts
|
||||
thermo_log ../DEM/post/thermo.txt
|
||||
|
||||
# define the attributes associated with the particles,
|
||||
# 'granular' (or 'sphere') style uses diameter, mass and angular velocity
|
||||
atom_style granular
|
||||
|
||||
# use an array to map particle IDs to local storage index,
|
||||
atom_modify map array
|
||||
|
||||
# set simulation domain to be fixed in x y z
|
||||
boundary f f f
|
||||
|
||||
# save communication by turning off Newton's 3rd law for pairwise interaction,
|
||||
# note: this setting only influences communication between procs, Newton's
|
||||
# 3rd law is still used for contact force calculations
|
||||
newton off
|
||||
|
||||
# use a single value for ghost particle cutoff distance and
|
||||
# enable velocity to be communicated with ghost particles
|
||||
communicate single vel yes
|
||||
|
||||
# set unit system to SI
|
||||
units si
|
||||
|
||||
# specify domain decomposition for parallel execution
|
||||
processors 2 1 2
|
||||
|
||||
# read the restart file
|
||||
read_restart ../DEM/post/restart/liggghts.restart
|
||||
|
||||
# specify the skin distance for neighbor list generation
|
||||
neighbor 0.0003 bin
|
||||
neigh_modify delay 0
|
||||
|
||||
# define the material properties required for granular pair styles
|
||||
# type 1 = particles / walls with friction
|
||||
# type 2 = frictionless walls
|
||||
fix m1 all property/global youngsModulus peratomtype 1.2e8 1.2e8
|
||||
fix m2 all property/global poissonsRatio peratomtype 0.3 0.3
|
||||
fix m3 all property/global coefficientRestitution peratomtypepair 2 0.986 0.986 0.986 0.986
|
||||
fix m4 all property/global coefficientFriction peratomtypepair 2 0.1 0.0 0.0 0.0
|
||||
|
||||
# specify contact model to use
|
||||
pair_style gran model hertz tangential history
|
||||
pair_coeff * *
|
||||
|
||||
# set the time step
|
||||
timestep 0.0000025
|
||||
|
||||
# apply gravity
|
||||
fix gravity all gravity 9.81 vector 0.0 0.0 -1.0
|
||||
|
||||
# define walls
|
||||
fix xwall1 all wall/gran model hertz tangential history primitive type 1 xplane 0.0000
|
||||
fix xwall2 all wall/gran model hertz tangential history primitive type 1 xplane 0.0432
|
||||
fix ywall1 all wall/gran model hertz tangential history primitive type 2 yplane 0.0000
|
||||
fix ywall2 all wall/gran model hertz tangential history primitive type 2 yplane 0.0100
|
||||
fix zwall1 all wall/gran model hertz tangential history primitive type 1 zplane 0.0000
|
||||
|
||||
# set up coupling to CFD simulation
|
||||
fix cfd all couple/cfd couple_every 100 mpi
|
||||
fix cfd2 all couple/cfd/force/implicit
|
||||
|
||||
# use constant NVE integration to update position, velocity and angular velocity
|
||||
fix integr all nve/sphere
|
||||
|
||||
# output settings, include kinetic energy
|
||||
thermo_style custom step atoms ke
|
||||
|
||||
# set frequency of output
|
||||
thermo 1000
|
||||
|
||||
# ignore particles leaving the simulation domain,
|
||||
# do not normalize thermodynamic output values by the number of atoms
|
||||
thermo_modify lost ignore norm no
|
||||
compute_modify thermo_temp dynamic yes
|
||||
|
||||
# output particle properties (same frequency as CFD output)
|
||||
dump dmp all custom/vtk 1200 ../DEM/post/liggghts_run_*.vtk id type x y z vx vy vz &
|
||||
fx fy fz omegax omegay omegaz radius
|
||||
|
||||
# run 1 time step to initialize all DEM systems
|
||||
run 1
|
||||
0
tutorials/cfdemSolverPiso/bubblingFluidizedBed/DEM/post/restart/.gitignore
vendored
Normal file
0
tutorials/cfdemSolverPiso/bubblingFluidizedBed/DEM/post/restart/.gitignore
vendored
Normal file
26
tutorials/cfdemSolverPiso/bubblingFluidizedBed/DEMrun.sh
Executable file
26
tutorials/cfdemSolverPiso/bubblingFluidizedBed/DEMrun.sh
Executable file
@ -0,0 +1,26 @@
|
||||
#!/bin/bash
|
||||
#------------------------------------------------------------------------------
|
||||
# DEMrun script for bubbling fluidized bed test case
|
||||
# init bubblingFluidizedBed
|
||||
# Daniel Queteschiner - October 2021
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
#- source CFDEM env vars
|
||||
. ~/.bashrc
|
||||
|
||||
#- include functions
|
||||
source $CFDEM_PROJECT_DIR/etc/functions.sh
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
#- define variables
|
||||
casePath="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")"
|
||||
logpath="$casePath"
|
||||
headerText="run_liggghts_init_DEM"
|
||||
logfileName="log_$headerText"
|
||||
solverName="in.liggghts_init"
|
||||
debugMode="off"
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
#- call function to run DEM case
|
||||
DEMrun $logpath $logfileName $casePath $headerText $solverName $debugMode
|
||||
|
||||
25
tutorials/cfdemSolverPiso/bubblingFluidizedBed/README.md
Normal file
25
tutorials/cfdemSolverPiso/bubblingFluidizedBed/README.md
Normal file
@ -0,0 +1,25 @@
|
||||
## Bubbling fluidized bed test case
|
||||
|
||||
based on
|
||||
* Khawaja, H.A., J. Comput. Multiph. Flows 7(4), 227-240 (2015)
|
||||
* Khawaja, H.A. and Moatamedi, M., Multiphysics Modelling of Fluid-Particulate Systems, 51-74 (2020)
|
||||
|
||||
#### Case B
|
||||
|
||||
parameter | value
|
||||
----------|------
|
||||
box width | 0.0432 m
|
||||
box height | 0.1248 m
|
||||
box thickness | 0.01 m
|
||||
number of fluid cells | 12 x 26 x 1
|
||||
number of particles | 9240
|
||||
fluid density | 1.13 kg/m3
|
||||
DEM time step size | 2.5e-6 s
|
||||
particle diameter | 1.2 mm
|
||||
particle density | 1000 kg/m3
|
||||
Youngs modulus | 1.2e8 Pa
|
||||
Poisson ratio | 0.3
|
||||
coeff. of restitution | 0.986
|
||||
coeff. of friction | 0.1
|
||||
unfluidized bed height | 0.03 m
|
||||
bed expansion observed in experiment | 0.05 m
|
||||
44
tutorials/cfdemSolverPiso/bubblingFluidizedBed/parCFDDEMrun.sh
Executable file
44
tutorials/cfdemSolverPiso/bubblingFluidizedBed/parCFDDEMrun.sh
Executable file
@ -0,0 +1,44 @@
|
||||
#!/bin/bash
|
||||
#------------------------------------------------------------------------------
|
||||
# parCFDDEMrun script for bubbling fluidized bed test case
|
||||
# run bubblingFluidizedBed CFD-DEM
|
||||
# Daniel Queteschiner - October 2021
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
#- source CFDEM env vars
|
||||
. ~/.bashrc
|
||||
|
||||
#- include functions
|
||||
source $CFDEM_PROJECT_DIR/etc/functions.sh
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
#- define variables
|
||||
casePath="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")"
|
||||
logpath=$casePath
|
||||
headerText="run_parallel_cfdemSolverPiso_bubblingFluidizedBed_CFDDEM"
|
||||
logfileName="log_$headerText"
|
||||
solverName="cfdemSolverPiso"
|
||||
nrProcs="4"
|
||||
machineFileName="none" # yourMachinefileName | none
|
||||
debugMode="off" # on | off| strict
|
||||
runCleanUp="false"
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
#- call function to run a parallel CFD-DEM case
|
||||
parCFDDEMrun $logpath $logfileName $casePath $headerText $solverName $nrProcs $machineFileName $debugMode
|
||||
|
||||
if [ $runCleanUp == "true" ]
|
||||
then
|
||||
#- clean up case
|
||||
echo "deleting data at: $casePath :\n"
|
||||
source $WM_PROJECT_DIR/bin/tools/CleanFunctions
|
||||
cd $casePath/CFD
|
||||
cleanCase
|
||||
rm $casePath/DEM/post/*.*
|
||||
touch $casePath/DEM/post/.gitignore
|
||||
rm $casePath/DEM/post/restart/*.*
|
||||
touch $casePath/DEM/post/restart/.gitignore
|
||||
fi
|
||||
|
||||
echo "done"
|
||||
|
||||
2
tutorials/cfdemSolverPiso/bubblingFluidizedBed/postrun.sh
Executable file
2
tutorials/cfdemSolverPiso/bubblingFluidizedBed/postrun.sh
Executable file
@ -0,0 +1,2 @@
|
||||
#!/bin/bash
|
||||
# nothing to see here
|
||||
13
tutorials/cfdemSolverPiso/bubblingFluidizedBed/prerun.sh
Executable file
13
tutorials/cfdemSolverPiso/bubblingFluidizedBed/prerun.sh
Executable file
@ -0,0 +1,13 @@
|
||||
#!/bin/bash
|
||||
|
||||
#- define variables
|
||||
casePath="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")"
|
||||
|
||||
# check if mesh was built
|
||||
if [ -f "$casePath/CFD/constant/polyMesh/boundary" ]; then
|
||||
echo "mesh was built before - using old mesh"
|
||||
else
|
||||
echo "mesh needs to be built"
|
||||
cd $casePath/CFD
|
||||
blockMesh
|
||||
fi
|
||||
19
tutorials/cfdemSolverPiso/bubblingFluidizedBed/run.config
Normal file
19
tutorials/cfdemSolverPiso/bubblingFluidizedBed/run.config
Normal file
@ -0,0 +1,19 @@
|
||||
{
|
||||
"type" : "CFDEMcoupling",
|
||||
"runs" : [
|
||||
{
|
||||
"name" : "liggghts-init",
|
||||
"input_script" : "DEM/in.liggghts_init",
|
||||
"type" : "liggghts/serial"
|
||||
},
|
||||
{
|
||||
"name" : "cfdemrun",
|
||||
"depends_on" : "liggghts-init",
|
||||
"solver" : "cfdemSolverPiso",
|
||||
"type" : "CFDEMcoupling/mpi",
|
||||
"nprocs" : 4,
|
||||
"pre_scripts" : ["prerun.sh"],
|
||||
"post_scripts" : ["postrun.sh"]
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user