This commit is contained in:
Thomas Lichtenegger
2021-10-20 09:03:03 +02:00
27 changed files with 1121 additions and 7 deletions

View File

@ -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)

View 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

View 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;
}
}
// ************************************************************************* //

View 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;
}
}
// ************************************************************************* //

View 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;
}
}
// ************************************************************************* //

View 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;
}
}
// ************************************************************************* //

View 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;
}
}
// ************************************************************************* //

View File

@ -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;
}
}
// ************************************************************************* //

View File

@ -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";
}
// ************************************************************************* //

View File

@ -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 );
// ************************************************************************* //

View File

@ -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;
}
// ************************************************************************* //

View File

@ -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;
// ************************************************************************* //

View File

@ -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;
// ************************************************************************* //

View File

@ -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)
);
}
);
// ************************************************************************* //

View File

@ -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;
}
}
// ************************************************************************* //

View File

@ -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;
}
// ************************************************************************* //

View File

@ -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 ;
}
// ************************************************************************* //

View File

@ -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;
}
// ************************************************************************* //

View File

@ -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

View File

@ -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

View 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

View 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

View 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"

View File

@ -0,0 +1,2 @@
#!/bin/bash
# nothing to see here

View 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

View 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"]
}
]
}