Latest tutorial case, based on Diss. Hanel Experiments

- ISO 4695 Conditions
- CO + N2 inflow
- Checking single particle unreacted core model
This commit is contained in:
ekinaci
2017-11-08 16:27:52 +01:00
parent bb94f760c0
commit 6106fc8710
49 changed files with 2858 additions and 0 deletions

View File

@ -0,0 +1,35 @@
#!/bin/sh
#cd ${0%/*} || exit 1 # run from this directory
# Source tutorial run functions
. $WM_PROJECT_DIR/bin/tools/CleanFunctions
source $CFDEM_PROJECT_DIR/etc/functions.sh
#- define variables
casePath="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")"
cd $casePath/CFD
cleanCase
# rm $casePath/CFD/rmass*.dat
rm $casePath/CFD/*.dat
#rm $casePath/*.dat
rm $casePath/log*
#rm $casePath/run_error.log
#cp -R 0/Org/p 0/p
#cp -R 0/Org/U 0/U
#cp -R 0/Org/Us 0/Us
#cp -R 0/Org/phiIB 0/phiIB
#cp -R 0/Org/voidfraction 0/voidfraction
rm -R $casePath/DEM/post
mkdir $casePath/DEM/post
mkdir $casePath/DEM/post/restart
#cd $casePath/DEM/post/restart
#touch liggghts.restart
## if postproc is activated (in fix_chem_shrink)
#rm $casePath/changeOfCO2
#rm $casePath/changeOfO2
#rm $casePath/rhogas_
#rm $casePath/pmass_
# ----------------------------------------------------------------- end-of-file

View File

@ -0,0 +1,43 @@
#!/bin/bash
#===================================================================#
# allrun script for testcase as part of test routine
# run settlingTest
# Christoph Goniva - Sept. 2010
#===================================================================#
#- source CFDEM env vars
. ~/.bashrc
#- include functions
source $CFDEM_PROJECT_DIR/etc/functions.sh
#- define variables
casePath="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")"
export casePath
export casePath
# 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 DEM in new terminal
$casePath/parDEMrun.sh
fi
#echo "Run Simulation"
#cd $casePath/CFD
#decomposePar
#mpirun -np $nrProcs $solverName -parallel | tee -a $logfileName
#- run parallel CFD-DEM in new terminal
#gnome-terminal -e "bash $casePath/parCFDDEMrun.sh"
bash $casePath/parCFDDEMrun.sh

View File

@ -0,0 +1,51 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 2.3.0 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ 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.4;
boundaryField
{
top
{
type zeroGradient;
}
bottom
{
type zeroGradient;
}
side-walls
{
type zeroGradient;
}
inlet
{
type zeroGradient;
}
outlet
{
type zeroGradient;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,51 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 2.3.0 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ 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.0;
boundaryField
{
top
{
type zeroGradient;
}
bottom
{
type zeroGradient;
}
side-walls
{
type zeroGradient;
}
inlet
{
type zeroGradient;
}
outlet
{
type zeroGradient;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,51 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 2.3.0 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ 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.0;
boundaryField
{
top
{
type zeroGradient;
}
bottom
{
type zeroGradient;
}
side-walls
{
type zeroGradient;
}
inlet
{
type zeroGradient;
}
outlet
{
type zeroGradient;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,51 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "0";
object Ksl;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [1 -3 -1 0 0 0 0];
internalField uniform 0.0;
boundaryField
{
top
{
type zeroGradient;
}
bottom
{
type zeroGradient;
}
side-walls
{
type zeroGradient;
}
inlet
{
type zeroGradient;
}
outlet
{
type zeroGradient;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,51 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 2.3.0 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ 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.6;
boundaryField
{
top
{
type zeroGradient;
}
bottom
{
type zeroGradient;
}
side-walls
{
type zeroGradient;
}
inlet
{
type zeroGradient;
}
outlet
{
type zeroGradient;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,51 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 2.3.0 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "0";
object O2;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0.0;
boundaryField
{
top
{
type zeroGradient;
}
bottom
{
type zeroGradient;
}
side-walls
{
type zeroGradient;
}
inlet
{
type zeroGradient;
}
outlet
{
type zeroGradient;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,51 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 2.3.0 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "0";
object Qsource;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [1 -1 -3 0 0 0 0];
internalField uniform 0;
boundaryField
{
top
{
type zeroGradient;
}
bottom
{
type zeroGradient;
}
side-walls
{
type zeroGradient;
}
inlet
{
type zeroGradient;
}
outlet
{
type zeroGradient;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,51 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 2.3.0 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "0";
object T;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 1 0 0 0];
internalField uniform 1223.15; // 950 + 273.15
boundaryField
{
top
{
type zeroGradient;
}
bottom
{
type zeroGradient;
}
side-walls
{
type zeroGradient;
}
inlet
{
type zeroGradient;
}
outlet
{
type zeroGradient;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,55 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 2.3.0 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ 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.011 0 0);
boundaryField
{
top
{
type slip;
/* type fixedValue;
value uniform (0.0 0 0);*/
}
bottom
{
type slip;
/* type fixedValue;
value uniform (0.0 0 0);*/
}
side-walls
{
type slip;
/* type fixedValue;
value uniform (0.0 0 0); */
}
inlet
{
type fixedValue;
value uniform (0.011 0 0);
}
outlet
{
type zeroGradient;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,48 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volVectorField;
location "0";
object Us;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -1 0 0 0 0];
internalField uniform (0 0 0);
boundaryField
{
top
{
type zeroGradient;
}
bottom
{
type zeroGradient;
}
side-walls
{
type zeroGradient;
}
inlet
{
type zeroGradient;
}
outlet
{
type zeroGradient;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,47 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 2.3.0 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "0";
object alphat;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [1 -1 -1 0 0 0 0];
internalField uniform 0;
boundaryField
{
top
{
type zeroGradient;
}
bottom
{
type zeroGradient;
}
side-walls
{
type zeroGradient;
}
inlet
{
type zeroGradient;
}
outlet
{
type zeroGradient;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,53 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 2.3.0 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "0";
object epsilon;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -3 0 0 0 0];
internalField uniform 0.003;
boundaryField
{
top
{
type zeroGradient;
}
bottom
{
type zeroGradient;
}
side-walls
{
type zeroGradient;
}
inlet
{
type zeroGradient;
// If turbulence is present
/*
* type compressible::turbulentMixingLengthDissipationRateInlet;
* mixingLength 0.005;
* value uniform 200;
*/
}
outlet
{
type zeroGradient;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,47 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 2.3.0 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "0";
object k;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -2 0 0 0 0];
internalField uniform 0.001;
boundaryField
{
top
{
type zeroGradient;
}
bottom
{
type zeroGradient;
}
side-walls
{
type zeroGradient;
}
inlet
{
type zeroGradient;
}
outlet
{
type zeroGradient;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,48 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 2.3.0 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "0";
object mut;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [1 -1 -1 0 0 0 0];
internalField uniform 0;
boundaryField
{
top
{
type zeroGradient;
}
bottom
{
type zeroGradient;
}
side-walls
{
type zeroGradient;
}
inlet
{
type zeroGradient;
}
outlet
{
type zeroGradient;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,51 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "0";
object nut;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -1 0 0 0 0];
internalField uniform 0;
boundaryField
{
top
{
type zeroGradient;
}
bottom
{
type zeroGradient;
}
side-walls
{
type zeroGradient;
}
inlet
{
type zeroGradient;
}
outlet
{
type zeroGradient;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,49 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 2.3.0 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "0";
object p;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [1 -1 -2 0 0 0 0];
internalField uniform 101325;
boundaryField
{
top
{
type slip;
}
bottom
{
type slip;
}
side-walls
{
type slip;
}
inlet
{
type zeroGradient;
}
outlet
{
type fixedValue;
value uniform 101325;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,52 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 2.3.0 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "0";
object p;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [1 -1 -2 0 0 0 0];
internalField uniform 101325;
boundaryField
{
top
{
type slip;
}
bottom
{
type slip;
}
side-walls
{
type slip;
}
inlet
{
type zeroGradient;
}
outlet
{
type fixedValue;
value uniform 101325;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,50 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: http://www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
object rho;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [1 -3 0 0 0 0 0];
internalField uniform 1.14;
boundaryField
{
top
{
type zeroGradient;
}
bottom
{
type zeroGradient;
}
side-walls
{
type zeroGradient;
}
inlet
{
type zeroGradient;
}
outlet
{
type zeroGradient;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,50 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "0";
object voidfraction;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 1;
boundaryField
{
top
{
type zeroGradient;
}
bottom
{
type zeroGradient;
}
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 | Version: 2.3.0 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "constant";
object chemistryProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
chemistry off; //on;
chemistryType
{
chemistrySolver ode;
chemistryThermo rho;
}
initialChemicalTimeStep 1e-07;
EulerImplicitCoeffs
{
cTauChem 0.05;
equilibriumRateLimiter off;
}
odeCoeffs
{
solver seulex;
eps 0.05;
}
// ************************************************************************* //

View File

@ -0,0 +1,33 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 2.3.0 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "constant";
object combustionProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
combustionModel PaSR<rhoChemistryCombustion>;
active false; //true;
noCombustionCoeffs
{
}
PaSRCoeffs
{
Cmix 1.0;
turbulentReaction off;
}
// ************************************************************************* //

View File

@ -0,0 +1,339 @@
/*---------------------------------------------------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.4 |
| \\ / A nd | Web: http://www.openfoam.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "";
case "";
instance "";
local "";
class dictionary;
object couplingProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
//===========================================================================//
// sub-models & settings
//syncMode false;
//verbose;
modelType "A"; // A or B
couplingInterval 100;
voidFractionModel divided;//centre;//
locateModel engine;//turboEngineM2M;//
meshMotionModel noMeshMotion;
regionModel allRegion;
IOModel basicIO;
probeModel off;
dataExchangeModel twoWayMPI;//twoWayM2M;//twoWayFiles;//oneWayVTK;//
averagingModel dilute;//dense;////
clockModel off;//standardClock;//off;
smoothingModel off;// localPSizeDiffSmoothing;// constDiffSmoothing; //
forceModels
(
//GidaspowDrag
//BeetstraDrag
//DiFeliceDrag
gradPForce
viscForce
// KochHillDrag
//DEMbasedDrag
//RongDrag
//Archimedes
//volWeightedAverage
//totalMomentumExchange
//particleCellVolume
//fieldTimeAverage
//LaEuScalarTemp
);
energyModels
(
//energyModel
//heatTransferGunn
//reactionHeat
);
thermCondModel off;//SyamlalThermCond;//thermCondModel;
chemistryModels
(
species
diffusionCoefficients
massTransferCoeff
// off
);
momCoupleModels
(
implicitCouple
);
turbulenceModelType "turbulenceProperties";//"LESProperties";//
//===========================================================================//
// sub-model properties
reactionHeatProps
{
reactionHeatName "reactionHeat";
}
speciesProps
{
ChemistryFile "$casePath/CFD/constant/foam.inp";
Nevery 1;
verbose true;
}
diffusionCoefficientsProps
{
verbose false;
ChemistryFile "$casePath/CFD/constant/foam.inp";
diffusantGasNames ( CO
// H2
);
}
massTransferCoeffProps
{
verbose false;
}
SyamlalThermCondProps
{
voidfractionFieldName "voidfraction";
rhoFieldName "rho";
}
LaEuScalarTempProps
{
velFieldName "U";
tempFieldName "T";
voidfractionFieldName "voidfraction";
partTempName "Temp";
partHeatFluxName "convectiveHeatFlux";
lambda 0.0256;
Cp 1007;
}
localPSizeDiffSmoothingProps
{
lowerLimit 0.1;
upperLimit 1e10;
dSmoothingLength 1.5e-3;
Csmoothing 1.0;
}
constDiffSmoothingProps
{
lowerLimit 0.1;
upperLimit 1e10;
smoothingLength 1.5e-3;
}
implicitCoupleProps
{
velFieldName "U";
granVelFieldName "Us";
voidfractionFieldName "voidfraction";
}
ArchimedesProps
{
gravityFieldName "g";
}
gradPForceProps
{
pFieldName "p";
voidfractionFieldName "voidfraction";
velocityFieldName "U";
interpolation true;
}
viscForceProps
{
velocityFieldName "U";
interpolation true;
}
volWeightedAverageProps
{
scalarFieldNames
(
voidfraction
);
vectorFieldNames
(
);
upperThreshold 0.999;
lowerThreshold 0;
verbose true;
}
totalMomentumExchangeProps
{
implicitMomExFieldName "Ksl";
explicitMomExFieldName "none";
fluidVelFieldName "U";
granVelFieldName "Us";
}
GidaspowDragProps
{
verbose true;
velFieldName "U";
voidfractionFieldName "voidfraction";
interpolation true;
phi 1;
}
DEMbasedDragProps
{
velFieldName "U";
voidfractionFieldName "voidfraction";
}
DiFeliceDragProps
{
//verbose true;
velFieldName "U";
voidfractionFieldName "voidfraction";
granVelFieldName "Us";
interpolation true;
}
KochHillDragProps
{
verbose true;
velFieldName "U";
voidfractionFieldName "voidfraction";
interpolation true;
//forceSubModels
//(
// ImExCorr
//);
implForceDEM true;
//implForceDEMaccumulated true;
//explicitCorr true;
}
BeetstraDragProps
{
velFieldName "U";
gravityFieldName "g";
rhoParticle 2000.;
voidfractionFieldName "voidfraction";
interpolation ;
useFilteredDragModel ;
useParcelSizeDependentFilteredDrag ;
k 0.05;
aLimit 0.0;
// verbose true;
}
RongDragProps
{
verbose true;
velFieldName "U";
voidfractionFieldName "voidfraction";
interpolation true;
implForceDEM true;
implForceDEMaccumulated true;
granVelFieldName "Us";
}
virtualMassForceProps
{
velFieldName "U";
}
particleCellVolumeProps
{
upperThreshold 0.999;
lowerThreshold 0.;
verbose true;
}
fieldStoreProps
{
scalarFieldNames
(
);
vectorFieldNames
(
"U"
);
}
oneWayVTKProps
{
couplingFilename "vtk_out%4.4d.vtk";
maxNumberOfParticles 30000;
}
twoWayFilesProps
{
maxNumberOfParticles 10100;
}
centreProps
{
alphaMin 0.1;
}
engineProps
{
treeSearch true;
}
turboEngineM2MProps
{
turboEngineProps
{
treeSearch true;
}
}
dividedProps
{
alphaMin 0.01;
scaleUpVol 1.0;
}
twoWayMPIProps
{
liggghtsPath "../DEM/in.liggghts_run";
}
twoWayM2MProps
{
maxNumberOfParticles 10100;
liggghtsPath "../DEM/in.liggghts_run";
}
// ************************************************************************* //

View File

@ -0,0 +1,128 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 2.3.0 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "constant";
object foam.dat;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
H2
{
specie
{
nMoles 1;
molWeight 2.02;
}
thermodynamics
{
Tlow 200;
Thigh 1700;
Tcommon 1000;
highCpCoeffs ( 2.932831E+00 8.265980E-04 -1.464006E-07 1.540985E-11 -6.887962E-16 -8.130558E+02 -1.024316E+00);
lowCpCoeffs ( 2.344303E+00 7.980425E-03 -1.947792E-05 2.015697E-08 -7.376029E-12 -9.179241E+02 6.830022E-01);
}
transport
{
As 1.67212e-06;
Ts 170.6;
}
}
CO2
{
specie
{
nMoles 1;
molWeight 44.01;
}
thermodynamics
{
Tlow 200;
Thigh 6000;
Tcommon 1000;
highCpCoeffs ( 4.636511E+00 2.741457E-03 -9.958976E-07 1.603867E-10 -9.161986E-15 -4.902490E+04 -1.934896E+00 );
lowCpCoeffs ( 2.356813E+00 8.984130E-03 -7.122063E-06 2.457301E-09 -1.428855E-13 -4.837197E+04 9.900904E+00 );
}
transport
{
As 1.67212e-06;
Ts 170.6;
}
}
O2
{
specie
{
nMoles 1;
molWeight 31.9988;
}
thermodynamics
{
Tlow 200;
Thigh 5000;
Tcommon 1000;
highCpCoeffs ( 3.28254 0.00148309 -7.57967e-07 2.09471e-10 -2.16718e-14 -1088.46 5.45323 );
lowCpCoeffs ( 3.78246 -0.00299673 9.8473e-06 -9.6813e-09 3.24373e-12 -1063.94 3.65768 );
}
transport
{
As 1.67212e-06;
Ts 170.672;
}
}
N2
{
specie
{
nMoles 1;
molWeight 28.0134;
}
thermodynamics
{
Tlow 200;
Thigh 6000;
Tcommon 1000;
highCpCoeffs ( 2.952541E+00 1.396884E-03 -4.926258E-07 7.860009E-11 -4.607498E-15 -9.239375E+02 5.871822E+00 );
lowCpCoeffs ( 3.530963E+00 -1.236595E-04 -5.029934E-07 2.435277E-09 -1.408795E-12 -1.046964E+03 2.967439E+00 );
}
transport
{
As 1.67212e-06;
Ts 170.672;
}
}
// added CO - Thermo data from combustion.berkeley.edu/gri-mech/data/species/thermo.dat
CO
{
specie
{
nMoles 1;
molWeight 28.01;
}
thermodynamics
{
Tlow 200;
Thigh 6000;
Tcommon 1000;
highCpCoeffs ( 3.048486E+00 1.351728E-03 -4.857941E-07 7.885364E-11 -4.698075E-15 -1.426612E+04 6.017098E+00 );
lowCpCoeffs ( 3.579534E+00 -6.103537E-04 1.016814E-06 9.070059E-10 -9.044245E-13 -1.434409E+04 3.508409E+00 );
}
transport
{
As 1.67212e-06;
Ts 170.672;
}
}
// ************************************************************************* //

View File

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

View File

@ -0,0 +1,22 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 2.3.0 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ 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 0 ); //value ( 0 -9.81 0 );
// ************************************************************************* //

View File

@ -0,0 +1,43 @@
/*---------------------------------------------------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.4 |
| \\ / A nd | Web: http://www.openfoam.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "";
case "";
instance "";
local "";
class dictionary;
object liggghtsCommands;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
liggghtsCommandModels
(
runLiggghts
writeLiggghts
);
// ************************************************************************* //
/*runLiggghtsProps
{
preNo false;
}*/
writeLiggghtsProps
{
writeLast off;
writeName "post/restart/liggghts.restartCFDEM";
overwrite on;
}

View File

@ -0,0 +1,91 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 2.3.0 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "constant/polyMesh";
object blockMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
convertToMeters 1.0;
vertices
(
(0 0 0)
(1.5 0 0)
(1.5 0.5 0)
(0 0.5 0)
(0 0 0.5)
(1.5 0 0.5)
(1.5 0.5 0.5)
(0 0.5 0.5)
);
blocks
(
hex (0 1 2 3 4 5 6 7)(29 9 9) simpleGrading (1 1 1)
);
edges
(
);
boundary
(
top
{
type wall;
faces
(
(3 7 6 2)
);
}
bottom
{
type wall;
faces
(
(1 5 4 0)
);
}
side-walls
{
type wall;
faces
(
(0 3 2 1)
(4 5 6 7)
);
}
inlet
{
type patch;
faces
(
(0 4 7 3)
);
}
outlet
{
type patch;
faces
(
(2 6 5 1)
);
}
);
mergePatchPairs
(
);
// ************************************************************************* //

View File

@ -0,0 +1,153 @@
// blockMesh : Block mesh description file
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 2.3.0 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "constant/polyMesh";
object blockMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
changecom(//)changequote([,])
define(calc, [esyscmd(perl -e 'printf ($1)')])
define(VCOUNT, 0)
define(vlabel, [[// ]Vertex $1 = VCOUNT define($1, VCOUNT)define([VCOUNT], incr(VCOUNT))])
meshGenApp blockMesh;
convertToMeters 1;
define(D, 0.075) //75 mm column diameter
define(L, 0.15) //150 mm length
define(PI, 3.14159265)
define(R, calc(D/2))
define(CW, calc(D/4)) //Width of middle square section
define(CX, calc(R*cos((PI/180)*45)))
define(CZ, calc(R*sin((PI/180)*45)))
define(NPS, 4) //how many cells in the square section
define(NPD, 2) //how many cells from square section to perimeter
define(NPY, 15) // how many cells from top to bottom
vertices
(
( CW 0.0 CW) vlabel(fiveoclocksqb)
(-CW 0.0 CW) vlabel(sevenoclocksqb)
(-CW 0.0 -CW) vlabel(elevenoclocksqb)
( CW 0.0 -CW) vlabel(oneoclocksqb)
( CX 0.0 CZ) vlabel(fiveoclockcb)
(-CX 0.0 CZ) vlabel(sevenoclockcb)
(-CX 0.0 -CZ) vlabel(elevenoclockcb)
( CX 0.0 -CZ) vlabel(oneoclockcb)
( CW L CW) vlabel(fiveoclocksqt)
(-CW L CW) vlabel(sevenoclocksqt)
(-CW L -CW) vlabel(elevenoclocksqt)
( CW L -CW) vlabel(oneoclocksqt)
( CX L CZ) vlabel(fiveoclockct)
(-CX L CZ) vlabel(sevenoclockct)
(-CX L -CZ) vlabel(elevenoclockct)
( CX L -CZ) vlabel(oneoclockct)
);
blocks
(
//square block
hex (
sevenoclocksqb fiveoclocksqb oneoclocksqb elevenoclocksqb
sevenoclocksqt fiveoclocksqt oneoclocksqt elevenoclocksqt
)
(NPS NPS NPY)
simpleGrading (1 1 1)
//slice1
hex (
sevenoclockcb fiveoclockcb fiveoclocksqb sevenoclocksqb
sevenoclockct fiveoclockct fiveoclocksqt sevenoclocksqt
)
(NPS NPD NPY)
simpleGrading (1 1 1)
//slice2
hex (
sevenoclocksqb elevenoclocksqb elevenoclockcb sevenoclockcb
sevenoclocksqt elevenoclocksqt elevenoclockct sevenoclockct
)
(NPS NPD NPY)
simpleGrading (1 1 1)
//slice3
hex (
elevenoclocksqb oneoclocksqb oneoclockcb elevenoclockcb
elevenoclocksqt oneoclocksqt oneoclockct elevenoclockct
)
(NPS NPD NPY)
simpleGrading (1 1 1)
//slice4
hex (
oneoclocksqb fiveoclocksqb fiveoclockcb oneoclockcb
oneoclocksqt fiveoclocksqt fiveoclockct oneoclockct
)
(NPS NPD NPY)
simpleGrading (1 1 1)
);
//create the quarter circles
edges
(
arc fiveoclockcb sevenoclockcb (0.0 0.0 R)
arc sevenoclockcb elevenoclockcb (-R 0.0 0.0)
arc elevenoclockcb oneoclockcb (0.0 0.0 -R)
arc oneoclockcb fiveoclockcb (R 0.0 0.0)
arc fiveoclockct sevenoclockct (0.0 L R)
arc sevenoclockct elevenoclockct (-R L 0.0)
arc elevenoclockct oneoclockct (0.0 L -R)
arc oneoclockct fiveoclockct (R L 0.0)
);
patches
(
patch inlet
(
(fiveoclocksqb oneoclocksqb elevenoclocksqb sevenoclocksqb)
(fiveoclocksqb fiveoclockcb oneoclockcb oneoclocksqb)
(fiveoclockcb fiveoclocksqb sevenoclocksqb sevenoclockcb)
(sevenoclocksqb elevenoclocksqb elevenoclockcb sevenoclockcb)
(oneoclocksqb oneoclockcb elevenoclockcb elevenoclocksqb)
)
patch outlet
(
(fiveoclocksqt oneoclocksqt elevenoclocksqt sevenoclocksqt)
(fiveoclocksqt fiveoclockct oneoclockct oneoclocksqt)
(fiveoclockct fiveoclocksqt sevenoclocksqt sevenoclockct)
(sevenoclocksqt elevenoclocksqt elevenoclockct sevenoclockct)
(oneoclocksqt oneoclockct elevenoclockct elevenoclocksqt)
)
wall wall
(
(sevenoclockcb fiveoclockcb fiveoclockct sevenoclockct)
(sevenoclockcb sevenoclockct elevenoclockct elevenoclockcb)
(elevenoclockcb elevenoclockct oneoclockct oneoclockcb)
(oneoclockcb oneoclockct fiveoclockct fiveoclockcb)
)
);

View File

@ -0,0 +1,66 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 2.3.0 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "constant";
object thermophysicalProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
thermoType
{
type heRhoThermo;
mixture reactingMixture; //species and reactions are listed in chemistry file
transport sutherland; //calcualtes viscosity as a function of temperature from Stuherland coefficient As and Ts
thermo janaf;
energy sensibleEnthalpy; //uses enthaly in the solution
equationOfState perfectGas;
specie specie;
}
chemistryReader foamChemistryReader;
foamChemistryThermoFile "$casePath/CFD/constant/foam.dat";
foamChemistryFile "$casePath/CFD/constant/foam.inp";
inertSpecie N2;
/*liquids
{
H2O
{
defaultCoeffs yes;
}
}
solids
{
C
{
defaultCoeffs no;
// if defaultCoeffs no properties should be :
CCoeffs
{
rho 2010;
Cp 710;
K 0.04;
Hf 0;
emissivity 1.0;
}
}
ash
{
defaultCoeffs yes;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,46 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "constant";
object transportProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
transportModel Newtonian;
nu nu [ 0 2 -1 0 0 0 0 ] 1.526e-05; // dnyamic viscosity of CO : 1.74*10^-5 [kg/ms] -- density: 1.14 kg/m3
// dynamic viscosity of O2 = 2,04-10^-5[kg/ms];
// density of O2 = 1.4290 [kg/m^3]
// kinematic viscosity of air (o2+n2) = 1.48e-05;
kf kf [ 1 1 -3 -1 0 0 0 ] 0; // comes from energy model
Cp Cp [ 0 2 -2 -1 0 0 0 ] 1; // comes from energy model
// ******* Non-Newtonian transport properties ************************ //
/*CrossPowerLawCoeffs
{
nu0 nu0 [ 0 2 -1 0 0 0 0 ] 1e-06;
nuInf nuInf [ 0 2 -1 0 0 0 0 ] 1e-06;
m m [ 0 0 1 0 0 0 0 ] 1;
n n [ 0 0 0 0 0 0 0 ] 1;
}
BirdCarreauCoeffs
{
nu0 nu0 [ 0 2 -1 0 0 0 0 ] 1e-06;
nuInf nuInf [ 0 2 -1 0 0 0 0 ] 1e-06;
k k [ 0 0 1 0 0 0 0 ] 0;
n n [ 0 0 0 0 0 0 0 ] 1;
}
*/
// ************************************************************************* //

View File

@ -0,0 +1,20 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 2.3.0 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "constant";
object turbulenceProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
simulationType laminar;
// ************************************************************************* //

View File

@ -0,0 +1,20 @@
#time mass rho rad_par
1.1 0.00314146148754458 4434.52257782641 0.00553008856620803
1.2 0.0031413655582138 4434.51030416149 0.00553003737766248
1.3 0.00314127148263205 4434.49848962506 0.00552998708483412
1.4 0.00314117913354401 4434.4870947921 0.0055299376295065
1.5 0.00314108839420696 4434.47608323953 0.00552988895837664
1.6 0.00314099915764216 4434.46542148978 0.00552984102264013
1.7 0.00314091132572977 4434.45507880652 0.00552979377754574
1.8 0.00314082480864407 4434.44502715674 0.00552974718208048
1.9 0.00314073952341904 4434.43524058473 0.00552970119838862
2 0.0031406553935865 4434.4256952189 0.00552965579155711
2.1 0.00314057234881788 4434.41636925708 0.0055296109294119
2.2 0.00314049032421382 4434.40724270219 0.00552956658221135
2.3 0.00314040925980223 4434.39829720651 0.00552952272241681
2.4 0.00314032910009694 4434.38951593387 0.00552947932449116
2.5 0.00314024979370314 4434.38088343456 0.00552943636471959
2.6 0.00314017129295916 4434.37238552989 0.00552939382104763
2.7 0.00314009355361422 4434.3640092063 0.00552935167293619
2.8 0.00314001653453879 4434.35574251851 0.00552930990123215
2.9 0.00313994019746296 4434.34757450182 0.00552926848805139

View File

@ -0,0 +1,116 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 2.3.0 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
application cfdemSolverRhoPimpleChem;
startFrom startTime;
startTime 0;
stopAt endTime;
endTime 7500.0;
deltaT 1e-2;
writeControl runTime;
writeInterval 1000; //500;
purgeWrite 0;
writeFormat ascii;
writePrecision 10;
writeCompression off;
timeFormat general;
timePrecision 6;
runTimeModifiable true;
adjustTimeStep no;
maxCo 0.5;
maxDeltaT 0.1;
// ************************************************************************* //
libs (
"libfieldFunctionObjects.so"
);
functions
{
moleFrac
{
type rhoReactionThermoMoleFractions;
}
probes1
{
type probes;
functionObjectLibs ("libsampling.so");
#include "probesDict";
}
globalMassFrac
{
type volRegion;
libs ("libfieldFunctionObjects.so");
writeControl timeStep;//outputTime;
writeInterval 1;
log true;
writeFields false;
regionType all;
name c0;
operation weightedVolAverage;
weightField rhoeps;
fields
(
// H2
CO2
CO
N2
);
}
globalMass
{
type volRegion;
libs ("libfieldFunctionObjects.so");
writeControl timeStep;//outputTime;
writeInterval 1;
log true;
writeFields false;
regionType all;
name c1;
operation volIntegrate;
fields
(
rhoeps
rho
);
}
}
// ************************************************************************* //

View File

@ -0,0 +1,46 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 2.3.0 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object decomposeParDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
numberOfSubdomains 4;
//method scotch;
method simple;
simpleCoeffs
{
n (2 2 1);
delta 0.001;
}
hierarchicalCoeffs
{
n ( 1 1 1 );
delta 0.001;
order xyz;
}
manualCoeffs
{
dataFile "";
}
distributed no;
roots ( );
// ************************************************************************* //

View File

@ -0,0 +1,68 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 2.3.0 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object fvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
ddtSchemes
{
default Euler;
}
gradSchemes
{
default Gauss linear;
}
divSchemes
{
default none;
div(phi,U) Gauss linear; //Gauss upwind;
div(phid,p) Gauss linear; //Gauss upwind;
div(phi,K) Gauss linear;
div(phi,h) Gauss upwind;
div(phi,k) Gauss upwind;
div(phi,epsilon) Gauss upwind;
div(U) Gauss linear;
div(phi,Yi_h) Gauss upwind;
// div((muEff*dev2(T(grad(U))))) Gauss linear;
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;
}
laplacianSchemes
{
default Gauss linear orthogonal;
}
interpolationSchemes
{
default linear;
}
snGradSchemes
{
default orthogonal;
}
fluxRequired
{
default no;
p ;
}
// ************************************************************************* //

View File

@ -0,0 +1,109 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 2.3.0 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solvers
{
"(rho|G)"
{
solver PCG;
preconditioner DIC;
tolerance 1e-05;
relTol 0.1;
}
"(rho|G)Final"
{
$rho;
tolerance 1e-05;
relTol 0;
}
p
{
solver GAMG;
tolerance 1e-06;
relTol 0.01;
smoother GaussSeidel;
nPreSweeps 0;
nPostSweeps 2;
nFinestSweeps 2;
cacheAgglomeration on;
nCellsInCoarsestLevel 10;
agglomerator faceAreaPair;
mergeLevels 1;
}
pFinal
{
$p;
tolerance 1e-06;
relTol 0;
}
"(U|h|R|k|epsilon)"
{
solver smoothSolver;
smoother symGaussSeidel;
tolerance 1e-05;
relTol 0.1;
}
"(U|h|R|k|epsilon)Final"
{
$U;
tolerance 1e-05;
relTol 0;
}
"(Yi|CO2|O2)"
{
$h;
}
"(Yi|CO2|O2)Final"
{
$Yi;
tolerance 1e-06;
relTol 0;
}
}
PIMPLE
{
momentumPredictor yes;
nOuterCorrectors 2;
nCorrectors 1;
nNonOrthogonalCorrectors 0;
rhoMin rhoMin [ 1 -3 0 0 0 ] 0.2;
rhoMax rhoMax [ 1 -3 0 0 0 ] 2.5;
}
/*
relaxationFactors
{
fields
{
".*" 1;
}
equations
{
".*" 1;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,47 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \ / O peration | Version: 2.1.x |
| \ / A nd | Web: www.OpenFOAM.org |
| \/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object probesDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
fields
(
rho
p
T
molC
O2
CO2
CO
ModSpeciesMassField_O2
ModSpeciesMassField_CO2
ModSpeciesMassField_CO
X_CO
X_CO2
);
writeControl timeStep;
writeInterval 10;
// Locations to be probed.
probeLocations
(
(7.0 2.5 2.5)
(8.0 2.5 2.5)
(1.0 2.5 2.5)
);
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -0,0 +1,58 @@
# Particle insertion into domain
atom_style granular
atom_modify map array
echo both
communicate single vel yes
boundary f f f
newton off
units si
processors 2 2 1
region reg block 0. 1.5 0. 0.5 0. 0.5 units box
create_box 1 reg
neighbor 0.0005 bin
neigh_modify delay 0
# Material properties required for granular pair styles
fix m1 all property/global youngsModulus peratomtype 5.e6
fix m2 all property/global poissonsRatio peratomtype 0.45
fix m3 all property/global coefficientRestitution peratomtypepair 1 0.3
fix m4 all property/global coefficientFriction peratomtypepair 1 0.5
# pair style
pair_style gran model hertz tangential history # Hertzian without cohesion
pair_coeff * *
# timestep, gravity
timestep 1e-4
fix gravi all gravity 0.0 vector 0.0 -1.0 0.0
# walls
fix xwalls1 all wall/gran model hertz tangential history primitive type 1 xplane 0.0
fix xwalls2 all wall/gran model hertz tangential history primitive type 1 xplane 1.5
fix ywalls1 all wall/gran model hertz tangential history primitive type 1 yplane 0.0
fix ywalls2 all wall/gran model hertz tangential history primitive type 1 yplane 0.5
fix zwalls1 all wall/gran model hertz tangential history primitive type 1 zplane 0.0
fix zwalls2 all wall/gran model hertz tangential history primitive type 1 zplane 0.5
# create single particle in a specific spot
create_atoms 1 single 0.75 0.25 0.25 units box
set atom 1 diameter 0.01106028 density 4300 vx 0 vy 0 vz 0
# screen output
compute rke all erotate/sphere
thermo_style custom step atoms ke c_rke vol
thermo 1000
thermo_modify lost ignore norm no
compute_modify thermo_temp dynamic yes
# insert the first particles so that dump is not empty
run 1
dump dmp all custom 100 post/dump.liggghts_init id type x y z ix iy iz vx vy vz fx fy fz omegax omegay omegaz radius
run 10000 upto
write_restart ../DEM/post/restart/liggghts.restart

View File

@ -0,0 +1,167 @@
# Pour granular particles into chute container, then induce flow
log ../DEM/log.liggghts
thermo_log ../DEM/post/thermo.txt
atom_style granular
atom_modify map array
communicate single vel yes
boundary f f f
newton off
units si
processors 2 2 1
# read the restart file
read_restart ../DEM/post/restart/liggghts.restart
neighbor 0.0005 bin
neigh_modify delay 0 binsize 0.01
# Material properties required for granular pair styles
fix m1 all property/global youngsModulus peratomtype 5.e6
fix m2 all property/global poissonsRatio peratomtype 0.45
fix m3 all property/global coefficientRestitution peratomtypepair 1 0.3
fix m4 all property/global coefficientFriction peratomtypepair 1 0.5
# pair style
pair_style gran model hertz tangential history # Hertzian without cohesion
pair_coeff * *
# timestep, gravity
timestep 1e-4
fix gravi all gravity 0.0 vector 0.0 -1.0 0.0
# walls
fix xwalls1 all wall/gran model hertz tangential history primitive type 1 xplane 0.0
fix xwalls2 all wall/gran model hertz tangential history primitive type 1 xplane 1.5
fix ywalls1 all wall/gran model hertz tangential history primitive type 1 yplane 0.0
fix ywalls2 all wall/gran model hertz tangential history primitive type 1 yplane 0.5
fix zwalls1 all wall/gran model hertz tangential history primitive type 1 zplane 0.0
fix zwalls2 all wall/gran model hertz tangential history primitive type 1 zplane 0.5
###############################################
# cfd coupling
fix cfd all couple/cfd couple_every 100 mpi
fix cfd2 all couple/cfd/force
# this should invoke chemistry
fix cfd3 all couple/cfd/chemistry n_species 3 species_names CO CO2 N2
# Activate for 3-layer unreacted core shrink model
fix cfd5 all chem/shrink/core speciesA CO molMassA 0.02801 speciesC CO2 molMassC 0.04401 screen yes nevery 1
# Chemical properties for unreacted shrink core (activate only when chem/shrink/core is active)
fix k0 all property/global k0_cfd5 vector 17 25 2700
# Activation energy values from Valipour: 69488 73674 113859
# Activation energy values from Nietrost: 74000 91000 137000
fix Ea all property/global Ea_cfd5 vector 69488 73674 113859
# particle porosity/tortuosity/pore diameter
fix porosity all property/atom porosity_ vector yes no no 0.65 0.31 0.16 0.15 #0.22
fix tortuosity all property/global tortuosity_ scalar 3 #1.7419
# totrtuosity values calculated from empirical correlation of tau(t) = 10^(-At*T+Bt)
# At h-m: 3.82*10^-3 / At m-w: 1.59*10^-3 / At w-fe: 1.24*10^-3
# Bt h-m: -5.352 / Bt m-w: -2.467 / Bt w-fe: -1.734
# fix tortuosity all property/atom tortuosity_ vector yes no no 1.64927 3.32806 4.7815
fix pore_diameter all property/global pore_diameter_ scalar 4e-6 # 4e-9 #5e-5
# Material properties for unreacted chemical shrink core (activate only when chem/shrink/core is active)
fix density all property/global density_all vector 7870 5740 5170 5240
fix molMass all property/global molMass_all vector 0.055845 0.071844 0.231532 0.1596882
# define layer radius
fix layerRelRad all property/atom relRadii vector yes no no 1.0 0.998 0.995 0.98
## debug fixes ##
# fix to compute fracRed
fix fracRed all property/atom fracRed vector yes no no 0. 0. 0.
fix Aterm all property/atom Aterm vector yes no no 0. 0. 0.
fix Bterm all property/atom Bterm vector yes no no 0. 0. 0.
fix Massterm all property/atom Massterm scalar yes no no 0.
fix effDiffBinary all property/atom effDiffBinary vector yes no no 0. 0. 0.
fix effDiffKnud all property/atom effDiffKnud vector yes no no 0. 0. 0.
# apply nve integration to all particles that are inserted as single particles
# fix integr all nve/sphere
###############################################
variable time equal step*dt
variable m1 equal mass[1]
variable rp equal radius[1]
variable rho1 equal mass[1]/((4/3)*PI*radius[1]*radius[1]*radius[1])
fix printmass all print 1000 "${time} ${m1} ${rho1} ${rp}" file mass_rho_rad.txt title "#time mass rho rad_par"
compute layerRad1 all reduce sum f_layerRelRad[1]
fix redRad1 all ave/time 1000 1 1000 c_layerRad1 file relRad1.dat
compute layerRad2 all reduce sum f_layerRelRad[2]
fix redRad2 all ave/time 1000 1 1000 c_layerRad2 file relRad2.dat
compute layerRad3 all reduce sum f_layerRelRad[3]
fix redRad3 all ave/time 1000 1 1000 c_layerRad3 file relRad3.dat
compute layerRad4 all reduce sum f_layerRelRad[4]
fix redRad4 all ave/time 1000 1 1000 c_layerRad4 file relRad4.dat
#### give information to file
compute Aterm_red all reduce sum f_Aterm[1] f_Aterm[2] f_Aterm[3]
fix Aterm1 all ave/time 10000 1 10000 c_Aterm_red[1] c_Aterm_red[2] c_Aterm_red[3]
variable a1 equal f_Aterm1[1]
variable a2 equal f_Aterm1[2]
variable a3 equal f_Aterm1[3]
compute Bterm_red all reduce sum f_Bterm[1] f_Bterm[2] f_Bterm[3]
fix Bterm1 all ave/time 10000 1 10000 c_Bterm_red[1] c_Bterm_red[2] c_Bterm_red[3]
variable b1 equal f_Bterm1[1]
variable b2 equal f_Bterm1[2]
variable b3 equal f_Bterm1[3]
compute Massterm_red all reduce sum f_Massterm
fix Massterm1 all ave/time 10000 1 10000 c_Massterm_red
variable mt1 equal f_Massterm1
compute fracRedTerm all reduce sum f_fracRed[1] f_fracRed[2] f_fracRed[3]
fix fracRed1 all ave/time 10000 1 10000 c_fracRedTerm[1] c_fracRedTerm[2] c_fracRedTerm[3]
variable fr1 equal f_fracRed1[1]
variable fr2 equal f_fracRed1[2]
variable fr3 equal f_fracRed1[3]
compute effDiffBinary_red all reduce sum f_effDiffBinary[1] f_effDiffBinary[2] f_effDiffBinary[3]
fix effDiffBinary1 all ave/time 1000 1 1000 c_effDiffBinary_red[1] c_effDiffBinary_red[2] c_effDiffBinary_red[3]
variable dij1 equal f_effDiffBinary1[1]
variable dij2 equal f_effDiffBinary1[2]
variable dij3 equal f_effDiffBinary1[3]
compute effDiffKnud_red all reduce sum f_effDiffKnud[1] f_effDiffKnud[2] f_effDiffKnud[3]
fix effDiffKnud1 all ave/time 10000 1 10000 c_effDiffKnud_red[1] c_effDiffKnud_red[2] c_effDiffKnud_red[3]
variable dik1 equal f_effDiffKnud1[1]
variable dik2 equal f_effDiffKnud1[2]
variable dik3 equal f_effDiffKnud1[3]
compute porosity_red all reduce sum f_porosity[1] f_porosity[2] f_porosity[3] f_porosity[4]
fix porosity1 all ave/time 10000 1 10000 c_porosity_red[1] c_porosity_red[2] c_porosity_red[3] c_porosity_red[4]
variable p1 equal f_porosity1[1]
variable p2 equal f_porosity1[2]
variable p3 equal f_porosity1[3]
variable p4 equal f_porosity1[4]
fix printOutput all print 10000 "${time} ${a1} ${a2} ${a3} ${b1} ${b2} ${b3} ${mt1} ${fr1} ${fr2} ${fr3}" file Output.dat title "#time a1 a2 a3 b1 b2 b3 mt1 fr1 fr2 fr3"
fix printDiffTerms all print 10000 "${time} ${dij1} ${dij2} ${dij3} ${dik1} ${dik2} ${dik3} ${p1} ${p2} ${p3} ${p4}" file DiffTerm.dat title "#time dij1 dij2 dij3 dik1 dik2 dik3 p_fe p_w p_m p_h"
###############################################
# screen output
compute rke all erotate/sphere
thermo_style custom step atoms ke c_rke vol
thermo 1000
thermo_modify lost ignore norm no
compute_modify thermo_temp dynamic yes
dump dmp all custom 10000 ../DEM/post/dump.liggghts_run id type x y z ix iy iz vx vy vz fx fy fz omegax omegay omegaz radius
run 1

View File

@ -0,0 +1,96 @@
#!/bin/bash
#===================================================================#
# allrun script for testcase as part of test routine
# run settlingTest CFD part
# Christoph Goniva - Feb. 2011
#===================================================================#
#- 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="test_case_Valipour_2009"
logfileName="log_$headerText"
solverName="cfdemSolverRhoPimpleChem"
nrProcs="4"
machineFileName="none" # yourMachinefileName | none
debugMode="off" # on | off| strict
testHarnessPath="$CFDEM_TEST_HARNESS_PATH"
runOctave="false"
postproc="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
#- rmove old graph
rm cfdemSolverPiso_ErgunTestMPI.eps
#- run octave
octave totalPressureDrop.m
#- show plot
evince cfdemSolverPiso_ErgunTestMPI.eps
#- copy log file to test harness
cp ../../$logfileName $testHarnessPath
cp cfdemSolverPiso_ErgunTestMPI.eps $testHarnessPath
fi
if [ $postproc == "true" ]
then
#- keep terminal open (if started in new terminal)
echo "simulation finished? ...press enter to proceed"
read
#- get VTK data from liggghts dump file
cd $casePath/DEM/post
python -i $CFDEM_LPP_DIR/lpp.py dump*.liggghts_run
#- get VTK data from CFD sim
cd $casePath/CFD
reconstructPar
foamToVTK #- serial run of foamToVTK
#source $CFDEM_SRC_DIR/lagrangian/cfdemParticle/etc/functions.sh #- include functions
#pseudoParallelRun "foamToVTK" $nrPostProcProcessors #- pseudo parallel run of foamToVTK
#- start paraview
paraview
#- keep terminal open (if started in new terminal)
echo "...press enter to clean up case"
echo "press Ctr+C to keep data"
read
fi
#- clean up case
#echo "deleting data at: $casePath :\n"
#source $WM_PROJECT_DIR/bin/tools/CleanFunctions
#cd $casePath/CFD
#cleanCase
#rm -r $casePath/CFD/clockData
#rm $casePath/DEM/post/*.*
#touch $casePath/DEM/post/.gitignore
#rm $casePath/DEM/post/restart/*.*
#rm $casePath/DEM/post/restart/liggghts.restartCFDEM*
#touch $casePath/DEM/post/restart/.gitignore
#echo "done"

View File

@ -0,0 +1,30 @@
#!/bin/bash
#===================================================================#
# DEMrun script for ErgunTestMPI testcase
# init ErgunTestMPI
# Christoph Goniva - July 2014
#===================================================================#
#- 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

View File

@ -0,0 +1,18 @@
#!/bin/bash
#grep "dmB\[0]" log_test_case > dmB0.dat
#grep "dmB\[1]" log_test_case > dmB1.dat
#grep "dmB\[2]" log_test_case > dmB2.dat
#grep "dmB\[3]" log_test_case > dmB3.dat
#grep -n "pre-layerMass[0]:" log_3layerUnreactedShrinkingCore > pre_particle_mass0.dat
#grep -n "pre-layerMass[1]:" log_3layerUnreactedShrinkingCore > pre_particle_mass1.dat
#grep -n "pre-layerMass[2]:" log_3layerUnreactedShrinkingCore > pre_particle_mass2.dat
#grep -n "pre-layerMass[3]:" log_3layerUnreactedShrinkingCore > pre_particle_mass3.dat
grep -n "post-layerMass[0]:" log_test_case > post_particle_mass0.dat
grep -n "post-layerMass[1]:" log_test_case > post_particle_mass1.dat
grep -n "post-layerMass[2]:" log_test_case > post_particle_mass2.dat
grep -n "post-layerMass[3]:" log_test_case > post_particle_mass3.dat
#grep -n "x0_eq :" log_3layerUnreactedShrinkingCore > x0_eq_values.dat
#grep -n "x0_:" log_3layerUnreactedShrinkingCore > x0_values.dat
#grep -n "dY_" log_3layerUnreactedShrinkingCore > delta_reduction_rate.dat
#grep -n "dmA_" log_3layerUnreactedShrinkingCore > layer_mass_transfer.dat

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

View File

@ -0,0 +1,19 @@
#!/bin/bash
#PBS -o fb.out
#PBS -V
#PBS -k oe
#PBS -j oe
#PBS -l nodes=1:ppn=4
#PBS -l walltime=24:00:00
#PBS -m ae
#PBS -M mustafa_efe.kinaci@jku.at
source ~/.bashrc
source /apps/openfoam-4.0/OpenFOAM-4.x-version-4.0/etc/bashrc
source $HOME/CFDEM/CFDEMcoupling/etc/bashrc
module add icc gcc
caseDir=$HOME/CFDEM/CFDEMcoupling/tutorials/cfdemSolverRhoPimpleChem/test_case
cd $caseDir
./Allrun.sh