mirror of
https://github.com/ParticulateFlow/CFDEMcoupling-PFM.git
synced 2025-12-08 06:37:44 +00:00
add FeO->Fe reduction case
based on R1 case described by Spreitzer 2016 / Kinaci 2020
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/R1_FB/Allrun.sh
Executable file
34
tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/Allrun.sh
Executable file
@ -0,0 +1,34 @@
|
||||
#!/bin/bash
|
||||
#------------------------------------------------------------------------------
|
||||
# Allrun script for fluidized bed R1 chemistry test case
|
||||
# run R1_FB test case
|
||||
# Daniel Queteschiner - March 2022
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
#- source CFDEM env vars
|
||||
. ~/.bashrc
|
||||
|
||||
#- include functions
|
||||
source $CFDEM_PROJECT_DIR/etc/functions.sh
|
||||
|
||||
#- define variables
|
||||
casePath="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")"
|
||||
|
||||
#- check if mesh was built
|
||||
if [ -f "$casePath/CFD/constant/polyMesh/points" ]; then
|
||||
echo "mesh was built before - using old mesh"
|
||||
else
|
||||
echo "mesh needs to be built"
|
||||
cd $casePath/CFD
|
||||
blockMesh
|
||||
fi
|
||||
|
||||
if [ -f "$casePath/DEM/post/restart/liggghts.restart" ]; then
|
||||
echo "LIGGGHTS init was run before - using existing restart file"
|
||||
else
|
||||
#- run parallel DEM
|
||||
$casePath/parDEMrun.sh
|
||||
fi
|
||||
|
||||
#- run parallel CFD-DEM
|
||||
bash $casePath/parCFDDEMrun.sh
|
||||
41
tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/0/CO
Executable file
41
tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_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.392;
|
||||
|
||||
boundaryField
|
||||
{
|
||||
side-walls
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
|
||||
inlet
|
||||
{
|
||||
type fixedValue;
|
||||
value $internalField;
|
||||
}
|
||||
|
||||
outlet
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
||||
41
tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/0/CO2
Executable file
41
tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_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.233;
|
||||
|
||||
boundaryField
|
||||
{
|
||||
side-walls
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
|
||||
inlet
|
||||
{
|
||||
type fixedValue;
|
||||
value $internalField;
|
||||
}
|
||||
|
||||
outlet
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
||||
41
tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/0/H2
Executable file
41
tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_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.010;
|
||||
|
||||
boundaryField
|
||||
{
|
||||
side-walls
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
|
||||
inlet
|
||||
{
|
||||
type fixedValue;
|
||||
value $internalField;
|
||||
}
|
||||
|
||||
outlet
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
||||
41
tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/0/H2O
Executable file
41
tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_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.023;
|
||||
|
||||
boundaryField
|
||||
{
|
||||
side-walls
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
|
||||
inlet
|
||||
{
|
||||
type fixedValue;
|
||||
value $internalField;
|
||||
}
|
||||
|
||||
outlet
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
||||
40
tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/0/Ksl
Executable file
40
tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_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/R1_FB/CFD/0/N2
Executable file
41
tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_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.342;
|
||||
|
||||
boundaryField
|
||||
{
|
||||
side-walls
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
|
||||
inlet
|
||||
{
|
||||
type fixedValue;
|
||||
value $internalField;
|
||||
}
|
||||
|
||||
outlet
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
||||
41
tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/0/T
Executable file
41
tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_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 993.15;
|
||||
|
||||
boundaryField
|
||||
{
|
||||
side-walls
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
|
||||
inlet
|
||||
{
|
||||
type fixedValue;
|
||||
value $internalField;
|
||||
}
|
||||
|
||||
outlet
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
||||
41
tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/0/U
Executable file
41
tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_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/R1_FB/CFD/0/Us
Executable file
40
tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_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/R1_FB/CFD/0/p
Executable file
41
tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_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 993;
|
||||
implicit true;
|
||||
interpolation false;
|
||||
}
|
||||
|
||||
speciesProps
|
||||
{
|
||||
ChemistryFile "$FOAM_CASE/constant/foam.inp";
|
||||
Nevery 1;
|
||||
verbose false;
|
||||
interpolation false;
|
||||
}
|
||||
|
||||
diffusionCoefficientsProps
|
||||
{
|
||||
verbose false;
|
||||
interpolation false;
|
||||
ChemistryFile "$FOAM_CASE/constant/foam.inp";
|
||||
diffusantGasNames ( CO
|
||||
H2
|
||||
);
|
||||
}
|
||||
|
||||
massTransferCoeffProps
|
||||
{
|
||||
verbose false;
|
||||
interpolation false;
|
||||
}
|
||||
|
||||
reactantPerParticleProps
|
||||
{
|
||||
}
|
||||
|
||||
SyamlalThermCondProps
|
||||
{
|
||||
voidfractionFieldName "voidfraction";
|
||||
}
|
||||
|
||||
implicitCoupleProps
|
||||
{
|
||||
velFieldName "U";
|
||||
granVelFieldName "Us";
|
||||
voidfractionFieldName "voidfraction";
|
||||
}
|
||||
|
||||
gradPForceProps
|
||||
{
|
||||
pFieldName "p";
|
||||
voidfractionFieldName "voidfraction";
|
||||
velocityFieldName "U";
|
||||
interpolation true;
|
||||
}
|
||||
|
||||
viscForceProps
|
||||
{
|
||||
velocityFieldName "U";
|
||||
interpolation true;
|
||||
}
|
||||
|
||||
GidaspowDragProps
|
||||
{
|
||||
velFieldName "U";
|
||||
granVelFieldName "Us";
|
||||
voidfractionFieldName "voidfraction";
|
||||
interpolation true;
|
||||
phi 1;
|
||||
}
|
||||
|
||||
engineProps
|
||||
{
|
||||
treeSearch true;
|
||||
}
|
||||
|
||||
dividedProps
|
||||
{
|
||||
alphaMin 0.01;
|
||||
scaleUpVol 1.0;
|
||||
}
|
||||
|
||||
twoWayMPIProps
|
||||
{
|
||||
liggghtsPath "../DEM/in.liggghts_run";
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -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,222 @@
|
||||
#time fr_OV_exp
|
||||
25.542400975854434 33.404259854048114
|
||||
43.9134519376903 32.73090058318456
|
||||
58.980828853288585 33.495008419040325
|
||||
71.44953412457562 31.833170199056617
|
||||
89.9681437286763 30.351189568587728
|
||||
107.88012335902476 32.19354119427408
|
||||
123.71808429533303 28.734848596635345
|
||||
141.0398293566277 33.811685660743024
|
||||
159.74698611473104 31.29646662633398
|
||||
174.60122276928178 33.22858309273078
|
||||
199.31729534845908 31.117838692171368
|
||||
223.23819079988243 33.36466495170735
|
||||
244.86372959386972 31.52337902732623
|
||||
256.57824624914065 33.994494423103106
|
||||
278.07262180556063 32.87198304059339
|
||||
286.9097449366891 34.44454828200753
|
||||
320.692476312739 32.6485136745873
|
||||
350.5403105617552 35.74904865664253
|
||||
366.67338878259125 30.673113339793133
|
||||
396.4228506034333 34.31272922825192
|
||||
414.92506480283646 32.92059541551695
|
||||
423.55724537526567 35.616245878605156
|
||||
433.0091961824937 33.81955545499709
|
||||
457.003870955049 35.6620710347304
|
||||
463.4718581076095 33.55083477203011
|
||||
475.30934029810123 35.348099034802544
|
||||
500.2631462453701 31.9345757771012
|
||||
524.0036922451372 35.16971703171036
|
||||
539.7186876462256 32.384875567076065
|
||||
563.6067922882576 34.8113954620799
|
||||
585.4126805339001 31.9817945426256
|
||||
590.6920008460029 36.384452565634916
|
||||
618.7855267925497 32.43193037855351
|
||||
639.665074672871 34.678674661066005
|
||||
669.7260491829347 36.61120101258021
|
||||
707.0255948662716 32.209690667899615
|
||||
715.6003915222636 35.219804993056556
|
||||
736.3651715697124 38.095476999706534
|
||||
761.3517683263735 34.50226010653735
|
||||
773.181052814517 36.34444777817674
|
||||
803.12725949171 38.905901853828425
|
||||
825.0315201655285 35.53722002797057
|
||||
848.7884615699904 38.6825144648458
|
||||
867.503816030443 36.1223720215698
|
||||
888.522724850679 37.605418353343936
|
||||
912.4682134091454 39.71747438627902
|
||||
934.2904970594846 36.79802664909081
|
||||
948.9233957506394 39.943075154895595
|
||||
961.351112510185 38.50585397924671
|
||||
973.4181303664209 39.045262793744186
|
||||
983.3455479098311 34.64301465585227
|
||||
1004.1267233619765 37.42883984476832
|
||||
1019.0055531235703 39.22618608456423
|
||||
1046.599019226891 38.01399183836756
|
||||
1073.6596346775932 39.72181916852345
|
||||
1098.260939423898 38.240002492101524
|
||||
1116.2057098636387 39.90266048232003
|
||||
1137.9214233834546 37.56721706040232
|
||||
1174.1634654638992 38.960826459559925
|
||||
1198.7237816984662 37.70362682747281
|
||||
1204.3228124021407 40.35427190467057
|
||||
1227.9239974619913 44.3531111100181
|
||||
1244.2128320274396 38.423631024696405
|
||||
1256.017523408539 40.40058892293669
|
||||
1280.0613843951814 41.97356404946822
|
||||
1313.8441157712314 40.177529442048
|
||||
1319.3283786420343 43.45710224338323
|
||||
1344.2821845893031 40.043578985681904
|
||||
1355.8327471976154 43.413162558798035
|
||||
1374.4825200392834 41.21240738645774
|
||||
1392.9355480245995 40.08981402692454
|
||||
1404.7812279174386 41.842154880830016
|
||||
1438.4000052465299 40.94458845074904
|
||||
1456.3693687933146 42.47247621436665
|
||||
1471.9450032544883 40.45133270047072
|
||||
1501.9403961457683 42.743246322920626
|
||||
1526.467921570942 41.66574032630136
|
||||
1541.4615191654084 42.83415884195979
|
||||
1563.144441875831 40.67840905550993
|
||||
1571.8585994717405 42.92482542992851
|
||||
1609.0023888104643 39.37685985372021
|
||||
1623.5697058828355 42.88129563046071
|
||||
1654.3274850924781 40.995332228283075
|
||||
1653.8356229515985 43.69073676030084
|
||||
1678.5271024237327 41.71476258634232
|
||||
1684.1261331274072 44.36540766354008
|
||||
1708.8012171948449 42.47928030731548
|
||||
1729.7873352056886 44.14202027455746
|
||||
1759.9876706556688 45.31084867533329
|
||||
1769.6773548309875 42.2113793945833
|
||||
1787.490962033161 44.59281192667321
|
||||
1815.1090212435265 43.24584745387564
|
||||
1829.6927337205925 46.66043641288221
|
||||
1845.4159268240292 43.83067153938096
|
||||
1866.385649430178 45.58325832435686
|
||||
1888.0603744382515 43.472431946773966
|
||||
1924.1466601740867 45.71958611440387
|
||||
1948.985698288483 42.93499058084001
|
||||
1976.1282907626655 44.19358382232629
|
||||
2000 46.709950535064046
|
||||
2027.7820132573243 44.46451788492722
|
||||
2051.563547768832 47.47504209520157
|
||||
2076.7304939771475 42.893510206959206
|
||||
2097.2493429541564 47.116884479618065
|
||||
2115.8827203911287 45.00597612501169
|
||||
2130.5320144869793 48.061177813082566
|
||||
2146.0748581387606 46.219727934654486
|
||||
2167.0363830425613 48.017238128497354
|
||||
2206.975588881948 45.81705679532142
|
||||
2221.6740691918876 48.60271803019051
|
||||
2249.456082449211 46.357285380053696
|
||||
2288.3213892810127 50.042070608449876
|
||||
2319.3824834775305 46.49394107819462
|
||||
2330.908452978799 49.99829487791163
|
||||
2355.6163278556287 47.932473886219185
|
||||
2367.4866008555127 49.55004451352376
|
||||
2410.4343634566103 47.52963879283915
|
||||
2428.1987844446967 50.18061177813084
|
||||
2462.088085951269 47.800572855440095
|
||||
2476.8357524752973 50.316693637107406
|
||||
2501.5272319474298 48.340719463148886
|
||||
2525.3087664589375 51.35124367342323
|
||||
2541.023761860026 48.566402208788936
|
||||
2552.6317083847753 51.621521919836326
|
||||
2574.2490494764124 49.825159404322164
|
||||
2592.1364359997187 51.80228125660941
|
||||
2622.9761922328407 49.46708376576215
|
||||
2668.235706896072 51.44494341126071
|
||||
2677.5728898704274 50.27718071179011
|
||||
2710.7080027609863 52.030095404859935
|
||||
2738.4162366971796 50.188973434525785
|
||||
2762.337132148602 52.435799694061764
|
||||
2784.052845668417 50.100356272144055
|
||||
2805.5636166295317 48.88799807190042
|
||||
2832.2143469628336 52.84199584540447
|
||||
2850.823131292762 50.86585771739898
|
||||
2878.2690387538187 50.46228483080763
|
||||
2883.909057969232 52.888312863670585
|
||||
2911.4041516443776 52.21519952387746
|
||||
2933.0132950336683 50.463760417230276
|
||||
2956.8358180569157 53.2496675831698
|
||||
2972.4442433274808 51.048830433806025
|
||||
2981.8060194088803 49.746297507734546
|
||||
3014.7771782524796 52.397680378143626
|
||||
3039.5342393433975 50.0623189332494
|
||||
3048.1090359993914 53.07243325840635
|
||||
3066.053806439131 54.735091248624855
|
||||
3093.803028887063 52.669352233955884
|
||||
3121.380099585688 51.54700480549313
|
||||
3130.12704799099 53.61372754444386
|
||||
3154.9414929983423 50.963902237480895
|
||||
3172.714111688775 53.56995181390561
|
||||
3182.2070510077447 51.54864434596273
|
||||
3209.1283055185295 54.020169626857
|
||||
3233.8607735024034 51.81957840856366
|
||||
3245.640871776459 53.93130653340483
|
||||
3264.2004698923 52.224708858601126
|
||||
3285.1210062843593 54.24683609677881
|
||||
3297.786456411998 51.506836063988
|
||||
3321.617177137594 54.24781982106057
|
||||
3349.390992692569 52.04731057979071
|
||||
3385.526464642491 54.02492429421883
|
||||
3397.216388190718 56.63080991659659
|
||||
3421.8586814487635 54.92437619583984
|
||||
3436.466987032876 58.20419492824553
|
||||
3461.338815956663 55.239905759213826
|
||||
3497.564462632413 56.72336197610535
|
||||
3525.3054873779975 54.702546370303345
|
||||
3546.267012281799 56.50005656414622
|
||||
3568.031912015701 53.89507268902673
|
||||
3591.715074099032 57.44467780570463
|
||||
3601.2080134179987 55.423370337761746
|
||||
3637.220519832702 58.07483518519431
|
||||
3677.2990866120044 55.11095590128001
|
||||
3716.4185222165934 57.40311545480034
|
||||
3734.8223639878215 56.55006254846893
|
||||
3749.4880534883696 59.51541741880587
|
||||
3761.415710404687 60.81852418404171
|
||||
3777.352043769174 56.82075067999942
|
||||
3801.084392066593 60.100815343475546
|
||||
3831.6126356104915 59.47270738957287
|
||||
3849.557406050232 61.13536537979137
|
||||
3877.4623848427773 58.216081596650106
|
||||
3892.06249272454 61.54082373792275
|
||||
3922.812074231836 59.69978374461208
|
||||
3922.3775960073917 62.080724414561104
|
||||
3940.8962056114933 60.59874378409221
|
||||
3961.6445902542446 63.56426260847611
|
||||
3983.270129048232 61.722976684094995
|
||||
3998.132563405131 63.61016974162483
|
||||
4013.839361103871 60.870251685857504
|
||||
4028.5050506044163 63.83560655619445
|
||||
4044.113475874982 61.63476940683067
|
||||
4062.0992348264635 63.072810352714356
|
||||
4099.251221867536 59.47992136763909
|
||||
4119.925827189157 62.84975087182566
|
||||
4141.452993554966 61.5475458538481
|
||||
4162.512890886942 62.80597514128742
|
||||
4187.171579549685 61.00969460279674
|
||||
4220.2984947378945 62.80753270473353
|
||||
4247.900158543564 61.550415049669894
|
||||
4253.605759377761 63.61705581159714
|
||||
4271.624309138636 64.87540312201298
|
||||
4296.3895679319 62.49511826825179
|
||||
4320.441626620891 64.02316998591637
|
||||
4342.058967712529 62.226807470402214
|
||||
4347.6579984162045 64.87745254759997
|
||||
4366.176608020306 63.39547191713108
|
||||
4374.964544937347 65.237577611747
|
||||
4390.65494723139 62.587506373713595
|
||||
4397.106538979256 60.56611692874723
|
||||
4414.9529369908205 62.76785582536928
|
||||
4433.422360380834 61.55541564810217
|
||||
4432.709160276559 65.46375221952793
|
||||
4457.392442046344 63.53270145443636
|
||||
4478.288385331361 65.68959891921494
|
||||
4499.749970078387 64.74678117217307
|
||||
4536.057593777617 65.78100330039499
|
||||
4539.7711529412545 62.09736575032751
|
||||
4554.6827735122415 63.71501835465557
|
||||
4569.487823952703 65.91667527425415
|
||||
@ -0,0 +1,70 @@
|
||||
#!/usr/bin/octave --silent
|
||||
|
||||
%% clear workspace
|
||||
clear all
|
||||
close all
|
||||
clc
|
||||
|
||||
dirfile = '../../DEM/post';
|
||||
filepattern = '*.dat';
|
||||
|
||||
% time column in the data matrix
|
||||
col_t = 1;
|
||||
|
||||
% read all data
|
||||
|
||||
listfile = dir(fullfile(dirfile,filepattern));
|
||||
data = readData(dirfile,listfile);
|
||||
nFiles = length(listfile);
|
||||
dataexp = importdata('R1_experiment.dat', ' ');
|
||||
|
||||
% init figures
|
||||
hFig(1) = figure;
|
||||
|
||||
cmap = colormap(jet(16));
|
||||
linS = {'-';'--';'-.';':';'-';'--';'-.';':';'-';'--';'-.';':'};
|
||||
markers = {'+';'o';'*';'x';'s';'d';'^';'v';'>';'<';'p';'h';'.'};
|
||||
|
||||
for ii=1:nFiles
|
||||
|
||||
fname = data(ii).name;
|
||||
fbasename = strtrunc(fname,index(fname,".dat")-1);
|
||||
stepsize = 2;
|
||||
timesteps = data(ii).values(1:stepsize:end,col_t)*10;
|
||||
nColumns = columns(data(ii).values);
|
||||
|
||||
figure(hFig(1));
|
||||
clf reset;
|
||||
hold on;
|
||||
|
||||
for jj=2:nColumns
|
||||
xvalue = data(ii).values(1:stepsize:end,jj);
|
||||
%if (strncmp(fbasename,"Aterm",5) || strncmp(fbasename,"Bterm",5))
|
||||
% semilogy(timesteps,xvalue,'Color',cmap(jj,:),'LineStyle',linS{jj-1},'Marker',markers{jj-1},'MarkerSize',5);
|
||||
%else
|
||||
plot(timesteps,xvalue,'Color',cmap(jj,:),'LineStyle',linS{jj-1},'Marker',markers{jj-1},'MarkerSize',5);
|
||||
%endif
|
||||
end
|
||||
if (strncmp(fbasename,"fr_OV",5))
|
||||
timesteps = dataexp.data(1:stepsize:end,col_t);
|
||||
xvalue = dataexp.data(1:stepsize:end,2)*0.01;
|
||||
plot(timesteps-450,xvalue,'Color','red','LineStyle','none','Marker','.','MarkerSize',10);%,'MarkerFaceColor','auto');
|
||||
endif
|
||||
xlim ([0.0, 2000.0]);
|
||||
ylim auto;
|
||||
xlabel('time (s)');
|
||||
ylabel(fbasename);
|
||||
grid on;
|
||||
|
||||
headerline = substr(data(ii).header{1},7);
|
||||
|
||||
if (strncmp(fbasename,"fr_OV",5))
|
||||
headerline = [headerline, " fr_exp_OV"];
|
||||
endif
|
||||
|
||||
legend(strsplit(headerline, " "),'location','eastoutside');
|
||||
|
||||
print(hFig(1),fullfile(dirfile,['figure_',fbasename,'.eps']),'-color','-deps');
|
||||
end
|
||||
|
||||
|
||||
@ -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,115 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Version: 6
|
||||
\\/ M anipulation |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
location "constant/polyMesh";
|
||||
object blockMeshDict;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
meshGenApp blockMesh;
|
||||
convertToMeters 1.0;
|
||||
|
||||
// 68 mm column diameter
|
||||
// 150 mm column length
|
||||
|
||||
// Width of middle square section 17 mm
|
||||
// 7 cells in the square section
|
||||
// 3 cells from square section to perimeter
|
||||
// 24 cells from top to bottom
|
||||
|
||||
vertices
|
||||
(
|
||||
// bottom
|
||||
( 0.017 0.0 0.017) // Vertex fiveoclocksqb = 0
|
||||
(-0.017 0.0 0.017) // Vertex sevenoclocksqb = 1
|
||||
(-0.017 0.0 -0.017) // Vertex elevenoclocksqb = 2
|
||||
( 0.017 0.0 -0.017) // Vertex oneoclocksqb = 3
|
||||
|
||||
( 0.0240416305819187 0.0 0.0240416305387665) // Vertex fiveoclockcb = 4
|
||||
(-0.0240416305819187 0.0 0.0240416305387665) // Vertex sevenoclockcb = 5
|
||||
(-0.0240416305819187 0.0 -0.0240416305387665) // Vertex elevenoclockcb = 6
|
||||
( 0.0240416305819187 0.0 -0.0240416305387665) // Vertex oneoclockcb = 7
|
||||
|
||||
// top
|
||||
( 0.017 0.150 0.017) // Vertex fiveoclocksqt = 8
|
||||
(-0.017 0.150 0.017) // Vertex sevenoclocksqt = 9
|
||||
(-0.017 0.150 -0.017) // Vertex elevenoclocksqt = 10
|
||||
( 0.017 0.150 -0.017) // Vertex oneoclocksqt = 11
|
||||
|
||||
( 0.0240416305819187 0.150 0.0240416305387665) // Vertex fiveoclockct = 12
|
||||
(-0.0240416305819187 0.150 0.0240416305387665) // Vertex sevenoclockct = 13
|
||||
(-0.0240416305819187 0.150 -0.0240416305387665) // Vertex elevenoclockct = 14
|
||||
( 0.0240416305819187 0.150 -0.0240416305387665) // Vertex oneoclockct = 15
|
||||
);
|
||||
|
||||
blocks
|
||||
(
|
||||
// square block
|
||||
hex ( 1 0 3 2 9 8 11 10) (7 7 24) simpleGrading (1 1 1)
|
||||
|
||||
// slice1
|
||||
hex ( 5 4 0 1 13 12 8 9) (7 3 24) simpleGrading (1 1 1)
|
||||
|
||||
//slice2
|
||||
hex ( 1 2 6 5 9 10 14 13) (7 3 24) simpleGrading (1 1 1)
|
||||
|
||||
// slice3
|
||||
hex ( 2 3 7 6 10 11 15 14) (7 3 24) simpleGrading (1 1 1)
|
||||
|
||||
//slice4
|
||||
hex ( 3 0 4 7 11 8 12 15) (7 3 24) simpleGrading (1 1 1)
|
||||
);
|
||||
|
||||
|
||||
// create the quarter circles
|
||||
edges
|
||||
(
|
||||
arc 4 5 (0.0 0.0 0.034)
|
||||
arc 5 6 (-0.034 0.0 0.0)
|
||||
arc 6 7 (0.0 0.0 -0.034)
|
||||
arc 7 4 (0.034 0.0 0.0)
|
||||
|
||||
arc 12 13 (0.0 0.150 0.034)
|
||||
arc 13 14 (-0.034 0.150 0.0)
|
||||
arc 14 15 (0.0 0.150 -0.034)
|
||||
arc 15 12 (0.034 0.150 0.0)
|
||||
);
|
||||
|
||||
patches
|
||||
(
|
||||
patch inlet
|
||||
(
|
||||
(0 3 2 1)
|
||||
(0 4 7 3)
|
||||
(4 0 1 5)
|
||||
(1 2 6 5)
|
||||
(3 7 6 2)
|
||||
)
|
||||
|
||||
patch outlet
|
||||
(
|
||||
(8 11 10 9)
|
||||
(8 12 15 11)
|
||||
(12 8 9 13)
|
||||
(9 10 14 13)
|
||||
(11 15 14 10)
|
||||
)
|
||||
|
||||
wall side-walls
|
||||
(
|
||||
(5 4 12 13)
|
||||
(5 13 14 6)
|
||||
(6 14 15 7)
|
||||
(7 15 12 4)
|
||||
)
|
||||
);
|
||||
|
||||
@ -0,0 +1,271 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Version: 6
|
||||
\\/ M anipulation |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
location "system";
|
||||
object controlDict;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
application cfdemSolverRhoPimpleChem;
|
||||
|
||||
startFrom startTime;
|
||||
|
||||
startTime 0.0;
|
||||
|
||||
stopAt endTime;
|
||||
|
||||
endTime 200.0;
|
||||
|
||||
deltaT 0.00025;
|
||||
|
||||
writeControl runTime;
|
||||
|
||||
writeInterval 0.25;
|
||||
|
||||
purgeWrite 0;
|
||||
|
||||
writeFormat ascii;
|
||||
|
||||
writePrecision 6;
|
||||
|
||||
writeCompression off;
|
||||
|
||||
timeFormat general;
|
||||
|
||||
timePrecision 6;
|
||||
|
||||
runTimeModifiable true;
|
||||
|
||||
adjustTimeStep no;
|
||||
|
||||
maxCo 0.5;
|
||||
|
||||
maxDeltaT 0.1;
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
libs
|
||||
(
|
||||
"libfieldFunctionObjects.so"
|
||||
);
|
||||
|
||||
functions
|
||||
{
|
||||
moleFrac
|
||||
{
|
||||
type rhoReactionThermoMoleFractions;
|
||||
}
|
||||
|
||||
probes
|
||||
{
|
||||
type probes;
|
||||
|
||||
functionObjectLibs ("libsampling.so");
|
||||
|
||||
// Name of the directory for probe data
|
||||
name probes;
|
||||
|
||||
// Locations to be probed.
|
||||
probeLocations
|
||||
(
|
||||
(0.03 0.025 0.0)
|
||||
(0.03 0.050 0.0)
|
||||
(0.03 0.075 0.0)
|
||||
(0.03 0.090 0.0)
|
||||
(0.03 0.120 0.0)
|
||||
);
|
||||
|
||||
fields
|
||||
(
|
||||
rho
|
||||
p
|
||||
T
|
||||
Cpv
|
||||
N2
|
||||
CO2
|
||||
CO
|
||||
H2
|
||||
H2O
|
||||
ModSpeciesMassField_N2
|
||||
ModSpeciesMassField_CO2
|
||||
ModSpeciesMassField_CO
|
||||
ModSpeciesMassField_H2
|
||||
ModSpeciesMassField_H2O
|
||||
X_CO
|
||||
X_CO2
|
||||
X_H2
|
||||
X_N2
|
||||
X_H2O
|
||||
);
|
||||
|
||||
writeControl timeStep;
|
||||
writeInterval 10000;
|
||||
}
|
||||
|
||||
|
||||
fieldMinMax_T
|
||||
{
|
||||
type fieldMinMax;
|
||||
libs ("libfieldFunctionObjects.so");
|
||||
fields (T);
|
||||
// Report the location of the field extrema
|
||||
location yes;
|
||||
// Type of extrema for rank > 0 primitives
|
||||
mode magnitude; // magnitude | component
|
||||
}
|
||||
|
||||
fieldMinMax_Cpv
|
||||
{
|
||||
type fieldMinMax;
|
||||
libs ("libfieldFunctionObjects.so");
|
||||
fields (Cpv);
|
||||
// Report the location of the field extrema
|
||||
location yes;
|
||||
// Type of extrema for rank > 0 primitives
|
||||
mode magnitude; // magnitude | component
|
||||
}
|
||||
|
||||
fieldMinMax_partTemp
|
||||
{
|
||||
type fieldMinMax;
|
||||
libs ("libfieldFunctionObjects.so");
|
||||
fields (partTemp);
|
||||
location yes;
|
||||
mode magnitude;
|
||||
}
|
||||
|
||||
globalMassFrac
|
||||
{
|
||||
//type volRegion; // OF4
|
||||
type volFieldValue; // OF5,OF6
|
||||
libs ("libfieldFunctionObjects.so");
|
||||
writeControl timeStep;//outputTime;
|
||||
writeInterval 1;
|
||||
log true;
|
||||
writeFields false;
|
||||
regionType all;
|
||||
name c0;
|
||||
operation weightedVolAverage;
|
||||
weightField rhoeps;
|
||||
fields
|
||||
(
|
||||
H2
|
||||
H2O
|
||||
CO2
|
||||
CO
|
||||
N2
|
||||
);
|
||||
}
|
||||
|
||||
globalMass
|
||||
{
|
||||
//type volRegion; // OF4
|
||||
type volFieldValue; // OF5,OF6
|
||||
libs ("libfieldFunctionObjects.so");
|
||||
writeControl timeStep;//outputTime;
|
||||
writeInterval 1;
|
||||
log true;
|
||||
writeFields false;
|
||||
regionType all;
|
||||
name c1;
|
||||
operation volIntegrate;
|
||||
fields
|
||||
(
|
||||
rhoeps
|
||||
rho
|
||||
);
|
||||
}
|
||||
|
||||
inflow_GasSpecies
|
||||
{
|
||||
//type surfaceRegion; // OF4
|
||||
type surfaceFieldValue; // OF5,OF6
|
||||
libs ("libfieldFunctionObjects.so");
|
||||
writeControl timeStep;
|
||||
writeInterval 100;
|
||||
log true;
|
||||
// Output field values as well
|
||||
writeFields false;
|
||||
regionType patch;
|
||||
name inlet;
|
||||
operation sum;//areaIntegrate;
|
||||
|
||||
fields
|
||||
(
|
||||
CO
|
||||
CO2
|
||||
H2
|
||||
H2O
|
||||
N2
|
||||
);
|
||||
}
|
||||
|
||||
inflow_phi
|
||||
{
|
||||
//type surfaceRegion; // OF4
|
||||
type surfaceFieldValue; // OF5,OF6
|
||||
libs ("libfieldFunctionObjects.so");
|
||||
writeControl timeStep;
|
||||
writeInterval 100;
|
||||
log true;
|
||||
// Output field values as well
|
||||
writeFields false;
|
||||
regionType patch;
|
||||
name inlet;
|
||||
operation sum;//areaIntegrate;
|
||||
|
||||
fields
|
||||
(
|
||||
phi
|
||||
);
|
||||
}
|
||||
|
||||
inflow_U
|
||||
{
|
||||
//type surfaceRegion; // OF4
|
||||
type surfaceFieldValue; // OF5,OF6
|
||||
libs ("libfieldFunctionObjects.so");
|
||||
writeControl timeStep;
|
||||
writeInterval 100;
|
||||
log true;
|
||||
// Output field values as well
|
||||
writeFields false;
|
||||
regionType patch;
|
||||
name inlet;
|
||||
operation sum;//areaIntegrate;
|
||||
|
||||
fields
|
||||
(
|
||||
U
|
||||
);
|
||||
}
|
||||
|
||||
outflow_GasSpecies
|
||||
{
|
||||
$inflow_GasSpecies;
|
||||
name outlet;
|
||||
}
|
||||
|
||||
outflow_phi
|
||||
{
|
||||
$inflow_phi;
|
||||
name outlet;
|
||||
}
|
||||
|
||||
outflow_U
|
||||
{
|
||||
$inflow_U;
|
||||
name outlet;
|
||||
}
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -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,113 @@
|
||||
################################################################################
|
||||
# brief: chemistry in fluidized bed - reduce FeO to Fe at 993 K (720 °C) #
|
||||
# #
|
||||
# Cf. M.E. Kinaci,T. Lichtenegger,S. Schneiderbauer, Chem. Eng. Sci. 227 (2020)#
|
||||
# Note that reaction rate is scaled x10 #
|
||||
# #
|
||||
# authors: D. Queteschiner #
|
||||
# date: Mar 2022 #
|
||||
# copyright: 2022- JKU Linz #
|
||||
################################################################################
|
||||
|
||||
log ../DEM/log.liggghts
|
||||
thermo_log ../DEM/post/thermo.txt
|
||||
|
||||
variable rate_scale equal 10.0
|
||||
variable cg equal 7.0
|
||||
coarsegraining ${cg} model_check error
|
||||
|
||||
atom_style granular
|
||||
atom_modify map array
|
||||
communicate single vel yes
|
||||
|
||||
boundary f f f
|
||||
newton off
|
||||
|
||||
units si
|
||||
processors 2 * 2
|
||||
|
||||
# read the restart file
|
||||
read_restart ../DEM/post/restart/liggghts.restart
|
||||
|
||||
neighbor 1e-4 bin
|
||||
neigh_modify delay 0
|
||||
|
||||
# material properties for granular pair styles
|
||||
fix m1 all property/global youngsModulus peratomtype 5.e6 5.e6
|
||||
fix m2 all property/global poissonsRatio peratomtype 0.45 0.45
|
||||
fix m3 all property/global coefficientRestitution peratomtypepair 2 0.3 0.3 0.3 0.3
|
||||
fix m4 all property/global coefficientFriction peratomtypepair 2 0.5 0.5 0.5 0.5
|
||||
|
||||
# pair style
|
||||
pair_style gran model hertz tangential history
|
||||
pair_coeff * *
|
||||
|
||||
# timestep, gravity
|
||||
timestep 0.000005
|
||||
fix gravi all gravity 9.81 vector 0.0 -1.0 0.0
|
||||
|
||||
# walls
|
||||
fix zwalls1 all wall/gran model hertz tangential history primitive type 1 yplane 0.00
|
||||
fix zwalls2 all wall/gran model hertz tangential history primitive type 1 yplane 0.15
|
||||
fix cylwalls all wall/gran model hertz tangential history primitive type 1 ycylinder 0.034 0.0 0.0
|
||||
|
||||
# thermal properties
|
||||
fix ftco all property/global thermalConductivity peratomtype 1.4 3.0 # [W/(K*m)]
|
||||
fix ftca all property/global thermalCapacity peratomtype 1000 800 # [J/(kg*K)]
|
||||
|
||||
fix integr all nve/sphere
|
||||
|
||||
# re-create groups
|
||||
group ore type 1
|
||||
group quartz type 2
|
||||
|
||||
################################################################################
|
||||
# cfd coupling
|
||||
fix cfd all couple/cfd couple_every 50 mpi
|
||||
fix cfd2 all couple/cfd/force
|
||||
# transfer per-particle temperature and add convective heat flux
|
||||
fix tconv all couple/cfd/convection T0 993
|
||||
|
||||
################################################################################
|
||||
# invoke chemistry coupling
|
||||
fix cfd3 ore couple/cfd/chemistry n_species 5 species_names H2 H2O CO CO2 N2 n_diff 2 diffusant_names CO H2
|
||||
|
||||
# activate for 3-layer unreacted core shrink model
|
||||
fix cfd5 ore chem/shrink/core speciesA CO molMassA 0.02801 speciesC CO2 molMassC 0.04401 scale_reduction_rate ${rate_scale}
|
||||
fix cfd6 ore chem/shrink/core speciesA H2 molMassA 0.00202 speciesC H2O molMassC 0.01801 scale_reduction_rate ${rate_scale}
|
||||
|
||||
# material properties for chemical reaction
|
||||
fix k0_CO ore property/global k0_cfd5 vector 17 25 2700
|
||||
fix Ea_CO ore property/global Ea_cfd5 vector 100000 73674 113859
|
||||
|
||||
fix k0_H2 ore property/global k0_cfd6 vector 17 23 160
|
||||
fix Ea_H2 ore property/global Ea_cfd6 vector 85000 71162 92092
|
||||
|
||||
# particle parameters
|
||||
fix porosity ore property/global porosity_ore vector 0.613 0.318 0.187 0.17
|
||||
fix tortuosity ore property/global tortuosity_ore scalar 4
|
||||
fix pore_diameter ore property/global pore_diameter_ore scalar 1.e-7
|
||||
fix layerDensities ore property/global density_ore vector 7870. 5740. 5170. 5240.
|
||||
|
||||
# define initial relative layer radii
|
||||
fix LayerRelRadii ore property/atom relRadii vector yes no no 1.0 0.999 0.002 0.001
|
||||
|
||||
################################################################################
|
||||
# write data to files for post-processing
|
||||
|
||||
variable WI equal 100000
|
||||
|
||||
include ../DEM/in.liggghts_compute_output
|
||||
|
||||
################################################################################
|
||||
# screen output
|
||||
thermo_style custom step atoms ke
|
||||
thermo 250
|
||||
thermo_modify lost ignore norm no
|
||||
compute_modify thermo_temp dynamic yes
|
||||
|
||||
dump dmp all custom ${WI} ../DEM/post/dump*.liggghts_run id type x y z vx vy vz &
|
||||
fx fy fz radius mass f_fracRed[1] f_fracRed[2] f_fracRed[3]
|
||||
|
||||
run 1
|
||||
|
||||
@ -0,0 +1,44 @@
|
||||
#!/bin/bash
|
||||
#------------------------------------------------------------------------------
|
||||
# parCFDDEMrun script for R1_FB test case
|
||||
# run R1_FB CFD-DEM
|
||||
# Daniel Queteschiner - March 2022
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
#- source CFDEM env vars
|
||||
. ~/.bashrc
|
||||
|
||||
#- include functions
|
||||
source $CFDEM_PROJECT_DIR/etc/functions.sh
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
#- define variables
|
||||
casePath="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")"
|
||||
logpath=$casePath
|
||||
headerText="R1_FluidizedBed"
|
||||
logfileName="log_$headerText"
|
||||
solverName="cfdemSolverRhoPimpleChem"
|
||||
nrProcs="4"
|
||||
machineFileName="none" # yourMachinefileName | none
|
||||
debugMode="off" # on | off| strict
|
||||
testHarnessPath="$CFDEM_TEST_HARNESS_PATH"
|
||||
runOctave="true"
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
#- call function to run a parallel CFD-DEM case
|
||||
parCFDDEMrun $logpath $logfileName $casePath $headerText $solverName $nrProcs $machineFileName $debugMode
|
||||
|
||||
|
||||
if [ $runOctave == "true" ]
|
||||
then
|
||||
#------------------------------#
|
||||
# octave
|
||||
|
||||
#- change path
|
||||
cd octave
|
||||
|
||||
#- run octave
|
||||
octave plotData.m
|
||||
fi
|
||||
|
||||
@ -0,0 +1,29 @@
|
||||
#!/bin/bash
|
||||
#------------------------------------------------------------------------------
|
||||
# parDEMrun script for R1_FB test case
|
||||
# init R1_FB DEM
|
||||
# Daniel Queteschiner - March 2022
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
#- source CFDEM env vars
|
||||
. ~/.bashrc
|
||||
|
||||
#- include functions
|
||||
source $CFDEM_PROJECT_DIR/etc/functions.sh
|
||||
|
||||
echo "starting DEM run in parallel..."
|
||||
#------------------------------------------------------------------------------
|
||||
#- define variables
|
||||
casePath="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")"
|
||||
logpath="$casePath"
|
||||
headerText="run_liggghts_init_DEM"
|
||||
logfileName="log_$headerText"
|
||||
solverName="in.liggghts_init"
|
||||
nrProcs=4
|
||||
machineFileName="none"
|
||||
debugMode="off"
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
#- call function to run DEM case
|
||||
parDEMrun $logpath $logfileName $casePath $headerText $solverName $nrProcs $machineFileName $debugMode
|
||||
|
||||
Reference in New Issue
Block a user