add FeO->Fe reduction case

based on R1 case described by Spreitzer 2016 / Kinaci 2020
This commit is contained in:
danielque
2023-02-10 11:12:17 +01:00
parent 78852efc7a
commit 4e65f19d5f
40 changed files with 3038 additions and 0 deletions

View File

@ -0,0 +1,15 @@
#!/bin/sh
cd ${0%/*} || exit 1 # run from this directory
# Source tutorial run functions
. $WM_PROJECT_DIR/bin/tools/CleanFunctions
cd CFD
cleanCase
cd -
rm -f log*
rm ./DEM/post/dump*
# ----------------------------------------------------------------- end-of-file

View File

@ -0,0 +1,34 @@
#!/bin/bash
#------------------------------------------------------------------------------
# Allrun script for fluidized bed R1 chemistry test case
# run R1_FB test case
# Daniel Queteschiner - March 2022
#------------------------------------------------------------------------------
#- source CFDEM env vars
. ~/.bashrc
#- include functions
source $CFDEM_PROJECT_DIR/etc/functions.sh
#- define variables
casePath="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")"
#- 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 parallel DEM
$casePath/parDEMrun.sh
fi
#- run parallel CFD-DEM
bash $casePath/parCFDDEMrun.sh

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;
location "0";
object CO;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0.392;
boundaryField
{
side-walls
{
type zeroGradient;
}
inlet
{
type fixedValue;
value $internalField;
}
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;
location "0";
object CO2;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0.233;
boundaryField
{
side-walls
{
type zeroGradient;
}
inlet
{
type fixedValue;
value $internalField;
}
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;
location "0";
object H2;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0.010;
boundaryField
{
side-walls
{
type zeroGradient;
}
inlet
{
type fixedValue;
value $internalField;
}
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;
location "0";
object H2O;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0.023;
boundaryField
{
side-walls
{
type zeroGradient;
}
inlet
{
type fixedValue;
value $internalField;
}
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;
location "0";
object Ksl;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [1 -3 -1 0 0 0 0];
internalField uniform 0.0;
boundaryField
{
side-walls
{
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;
location "0";
object N2;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0.342;
boundaryField
{
side-walls
{
type zeroGradient;
}
inlet
{
type fixedValue;
value $internalField;
}
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;
location "0";
object T;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 1 0 0 0];
internalField uniform 993.15;
boundaryField
{
side-walls
{
type zeroGradient;
}
inlet
{
type fixedValue;
value $internalField;
}
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 volVectorField;
location "0";
object U;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -1 0 0 0 0];
internalField uniform (0.0 0.0 0.0);
boundaryField
{
side-walls
{
type noSlip;
}
inlet
{
type fixedValue;
value uniform (0.0 0.25 0.0);
}
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 volVectorField;
location "0";
object Us;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -1 0 0 0 0];
internalField uniform (0 0 0);
boundaryField
{
side-walls
{
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;
location "0";
object dSauter;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 0 0 0 0 0];
internalField uniform 0.00022;
boundaryField
{
side-walls
{
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;
location "0";
object p;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [1 -1 -2 0 0 0 0];
internalField uniform 140000;
boundaryField
{
side-walls
{
type zeroGradient;
}
inlet
{
type zeroGradient;
}
outlet
{
type fixedValue;
value uniform 140000;
}
}
// ************************************************************************* //

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;
location "0";
object voidfraction;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 1;
boundaryField
{
side-walls
{
type zeroGradient;
}
inlet
{
type fixedValue;
value uniform 1;
}
outlet
{
type zeroGradient;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,43 @@
/*--------------------------------*- 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;
location "0";
object wallQFactor;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 1;
boundaryField
{
side-walls
{
type fixedValue;
value uniform 1;
}
inlet
{
type fixedValue;
value uniform 1;
}
outlet
{
type fixedValue;
value uniform 1;
}
}
// ************************************************************************* //

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 chemistryProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
chemistry off;
// ************************************************************************* //

View File

@ -0,0 +1,29 @@
/*--------------------------------*- 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 combustionProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// OF5 -> OF6: noCombustion<> -> none (template parameters are no longer required)
//combustionModel noCombustion<rhoThermoCombustion>;
combustionModel none; // OF6
active false;
//noCombustionCoeffs
noneCoeffs
{
}
// ************************************************************************* //

View File

@ -0,0 +1,170 @@
/*--------------------------------*- 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
modelType "A"; // A or B or Bfull
couplingInterval 50;
voidFractionModel divided;
locateModel engine;
meshMotionModel noMeshMotion;
regionModel allRegion;
IOModel basicIO;
probeModel off;
dataExchangeModel twoWayMPI;
averagingModel dense;
clockModel off;
smoothingModel off;
forceModels
(
GidaspowDrag
gradPForce
viscForce
);
energyModels
(
heatTransferGunn
reactionHeat
);
thermCondModel SyamlalThermCond;
chemistryModels
(
species
diffusionCoefficients
massTransferCoeff
);
momCoupleModels
(
implicitCouple
);
turbulenceModelType "turbulenceProperties";
// sub-model properties
reactionHeatProps
{
reactionHeatName "reactionHeat";
verbose false;
}
heatTransferGunnProps
{
partTempName "Temp";
partHeatFluxName "convectiveHeatFlux";
calcPartTempField true;
partRefTemp 993;
implicit true;
interpolation false;
}
speciesProps
{
ChemistryFile "$FOAM_CASE/constant/foam.inp";
Nevery 1;
verbose false;
interpolation false;
}
diffusionCoefficientsProps
{
verbose false;
interpolation false;
ChemistryFile "$FOAM_CASE/constant/foam.inp";
diffusantGasNames ( CO
H2
);
}
massTransferCoeffProps
{
verbose false;
interpolation false;
}
reactantPerParticleProps
{
}
SyamlalThermCondProps
{
voidfractionFieldName "voidfraction";
}
implicitCoupleProps
{
velFieldName "U";
granVelFieldName "Us";
voidfractionFieldName "voidfraction";
}
gradPForceProps
{
pFieldName "p";
voidfractionFieldName "voidfraction";
velocityFieldName "U";
interpolation true;
}
viscForceProps
{
velocityFieldName "U";
interpolation true;
}
GidaspowDragProps
{
velFieldName "U";
granVelFieldName "Us";
voidfractionFieldName "voidfraction";
interpolation true;
phi 1;
}
engineProps
{
treeSearch true;
}
dividedProps
{
alphaMin 0.01;
scaleUpVol 1.0;
}
twoWayMPIProps
{
liggghtsPath "../DEM/in.liggghts_run";
}
// ************************************************************************* //

View File

@ -0,0 +1,113 @@
/*--------------------------------*- 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 foam.dat;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
H2
{
specie
{
nMoles 1;
molWeight 2.02;
}
thermodynamics
{
Cp 15016.8;
Hf 2.544e+06;
}
transport
{
mu 8.42e-05;
Pr 0.76;
}
}
H2O
{
specie
{
nMoles 1;
molWeight 18.015;
}
thermodynamics
{
Cp 2304.1;
Hf 2.544e+06;
}
transport
{
mu 1.7e-05;
Pr 0.99;
}
}
CO
{
specie
{
nMoles 1;
molWeight 28.01;
}
thermodynamics
{
Cp 1189.14;
Hf 2.544e+06;
}
transport
{
mu 1.66e-05;
Pr 0.792;
}
}
CO2
{
specie
{
nMoles 1;
molWeight 44.01;
}
thermodynamics
{
Cp 1239.98;
Hf 2.544e+06;
}
transport
{
mu 1.37e-05;
Pr 0.69;
}
}
N2
{
specie
{
nMoles 1;
molWeight 28.0134;
}
thermodynamics
{
Cp 1171.6;
Hf 2.544e+06;
}
transport
{
mu 1.66e-05;
Pr 0.69;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,14 @@
species
(
CO
CO2
H2
H2O
N2
);
reactions
{
}

View File

@ -0,0 +1,21 @@
/*--------------------------------*- 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 -9.81 0 );
// ************************************************************************* //

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 on;
writeName "post/restart/liggghts.restartCFDEM";
overwrite on;
}
// ************************************************************************* //

View File

@ -0,0 +1,37 @@
/*--------------------------------*- 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 thermophysicalProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
thermoType
{
type heRhoThermo; //hePsiThermo;
mixture reactingMixture; //species and reactions are listed in chemistry file
transport const;
thermo hConst;
equationOfState perfectGas;
energy sensibleInternalEnergy; //sensibleEnthalpy;
specie specie;
}
chemistryReader foamChemistryReader;
foamChemistryThermoFile "$FOAM_CASE/constant/foam.dat";
foamChemistryFile "$FOAM_CASE/constant/foam.inp";
inertSpecie N2;
// ************************************************************************* //

View File

@ -0,0 +1,26 @@
/*--------------------------------*- 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 nu [ 0 2 -1 0 0 0 0 ] 1.126e-05;
kf kf [ 1 1 -3 -1 0 0 0 ] 0.0507;
Cp Cp [ 0 2 -2 -1 0 0 0 ] 1118.15;
// ************************************************************************* //

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,222 @@
#time fr_OV_exp
25.542400975854434 33.404259854048114
43.9134519376903 32.73090058318456
58.980828853288585 33.495008419040325
71.44953412457562 31.833170199056617
89.9681437286763 30.351189568587728
107.88012335902476 32.19354119427408
123.71808429533303 28.734848596635345
141.0398293566277 33.811685660743024
159.74698611473104 31.29646662633398
174.60122276928178 33.22858309273078
199.31729534845908 31.117838692171368
223.23819079988243 33.36466495170735
244.86372959386972 31.52337902732623
256.57824624914065 33.994494423103106
278.07262180556063 32.87198304059339
286.9097449366891 34.44454828200753
320.692476312739 32.6485136745873
350.5403105617552 35.74904865664253
366.67338878259125 30.673113339793133
396.4228506034333 34.31272922825192
414.92506480283646 32.92059541551695
423.55724537526567 35.616245878605156
433.0091961824937 33.81955545499709
457.003870955049 35.6620710347304
463.4718581076095 33.55083477203011
475.30934029810123 35.348099034802544
500.2631462453701 31.9345757771012
524.0036922451372 35.16971703171036
539.7186876462256 32.384875567076065
563.6067922882576 34.8113954620799
585.4126805339001 31.9817945426256
590.6920008460029 36.384452565634916
618.7855267925497 32.43193037855351
639.665074672871 34.678674661066005
669.7260491829347 36.61120101258021
707.0255948662716 32.209690667899615
715.6003915222636 35.219804993056556
736.3651715697124 38.095476999706534
761.3517683263735 34.50226010653735
773.181052814517 36.34444777817674
803.12725949171 38.905901853828425
825.0315201655285 35.53722002797057
848.7884615699904 38.6825144648458
867.503816030443 36.1223720215698
888.522724850679 37.605418353343936
912.4682134091454 39.71747438627902
934.2904970594846 36.79802664909081
948.9233957506394 39.943075154895595
961.351112510185 38.50585397924671
973.4181303664209 39.045262793744186
983.3455479098311 34.64301465585227
1004.1267233619765 37.42883984476832
1019.0055531235703 39.22618608456423
1046.599019226891 38.01399183836756
1073.6596346775932 39.72181916852345
1098.260939423898 38.240002492101524
1116.2057098636387 39.90266048232003
1137.9214233834546 37.56721706040232
1174.1634654638992 38.960826459559925
1198.7237816984662 37.70362682747281
1204.3228124021407 40.35427190467057
1227.9239974619913 44.3531111100181
1244.2128320274396 38.423631024696405
1256.017523408539 40.40058892293669
1280.0613843951814 41.97356404946822
1313.8441157712314 40.177529442048
1319.3283786420343 43.45710224338323
1344.2821845893031 40.043578985681904
1355.8327471976154 43.413162558798035
1374.4825200392834 41.21240738645774
1392.9355480245995 40.08981402692454
1404.7812279174386 41.842154880830016
1438.4000052465299 40.94458845074904
1456.3693687933146 42.47247621436665
1471.9450032544883 40.45133270047072
1501.9403961457683 42.743246322920626
1526.467921570942 41.66574032630136
1541.4615191654084 42.83415884195979
1563.144441875831 40.67840905550993
1571.8585994717405 42.92482542992851
1609.0023888104643 39.37685985372021
1623.5697058828355 42.88129563046071
1654.3274850924781 40.995332228283075
1653.8356229515985 43.69073676030084
1678.5271024237327 41.71476258634232
1684.1261331274072 44.36540766354008
1708.8012171948449 42.47928030731548
1729.7873352056886 44.14202027455746
1759.9876706556688 45.31084867533329
1769.6773548309875 42.2113793945833
1787.490962033161 44.59281192667321
1815.1090212435265 43.24584745387564
1829.6927337205925 46.66043641288221
1845.4159268240292 43.83067153938096
1866.385649430178 45.58325832435686
1888.0603744382515 43.472431946773966
1924.1466601740867 45.71958611440387
1948.985698288483 42.93499058084001
1976.1282907626655 44.19358382232629
2000 46.709950535064046
2027.7820132573243 44.46451788492722
2051.563547768832 47.47504209520157
2076.7304939771475 42.893510206959206
2097.2493429541564 47.116884479618065
2115.8827203911287 45.00597612501169
2130.5320144869793 48.061177813082566
2146.0748581387606 46.219727934654486
2167.0363830425613 48.017238128497354
2206.975588881948 45.81705679532142
2221.6740691918876 48.60271803019051
2249.456082449211 46.357285380053696
2288.3213892810127 50.042070608449876
2319.3824834775305 46.49394107819462
2330.908452978799 49.99829487791163
2355.6163278556287 47.932473886219185
2367.4866008555127 49.55004451352376
2410.4343634566103 47.52963879283915
2428.1987844446967 50.18061177813084
2462.088085951269 47.800572855440095
2476.8357524752973 50.316693637107406
2501.5272319474298 48.340719463148886
2525.3087664589375 51.35124367342323
2541.023761860026 48.566402208788936
2552.6317083847753 51.621521919836326
2574.2490494764124 49.825159404322164
2592.1364359997187 51.80228125660941
2622.9761922328407 49.46708376576215
2668.235706896072 51.44494341126071
2677.5728898704274 50.27718071179011
2710.7080027609863 52.030095404859935
2738.4162366971796 50.188973434525785
2762.337132148602 52.435799694061764
2784.052845668417 50.100356272144055
2805.5636166295317 48.88799807190042
2832.2143469628336 52.84199584540447
2850.823131292762 50.86585771739898
2878.2690387538187 50.46228483080763
2883.909057969232 52.888312863670585
2911.4041516443776 52.21519952387746
2933.0132950336683 50.463760417230276
2956.8358180569157 53.2496675831698
2972.4442433274808 51.048830433806025
2981.8060194088803 49.746297507734546
3014.7771782524796 52.397680378143626
3039.5342393433975 50.0623189332494
3048.1090359993914 53.07243325840635
3066.053806439131 54.735091248624855
3093.803028887063 52.669352233955884
3121.380099585688 51.54700480549313
3130.12704799099 53.61372754444386
3154.9414929983423 50.963902237480895
3172.714111688775 53.56995181390561
3182.2070510077447 51.54864434596273
3209.1283055185295 54.020169626857
3233.8607735024034 51.81957840856366
3245.640871776459 53.93130653340483
3264.2004698923 52.224708858601126
3285.1210062843593 54.24683609677881
3297.786456411998 51.506836063988
3321.617177137594 54.24781982106057
3349.390992692569 52.04731057979071
3385.526464642491 54.02492429421883
3397.216388190718 56.63080991659659
3421.8586814487635 54.92437619583984
3436.466987032876 58.20419492824553
3461.338815956663 55.239905759213826
3497.564462632413 56.72336197610535
3525.3054873779975 54.702546370303345
3546.267012281799 56.50005656414622
3568.031912015701 53.89507268902673
3591.715074099032 57.44467780570463
3601.2080134179987 55.423370337761746
3637.220519832702 58.07483518519431
3677.2990866120044 55.11095590128001
3716.4185222165934 57.40311545480034
3734.8223639878215 56.55006254846893
3749.4880534883696 59.51541741880587
3761.415710404687 60.81852418404171
3777.352043769174 56.82075067999942
3801.084392066593 60.100815343475546
3831.6126356104915 59.47270738957287
3849.557406050232 61.13536537979137
3877.4623848427773 58.216081596650106
3892.06249272454 61.54082373792275
3922.812074231836 59.69978374461208
3922.3775960073917 62.080724414561104
3940.8962056114933 60.59874378409221
3961.6445902542446 63.56426260847611
3983.270129048232 61.722976684094995
3998.132563405131 63.61016974162483
4013.839361103871 60.870251685857504
4028.5050506044163 63.83560655619445
4044.113475874982 61.63476940683067
4062.0992348264635 63.072810352714356
4099.251221867536 59.47992136763909
4119.925827189157 62.84975087182566
4141.452993554966 61.5475458538481
4162.512890886942 62.80597514128742
4187.171579549685 61.00969460279674
4220.2984947378945 62.80753270473353
4247.900158543564 61.550415049669894
4253.605759377761 63.61705581159714
4271.624309138636 64.87540312201298
4296.3895679319 62.49511826825179
4320.441626620891 64.02316998591637
4342.058967712529 62.226807470402214
4347.6579984162045 64.87745254759997
4366.176608020306 63.39547191713108
4374.964544937347 65.237577611747
4390.65494723139 62.587506373713595
4397.106538979256 60.56611692874723
4414.9529369908205 62.76785582536928
4433.422360380834 61.55541564810217
4432.709160276559 65.46375221952793
4457.392442046344 63.53270145443636
4478.288385331361 65.68959891921494
4499.749970078387 64.74678117217307
4536.057593777617 65.78100330039499
4539.7711529412545 62.09736575032751
4554.6827735122415 63.71501835465557
4569.487823952703 65.91667527425415

View File

@ -0,0 +1,70 @@
#!/usr/bin/octave --silent
%% clear workspace
clear all
close all
clc
dirfile = '../../DEM/post';
filepattern = '*.dat';
% time column in the data matrix
col_t = 1;
% read all data
listfile = dir(fullfile(dirfile,filepattern));
data = readData(dirfile,listfile);
nFiles = length(listfile);
dataexp = importdata('R1_experiment.dat', ' ');
% init figures
hFig(1) = figure;
cmap = colormap(jet(16));
linS = {'-';'--';'-.';':';'-';'--';'-.';':';'-';'--';'-.';':'};
markers = {'+';'o';'*';'x';'s';'d';'^';'v';'>';'<';'p';'h';'.'};
for ii=1:nFiles
fname = data(ii).name;
fbasename = strtrunc(fname,index(fname,".dat")-1);
stepsize = 2;
timesteps = data(ii).values(1:stepsize:end,col_t)*10;
nColumns = columns(data(ii).values);
figure(hFig(1));
clf reset;
hold on;
for jj=2:nColumns
xvalue = data(ii).values(1:stepsize:end,jj);
%if (strncmp(fbasename,"Aterm",5) || strncmp(fbasename,"Bterm",5))
% semilogy(timesteps,xvalue,'Color',cmap(jj,:),'LineStyle',linS{jj-1},'Marker',markers{jj-1},'MarkerSize',5);
%else
plot(timesteps,xvalue,'Color',cmap(jj,:),'LineStyle',linS{jj-1},'Marker',markers{jj-1},'MarkerSize',5);
%endif
end
if (strncmp(fbasename,"fr_OV",5))
timesteps = dataexp.data(1:stepsize:end,col_t);
xvalue = dataexp.data(1:stepsize:end,2)*0.01;
plot(timesteps-450,xvalue,'Color','red','LineStyle','none','Marker','.','MarkerSize',10);%,'MarkerFaceColor','auto');
endif
xlim ([0.0, 2000.0]);
ylim auto;
xlabel('time (s)');
ylabel(fbasename);
grid on;
headerline = substr(data(ii).header{1},7);
if (strncmp(fbasename,"fr_OV",5))
headerline = [headerline, " fr_exp_OV"];
endif
legend(strsplit(headerline, " "),'location','eastoutside');
print(hFig(1),fullfile(dirfile,['figure_',fbasename,'.eps']),'-color','-deps');
end

View File

@ -0,0 +1,27 @@
#!/usr/bin/octave --silent
function [ data ] = readData( dirfile,filelist )
%READLOGDATA Summary of this function goes here
% Detailed explanation goes here
% get from file name:
% fieldname after underscore (lower case)
% Number of case (Upper case or number)
%expr = '((?<=[_.])[a-z]*)|((?<=[_.][a-z]*)([A-Z0-9]*(\.[0-9]+)?(e\-[0-9]+)?))';
nFiles = length(filelist);
for ii=1:nFiles
% name
iName = filelist(ii).name;
disp(['Processing ',iName,' ...']);
% values
rdata = importdata(fullfile(dirfile,iName), ' ');
data(ii).name = iName;
data(ii).header = rdata.textdata;
data(ii).values = rdata.data;
end
end

View File

@ -0,0 +1,115 @@
/*--------------------------------*- 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/polyMesh";
object blockMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
meshGenApp blockMesh;
convertToMeters 1.0;
// 68 mm column diameter
// 150 mm column length
// Width of middle square section 17 mm
// 7 cells in the square section
// 3 cells from square section to perimeter
// 24 cells from top to bottom
vertices
(
// bottom
( 0.017 0.0 0.017) // Vertex fiveoclocksqb = 0
(-0.017 0.0 0.017) // Vertex sevenoclocksqb = 1
(-0.017 0.0 -0.017) // Vertex elevenoclocksqb = 2
( 0.017 0.0 -0.017) // Vertex oneoclocksqb = 3
( 0.0240416305819187 0.0 0.0240416305387665) // Vertex fiveoclockcb = 4
(-0.0240416305819187 0.0 0.0240416305387665) // Vertex sevenoclockcb = 5
(-0.0240416305819187 0.0 -0.0240416305387665) // Vertex elevenoclockcb = 6
( 0.0240416305819187 0.0 -0.0240416305387665) // Vertex oneoclockcb = 7
// top
( 0.017 0.150 0.017) // Vertex fiveoclocksqt = 8
(-0.017 0.150 0.017) // Vertex sevenoclocksqt = 9
(-0.017 0.150 -0.017) // Vertex elevenoclocksqt = 10
( 0.017 0.150 -0.017) // Vertex oneoclocksqt = 11
( 0.0240416305819187 0.150 0.0240416305387665) // Vertex fiveoclockct = 12
(-0.0240416305819187 0.150 0.0240416305387665) // Vertex sevenoclockct = 13
(-0.0240416305819187 0.150 -0.0240416305387665) // Vertex elevenoclockct = 14
( 0.0240416305819187 0.150 -0.0240416305387665) // Vertex oneoclockct = 15
);
blocks
(
// square block
hex ( 1 0 3 2 9 8 11 10) (7 7 24) simpleGrading (1 1 1)
// slice1
hex ( 5 4 0 1 13 12 8 9) (7 3 24) simpleGrading (1 1 1)
//slice2
hex ( 1 2 6 5 9 10 14 13) (7 3 24) simpleGrading (1 1 1)
// slice3
hex ( 2 3 7 6 10 11 15 14) (7 3 24) simpleGrading (1 1 1)
//slice4
hex ( 3 0 4 7 11 8 12 15) (7 3 24) simpleGrading (1 1 1)
);
// create the quarter circles
edges
(
arc 4 5 (0.0 0.0 0.034)
arc 5 6 (-0.034 0.0 0.0)
arc 6 7 (0.0 0.0 -0.034)
arc 7 4 (0.034 0.0 0.0)
arc 12 13 (0.0 0.150 0.034)
arc 13 14 (-0.034 0.150 0.0)
arc 14 15 (0.0 0.150 -0.034)
arc 15 12 (0.034 0.150 0.0)
);
patches
(
patch inlet
(
(0 3 2 1)
(0 4 7 3)
(4 0 1 5)
(1 2 6 5)
(3 7 6 2)
)
patch outlet
(
(8 11 10 9)
(8 12 15 11)
(12 8 9 13)
(9 10 14 13)
(11 15 14 10)
)
wall side-walls
(
(5 4 12 13)
(5 13 14 6)
(6 14 15 7)
(7 15 12 4)
)
);

View File

@ -0,0 +1,271 @@
/*--------------------------------*- 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 cfdemSolverRhoPimpleChem;
startFrom startTime;
startTime 0.0;
stopAt endTime;
endTime 200.0;
deltaT 0.00025;
writeControl runTime;
writeInterval 0.25;
purgeWrite 0;
writeFormat ascii;
writePrecision 6;
writeCompression off;
timeFormat general;
timePrecision 6;
runTimeModifiable true;
adjustTimeStep no;
maxCo 0.5;
maxDeltaT 0.1;
// ************************************************************************* //
libs
(
"libfieldFunctionObjects.so"
);
functions
{
moleFrac
{
type rhoReactionThermoMoleFractions;
}
probes
{
type probes;
functionObjectLibs ("libsampling.so");
// Name of the directory for probe data
name probes;
// Locations to be probed.
probeLocations
(
(0.03 0.025 0.0)
(0.03 0.050 0.0)
(0.03 0.075 0.0)
(0.03 0.090 0.0)
(0.03 0.120 0.0)
);
fields
(
rho
p
T
Cpv
N2
CO2
CO
H2
H2O
ModSpeciesMassField_N2
ModSpeciesMassField_CO2
ModSpeciesMassField_CO
ModSpeciesMassField_H2
ModSpeciesMassField_H2O
X_CO
X_CO2
X_H2
X_N2
X_H2O
);
writeControl timeStep;
writeInterval 10000;
}
fieldMinMax_T
{
type fieldMinMax;
libs ("libfieldFunctionObjects.so");
fields (T);
// Report the location of the field extrema
location yes;
// Type of extrema for rank > 0 primitives
mode magnitude; // magnitude | component
}
fieldMinMax_Cpv
{
type fieldMinMax;
libs ("libfieldFunctionObjects.so");
fields (Cpv);
// Report the location of the field extrema
location yes;
// Type of extrema for rank > 0 primitives
mode magnitude; // magnitude | component
}
fieldMinMax_partTemp
{
type fieldMinMax;
libs ("libfieldFunctionObjects.so");
fields (partTemp);
location yes;
mode magnitude;
}
globalMassFrac
{
//type volRegion; // OF4
type volFieldValue; // OF5,OF6
libs ("libfieldFunctionObjects.so");
writeControl timeStep;//outputTime;
writeInterval 1;
log true;
writeFields false;
regionType all;
name c0;
operation weightedVolAverage;
weightField rhoeps;
fields
(
H2
H2O
CO2
CO
N2
);
}
globalMass
{
//type volRegion; // OF4
type volFieldValue; // OF5,OF6
libs ("libfieldFunctionObjects.so");
writeControl timeStep;//outputTime;
writeInterval 1;
log true;
writeFields false;
regionType all;
name c1;
operation volIntegrate;
fields
(
rhoeps
rho
);
}
inflow_GasSpecies
{
//type surfaceRegion; // OF4
type surfaceFieldValue; // OF5,OF6
libs ("libfieldFunctionObjects.so");
writeControl timeStep;
writeInterval 100;
log true;
// Output field values as well
writeFields false;
regionType patch;
name inlet;
operation sum;//areaIntegrate;
fields
(
CO
CO2
H2
H2O
N2
);
}
inflow_phi
{
//type surfaceRegion; // OF4
type surfaceFieldValue; // OF5,OF6
libs ("libfieldFunctionObjects.so");
writeControl timeStep;
writeInterval 100;
log true;
// Output field values as well
writeFields false;
regionType patch;
name inlet;
operation sum;//areaIntegrate;
fields
(
phi
);
}
inflow_U
{
//type surfaceRegion; // OF4
type surfaceFieldValue; // OF5,OF6
libs ("libfieldFunctionObjects.so");
writeControl timeStep;
writeInterval 100;
log true;
// Output field values as well
writeFields false;
regionType patch;
name inlet;
operation sum;//areaIntegrate;
fields
(
U
);
}
outflow_GasSpecies
{
$inflow_GasSpecies;
name outlet;
}
outflow_phi
{
$inflow_phi;
name outlet;
}
outflow_U
{
$inflow_U;
name outlet;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,271 @@
/*--------------------------------*- 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 cfdemSolverRhoPimpleChem;
startFrom startTime;
startTime 0.0;
stopAt endTime;
endTime 0.2;
deltaT 0.00025;
writeControl runTime;
writeInterval 0.02;
purgeWrite 0;
writeFormat ascii;
writePrecision 6;
writeCompression off;
timeFormat general;
timePrecision 6;
runTimeModifiable true;
adjustTimeStep no;
maxCo 0.5;
maxDeltaT 0.1;
// ************************************************************************* //
libs
(
"libfieldFunctionObjects.so"
);
functions
{
moleFrac
{
type rhoReactionThermoMoleFractions;
}
probes
{
type probes;
functionObjectLibs ("libsampling.so");
// Name of the directory for probe data
name probes;
// Locations to be probed.
probeLocations
(
(0.03 0.025 0.0)
(0.03 0.050 0.0)
(0.03 0.075 0.0)
(0.03 0.090 0.0)
(0.03 0.120 0.0)
);
fields
(
rho
p
T
Cpv
N2
CO2
CO
H2
H2O
ModSpeciesMassField_N2
ModSpeciesMassField_CO2
ModSpeciesMassField_CO
ModSpeciesMassField_H2
ModSpeciesMassField_H2O
X_CO
X_CO2
X_H2
X_N2
X_H2O
);
writeControl timeStep;
writeInterval 50;
}
fieldMinMax_T
{
type fieldMinMax;
libs ("libfieldFunctionObjects.so");
fields (T);
// Report the location of the field extrema
location yes;
// Type of extrema for rank > 0 primitives
mode magnitude; // magnitude | component
}
fieldMinMax_Cpv
{
type fieldMinMax;
libs ("libfieldFunctionObjects.so");
fields (Cpv);
// Report the location of the field extrema
location yes;
// Type of extrema for rank > 0 primitives
mode magnitude; // magnitude | component
}
fieldMinMax_partTemp
{
type fieldMinMax;
libs ("libfieldFunctionObjects.so");
fields (partTemp);
location yes;
mode magnitude;
}
globalMassFrac
{
//type volRegion; // OF4
type volFieldValue; // OF5,OF6
libs ("libfieldFunctionObjects.so");
writeControl timeStep;//outputTime;
writeInterval 1;
log true;
writeFields false;
regionType all;
name c0;
operation weightedVolAverage;
weightField rhoeps;
fields
(
H2
H2O
CO2
CO
N2
);
}
globalMass
{
//type volRegion; // OF4
type volFieldValue; // OF5,OF6
libs ("libfieldFunctionObjects.so");
writeControl timeStep;//outputTime;
writeInterval 1;
log true;
writeFields false;
regionType all;
name c1;
operation volIntegrate;
fields
(
rhoeps
rho
);
}
inflow_GasSpecies
{
//type surfaceRegion; // OF4
type surfaceFieldValue; // OF5,OF6
libs ("libfieldFunctionObjects.so");
writeControl timeStep;
writeInterval 100;
log true;
// Output field values as well
writeFields false;
regionType patch;
name inlet;
operation sum;//areaIntegrate;
fields
(
CO
CO2
H2
H2O
N2
);
}
inflow_phi
{
//type surfaceRegion; // OF4
type surfaceFieldValue; // OF5,OF6
libs ("libfieldFunctionObjects.so");
writeControl timeStep;
writeInterval 100;
log true;
// Output field values as well
writeFields false;
regionType patch;
name inlet;
operation sum;//areaIntegrate;
fields
(
phi
);
}
inflow_U
{
//type surfaceRegion; // OF4
type surfaceFieldValue; // OF5,OF6
libs ("libfieldFunctionObjects.so");
writeControl timeStep;
writeInterval 100;
log true;
// Output field values as well
writeFields false;
regionType patch;
name inlet;
operation sum;//areaIntegrate;
fields
(
U
);
}
outflow_GasSpecies
{
$inflow_GasSpecies;
name outlet;
}
outflow_phi
{
$inflow_phi;
name outlet;
}
outflow_U
{
$inflow_U;
name outlet;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,33 @@
/*--------------------------------*- 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;
}
distributed no;
roots ( );
// ************************************************************************* //

View File

@ -0,0 +1,82 @@
/*--------------------------------*- 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;
grad(p) cellMDLimited leastSquares 0.5;
grad(U) cellMDLimited leastSquares 0.5;
grad(h) cellMDLimited leastSquares 0.5;
grad(e) cellMDLimited leastSquares 0.5;
}
divSchemes
{
default Gauss linear;
div(phi,U) Gauss limitedLinear 1;
div(phid,p) Gauss limitedLinear 1;
div(phi,K) Gauss limitedLinear 1;
div(phi,h) Gauss limitedLinear 1;
div(phi,k) Gauss limitedLinear 1;
div(phi,epsilon) Gauss limitedLinear 1;
div(U) Gauss limitedLinear 1;
div(phi,Yi_h) Gauss multivariateSelection
{
CO limitedLinear01 1;
H2 limitedLinear01 1;
N2 limitedLinear01 1;
H2O limitedLinear01 1;
CO2 limitedLinear01 1;
h limitedLinear 1;
e limitedLinear 1;
}
div((viscousTerm*dev2(grad(U).T()))) Gauss linear;
div((thermo:mu*dev(grad(U).T()))) Gauss linear;
div((nuEff*dev2(T(grad(U))))) Gauss linear;
div(phi,T) Gauss limitedLinear 1;
}
laplacianSchemes
{
default Gauss linear corrected;
}
interpolationSchemes
{
default linear;
interpolate(U) linear;
}
snGradSchemes
{
default corrected;
}
fluxRequired
{
default no;
p ;
}
// ************************************************************************* //

View File

@ -0,0 +1,117 @@
/*--------------------------------*- 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-6;
relTol 0.01;
}
pFinal
{
$p;
tolerance 1e-06;
relTol 0;
}
"(rho|G)"
{
solver PCG;
preconditioner DIC;
tolerance 1e-6;
relTol 0.01;
}
"(rho|G)Final"
{
$rho;
tolerance 1e-06;
relTol 0;
}
"(U|h|e|R|k|epsilon)"
{
solver smoothSolver;
smoother symGaussSeidel;
tolerance 1e-05;
relTol 0.1;
maxIter 100;
}
"(U|h|e|R|k|epsilon)Final"
{
$U;
tolerance 1e-05;
relTol 0;
}
"(Yi|CO|CO2|H2|H2O|N2)"
{
solver smoothSolver;
smoother symGaussSeidel;
tolerance 1e-06;
relTol 0.01;
maxIter 100;
}
"(Yi|CO|CO2|H2|H2O|N2)Final"
{
$Yi;
tolerance 1e-06;
relTol 0;
maxIter 100;
}
T
{
solver PBiCG;
preconditioner DILU;
tolerance 1e-8;
relTol 0;
}
}
PIMPLE
{
momentumPredictor yes;
nOuterCorrectors 5;
nCorrectors 2;
nNonOrthogonalCorrectors 0;
rhoMin rhoMin [ 1 -3 0 0 0 ] 0.4;
rhoMax rhoMax [ 1 -3 0 0 0 ] 2.0;
}
relaxationFactors
{
fields
{
T 0.5;
"(Yi|CO|CO2|H2|H2O|N2)" 0.6;
p 0.6;
}
equations
{
".*" 0.8;
"(h|e).*" 0.5;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,58 @@
/*--------------------------------*- 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 probesDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
fields
(
rho
p
T
Cpv
N2
CO2
CO
H2
H2O
ModSpeciesMassField_N2
ModSpeciesMassField_CO2
ModSpeciesMassField_CO
ModSpeciesMassField_H2
ModSpeciesMassField_H2O
X_CO
X_CO2
X_H2
X_N2
X_H2O
X_N2
);
writeControl timeStep;
writeInterval 10000;
// Locations to be probed.
probeLocations
(
(0.03 0.025 0.0)
(0.03 0.050 0.0)
(0.03 0.075 0.0)
(0.03 0.090 0.0)
(0.03 0.120 0.0)
);
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -0,0 +1,427 @@
################################################################################
# write data to files for post-processing
variable rad1cg equal 0.000063*${cg}
variable rad2cg equal 0.000125*${cg}
variable rad3cg equal 0.000245*${cg}
#inert particle radcg 0.000250*${cg}
variable rad4cg equal 0.000255*${cg}
variable d1condition atom (radius<v_rad1cg)
variable d2condition atom (radius>v_rad1cg)&&(radius<v_rad2cg)
variable d3condition atom (radius>v_rad2cg)&&(radius<v_rad3cg)
variable d4condition atom (radius>v_rad4cg)
group d1 variable d1condition
group d2 variable d2condition
group d3 variable d3condition
group d4 variable d4condition
variable Nevery equal 1000
variable Nrepeat equal 10
variable time equal time
################################################################################
# compute fractional reduction
# d1
compute fr_d1 d1 reduce ave f_fracRed[1] f_fracRed[2] f_fracRed[3]
fix fr_d1 d1 ave/time ${Nevery} ${Nrepeat} ${WI} c_fr_d1[1] c_fr_d1[2] c_fr_d1[3]
variable fr_d1_1 equal f_fr_d1[1]
variable fr_d1_2 equal f_fr_d1[2]
variable fr_d1_3 equal f_fr_d1[3]
variable fr_d1_OV equal 1/9*(f_fr_d1[3])+2/9*(f_fr_d1[2])+6/9*(f_fr_d1[1])
fix printfr1 all print ${WI} "${time} ${fr_d1_1} ${fr_d1_2} ${fr_d1_3} ${fr_d1_OV}" &
file ../DEM/post/fr_d1.dat title "#time fr_d1_1 fr_d1_2 fr_d1_3 fr_d1_overall" screen no
# d2
compute fr_d2 d2 reduce ave f_fracRed[1] f_fracRed[2] f_fracRed[3]
fix fr_d2 d2 ave/time ${Nevery} ${Nrepeat} ${WI} c_fr_d2[1] c_fr_d2[2] c_fr_d2[3]
variable fr_d2_1 equal f_fr_d2[1]
variable fr_d2_2 equal f_fr_d2[2]
variable fr_d2_3 equal f_fr_d2[3]
variable fr_d2_OV equal 1/9*(f_fr_d2[3])+2/9*(f_fr_d2[2])+6/9*(f_fr_d2[1])
fix printfr2 all print ${WI} "${time} ${fr_d2_1} ${fr_d2_2} ${fr_d2_3} ${fr_d2_OV}" &
file ../DEM/post/fr_d2.dat title "#time fr_d2_1 fr_d2_2 fr_d2_3 fr_d2_overall" screen no
# d3
compute fr_d3 d3 reduce ave f_fracRed[1] f_fracRed[2] f_fracRed[3]
fix fr_d3 d3 ave/time ${Nevery} ${Nrepeat} ${WI} c_fr_d3[1] c_fr_d3[2] c_fr_d3[3]
variable fr_d3_1 equal f_fr_d3[1]
variable fr_d3_2 equal f_fr_d3[2]
variable fr_d3_3 equal f_fr_d3[3]
variable fr_d3_OV equal 1/9*(f_fr_d3[3])+2/9*(f_fr_d3[2])+6/9*(f_fr_d3[1])
fix printfr3 all print ${WI} "${time} ${fr_d3_1} ${fr_d3_2} ${fr_d3_3} ${fr_d3_OV}" &
file ../DEM/post/fr_d3.dat title "#time fr_d3_1 fr_d3_2 fr_d3_3 fr_d3_overall" screen no
# d4
compute fr_d4 d4 reduce ave f_fracRed[1] f_fracRed[2] f_fracRed[3]
fix fr_d4 d4 ave/time ${Nevery} ${Nrepeat} ${WI} c_fr_d4[1] c_fr_d4[2] c_fr_d4[3]
variable fr_d4_1 equal f_fr_d4[1]
variable fr_d4_2 equal f_fr_d4[2]
variable fr_d4_3 equal f_fr_d4[3]
variable fr_d4_OV equal 1/9*(f_fr_d4[3])+2/9*(f_fr_d4[2])+6/9*(f_fr_d4[1])
fix printfr4 all print ${WI} "${time} ${fr_d4_1} ${fr_d4_2} ${fr_d4_3} ${fr_d4_OV}" &
file ../DEM/post/fr_d4.dat title "#time fr_d4_1 fr_d4_2 fr_d4_3 fr_d4_overall" screen no
# mass-based average of all diameters
variable fr_ave_OV equal 0.154*v_fr_d1_OV+0.332*v_fr_d2_OV+0.286*v_fr_d3_OV+0.228*v_fr_d4_OV
# overall fractional reduction of individual and average of all diameters
fix printfrOV all print ${WI} "${time} ${fr_d1_OV} ${fr_d2_OV} ${fr_d3_OV} ${fr_d4_OV} ${fr_ave_OV}" &
file ../DEM/post/fr_OV.dat title "#time fr_d1_OV fr_d2_OV fr_d3_OV fr_d4_OV fr_ave_OV" screen no
################################################################################
# reactant gas mass change
compute dma_CO ore reduce sum f_dmA_cfd5[1] f_dmA_cfd5[2] f_dmA_cfd5[3]
fix dmA_f_CO ore ave/time ${Nevery} ${Nrepeat} ${WI} c_dma_CO[1] c_dma_CO[2] c_dma_CO[3]
variable dmA_CO_1 equal f_dmA_f_CO[1]
variable dmA_CO_2 equal f_dmA_f_CO[2]
variable dmA_CO_3 equal f_dmA_f_CO[3]
compute dma_H2 ore reduce sum f_dmA_cfd6[1] f_dmA_cfd6[2] f_dmA_cfd6[3]
fix dmA_f_H2 ore ave/time ${Nevery} ${Nrepeat} ${WI} c_dma_H2[1] c_dma_H2[2] c_dma_H2[3]
variable dmA_H2_1 equal f_dmA_f_H2[1]
variable dmA_H2_2 equal f_dmA_f_H2[2]
variable dmA_H2_3 equal f_dmA_f_H2[3]
# write mass change to file
fix printdmA all print ${WI} "${time} ${dmA_CO_1} ${dmA_CO_2} ${dmA_CO_3} ${dmA_H2_1} ${dmA_H2_2} ${dmA_H2_3}" &
file ../DEM/post/dmA.dat title "#time dmA_CO_1 dmA_CO_2 dmA_CO_3 dmA_H2_1 dmA_H2_2 dmA_H2_3" screen no
################################################################################
# compute average resistance terms for d1
compute Aterm_CO_d1 d1 reduce ave f_Aterm_cfd5[1] f_Aterm_cfd5[2] f_Aterm_cfd5[3]
fix Aterm_CO_d1 d1 ave/time ${Nevery} ${Nrepeat} ${WI} c_Aterm_CO_d1[1] c_Aterm_CO_d1[2] c_Aterm_CO_d1[3]
variable a_CO_d1_1 equal f_Aterm_CO_d1[1]
variable a_CO_d1_2 equal f_Aterm_CO_d1[2]
variable a_CO_d1_3 equal f_Aterm_CO_d1[3]
compute Aterm_H2_d1 d1 reduce ave f_Aterm_cfd6[1] f_Aterm_cfd6[2] f_Aterm_cfd6[3]
fix Aterm_H2_d1 d1 ave/time ${Nevery} ${Nrepeat} ${WI} c_Aterm_H2_d1[1] c_Aterm_H2_d1[2] c_Aterm_H2_d1[3]
variable a_H2_d1_1 equal f_Aterm_H2_d1[1]
variable a_H2_d1_2 equal f_Aterm_H2_d1[2]
variable a_H2_d1_3 equal f_Aterm_H2_d1[3]
compute Bterm_CO_d1 d1 reduce ave f_Bterm_cfd5[1] f_Bterm_cfd5[2] f_Bterm_cfd5[3]
fix Bterm_CO_d1 d1 ave/time ${Nevery} ${Nrepeat} ${WI} c_Bterm_CO_d1[1] c_Bterm_CO_d1[2] c_Bterm_CO_d1[3]
variable b_CO_d1_1 equal f_Bterm_CO_d1[1]
variable b_CO_d1_2 equal f_Bterm_CO_d1[2]
variable b_CO_d1_3 equal f_Bterm_CO_d1[3]
compute Bterm_H2_d1 d1 reduce ave f_Bterm_cfd6[1] f_Bterm_cfd6[2] f_Bterm_cfd6[3]
fix Bterm_H2_d1 d1 ave/time ${Nevery} ${Nrepeat} ${WI} c_Bterm_H2_d1[1] c_Bterm_H2_d1[2] c_Bterm_H2_d1[3]
variable b_H2_d1_1 equal f_Bterm_H2_d1[1]
variable b_H2_d1_2 equal f_Bterm_H2_d1[2]
variable b_H2_d1_3 equal f_Bterm_H2_d1[3]
compute Massterm_CO_d1 d1 reduce ave f_Massterm_cfd5
fix Massterm_CO_d1 d1 ave/time ${Nevery} ${Nrepeat} ${WI} c_Massterm_CO_d1
variable mt_CO_d1 equal f_Massterm_CO_d1
compute Massterm_H2_d1 d1 reduce ave f_Massterm_cfd6
fix Massterm_H2_d1 d1 ave/time ${Nevery} ${Nrepeat} ${WI} c_Massterm_H2_d1
variable mt_H2_d1 equal f_Massterm_H2_d1
fix printAtermd1 all print ${WI} "${time} ${a_CO_d1_1} ${a_CO_d1_2} ${a_CO_d1_3} ${a_H2_d1_1} ${a_H2_d1_2} ${a_H2_d1_3}" &
file ../DEM/post/Aterm_d1.dat title "#time a_CO_d1_1 a_CO_d1_2 a_CO_d1_3 a_H2_d1_1 a_H2_d1_2 a_H2_d1_3" screen no
fix printBtermd1 all print ${WI} "${time} ${b_CO_d1_1} ${b_CO_d1_2} ${b_CO_d1_3} ${b_H2_d1_1} ${b_H2_d1_2} ${b_H2_d1_3}" &
file ../DEM/post/Bterm_d1.dat title "#time b_CO_d1_1 b_CO_d1_2 b_CO_d1_3 b_H2_d1_1 b_H2_d1_2 b_H2_d1_3" screen no
fix printMtermd1 all print ${WI} "${time} ${mt_CO_d1} ${mt_H2_d1}" &
file ../DEM/post/Mterm_d1.dat title "#time mt_CO_d1 mt_H2_d1" screen no
################################################################################
# compute average resistance terms for d2
compute Aterm_CO_d2 d2 reduce ave f_Aterm_cfd5[1] f_Aterm_cfd5[2] f_Aterm_cfd5[3]
fix Aterm_CO_d2 d2 ave/time ${Nevery} ${Nrepeat} ${WI} c_Aterm_CO_d2[1] c_Aterm_CO_d2[2] c_Aterm_CO_d2[3]
variable a_CO_d2_1 equal f_Aterm_CO_d2[1]
variable a_CO_d2_2 equal f_Aterm_CO_d2[2]
variable a_CO_d2_3 equal f_Aterm_CO_d2[3]
compute Aterm_H2_d2 d2 reduce ave f_Aterm_cfd6[1] f_Aterm_cfd6[2] f_Aterm_cfd6[3]
fix Aterm_H2_d2 d2 ave/time ${Nevery} ${Nrepeat} ${WI} c_Aterm_H2_d2[1] c_Aterm_H2_d2[2] c_Aterm_H2_d2[3]
variable a_H2_d2_1 equal f_Aterm_H2_d2[1]
variable a_H2_d2_2 equal f_Aterm_H2_d2[2]
variable a_H2_d2_3 equal f_Aterm_H2_d2[3]
compute Bterm_CO_d2 d2 reduce ave f_Bterm_cfd5[1] f_Bterm_cfd5[2] f_Bterm_cfd5[3]
fix Bterm_CO_d2 d2 ave/time ${Nevery} ${Nrepeat} ${WI} c_Bterm_CO_d2[1] c_Bterm_CO_d2[2] c_Bterm_CO_d2[3]
variable b_CO_d2_1 equal f_Bterm_CO_d2[1]
variable b_CO_d2_2 equal f_Bterm_CO_d2[2]
variable b_CO_d2_3 equal f_Bterm_CO_d2[3]
compute Bterm_H2_d2 d2 reduce ave f_Bterm_cfd6[1] f_Bterm_cfd6[2] f_Bterm_cfd6[3]
fix Bterm_H2_d2 d2 ave/time ${Nevery} ${Nrepeat} ${WI} c_Bterm_H2_d2[1] c_Bterm_H2_d2[2] c_Bterm_H2_d2[3]
variable b_H2_d2_1 equal f_Bterm_H2_d2[1]
variable b_H2_d2_2 equal f_Bterm_H2_d2[2]
variable b_H2_d2_3 equal f_Bterm_H2_d2[3]
compute Massterm_CO_d2 d2 reduce ave f_Massterm_cfd5
fix Massterm_CO_d2 d2 ave/time ${Nevery} ${Nrepeat} ${WI} c_Massterm_CO_d2
variable mt_CO_d2 equal f_Massterm_CO_d2
compute Massterm_H2_d2 d2 reduce ave f_Massterm_cfd6
fix Massterm_H2_d2 d2 ave/time ${Nevery} ${Nrepeat} ${WI} c_Massterm_H2_d2
variable mt_H2_d2 equal f_Massterm_H2_d2
fix printAtermd2 all print ${WI} "${time} ${a_CO_d2_1} ${a_CO_d2_2} ${a_CO_d2_3} ${a_H2_d2_1} ${a_H2_d2_2} ${a_H2_d2_3}" &
file ../DEM/post/Aterm_d2.dat title "#time a_CO_d2_1 a_CO_d2_2 a_CO_d2_3 a_H2_d2_1 a_H2_d2_2 a_H2_d2_3" screen no
fix printBtermd2 all print ${WI} "${time} ${b_CO_d2_1} ${b_CO_d2_2} ${b_CO_d2_3} ${b_H2_d2_1} ${b_H2_d2_2} ${b_H2_d2_3}" &
file ../DEM/post/Bterm_d2.dat title "#time b_CO_d2_1 b_CO_d2_2 b_CO_d2_3 b_H2_d2_1 b_H2_d2_2 b_H2_d2_3" screen no
fix printMtermd2 all print ${WI} "${time} ${mt_CO_d2} ${mt_H2_d2}" &
file ../DEM/post/Mterm_d2.dat title "#time mt_CO_d2 mt_H2_d2" screen no
################################################################################
# compute average resistance terms for d3
compute Aterm_CO_d3 d3 reduce ave f_Aterm_cfd5[1] f_Aterm_cfd5[2] f_Aterm_cfd5[3]
fix Aterm_CO_d3 d3 ave/time ${Nevery} ${Nrepeat} ${WI} c_Aterm_CO_d3[1] c_Aterm_CO_d3[2] c_Aterm_CO_d3[3]
variable a_CO_d3_1 equal f_Aterm_CO_d3[1]
variable a_CO_d3_2 equal f_Aterm_CO_d3[2]
variable a_CO_d3_3 equal f_Aterm_CO_d3[3]
compute Aterm_H2_d3 d3 reduce ave f_Aterm_cfd6[1] f_Aterm_cfd6[2] f_Aterm_cfd6[3]
fix Aterm_H2_d3 d3 ave/time ${Nevery} ${Nrepeat} ${WI} c_Aterm_H2_d3[1] c_Aterm_H2_d3[2] c_Aterm_H2_d3[3]
variable a_H2_d3_1 equal f_Aterm_H2_d3[1]
variable a_H2_d3_2 equal f_Aterm_H2_d3[2]
variable a_H2_d3_3 equal f_Aterm_H2_d3[3]
compute Bterm_CO_d3 d3 reduce ave f_Bterm_cfd5[1] f_Bterm_cfd5[2] f_Bterm_cfd5[3]
fix Bterm_CO_d3 d3 ave/time ${Nevery} ${Nrepeat} ${WI} c_Bterm_CO_d3[1] c_Bterm_CO_d3[2] c_Bterm_CO_d3[3]
variable b_CO_d3_1 equal f_Bterm_CO_d3[1]
variable b_CO_d3_2 equal f_Bterm_CO_d3[2]
variable b_CO_d3_3 equal f_Bterm_CO_d3[3]
compute Bterm_H2_d3 d3 reduce ave f_Bterm_cfd6[1] f_Bterm_cfd6[2] f_Bterm_cfd6[3]
fix Bterm_H2_d3 d3 ave/time ${Nevery} ${Nrepeat} ${WI} c_Bterm_H2_d3[1] c_Bterm_H2_d3[2] c_Bterm_H2_d3[3]
variable b_H2_d3_1 equal f_Bterm_H2_d3[1]
variable b_H2_d3_2 equal f_Bterm_H2_d3[2]
variable b_H2_d3_3 equal f_Bterm_H2_d3[3]
compute Massterm_CO_d3 d3 reduce ave f_Massterm_cfd5
fix Massterm_CO_d3 d3 ave/time ${Nevery} ${Nrepeat} ${WI} c_Massterm_CO_d3
variable mt_CO_d3 equal f_Massterm_CO_d3
compute Massterm_H2_d3 d3 reduce ave f_Massterm_cfd6
fix Massterm_H2_d3 d3 ave/time ${Nevery} ${Nrepeat} ${WI} c_Massterm_H2_d3
variable mt_H2_d3 equal f_Massterm_H2_d3
fix printAtermd3 all print ${WI} "${time} ${a_CO_d3_1} ${a_CO_d3_2} ${a_CO_d3_3} ${a_H2_d3_1} ${a_H2_d3_2} ${a_H2_d3_3}" &
file ../DEM/post/Aterm_d3.dat title "#time a_CO_d3_1 a_CO_d3_2 a_CO_d3_3 a_H2_d3_1 a_H2_d3_2 a_H2_d3_3" screen no
fix printBtermd3 all print ${WI} "${time} ${b_CO_d3_1} ${b_CO_d3_2} ${b_CO_d3_3} ${b_H2_d3_1} ${b_H2_d3_2} ${b_H2_d3_3}" &
file ../DEM/post/Bterm_d3.dat title "#time b_CO_d3_1 b_CO_d3_2 b_CO_d3_3 b_H2_d3_1 b_H2_d3_2 b_H2_d3_3" screen no
fix printMtermd3 all print ${WI} "${time} ${mt_CO_d3} ${mt_H2_d3}" &
file ../DEM/post/Mterm_d3.dat title "#time mt_CO_d3 mt_H2_d3" screen no
################################################################################
# compute average resistance terms for d4
compute Aterm_CO_d4 d4 reduce ave f_Aterm_cfd5[1] f_Aterm_cfd5[2] f_Aterm_cfd5[3]
fix Aterm_CO_d4 d4 ave/time ${Nevery} ${Nrepeat} ${WI} c_Aterm_CO_d4[1] c_Aterm_CO_d4[2] c_Aterm_CO_d4[3]
variable a_CO_d4_1 equal f_Aterm_CO_d4[1]
variable a_CO_d4_2 equal f_Aterm_CO_d4[2]
variable a_CO_d4_3 equal f_Aterm_CO_d4[3]
compute Aterm_H2_d4 d4 reduce ave f_Aterm_cfd6[1] f_Aterm_cfd6[2] f_Aterm_cfd6[3]
fix Aterm_H2_d4 d4 ave/time ${Nevery} ${Nrepeat} ${WI} c_Aterm_H2_d4[1] c_Aterm_H2_d4[2] c_Aterm_H2_d4[3]
variable a_H2_d4_1 equal f_Aterm_H2_d4[1]
variable a_H2_d4_2 equal f_Aterm_H2_d4[2]
variable a_H2_d4_3 equal f_Aterm_H2_d4[3]
compute Bterm_CO_d4 d4 reduce ave f_Bterm_cfd5[1] f_Bterm_cfd5[2] f_Bterm_cfd5[3]
fix Bterm_CO_d4 d4 ave/time ${Nevery} ${Nrepeat} ${WI} c_Bterm_CO_d4[1] c_Bterm_CO_d4[2] c_Bterm_CO_d4[3]
variable b_CO_d4_1 equal f_Bterm_CO_d4[1]
variable b_CO_d4_2 equal f_Bterm_CO_d4[2]
variable b_CO_d4_3 equal f_Bterm_CO_d4[3]
compute Bterm_H2_d4 d4 reduce ave f_Bterm_cfd6[1] f_Bterm_cfd6[2] f_Bterm_cfd6[3]
fix Bterm_H2_d4 d4 ave/time ${Nevery} ${Nrepeat} ${WI} c_Bterm_H2_d4[1] c_Bterm_H2_d4[2] c_Bterm_H2_d4[3]
variable b_H2_d4_1 equal f_Bterm_H2_d4[1]
variable b_H2_d4_2 equal f_Bterm_H2_d4[2]
variable b_H2_d4_3 equal f_Bterm_H2_d4[3]
compute Massterm_CO_d4 d4 reduce ave f_Massterm_cfd5
fix Massterm_CO_d4 d4 ave/time ${Nevery} ${Nrepeat} ${WI} c_Massterm_CO_d4
variable mt_CO_d4 equal f_Massterm_CO_d4
compute Massterm_H2_d4 d4 reduce ave f_Massterm_cfd6
fix Massterm_H2_d4 d4 ave/time ${Nevery} ${Nrepeat} ${WI} c_Massterm_H2_d4
variable mt_H2_d4 equal f_Massterm_H2_d4
fix printAtermd4 all print ${WI} "${time} ${a_CO_d4_1} ${a_CO_d4_2} ${a_CO_d4_3} ${a_H2_d4_1} ${a_H2_d4_2} ${a_H2_d4_3}" &
file ../DEM/post/Aterm_d4.dat title "#time a_CO_d4_1 a_CO_d4_2 a_CO_d4_3 a_H2_d4_1 a_H2_d4_2 a_H2_d4_3" screen no
fix printBtermd4 all print ${WI} "${time} ${b_CO_d4_1} ${b_CO_d4_2} ${b_CO_d4_3} ${b_H2_d4_1} ${b_H2_d4_2} ${b_H2_d4_3}" &
file ../DEM/post/Bterm_d4.dat title "#time b_CO_d4_1 b_CO_d4_2 b_CO_d4_3 b_H2_d4_1 b_H2_d4_2 b_H2_d4_3" screen no
fix printMtermd4 all print ${WI} "${time} ${mt_CO_d4} ${mt_H2_d4}" &
file ../DEM/post/Mterm_d4.dat title "#time mt_CO_d4 mt_H2_d4" screen no
################################################################################
# compute mass-based average resistance terms for all diameters
variable a_CO_ave_1 equal 0.154*v_a_CO_d1_1+0.332*v_a_CO_d2_1+0.286*v_a_CO_d3_1+0.228*v_a_CO_d4_1
variable a_CO_ave_2 equal 0.154*v_a_CO_d1_2+0.332*v_a_CO_d2_2+0.286*v_a_CO_d3_2+0.228*v_a_CO_d4_2
variable a_CO_ave_3 equal 0.154*v_a_CO_d1_3+0.332*v_a_CO_d2_3+0.286*v_a_CO_d3_3+0.228*v_a_CO_d4_3
variable a_H2_ave_1 equal 0.154*v_a_H2_d1_1+0.332*v_a_H2_d2_1+0.286*v_a_H2_d3_1+0.228*v_a_H2_d4_1
variable a_H2_ave_2 equal 0.154*v_a_H2_d1_2+0.332*v_a_H2_d2_2+0.286*v_a_H2_d3_2+0.228*v_a_H2_d4_2
variable a_H2_ave_3 equal 0.154*v_a_H2_d1_3+0.332*v_a_H2_d2_3+0.286*v_a_H2_d3_3+0.228*v_a_H2_d4_3
variable b_CO_ave_1 equal 0.154*v_b_CO_d1_1+0.332*v_b_CO_d2_1+0.286*v_b_CO_d3_1+0.228*v_b_CO_d4_1
variable b_CO_ave_2 equal 0.154*v_b_CO_d1_2+0.332*v_b_CO_d2_2+0.286*v_b_CO_d3_2+0.228*v_b_CO_d4_2
variable b_CO_ave_3 equal 0.154*v_b_CO_d1_3+0.332*v_b_CO_d2_3+0.286*v_b_CO_d3_3+0.228*v_b_CO_d4_3
variable b_H2_ave_1 equal 0.154*v_b_H2_d1_1+0.332*v_b_H2_d2_1+0.286*v_b_H2_d3_1+0.228*v_b_H2_d4_1
variable b_H2_ave_2 equal 0.154*v_b_H2_d1_2+0.332*v_b_H2_d2_2+0.286*v_b_H2_d3_2+0.228*v_b_H2_d4_2
variable b_H2_ave_3 equal 0.154*v_b_H2_d1_3+0.332*v_b_H2_d2_3+0.286*v_b_H2_d3_3+0.228*v_b_H2_d4_3
variable mt_CO_ave equal 0.154*v_mt_CO_d1+0.332*v_mt_CO_d2+0.286*v_mt_CO_d3+0.228*v_mt_CO_d4
variable mt_H2_ave equal 0.154*v_mt_H2_d1+0.332*v_mt_H2_d2+0.286*v_mt_H2_d3+0.228*v_mt_H2_d4
fix printAtermAve all print ${WI} "${time} ${a_CO_ave_1} ${a_CO_ave_2} ${a_CO_ave_3} ${a_H2_ave_1} ${a_H2_ave_2} ${a_H2_ave_3}" &
file ../DEM/post/AtermAve.dat title "#time a_CO_ave_1 a_CO_ave_2 a_CO_ave_3 a_H2_ave_1 a_H2_ave_2 a_H2_ave_3" screen no
fix printBtermAve all print ${WI} "${time} ${b_CO_ave_1} ${b_CO_ave_2} ${b_CO_ave_3} ${b_H2_ave_1} ${b_H2_ave_2} ${b_H2_ave_3}" &
file ../DEM/post/BtermAve.dat title "#time b_CO_ave_1 b_CO_ave_2 b_CO_ave_3 b_H2_ave_1 b_H2_ave_2 b_H2_ave_3" screen no
fix printMtermAve all print ${WI} "${time} ${mt_CO_ave} ${mt_H2_ave}" &
file ../DEM/post/MtermAve.dat title "#time mt_CO_ave mt_H2_ave" screen no
################################################################################
# compute layer masses
compute mass_layer ore reduce sum f_LayerMasses[1] f_LayerMasses[2] f_LayerMasses[3] f_LayerMasses[4]
fix massLayerPrintout ore ave/time ${Nevery} ${Nrepeat} ${WI} c_mass_layer[1] c_mass_layer[2] c_mass_layer[3] c_mass_layer[4]
variable mL1 equal f_massLayerPrintout[1]
variable mL2 equal f_massLayerPrintout[2]
variable mL3 equal f_massLayerPrintout[3]
variable mL4 equal f_massLayerPrintout[4]
compute dY_CO ore reduce sum f_dY_cfd5[1] f_dY_cfd5[2] f_dY_cfd5[3]
fix dY_CO_Output ore ave/time ${Nevery} ${Nrepeat} ${WI} c_dY_CO[1] c_dY_CO[2] c_dY_CO[3]
variable dY_CO_1 equal f_dY_CO_Output[1]
variable dY_CO_2 equal f_dY_CO_Output[2]
variable dY_CO_3 equal f_dY_CO_Output[3]
compute dY_H2 ore reduce sum f_dY_cfd6[1] f_dY_cfd6[2] f_dY_cfd6[3]
fix dY_H2_Output ore ave/time ${Nevery} ${Nrepeat} ${WI} c_dY_H2[1] c_dY_H2[2] c_dY_H2[3]
variable dY_H2_1 equal f_dY_H2_Output[1]
variable dY_H2_2 equal f_dY_H2_Output[2]
variable dY_H2_3 equal f_dY_H2_Output[3]
compute xA_CO ore reduce ave f_X_CO
fix molarFractionA_CO ore ave/time ${Nevery} ${Nrepeat} ${WI} c_xA_CO
variable xA_CO_1 equal f_molarFractionA_CO
compute xA_H2 ore reduce ave f_X_H2
fix molarFractionA_H2 ore ave/time ${Nevery} ${Nrepeat} ${WI} c_xA_H2
variable xA_H2_1 equal f_molarFractionA_H2
compute xC_CO2 ore reduce ave f_X_CO2
fix molarFractionC_CO2 ore ave/time ${Nevery} ${Nrepeat} ${WI} c_xC_CO2
variable xC_CO2_1 equal f_molarFractionC_CO2
compute xC_H2O ore reduce ave f_X_H2O
fix molarFractionC_H2O ore ave/time ${Nevery} ${Nrepeat} ${WI} c_xC_H2O
variable xC_H2O_1 equal f_molarFractionC_H2O
fix printMassLayer all print ${WI} "${time} ${mL1} ${mL2} ${mL3} ${mL4}" &
file ../DEM/post/MassLayers.dat title "#time mL_Fe mL_w mL_m mL_h"
fix printdmYLayer all print ${WI} "${time} ${dY_CO_1} ${dY_CO_2} ${dY_CO_3} ${dY_H2_1} ${dY_H2_2} ${dY_H2_3}" &
file ../DEM/post/dmY.dat title "#time dY_CO_1 dY_CO_2 dY_CO_3 dY_H2_1 dY_H2_2 dY_H2_3" screen no
fix molarFractions all print ${WI} "${time} ${xA_CO_1} ${xA_H2_1} ${xC_CO2_1} ${xC_H2O_1}" &
file ../DEM/post/molarFractions.dat title "#time x_CO x_H2 x_CO2 x_H2O" screen no
################################################################################
# compute effective diffusivity
compute effDiffBinary_red_CO ore reduce ave f_effDiffBinary_cfd5[1] f_effDiffBinary_cfd5[2] f_effDiffBinary_cfd5[3]
fix effDiffBinary1 ore ave/time ${Nevery} ${Nrepeat} ${WI} c_effDiffBinary_red_CO[1] c_effDiffBinary_red_CO[2] c_effDiffBinary_red_CO[3]
variable dij_CO_1 equal f_effDiffBinary1[1]
variable dij_CO_2 equal f_effDiffBinary1[2]
variable dij_CO_3 equal f_effDiffBinary1[3]
compute effDiffBinary_red_H2 ore reduce ave f_effDiffBinary_cfd6[1] f_effDiffBinary_cfd6[2] f_effDiffBinary_cfd6[3]
fix effDiffBinary2 ore ave/time ${Nevery} ${Nrepeat} ${WI} c_effDiffBinary_red_H2[1] c_effDiffBinary_red_H2[2] c_effDiffBinary_red_H2[3]
variable dij_H2_1 equal f_effDiffBinary2[1]
variable dij_H2_2 equal f_effDiffBinary2[2]
variable dij_H2_3 equal f_effDiffBinary2[3]
compute effDiffKnud_red_CO ore reduce ave f_effDiffKnud_cfd5[1] f_effDiffKnud_cfd5[2] f_effDiffKnud_cfd5[3]
fix effDiffKnud1 ore ave/time ${Nevery} ${Nrepeat} ${WI} c_effDiffKnud_red_CO[1] c_effDiffKnud_red_CO[2] c_effDiffKnud_red_CO[3]
variable dik_CO_1 equal f_effDiffKnud1[1]
variable dik_CO_2 equal f_effDiffKnud1[2]
variable dik_CO_3 equal f_effDiffKnud1[3]
compute effDiffKnud_red_H2 ore reduce ave f_effDiffKnud_cfd6[1] f_effDiffKnud_cfd6[2] f_effDiffKnud_cfd6[3]
fix effDiffKnud2 ore ave/time ${Nevery} ${Nrepeat} ${WI} c_effDiffKnud_red_H2[1] c_effDiffKnud_red_H2[2] c_effDiffKnud_red_H2[3]
variable dik_H2_1 equal f_effDiffKnud2[1]
variable dik_H2_2 equal f_effDiffKnud2[2]
variable dik_H2_3 equal f_effDiffKnud2[3]
fix printDiffTerms all print ${WI} "${time} ${dij_CO_1} ${dij_CO_2} ${dij_CO_3} ${dij_H2_1} ${dij_H2_2} ${dij_H2_3} ${dik_CO_1} ${dik_CO_2} ${dik_CO_3} ${dik_H2_1} ${dik_H2_2} ${dik_H2_3}" &
file ../DEM/post/DiffTerm.dat title "#time dij_CO_1 dij_CO_2 dij_CO_3 dij_H2_1 dij_H2_2 dij_H2_3 dik_CO_1 dik_CO_2 dik_CO_3 dik_H2_1 dik_H2_2 dik_H2_3" screen no
################################################################################
# compute relative layer radii
# d1
compute layerRad_d1 d1 reduce ave f_LayerRelRadii[1] f_LayerRelRadii[2] f_LayerRelRadii[3] f_LayerRelRadii[4]
fix layerRad_d1 d1 ave/time ${Nevery} ${Nrepeat} ${WI} c_layerRad_d1[1] c_layerRad_d1[2] c_layerRad_d1[3] c_layerRad_d1[4]
variable rr1_d1 equal f_layerRad_d1[1]
variable rr2_d1 equal f_layerRad_d1[2]
variable rr3_d1 equal f_layerRad_d1[3]
variable rr4_d1 equal f_layerRad_d1[4]
fix printRelRadiid1 all print ${WI} "${time} ${rr1_d1} ${rr2_d1} ${rr3_d1} ${rr4_d1}" &
file ../DEM/post/relRadii_d1.dat title "#time relRad_d1_1 relRad_d1_2 relRad_d1_3 relRad_d1_4" screen no
# d2
compute layerRad_d2 d2 reduce ave f_LayerRelRadii[1] f_LayerRelRadii[2] f_LayerRelRadii[3] f_LayerRelRadii[4]
fix layerRad_d2 d2 ave/time ${Nevery} ${Nrepeat} ${WI} c_layerRad_d2[1] c_layerRad_d2[2] c_layerRad_d2[3] c_layerRad_d2[4]
variable rr1_d2 equal f_layerRad_d2[1]
variable rr2_d2 equal f_layerRad_d2[2]
variable rr3_d2 equal f_layerRad_d2[3]
variable rr4_d2 equal f_layerRad_d2[4]
fix printRelRadiid2 all print ${WI} "${time} ${rr1_d2} ${rr2_d2} ${rr3_d2} ${rr4_d2}" &
file ../DEM/post/relRadii_d2.dat title "#time relRad_d2_1 relRad_d2_2 relRad_d2_3 relRad_d2_4" screen no
# d3
compute layerRad_d3 d3 reduce ave f_LayerRelRadii[1] f_LayerRelRadii[2] f_LayerRelRadii[3] f_LayerRelRadii[4]
fix layerRad_d3 d3 ave/time ${Nevery} ${Nrepeat} ${WI} c_layerRad_d3[1] c_layerRad_d3[2] c_layerRad_d3[3] c_layerRad_d3[4]
variable rr1_d3 equal f_layerRad_d3[1]
variable rr2_d3 equal f_layerRad_d3[2]
variable rr3_d3 equal f_layerRad_d3[3]
variable rr4_d3 equal f_layerRad_d3[4]
fix printRelRadiid3 all print ${WI} "${time} ${rr1_d3} ${rr2_d3} ${rr3_d3} ${rr4_d3}" &
file ../DEM/post/relRadii_d3.dat title "#time relRad_d3_1 relRad_d3_2 relRad_d3_3 relRad_d3_4" screen no
# d4
compute layerRad_d4 d4 reduce ave f_LayerRelRadii[1] f_LayerRelRadii[2] f_LayerRelRadii[3] f_LayerRelRadii[4]
fix layerRad_d4 d4 ave/time ${Nevery} ${Nrepeat} ${WI} c_layerRad_d4[1] c_layerRad_d4[2] c_layerRad_d4[3] c_layerRad_d4[4]
variable rr1_d4 equal f_layerRad_d4[1]
variable rr2_d4 equal f_layerRad_d4[2]
variable rr3_d4 equal f_layerRad_d4[3]
variable rr4_d4 equal f_layerRad_d4[4]
fix printRelRadiid4 all print ${WI} "${time} ${rr1_d4} ${rr2_d4} ${rr3_d4} ${rr4_d4}" &
file ../DEM/post/relRadii_d4.dat title "#time relRad_d4_1 relRad_d4_2 relRad_d4_3 relRad_d4_4" screen no
# mass-based averages of all diameters
variable rr1_ave equal 0.154*v_rr1_d1+0.332*v_rr1_d2+0.286*v_rr1_d3+0.228*v_rr1_d4
variable rr2_ave equal 0.154*v_rr2_d1+0.332*v_rr2_d2+0.286*v_rr2_d3+0.228*v_rr2_d4
variable rr3_ave equal 0.154*v_rr3_d1+0.332*v_rr3_d2+0.286*v_rr3_d3+0.228*v_rr3_d4
variable rr4_ave equal 0.154*v_rr4_d1+0.332*v_rr4_d2+0.286*v_rr4_d3+0.228*v_rr4_d4
fix printRelRadiiAve all print ${WI} "${time} ${rr1_ave} ${rr2_ave} ${rr3_ave} ${rr4_ave}" &
file ../DEM/post/relRadiiAve.dat title "#time relRad_1 relRad_2 relRad_3 relRad_4" screen no

View File

@ -0,0 +1,97 @@
################################################################################
# brief: chemistry in fluidized bed - particle insertion into domain #
# #
# Cf. M.E. Kinaci,T. Lichtenegger,S. Schneiderbauer, Chem. Eng. Sci. 227 (2020)#
# #
# authors: D. Queteschiner #
# date: Mar 2022 #
# copyright: 2022- JKU Linz #
################################################################################
variable cg equal 7.0
coarsegraining ${cg} model_check error
atom_style granular
atom_modify map array
communicate single vel yes
boundary f f f
newton off
units si
processors * 1 2
region reg block -0.034 0.034 0.000 0.15 -0.034 0.034
create_box 2 reg
neighbor 1e-4 bin
neigh_modify delay 0
# material properties for granular pair styles
fix m1 all property/global youngsModulus peratomtype 5.e6 5.e6
fix m2 all property/global poissonsRatio peratomtype 0.45 0.45
fix m3 all property/global coefficientRestitution peratomtypepair 2 0.3 0.3 0.3 0.3
fix m4 all property/global coefficientFriction peratomtypepair 2 0.5 0.5 0.5 0.5
# pair style
pair_style gran model hertz tangential history
pair_coeff * *
# timestep, gravity
timestep 1e-6
fix gravi all gravity 9.81 vector 0.0 -1.0 0.0
# walls
fix zwalls1 all wall/gran model hertz tangential history primitive type 1 yplane 0.000
fix zwalls2 all wall/gran model hertz tangential history primitive type 1 yplane 0.15
fix cylwalls all wall/gran model hertz tangential history primitive type 1 ycylinder 0.034 0. 0.
# region for particle insertion
region insreg1 cylinder y 0.0 0.0 0.034 0.00 0.15 units box
# particle templates and distributions
# iron-ore range
fix pts1 all particletemplate/sphere 51 atom_type 1 density constant 4300 radius constant 0.000060
fix pts2 all particletemplate/sphere 41 atom_type 1 density constant 4300 radius constant 0.000105
fix pts3 all particletemplate/sphere 31 atom_type 1 density constant 4300 radius constant 0.000188
fix pts4 all particletemplate/sphere 21 atom_type 1 density constant 4300 radius constant 0.000375
fix pdd1 all particledistribution/discrete 74671 4 pts1 0.154 pts2 0.332 pts3 0.286 pts4 0.228
# quartz particles
fix pts5 all particletemplate/sphere 61 atom_type 2 density constant 2630 radius constant 0.000250
fix pdd2 all particledistribution/discrete 1 1 pts5 1.0
fix ts_check all check/timestep/gran 10 0.1 0.1
# apply nve integration to all particles
fix integr all nve/sphere
# create groups
group ore type 1
group quartz type 2
# screen output
thermo_style custom step atoms ke
thermo 1000
thermo_modify lost ignore norm no
compute_modify thermo_temp dynamic yes
# insert quartz particles
fix ins2 all insert/pack seed 5331 distributiontemplate pdd2 &
maxattempt 1000 insert_every once overlapcheck yes all_in yes vel constant 0.0 0.0 0.0 &
region insreg1 mass_in_region 0.2
run 150000
# insert iron-ore particles
fix ins1 all insert/pack seed 5330 distributiontemplate pdd1 &
maxattempt 1000 insert_every once overlapcheck yes all_in yes vel constant 0.0 0.0 0.0 &
region insreg1 mass_in_region 0.365
dump dmp all custom 5000 post/dump.liggghts_init id type x y z vx vy vz fx fy fz radius mass
run 300000 upto
write_restart ../DEM/post/restart/liggghts.restart

View File

@ -0,0 +1,113 @@
################################################################################
# brief: chemistry in fluidized bed - reduce FeO to Fe at 993 K (720 °C) #
# #
# Cf. M.E. Kinaci,T. Lichtenegger,S. Schneiderbauer, Chem. Eng. Sci. 227 (2020)#
# Note that reaction rate is scaled x10 #
# #
# authors: D. Queteschiner #
# date: Mar 2022 #
# copyright: 2022- JKU Linz #
################################################################################
log ../DEM/log.liggghts
thermo_log ../DEM/post/thermo.txt
variable rate_scale equal 10.0
variable cg equal 7.0
coarsegraining ${cg} model_check error
atom_style granular
atom_modify map array
communicate single vel yes
boundary f f f
newton off
units si
processors 2 * 2
# read the restart file
read_restart ../DEM/post/restart/liggghts.restart
neighbor 1e-4 bin
neigh_modify delay 0
# material properties for granular pair styles
fix m1 all property/global youngsModulus peratomtype 5.e6 5.e6
fix m2 all property/global poissonsRatio peratomtype 0.45 0.45
fix m3 all property/global coefficientRestitution peratomtypepair 2 0.3 0.3 0.3 0.3
fix m4 all property/global coefficientFriction peratomtypepair 2 0.5 0.5 0.5 0.5
# pair style
pair_style gran model hertz tangential history
pair_coeff * *
# timestep, gravity
timestep 0.000005
fix gravi all gravity 9.81 vector 0.0 -1.0 0.0
# walls
fix zwalls1 all wall/gran model hertz tangential history primitive type 1 yplane 0.00
fix zwalls2 all wall/gran model hertz tangential history primitive type 1 yplane 0.15
fix cylwalls all wall/gran model hertz tangential history primitive type 1 ycylinder 0.034 0.0 0.0
# thermal properties
fix ftco all property/global thermalConductivity peratomtype 1.4 3.0 # [W/(K*m)]
fix ftca all property/global thermalCapacity peratomtype 1000 800 # [J/(kg*K)]
fix integr all nve/sphere
# re-create groups
group ore type 1
group quartz type 2
################################################################################
# cfd coupling
fix cfd all couple/cfd couple_every 50 mpi
fix cfd2 all couple/cfd/force
# transfer per-particle temperature and add convective heat flux
fix tconv all couple/cfd/convection T0 993
################################################################################
# invoke chemistry coupling
fix cfd3 ore couple/cfd/chemistry n_species 5 species_names H2 H2O CO CO2 N2 n_diff 2 diffusant_names CO H2
# activate for 3-layer unreacted core shrink model
fix cfd5 ore chem/shrink/core speciesA CO molMassA 0.02801 speciesC CO2 molMassC 0.04401 scale_reduction_rate ${rate_scale}
fix cfd6 ore chem/shrink/core speciesA H2 molMassA 0.00202 speciesC H2O molMassC 0.01801 scale_reduction_rate ${rate_scale}
# material properties for chemical reaction
fix k0_CO ore property/global k0_cfd5 vector 17 25 2700
fix Ea_CO ore property/global Ea_cfd5 vector 100000 73674 113859
fix k0_H2 ore property/global k0_cfd6 vector 17 23 160
fix Ea_H2 ore property/global Ea_cfd6 vector 85000 71162 92092
# particle parameters
fix porosity ore property/global porosity_ore vector 0.613 0.318 0.187 0.17
fix tortuosity ore property/global tortuosity_ore scalar 4
fix pore_diameter ore property/global pore_diameter_ore scalar 1.e-7
fix layerDensities ore property/global density_ore vector 7870. 5740. 5170. 5240.
# define initial relative layer radii
fix LayerRelRadii ore property/atom relRadii vector yes no no 1.0 0.999 0.002 0.001
################################################################################
# write data to files for post-processing
variable WI equal 100000
include ../DEM/in.liggghts_compute_output
################################################################################
# screen output
thermo_style custom step atoms ke
thermo 250
thermo_modify lost ignore norm no
compute_modify thermo_temp dynamic yes
dump dmp all custom ${WI} ../DEM/post/dump*.liggghts_run id type x y z vx vy vz &
fx fy fz radius mass f_fracRed[1] f_fracRed[2] f_fracRed[3]
run 1

View File

@ -0,0 +1,44 @@
#!/bin/bash
#------------------------------------------------------------------------------
# parCFDDEMrun script for R1_FB test case
# run R1_FB CFD-DEM
# Daniel Queteschiner - March 2022
#------------------------------------------------------------------------------
#- 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="R1_FluidizedBed"
logfileName="log_$headerText"
solverName="cfdemSolverRhoPimpleChem"
nrProcs="4"
machineFileName="none" # yourMachinefileName | none
debugMode="off" # on | off| strict
testHarnessPath="$CFDEM_TEST_HARNESS_PATH"
runOctave="true"
#------------------------------------------------------------------------------
#- call function to run a parallel CFD-DEM case
parCFDDEMrun $logpath $logfileName $casePath $headerText $solverName $nrProcs $machineFileName $debugMode
if [ $runOctave == "true" ]
then
#------------------------------#
# octave
#- change path
cd octave
#- run octave
octave plotData.m
fi

View File

@ -0,0 +1,29 @@
#!/bin/bash
#------------------------------------------------------------------------------
# parDEMrun script for R1_FB test case
# init R1_FB DEM
# Daniel Queteschiner - March 2022
#------------------------------------------------------------------------------
#- source CFDEM env vars
. ~/.bashrc
#- include functions
source $CFDEM_PROJECT_DIR/etc/functions.sh
echo "starting DEM run in parallel..."
#------------------------------------------------------------------------------
#- define variables
casePath="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")"
logpath="$casePath"
headerText="run_liggghts_init_DEM"
logfileName="log_$headerText"
solverName="in.liggghts_init"
nrProcs=4
machineFileName="none"
debugMode="off"
#------------------------------------------------------------------------------
#- call function to run DEM case
parDEMrun $logpath $logfileName $casePath $headerText $solverName $nrProcs $machineFileName $debugMode