mirror of
https://github.com/ParticulateFlow/CFDEMcoupling-PFM.git
synced 2025-12-08 06:37:44 +00:00
add Fe2O3->Fe3O4 reduction case
based on R3 case described by Spreitzer 2016 / Kinaci 2020, but with the reaction point shifted from 0.434 to 0.516 to avoid any Fe formation via CO reaction
This commit is contained in:
@ -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
|
||||||
34
tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R3_FB/Allrun.sh
Executable file
34
tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R3_FB/Allrun.sh
Executable file
@ -0,0 +1,34 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
# Allrun script for fluidized bed R3 chemistry test case
|
||||||
|
# run R3_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
|
||||||
41
tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R3_FB/CFD/0/CO
Executable file
41
tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R3_FB/CFD/0/CO
Executable 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.230; //0.301;
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
side-walls
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
|
||||||
|
inlet
|
||||||
|
{
|
||||||
|
type fixedValue;
|
||||||
|
value $internalField;
|
||||||
|
}
|
||||||
|
|
||||||
|
outlet
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
41
tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R3_FB/CFD/0/CO2
Executable file
41
tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R3_FB/CFD/0/CO2
Executable 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.493; //0.412;
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
side-walls
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
|
||||||
|
inlet
|
||||||
|
{
|
||||||
|
type fixedValue;
|
||||||
|
value $internalField;
|
||||||
|
}
|
||||||
|
|
||||||
|
outlet
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
41
tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R3_FB/CFD/0/H2
Executable file
41
tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R3_FB/CFD/0/H2
Executable 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.009;
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
side-walls
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
|
||||||
|
inlet
|
||||||
|
{
|
||||||
|
type fixedValue;
|
||||||
|
value $internalField;
|
||||||
|
}
|
||||||
|
|
||||||
|
outlet
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
41
tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R3_FB/CFD/0/H2O
Executable file
41
tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R3_FB/CFD/0/H2O
Executable 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.042; //0.044;
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
side-walls
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
|
||||||
|
inlet
|
||||||
|
{
|
||||||
|
type fixedValue;
|
||||||
|
value $internalField;
|
||||||
|
}
|
||||||
|
|
||||||
|
outlet
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
40
tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R3_FB/CFD/0/Ksl
Executable file
40
tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R3_FB/CFD/0/Ksl
Executable 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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
41
tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R3_FB/CFD/0/N2
Executable file
41
tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R3_FB/CFD/0/N2
Executable 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.226; //0.234;
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
side-walls
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
|
||||||
|
inlet
|
||||||
|
{
|
||||||
|
type fixedValue;
|
||||||
|
value $internalField;
|
||||||
|
}
|
||||||
|
|
||||||
|
outlet
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
41
tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R3_FB/CFD/0/T
Executable file
41
tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R3_FB/CFD/0/T
Executable 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 753.15;
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
side-walls
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
|
||||||
|
inlet
|
||||||
|
{
|
||||||
|
type fixedValue;
|
||||||
|
value $internalField;
|
||||||
|
}
|
||||||
|
|
||||||
|
outlet
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
41
tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R3_FB/CFD/0/U
Executable file
41
tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R3_FB/CFD/0/U
Executable 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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
40
tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R3_FB/CFD/0/Us
Executable file
40
tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R3_FB/CFD/0/Us
Executable 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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
41
tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R3_FB/CFD/0/p
Executable file
41
tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R3_FB/CFD/0/p
Executable 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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -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;
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -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
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -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 753;
|
||||||
|
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";
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,14 @@
|
|||||||
|
species
|
||||||
|
(
|
||||||
|
CO
|
||||||
|
CO2
|
||||||
|
H2
|
||||||
|
H2O
|
||||||
|
N2
|
||||||
|
);
|
||||||
|
|
||||||
|
reactions
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -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 );
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -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;
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -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;
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,20 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
========= |
|
||||||
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
|
\\ / O peration | Website: https://openfoam.org
|
||||||
|
\\ / A nd | Version: 6
|
||||||
|
\\/ M anipulation |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
location "constant";
|
||||||
|
object turbulenceProperties;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
simulationType laminar;
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,172 @@
|
|||||||
|
#time fr_OV_exp
|
||||||
|
11.730205278592393 0.5646359583952467
|
||||||
|
22.287390029325366 1.1589895988112922
|
||||||
|
32.844574780058565 1.9910846953937593
|
||||||
|
41.6422287390028 1.7236255572065389
|
||||||
|
46.92082111436946 0.029717682020802272
|
||||||
|
64.51612903225794 0.059435364041604544
|
||||||
|
69.79472140762459 0.8618127786032694
|
||||||
|
76.8328445747801 2.1099554234769684
|
||||||
|
85.63049853372434 1.0995542347696876
|
||||||
|
87.39002932551307 0.2971768202080227
|
||||||
|
94.42815249266857 0.8023774145616649
|
||||||
|
97.94721407624627 1.961367013372957
|
||||||
|
104.98533724340166 3.7741456166419027
|
||||||
|
115.54252199413486 3.1797919762258537
|
||||||
|
131.3782991202346 3.5066864784546823
|
||||||
|
145.4545454545455 3.922734026745914
|
||||||
|
164.8093841642227 4.160475482912336
|
||||||
|
168.32844574780063 3.4472511144130777
|
||||||
|
178.8856304985336 4.546805349182765
|
||||||
|
185.9237536656891 6.092124814264491
|
||||||
|
200 6.181277860326897
|
||||||
|
208.79765395894424 6.686478454680536
|
||||||
|
214.0762463343109 8.647845468053493
|
||||||
|
235.19061583577707 8.410104011887075
|
||||||
|
249.26686217008796 8.172362555720655
|
||||||
|
259.82404692082105 7.518573551263001
|
||||||
|
273.90029325513194 7.072808320950967
|
||||||
|
284.457478005865 6.6270430906389315
|
||||||
|
284.457478005865 7.845468053491828
|
||||||
|
289.73607038123157 10.371471025260032
|
||||||
|
300.29325513196477 9.598811292719168
|
||||||
|
312.6099706744867 9.301634472511145
|
||||||
|
321.40762463343094 8.945022288261518
|
||||||
|
326.6862170087975 9.598811292719168
|
||||||
|
328.44574780058656 11.441307578008916
|
||||||
|
337.2434017595308 10.401188707280832
|
||||||
|
351.3196480938416 9.390787518573552
|
||||||
|
354.8387096774193 11.322436849925708
|
||||||
|
365.39589442815236 9.836552748885588
|
||||||
|
368.91495601173006 11.381872213967311
|
||||||
|
379.47214076246337 9.361069836552751
|
||||||
|
391.7888563049853 11.322436849925708
|
||||||
|
400.58651026392954 9.569093610698367
|
||||||
|
402.3460410557184 10.698365527488857
|
||||||
|
414.6627565982403 9.777117384843983
|
||||||
|
423.46041055718456 11.2332838038633
|
||||||
|
426.97947214076225 13.997028231797922
|
||||||
|
444.57478005865096 11.589895988112929
|
||||||
|
453.3724340175952 12.332838038632989
|
||||||
|
462.17008797653966 11.85735512630015
|
||||||
|
470.9677419354839 12.362555720653791
|
||||||
|
472.7272727272725 13.343239227340268
|
||||||
|
479.76539589442814 12.838038632986628
|
||||||
|
493.8416422287389 12.421991084695394
|
||||||
|
500.8797653958943 11.827637444279349
|
||||||
|
509.67741935483855 11.411589895988113
|
||||||
|
520.2346041055719 10.193164933135217
|
||||||
|
530.791788856305 10.430906389301636
|
||||||
|
541.348973607038 10.936106983655275
|
||||||
|
560.7038123167154 11.203566121842497
|
||||||
|
578.2991202346041 11.679049034175335
|
||||||
|
590.615835777126 11.35215453194651
|
||||||
|
590.615835777126 12.213967310549778
|
||||||
|
602.9325513196479 13.135215453194652
|
||||||
|
606.4516129032256 12.154531946508174
|
||||||
|
617.0087976539587 11.768202080237742
|
||||||
|
622.2873900293255 10.936106983655275
|
||||||
|
629.3255131964809 11.679049034175335
|
||||||
|
639.882697947214 10.757800891530463
|
||||||
|
643.4017595307919 13.937592867756317
|
||||||
|
650.4398826979473 12.332838038632989
|
||||||
|
664.5161290322578 11.500742942050522
|
||||||
|
669.7947214076246 12.184249628528976
|
||||||
|
669.7947214076246 13.016344725111443
|
||||||
|
687.3900293255131 15.09658246656761
|
||||||
|
685.6304985337242 12.719167904903419
|
||||||
|
697.9472140762464 11.530460624071324
|
||||||
|
708.5043988269795 9.777117384843983
|
||||||
|
713.782991202346 11.381872213967311
|
||||||
|
717.3020527859237 13.640416047548293
|
||||||
|
726.099706744868 11.322436849925708
|
||||||
|
736.656891495601 12.303120356612185
|
||||||
|
738.4164222873899 10.460624071322437
|
||||||
|
748.973607038123 11.708766716196138
|
||||||
|
761.2903225806451 12.689450222882616
|
||||||
|
764.8093841642226 12.154531946508174
|
||||||
|
787.6832844574778 11.619613670133731
|
||||||
|
789.4428152492669 12.808320950965825
|
||||||
|
801.7595307917886 13.907875185735515
|
||||||
|
812.3167155425217 12.60029717682021
|
||||||
|
815.8357771260996 11.946508172362556
|
||||||
|
829.9120234604104 11.768202080237742
|
||||||
|
836.950146627566 11.35215453194651
|
||||||
|
842.2287390029323 12.808320950965825
|
||||||
|
849.2668621700877 10.96582466567608
|
||||||
|
859.824046920821 10.579494799405648
|
||||||
|
863.3431085043987 11.797919762258545
|
||||||
|
872.140762463343 11.263001485884102
|
||||||
|
882.6979472140763 12.511144130757803
|
||||||
|
887.9765395894426 11.530460624071324
|
||||||
|
895.014662756598 9.925705794947994
|
||||||
|
905.5718475073313 12.719167904903419
|
||||||
|
910.8504398826976 11.025260029717684
|
||||||
|
916.1290322580644 9.331352154531947
|
||||||
|
926.6862170087975 10.936106983655275
|
||||||
|
931.964809384164 9.153046062407133
|
||||||
|
940.7624633431083 10.460624071322437
|
||||||
|
951.3196480938416 9.628528974739972
|
||||||
|
953.0791788856304 10.846953937592868
|
||||||
|
958.3577712609967 9.034175334323924
|
||||||
|
968.91495601173 8.826151560178307
|
||||||
|
968.91495601173 10.549777117384844
|
||||||
|
979.4721407624631 12.124814264487371
|
||||||
|
990.0293255131965 10.10401188707281
|
||||||
|
997.0674486803518 10.787518573551264
|
||||||
|
1012.9032258064515 10.341753343239228
|
||||||
|
1019.9413489736071 11.97622585438336
|
||||||
|
1032.2580645161288 12.065378900445767
|
||||||
|
1041.055718475073 12.689450222882616
|
||||||
|
1051.6129032258063 11.916790490341754
|
||||||
|
1063.9296187683283 10.757800891530463
|
||||||
|
1065.6891495601174 12.511144130757803
|
||||||
|
1076.2463343108502 13.283803863298663
|
||||||
|
1083.2844574780058 11.47102526002972
|
||||||
|
1093.841642228739 12.511144130757803
|
||||||
|
1097.3607038123166 10.96582466567608
|
||||||
|
1106.1583577712609 12.24368499257058
|
||||||
|
1114.956011730205 10.817236255572068
|
||||||
|
1118.4750733137828 12.511144130757803
|
||||||
|
1129.032258064516 10.668647845468055
|
||||||
|
1134.3108504398824 12.332838038632989
|
||||||
|
1144.8680351906157 13.402674591381874
|
||||||
|
1151.9061583577711 11.173848439821695
|
||||||
|
1157.184750733138 12.154531946508174
|
||||||
|
1167.741935483871 11.797919762258545
|
||||||
|
1167.741935483871 12.630014858841012
|
||||||
|
1178.2991202346038 14.502228826151562
|
||||||
|
1185.3372434017595 12.540861812778605
|
||||||
|
1188.856304985337 10.312035661218426
|
||||||
|
1199.4134897360702 12.303120356612185
|
||||||
|
1208.2111436950145 11.619613670133731
|
||||||
|
1209.9706744868033 12.659732540861814
|
||||||
|
1220.5278592375366 14.264487369985144
|
||||||
|
1229.3255131964809 13.194650817236257
|
||||||
|
1238.123167155425 14.205052005943537
|
||||||
|
1241.6422287390026 10.72808320950966
|
||||||
|
1253.9589442815247 10.549777117384844
|
||||||
|
1262.756598240469 13.075780089153048
|
||||||
|
1264.5161290322578 12.154531946508174
|
||||||
|
1269.7947214076244 11.35215453194651
|
||||||
|
1283.8709677419354 12.481426448737
|
||||||
|
1283.8709677419354 10.936106983655275
|
||||||
|
1297.9472140762462 10.757800891530463
|
||||||
|
1296.1876832844575 12.005943536404162
|
||||||
|
1304.9853372434018 13.10549777117385
|
||||||
|
1313.782991202346 12.630014858841012
|
||||||
|
1322.5806451612902 12.124814264487371
|
||||||
|
1333.1378299120233 10.609212481426448
|
||||||
|
1345.454545454545 11.292719167904904
|
||||||
|
1356.0117302052786 12.332838038632989
|
||||||
|
1371.847507331378 11.887072808320951
|
||||||
|
1382.404692082111 11.35215453194651
|
||||||
|
1387.6832844574778 13.075780089153048
|
||||||
|
1399.9999999999995 11.381872213967311
|
||||||
|
1410.557184750733 11.73848439821694
|
||||||
|
1419.354838709677 10.87667161961367
|
||||||
|
1421.1143695014662 12.362555720653791
|
||||||
|
1429.9120234604102 13.194650817236257
|
||||||
|
1440.4692082111437 12.362555720653791
|
||||||
|
1452.7859237536654 11.084695393759288
|
||||||
|
1466.8621700879762 12.213967310549778
|
||||||
@ -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('R3_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-65,xvalue,'Color','red','LineStyle','none','Marker','.','MarkerSize',10);%,'MarkerFaceColor','auto');
|
||||||
|
endif
|
||||||
|
xlim ([0.0, 1000.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
|
||||||
|
|
||||||
|
|
||||||
@ -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
|
||||||
|
|
||||||
@ -0,0 +1,139 @@
|
|||||||
|
/*--------------------------------*- 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;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
convertToMeters 1.0;
|
||||||
|
|
||||||
|
// 68 mm column diameter
|
||||||
|
// 150 mm length
|
||||||
|
|
||||||
|
// Width of middle square section
|
||||||
|
|
||||||
|
// how many cells in the square section 7
|
||||||
|
// how many cells from square section to perimeter 3
|
||||||
|
// how many cells from top to bottom 24
|
||||||
|
|
||||||
|
vertices
|
||||||
|
(
|
||||||
|
( 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
|
||||||
|
|
||||||
|
( 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.000 0.0 0.034)
|
||||||
|
arc 5 6 (-0.034 0.0 0.000)
|
||||||
|
arc 6 7 ( 0.000 0.0 -0.034)
|
||||||
|
arc 7 4 ( 0.034 0.0 0.000)
|
||||||
|
|
||||||
|
arc 12 13 ( 0.000 0.150 0.034)
|
||||||
|
arc 13 14 (-0.034 0.150 0.000)
|
||||||
|
arc 14 15 ( 0.000 0.150 -0.034)
|
||||||
|
arc 15 12 ( 0.034 0.150 0.000)
|
||||||
|
);
|
||||||
|
|
||||||
|
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)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
@ -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 100.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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -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 ( );
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -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 ;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -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)
|
||||||
|
);
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
@ -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
|
||||||
|
|
||||||
|
|
||||||
@ -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
|
||||||
|
|
||||||
@ -0,0 +1,114 @@
|
|||||||
|
################################################################################
|
||||||
|
# brief: chemistry in fluidized bed - reduce Fe2O3 to Fe3O4 at 753K (480°C) #
|
||||||
|
# #
|
||||||
|
# Cf. M.E. Kinaci,T. Lichtenegger,S. Schneiderbauer, Chem. Eng. Sci. 227 (2020)#
|
||||||
|
# Note that the reaction rate is scaled x10 and the reaction point R3 has been #
|
||||||
|
# shifted from 0.434 to 0.516 (cf. mass fractions in CFD setup) #
|
||||||
|
# #
|
||||||
|
# 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 753
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# 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 3
|
||||||
|
fix pore_diameter ore property/global pore_diameter_ore scalar 1.e-6
|
||||||
|
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.998 0.997
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# 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
|
||||||
|
|
||||||
0
tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R3_FB/DEM/post/restart/.gitignore
vendored
Executable file
0
tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R3_FB/DEM/post/restart/.gitignore
vendored
Executable file
@ -0,0 +1,44 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
# parCFDDEMrun script for R3_FB test case
|
||||||
|
# run R3_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="R3_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
|
||||||
|
|
||||||
@ -0,0 +1,29 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
# parDEMrun script for R3_FB test case
|
||||||
|
# init R3_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
|
||||||
|
|
||||||
Reference in New Issue
Block a user