From 4e65f19d5fbef0b7d67d6a1062e759fef264ccdd Mon Sep 17 00:00:00 2001 From: danielque Date: Fri, 10 Feb 2023 11:12:17 +0100 Subject: [PATCH] add FeO->Fe reduction case based on R1 case described by Spreitzer 2016 / Kinaci 2020 --- .../R1_FB/Allclean.sh | 15 + .../PolydisperseFluidizedBed/R1_FB/Allrun.sh | 34 ++ .../PolydisperseFluidizedBed/R1_FB/CFD/0/CO | 41 ++ .../PolydisperseFluidizedBed/R1_FB/CFD/0/CO2 | 41 ++ .../PolydisperseFluidizedBed/R1_FB/CFD/0/H2 | 41 ++ .../PolydisperseFluidizedBed/R1_FB/CFD/0/H2O | 41 ++ .../PolydisperseFluidizedBed/R1_FB/CFD/0/Ksl | 40 ++ .../PolydisperseFluidizedBed/R1_FB/CFD/0/N2 | 41 ++ .../PolydisperseFluidizedBed/R1_FB/CFD/0/T | 41 ++ .../PolydisperseFluidizedBed/R1_FB/CFD/0/U | 41 ++ .../PolydisperseFluidizedBed/R1_FB/CFD/0/Us | 40 ++ .../R1_FB/CFD/0/dSauter | 40 ++ .../PolydisperseFluidizedBed/R1_FB/CFD/0/p | 41 ++ .../R1_FB/CFD/0/voidfraction | 41 ++ .../R1_FB/CFD/0/wallQFactor | 43 ++ .../R1_FB/CFD/constant/chemistryProperties | 20 + .../R1_FB/CFD/constant/combustionProperties | 29 ++ .../R1_FB/CFD/constant/couplingProperties | 170 +++++++ .../R1_FB/CFD/constant/foam.dat | 113 +++++ .../R1_FB/CFD/constant/foam.inp | 14 + .../R1_FB/CFD/constant/g | 21 + .../R1_FB/CFD/constant/liggghtsCommands | 31 ++ .../CFD/constant/thermophysicalProperties | 37 ++ .../R1_FB/CFD/constant/transportProperties | 26 ++ .../R1_FB/CFD/constant/turbulenceProperties | 20 + .../R1_FB/CFD/octave/R1_experiment.dat | 222 +++++++++ .../R1_FB/CFD/octave/plotData.m | 70 +++ .../R1_FB/CFD/octave/readData.m | 27 ++ .../R1_FB/CFD/system/blockMeshDict | 115 +++++ .../R1_FB/CFD/system/controlDict | 271 +++++++++++ .../R1_FB/CFD/system/controlDict_test | 271 +++++++++++ .../R1_FB/CFD/system/decomposeParDict | 33 ++ .../R1_FB/CFD/system/fvSchemes | 82 ++++ .../R1_FB/CFD/system/fvSolution | 117 +++++ .../R1_FB/CFD/system/probesDict | 58 +++ .../R1_FB/DEM/in.liggghts_compute_output | 427 ++++++++++++++++++ .../R1_FB/DEM/in.liggghts_init | 97 ++++ .../R1_FB/DEM/in.liggghts_run | 113 +++++ .../R1_FB/parCFDDEMrun.sh | 44 ++ .../R1_FB/parDEMrun.sh | 29 ++ 40 files changed, 3038 insertions(+) create mode 100755 tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/Allclean.sh create mode 100755 tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/Allrun.sh create mode 100755 tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/0/CO create mode 100755 tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/0/CO2 create mode 100755 tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/0/H2 create mode 100755 tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/0/H2O create mode 100755 tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/0/Ksl create mode 100755 tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/0/N2 create mode 100755 tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/0/T create mode 100755 tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/0/U create mode 100755 tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/0/Us create mode 100755 tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/0/dSauter create mode 100755 tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/0/p create mode 100755 tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/0/voidfraction create mode 100755 tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/0/wallQFactor create mode 100755 tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/constant/chemistryProperties create mode 100755 tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/constant/combustionProperties create mode 100755 tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/constant/couplingProperties create mode 100755 tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/constant/foam.dat create mode 100755 tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/constant/foam.inp create mode 100755 tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/constant/g create mode 100755 tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/constant/liggghtsCommands create mode 100755 tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/constant/thermophysicalProperties create mode 100755 tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/constant/transportProperties create mode 100755 tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/constant/turbulenceProperties create mode 100755 tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/octave/R1_experiment.dat create mode 100755 tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/octave/plotData.m create mode 100755 tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/octave/readData.m create mode 100755 tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/system/blockMeshDict create mode 100755 tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/system/controlDict create mode 100755 tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/system/controlDict_test create mode 100755 tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/system/decomposeParDict create mode 100755 tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/system/fvSchemes create mode 100755 tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/system/fvSolution create mode 100755 tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/system/probesDict create mode 100755 tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/DEM/in.liggghts_compute_output create mode 100755 tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/DEM/in.liggghts_init create mode 100755 tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/DEM/in.liggghts_run create mode 100755 tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/parCFDDEMrun.sh create mode 100755 tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/parDEMrun.sh diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/Allclean.sh b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/Allclean.sh new file mode 100755 index 00000000..665e1d5d --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/Allclean.sh @@ -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 diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/Allrun.sh b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/Allrun.sh new file mode 100755 index 00000000..43f4c31e --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/Allrun.sh @@ -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 diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/0/CO b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/0/CO new file mode 100755 index 00000000..b4df949e --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/0/CO @@ -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; + } +} + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/0/CO2 b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/0/CO2 new file mode 100755 index 00000000..4d421ae8 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/0/CO2 @@ -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; + } +} + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/0/H2 b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/0/H2 new file mode 100755 index 00000000..ac051aad --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/0/H2 @@ -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; + } +} + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/0/H2O b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/0/H2O new file mode 100755 index 00000000..bd2a1364 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/0/H2O @@ -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; + } +} + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/0/Ksl b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/0/Ksl new file mode 100755 index 00000000..4456a8e8 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/0/Ksl @@ -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; + } +} + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/0/N2 b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/0/N2 new file mode 100755 index 00000000..f25225d6 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/0/N2 @@ -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; + } +} + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/0/T b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/0/T new file mode 100755 index 00000000..2b7fa4bf --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/0/T @@ -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; + } +} + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/0/U b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/0/U new file mode 100755 index 00000000..458c6889 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/0/U @@ -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; + } +} + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/0/Us b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/0/Us new file mode 100755 index 00000000..e07d0a52 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/0/Us @@ -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; + } +} + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/0/dSauter b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/0/dSauter new file mode 100755 index 00000000..52395c16 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/0/dSauter @@ -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; + } +} + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/0/p b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/0/p new file mode 100755 index 00000000..ec4bbadb --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/0/p @@ -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; + } +} + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/0/voidfraction b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/0/voidfraction new file mode 100755 index 00000000..94201af2 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/0/voidfraction @@ -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; + } +} + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/0/wallQFactor b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/0/wallQFactor new file mode 100755 index 00000000..5c278fe9 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/0/wallQFactor @@ -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; + } +} + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/constant/chemistryProperties b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/constant/chemistryProperties new file mode 100755 index 00000000..fcec6c16 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/constant/chemistryProperties @@ -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; + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/constant/combustionProperties b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/constant/combustionProperties new file mode 100755 index 00000000..6227a78e --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/constant/combustionProperties @@ -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; +combustionModel none; // OF6 + +active false; + +//noCombustionCoeffs +noneCoeffs +{ +} + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/constant/couplingProperties b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/constant/couplingProperties new file mode 100755 index 00000000..aff6dd68 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/constant/couplingProperties @@ -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"; +} + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/constant/foam.dat b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/constant/foam.dat new file mode 100755 index 00000000..c53576d4 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/constant/foam.dat @@ -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; + } +} + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/constant/foam.inp b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/constant/foam.inp new file mode 100755 index 00000000..bc4eead8 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/constant/foam.inp @@ -0,0 +1,14 @@ +species +( + CO + CO2 + H2 + H2O + N2 +); + +reactions +{ +} + + diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/constant/g b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/constant/g new file mode 100755 index 00000000..54aee0d6 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/constant/g @@ -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 ); + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/constant/liggghtsCommands b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/constant/liggghtsCommands new file mode 100755 index 00000000..ecac2231 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/constant/liggghtsCommands @@ -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; +} + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/constant/thermophysicalProperties b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/constant/thermophysicalProperties new file mode 100755 index 00000000..8975e867 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/constant/thermophysicalProperties @@ -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; + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/constant/transportProperties b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/constant/transportProperties new file mode 100755 index 00000000..d5da36a4 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/constant/transportProperties @@ -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; + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/constant/turbulenceProperties b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/constant/turbulenceProperties new file mode 100755 index 00000000..f6d9d4cb --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/constant/turbulenceProperties @@ -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; + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/octave/R1_experiment.dat b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/octave/R1_experiment.dat new file mode 100755 index 00000000..7247ffca --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/octave/R1_experiment.dat @@ -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 diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/octave/plotData.m b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/octave/plotData.m new file mode 100755 index 00000000..e21e35a9 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/octave/plotData.m @@ -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 + + diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/octave/readData.m b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/octave/readData.m new file mode 100755 index 00000000..426ac266 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/octave/readData.m @@ -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 + diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/system/blockMeshDict b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/system/blockMeshDict new file mode 100755 index 00000000..735d2887 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/system/blockMeshDict @@ -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) + ) +); + diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/system/controlDict b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/system/controlDict new file mode 100755 index 00000000..5c59943e --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/system/controlDict @@ -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; + } +} + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/system/controlDict_test b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/system/controlDict_test new file mode 100755 index 00000000..948a496e --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/system/controlDict_test @@ -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; + } +} + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/system/decomposeParDict b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/system/decomposeParDict new file mode 100755 index 00000000..3eb1ad3c --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/system/decomposeParDict @@ -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 ( ); + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/system/fvSchemes b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/system/fvSchemes new file mode 100755 index 00000000..60e0f338 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/system/fvSchemes @@ -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 ; +} + + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/system/fvSolution b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/system/fvSolution new file mode 100755 index 00000000..121600f9 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/system/fvSolution @@ -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; + } +} + +// ************************************************************************* // diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/system/probesDict b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/system/probesDict new file mode 100755 index 00000000..892cf783 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/CFD/system/probesDict @@ -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) +); + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/DEM/in.liggghts_compute_output b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/DEM/in.liggghts_compute_output new file mode 100755 index 00000000..8940bdfa --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/DEM/in.liggghts_compute_output @@ -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 (radiusv_rad1cg)&&(radiusv_rad2cg)&&(radiusv_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 + + diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/DEM/in.liggghts_init b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/DEM/in.liggghts_init new file mode 100755 index 00000000..7a84ac5f --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/DEM/in.liggghts_init @@ -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 + diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/DEM/in.liggghts_run b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/DEM/in.liggghts_run new file mode 100755 index 00000000..eb9665e0 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/DEM/in.liggghts_run @@ -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 + diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/parCFDDEMrun.sh b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/parCFDDEMrun.sh new file mode 100755 index 00000000..53700320 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/parCFDDEMrun.sh @@ -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 + diff --git a/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/parDEMrun.sh b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/parDEMrun.sh new file mode 100755 index 00000000..be484ca6 --- /dev/null +++ b/tutorials/cfdemSolverRhoPimpleChem/PolydisperseFluidizedBed/R1_FB/parDEMrun.sh @@ -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 +