release on 2012-07-17_15-56-10

This commit is contained in:
cfdem
2012-07-17 15:56:10 +02:00
parent 811a525493
commit 0323774ed4
1167 changed files with 81304 additions and 0 deletions

View File

@ -0,0 +1,75 @@
#!/bin/bash
#===================================================================#
# allrun script for cfdemPostproc
# Christoph Goniva - Nov. 2011
#===================================================================#
#- define variables
casePath="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")"
pizzaPath="/home/cfdem/LIGGGHTS/PIZZA/gran_pizza_17Aug10/src"
liggghtsSim="true"
cfdemPostProc="true"
postproc="true"
# check if mesh was built
if [ -d "$casePath/CFD/constant/polyMesh/boundary" ]; then
echo "mesh was built before - using old mesh"
else
echo "mesh needs to be built"
cd $casePath/CFD
blockMesh
fi
if [ $liggghtsSim == "true" ]
then
cd $casePath/DEM
liggghts < in.liggghts_init
#- get VTK data from liggghts dump file
#cd $casePath/DEM
#python $pizzaPath/pizza.py -f pizzaScriptInit
cd $casePath/DEM/post
python -i $CFDEM_LPP_DIR/lpp.py dump.liggghts_init
fi
if [ $cfdemPostProc == "true" ]
then
cd $casePath/CFD
cfdemPostproc
fi
#echo "now you can run foamToSurface from 2.0.x to generate *.stl or *.inp files.(press enter)"
#read
if [ $postproc == "true" ]
then
#- get VTK data from CFD sim
#cd $casePath/CFD
foamToVTK
#- start paraview
paraview
fi
#- keep terminal open (if started in new terminal)
#echo "...press enter to clean up case"
#echo "press Ctr+C to keep data"
#read
#- clean up case
echo "deleting data at: $casePath"
rm -r $casePath/CFD/0.*
rm -r $casePath/CFD/particles
rm -r $casePath/CFD/VTK
rm -r $casePath/DEM/post/*
rm -r $casePath/DEM/log.*
rm -r $casePath/log*
echo "done"
#- preserve post directory
echo "dummyfile" >> $casePath/DEM/post/dummy

View File

@ -0,0 +1,40 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM Extend Project: Open Source CFD |
| \\ / O peration | Version: 1.6-ext |
| \\ / A nd | Web: www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class tetPointScalarField;
object gagaga;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0;
boundaryField
{
wall
{
type zeroGradient;
}
inlet
{
type fixedValue;
value uniform 0;
}
outlet
{
type fixedValue;
value uniform 0;
}
}
// ************************************************************************* //

Binary file not shown.

After

Width:  |  Height:  |  Size: 222 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 278 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 284 KiB

View File

@ -0,0 +1,25 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "constant";
object RASProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
RASModel laminar;
turbulence off;
printCoeffs on;
// ************************************************************************* //

View File

@ -0,0 +1,77 @@
/*---------------------------------------------------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.4 |
| \\ / A nd | Web: http://www.openfoam.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "";
case "";
instance "";
local "";
class dictionary;
object couplingProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
//===========================================================================//
// sub-models & settings
modelType A;
couplingInterval 10;
voidFractionModel centre;
locateModel standard;
meshMotionModel noMeshMotion;
regionModel allRegion;
IOModel off;
dataExchangeModel oneWayVTK;
averagingModel dense;
clockModel off;
forceModels
(
off
);
momCoupleModels
(
off
);
turbulenceModelType RASProperties;
//===========================================================================//
// sub-model properties
oneWayVTKProps
{
DEMts 0.0001;
relativePath "../DEM/post";
couplingFilename "liggghts_init%4.4d.vtk";
maxNumberOfParticles 30000;
}
centreProps
{
alphaMin 0.10;
}
// ************************************************************************* //

View File

@ -0,0 +1,34 @@
/*---------------------------------------------------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.4 |
| \\ / A nd | Web: http://www.openfoam.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "";
case "";
instance "";
local "";
class dictionary;
object liggghtsCommands;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
liggghtsCommandModels
(
);
executeProps0
{
}
// ************************************************************************* //

View File

@ -0,0 +1,154 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 2.0 |
| \\ / A nd | Web: http://www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object blockMeshDict;
}
// ************************************
meshGenApp blockMesh;
convertToMeters 1;
//64 mm column diameter
//15 cm length
//Width of middle square section
//how many cells in the square section
//how many cells from square section to perimeter
// how many cells from top to bottom
vertices
(
( 0.0069 0.0069 0.0 ) // Vertex fiveoclocksqb = 0
(-0.0069 0.0069 0.0 ) // Vertex sevenoclocksqb = 1
(-0.0069 -0.0069 0.0 ) // Vertex elevenoclocksqb = 2
( 0.0069 -0.0069 0.0 ) // Vertex oneoclocksqb = 3
( 0.00975807358913172 0.00975807357161699 0.0 ) // Vertex fiveoclockcb = 4
(-0.00975807358913172 0.00975807357161699 0.0) // Vertex sevenoclockcb = 5
(-0.00975807358913172 -0.00975807357161699 0.0) // Vertex elevenoclockcb = 6
( 0.00975807358913172 -0.00975807357161699 0.0) // Vertex oneoclockcb = 7
( 0.0069 0.0069 0.0553) // Vertex fiveoclocksqt = 8
(-0.0069 0.0069 0.0553) // Vertex sevenoclocksqt = 9
(-0.0069 -0.0069 0.0553) // Vertex elevenoclocksqt = 10
( 0.0069 -0.0069 0.0553) // Vertex oneoclocksqt = 11
( 0.00975807358913172 0.00975807357161699 0.0553) // Vertex fiveoclockct = 12
(-0.00975807358913172 0.00975807357161699 0.0553) // Vertex sevenoclockct = 13
(-0.00975807358913172 -0.00975807357161699 0.0553) // Vertex elevenoclockct = 14
( 0.00975807358913172 -0.00975807357161699 0.0553) // Vertex oneoclockct = 15
);
blocks
(
//square block
hex (
2 3 0 1
10 11 8 9
)
(8 8 24)
simpleGrading (1 1 1)
//slice1
hex (
1 0 4 5
9 8 12 13
)
(8 4 24)
simpleGrading (1 1 1)
//slice2
hex (
6 2 1 5
14 10 9 13
)
( 4 8 24)
simpleGrading (1 1 1)
//slice3
hex (
6 7 3 2
14 15 11 10
)
(8 4 24)
simpleGrading (1 1 1)
//slice4
hex (
3 7 4 0
11 15 12 8
)
(4 8 24)
simpleGrading (1 1 1)
);
//create the quarter circles
edges
(
arc 4 5 (0.0 0.0138 0.0 )
arc 5 6 (-0.0138 0.0 0.0)
arc 6 7 (0.0 -0.0138 0.0 )
arc 7 4 (0.0138 0.0 0.0)
arc 12 13 (0.0 0.0138 0.0553 )
arc 13 14 (-0.0138 0.0 0.0553 )
arc 14 15 (0.0 -0.0138 0.0553 )
arc 15 12 (0.0138 0.0 0.0553 )
);
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 wall
(
(5 4 12 13)
(5 13 14 6)
(6 14 15 7)
(7 15 12 4)
)
);
mergePatchPairs
(
);

View File

@ -0,0 +1,34 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "constant";
object transportProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
transportModel Newtonian;
nu nu [ 0 2 -1 0 0 0 0 ] 1.5e-04;
movingPatchNames
(
outlet
inlet
);
scaling 1.0;
iterations 1;
shrinkMesh true;
// ************************************************************************* //

View File

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

View File

@ -0,0 +1,52 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
application pisoFoam;
startFrom startTime;
startTime 0;
stopAt endTime;
endTime 0.003;
deltaT 0.001;
writeControl adjustableRunTime;
writeInterval 0.001;
purgeWrite 0;
writeFormat ascii;
writePrecision 6;
writeCompression uncompressed;
timeFormat general;
timePrecision 6;
runTimeModifiable yes;
adjustTimeStep no;
maxCo 0.1;
// ************************************************************************* //

View File

@ -0,0 +1,52 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
application pisoFoam;
startFrom startTime;
startTime 0;
stopAt endTime;
endTime 0.003;
deltaT 0.001;
writeControl adjustableRunTime;
writeInterval 0.001;
purgeWrite 0;
writeFormat ascii;
writePrecision 6;
writeCompression uncompressed;
timeFormat general;
timePrecision 6;
runTimeModifiable yes;
adjustTimeStep no;
maxCo 0.1;
// ************************************************************************* //

View File

@ -0,0 +1,73 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object fvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
ddtSchemes
{
default Euler;
}
gradSchemes
{
default Gauss linear;
grad(p) Gauss linear;
grad(U) Gauss linear;
}
divSchemes
{
default none;
div(phi,U) Gauss limitedLinearV 1;
div(phi,k) Gauss limitedLinear 1;
div(phi,epsilon) Gauss limitedLinear 1;
div(phi,R) Gauss limitedLinear 1;
div(R) Gauss linear;
div(phi,nuTilda) Gauss limitedLinear 1;
div((nuEff*dev(grad(U).T()))) Gauss linear;
div((nuEff*dev(T(grad(U))))) Gauss linear;
}
laplacianSchemes
{
default none;
laplacian(nuEff,U) Gauss linear corrected;
laplacian((1|A(U)),p) Gauss linear corrected;
laplacian((voidfraction2|A(U)),p) Gauss linear corrected;
laplacian(DkEff,k) Gauss linear corrected;
laplacian(DepsilonEff,epsilon) Gauss linear corrected;
laplacian(DREff,R) Gauss linear corrected;
laplacian(DnuTildaEff,nuTilda) Gauss linear corrected;
}
interpolationSchemes
{
default linear;
interpolate(U) linear;
}
snGradSchemes
{
default corrected;
}
fluxRequired
{
default no;
p ;
}
// ************************************************************************* //

View File

@ -0,0 +1,86 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solvers
{
p
{
solver PCG;
preconditioner DIC;
tolerance 1e-06;
relTol 0.1;
}
pFinal
{
solver PCG;
preconditioner DIC;
tolerance 1e-06;
relTol 0;
}
U
{
solver PBiCG;
preconditioner DILU;
tolerance 1e-05;
relTol 0;
}
k
{
solver PBiCG;
preconditioner DILU;
tolerance 1e-05;
relTol 0;
}
epsilon
{
solver PBiCG;
preconditioner DILU;
tolerance 1e-05;
relTol 0;
}
R
{
solver PBiCG;
preconditioner DILU;
tolerance 1e-05;
relTol 0;
}
nuTilda
{
solver PBiCG;
preconditioner DILU;
tolerance 1e-05;
relTol 0;
}
}
PISO
{
nCorrectors 4;
nNonOrthogonalCorrectors 1;
pRefCell 0;
pRefValue 0;
}
// ************************************************************************* //

View File

@ -0,0 +1,65 @@
# Pour granular particles into chute container, then induce flow
atom_style granular
atom_modify map array
communicate single vel yes
boundary m m m
newton off
units si
region reg block -0.015 0.015 -0.015 0.015 -0.001 0.0554 units box
create_box 1 reg
neighbor 0.001 bin
neigh_modify delay 0
#Material properties required for new pair styles
fix m1 all property/global youngsModulus peratomtype 5.e6
fix m2 all property/global poissonsRatio peratomtype 0.45
fix m3 all property/global coefficientRestitution peratomtypepair 1 0.3
fix m4 all property/global coefficientFriction peratomtypepair 1 0.5
#pair style
pair_style gran/hertz/history 1 0 #Hertzian without cohesion
pair_coeff * *
#timestep, gravity
timestep 0.00001
fix gravi all gravity 9.81 vector 0.0 0.0 -1.0
#walls
fix zwalls all wall/gran/hertz/history 1 0 zplane 0.0 0.0553 1
fix cylwalls all wall/gran/hertz/history 1 0 zcylinder 0.01385 1
#cfd coupling
#fix cfd all couple/cfd
#particle insertion
group nve_group region reg
region bc cylinder z 0.0 0.0 0.012 0.02 0.03 units box
fix ins nve_group pour 10000 1 1 vol 0.7 100 diam uniform 0.001 0.001 dens uniform 200 200 vel uniform 0. 0. 0. 0. -1.0 region bc
#apply nve integration to all particles that are inserted as single particles
fix integr nve_group nve/sphere
#screen output
compute 1 all erotate/sphere
thermo_style custom step atoms ke c_1 vol
thermo 1000
thermo_modify lost ignore norm no
compute_modify thermo_temp dynamic yes
#insert the first particles so that dump is not empty
run 1
dump dmp all custom 1000 post/dump.liggghts_init id type type x y z ix iy iz vx vy vz fx fy fz omegax omegay omegaz radius
#force : f_couple_cfd[0] f_couple_cfd[1] f_couple_cfd[2]
#node : f_couple_cfd[6]
#cell id : f_couple_cfd[7]
run 3000 upto
#write_restart liggghts.restart

View File

@ -0,0 +1 @@
dummyfile

View File

@ -0,0 +1,29 @@
#!/bin/bash
#===================================================================#
# allrun script for testcase as part of test routine
# run settlingTest
# Christoph Goniva - July. 2011, mod by Alice Hager - July 2011
#===================================================================#
source $CFDEM_SRC_DIR/etc/functions.sh
#- define variables
casePath="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")"
echo $casePath
# check if mesh was built
if [ -d "$casePath/CFD/constant/polyMesh/boundary" ]; then
echo "mesh was built before - using old mesh"
else
echo "mesh needs to be built"
cd $casePath/CFD
blockMesh
fi
#gnome-terminal --title='cfdemSolverIB two settling disks CFD' -e "CFDrun()"
gnome-terminal --title='cfdemSolverIB twoSpheresGlowinskiMPI CFD' -e "bash $casePath/parCFDDEMrun.sh"
#gnome-terminal --title='cfdemSolverIB two settling disks DEM' -e "DEMrun()"
#gnome-terminal --title='cfdemSolverIB twoSpheresGlowinskiMPI DEM' -e "bash $casePath/DEMrun.sh"

View File

@ -0,0 +1,47 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: http://www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volVectorField;
object U;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -1 0 0 0 0];
internalField uniform (0 0 0);
boundaryField
{
inlet
{
type fixedValue;
value uniform (0 0 0);
}
wall
{
type zeroGradient;
}
outlet
{
type fixedValue;//zeroGradient;
value uniform (0 0 0);
}
/*frontAndBack
{
type empty;
}*/
}
// ************************************************************************* //

View File

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

View File

@ -0,0 +1,45 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: http://www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
object p;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -2 0 0 0 0];
internalField uniform 100000;
boundaryField
{
inlet
{
type zeroGradient;
}
wall
{
type zeroGradient;
}
outlet
{
type zeroGradient;//fixedValue;
//value uniform 100000;
}
frontAndBack
{
type empty;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,48 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: http://www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
object phiIB;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -1 0 0 0 0];
internalField uniform 0;
boundaryField
{
inlet
{
//type zeroGradient;
type fixedValue;
value uniform 0;
}
wall
{
type zeroGradient;
}
outlet
{
type fixedValue;
value uniform 0;
//type zeroGradient;
}
frontAndBack
{
type empty;
}
}
// ************************************************************************* //

View File

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

View File

@ -0,0 +1,25 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "constant";
object RASProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
RASModel laminar;//kEpsilon;
turbulence on;
printCoeffs on;
// ************************************************************************* //

View File

@ -0,0 +1,127 @@
/*---------------------------------------------------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.4 |
| \\ / A nd | Web: http://www.openfoam.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "";
case "";
instance "";
local "";
class dictionary;
object couplingProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
//===========================================================================//
// sub-models & settings
modelType none;
couplingInterval 10;
depth 0;
voidFractionModel IB;//bigParticle;//centre; //
locateModel engineIB;//standard;//
meshMotionModel noMeshMotion;
regionModel allRegion;
dataExchangeModel twoWayMPI;//twoWayFiles;
IOModel basicIO;
averagingModel dilute;
clockModel off;
forceModels
(
ShirgaonkarIB
ArchimedesIB
);
momCoupleModels
(
);
turbulenceModelType RASProperties;//LESProperties; //
//===========================================================================//
// sub-model properties
ShirgaonkarIBProps
{
velFieldName "U";
densityFieldName "rho";
pressureFieldName "p";
verbose;
}
ArchimedesIBProps
{
densityFieldName "rho";
gravityFieldName "g";
voidfractionFieldName "voidfractionNext";
}
twoWayFilesProps
{
maxNumberOfParticles 10000;
DEMts 0.00003;
}
twoWayMPIProps
{
maxNumberOfParticles 10100;
liggghtsPath "../DEM/in.liggghts_init";
}
IBProps
{
maxCellsPerParticle 1000;
alphaMin 0.30;
scaleUpVol 1.0;
}
bigParticleProps
{
maxCellsPerParticle 1000;
alphaMin 0.30;
scaleUpVol 1.0;
}
centreProps
{
alphaMin 0.30;
}
dividedProps
{
alphaMin 0.05;
scaleUpVol 1.2;
}
engineIBProps
{
engineProps
{
treeSearch false;
}
zSplit 8;
xySplit 16;
}
// ************************************************************************* //

View File

@ -0,0 +1,39 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "constant";
object dynamicMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dynamicFvMesh dynamicRefineFvMesh;//staticFvMesh;//
dynamicRefineFvMeshCoeffs
{
refineInterval 1;//refine every refineInterval timesteps
field interFace;
lowerRefineLevel .0001;
upperRefineLevel 0.99;
unrefineLevel 10;
nBufferLayers 1;
maxRefinement 2;//maximum refinement level (starts from 0)
maxCells 1000000;
correctFluxes
(
(phi U)
(phi_0 U)
);
dumpLevel false;
}
// ************************************************************************* //

View File

@ -0,0 +1,22 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class uniformDimensionedVectorField;
location "constant";
object g;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -2 0 0 0 0];
value (0 0 -981);
//value (0 0 0);
// ************************************************************************* //

View File

@ -0,0 +1,31 @@
/*---------------------------------------------------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.4 |
| \\ / A nd | Web: http://www.openfoam.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "";
case "";
instance "";
local "";
class dictionary;
object liggghtsCommands;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
liggghtsCommandModels
(
runLiggghts
);
// ************************************************************************* //

View File

@ -0,0 +1,81 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: http://www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object blockMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
convertToMeters 1;
/*vertices
(
(0 -8 -0.05)
(1 -8 -0.05)
(1 4 -0.05)
(0 4 -0.05)
(0 -8 0.05)
(1 -8 0.05)
(1 4 0.05)
(0 4 0.05)
);*/
vertices
(
(0 0 0)
(1 0 0)
(1 1 0)
(0 1 0)
(0 0 4)
(1 0 4)
(1 1 4)
(0 1 4)
);
blocks
(
hex (0 1 2 3 4 5 6 7) (10 10 40) simpleGrading (1 1 1)
//hex (0 1 2 3 4 5 6 7) (120 480 1) simpleGrading (1 1 1)
);
edges
(
);
patches
(
wall inlet
(
(0 3 2 1)
)
wall wall
(
(2 6 5 1)
(0 4 7 3)
(3 7 6 2)
(1 5 4 0)
)
wall outlet
(
(4 5 6 7)
)
/*empty frontAndBack
(
(0 3 2 1)
(4 5 6 7)
)*/
);
mergePatchPairs
(
);
// ************************************************************************* //

View File

@ -0,0 +1,39 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "constant";
object transportProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
transportModel Newtonian;
nu nu [ 0 2 -1 0 0 0 0 ] 0.01;//0.111426;//1.875e-03;//7.5e-03;//0.265883;
CrossPowerLawCoeffs
{
nu0 nu0 [ 0 2 -1 0 0 0 0 ] 1e-06;
nuInf nuInf [ 0 2 -1 0 0 0 0 ] 1e-06;
m m [ 0 0 1 0 0 0 0 ] 1;
n n [ 0 0 0 0 0 0 0 ] 1;
}
BirdCarreauCoeffs
{
nu0 nu0 [ 0 2 -1 0 0 0 0 ] 1e-06;
nuInf nuInf [ 0 2 -1 0 0 0 0 ] 1e-06;
k k [ 0 0 1 0 0 0 0 ] 0;
n n [ 0 0 0 0 0 0 0 ] 1;
}
// ************************************************************************* //

View File

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

View File

@ -0,0 +1,50 @@
# Created by Octave 3.2.3, Fri Jul 15 15:25:22 2011 CEST <alice@alice-desktop>
# name: coord
# type: matrix
# rows: 35
# columns: 4
0.0007668711656441718 4.994152046783626 0.0007668711656441718 4.502923976608187
0.008819018404907975 4.982456140350877 0.009585889570552147 4.479532163742689
0.01878834355828221 4.95906432748538 0.01687116564417178 4.456140350877193
0.02799079754601227 4.923976608187134 0.02377300613496933 4.432748538011696
0.03489263803680982 4.87719298245614 0.03029141104294479 4.409356725146199
0.04064417177914111 4.830409356725146 0.03680981595092025 4.362573099415204
0.04716257668711656 4.7953216374269 0.04447852760736196 4.315789473684211
0.05483128834355828 4.736842105263158 0.05138036809815951 4.257309941520468
0.06096625766871166 4.678362573099415 0.05789877300613497 4.198830409356725
0.06940184049079755 4.608187134502923 0.06403374233128835 4.140350877192982
0.0789877300613497 4.502923976608187 0.0709355828220859 4.081871345029239
0.08857361963190184 4.39766081871345 0.07745398773006135 4.011695906432748
0.09470858895705522 4.327485380116959 0.08588957055214724 3.91812865497076
0.1023773006134969 4.23391812865497 0.09279141104294479 3.83625730994152
0.1108128834355828 4.128654970760234 0.09930981595092024 3.766081871345029
0.1165644171779141 4.046783625730994 0.1058282208588957 3.695906432748538
0.1219325153374233 3.964912280701754 0.111579754601227 3.625730994152047
0.1273006134969325 3.883040935672514 0.1184815950920245 3.555555555555555
0.1345858895705521 3.766081871345029 0.1253834355828221 3.473684210526315
0.1418711656441718 3.637426900584795 0.1334355828220859 3.380116959064327
0.1491564417177914 3.497076023391813 0.1403374233128834 3.298245614035087
0.156058282208589 3.380116959064327 0.147239263803681 3.204678362573099
0.1625766871165644 3.263157894736842 0.1549079754601227 3.111111111111111
0.1706288343558282 3.134502923976608 0.1614263803680982 3.029239766081871
0.1779141104294479 3.029239766081871 0.1679447852760736 2.923976608187134
0.1855828220858896 2.912280701754386 0.1748466257668712 2.830409356725146
0.1924846625766871 2.807017543859649 0.1825153374233129 2.701754385964912
0.1997699386503068 2.690058479532164 0.192101226993865 2.573099415204678
0.2070552147239264 2.56140350877193 0.2001533742331288 2.456140350877193
0.2151073619631902 2.432748538011696 0.2070552147239264 2.350877192982456
0.2223926380368098 2.315789473684211 0.2177914110429448 2.210526315789473
0.2289110429447853 2.210526315789473 0.2269938650306748 2.116959064327485
0.2373466257668712 2.105263157894737 0.236579754601227 2.035087719298246
0.2434815950920245 2.023391812865497 0.2427147239263804 1.976608187134503
0.2492331288343558 1.953216374269006 0.2496165644171779 1.953216374269006
# name: L1
# type: scalar
3
# name: dataLen
# type: matrix
# rows: 3
# columns: 1
35
35
0

View File

@ -0,0 +1,128 @@
# Created by Octave 3.2.3, Fri Jul 15 13:54:15 2011 CEST <alice@FLUID50>
# name: coord
# type: matrix
# rows: 113
# columns: 4
0.0003894080996884735 -0.2761341222879672 0.001557632398753894 -0.512820512820511
0.002725856697819315 -0.7100591715976314 0.003894080996884735 -0.9072978303747519
0.005062305295950155 -1.143984220907299 0.005841121495327103 -1.301775147928993
0.007009345794392523 -1.499013806706113 0.008177570093457943 -1.735700197238657
0.009345794392523364 -1.893491124260354 0.009735202492211837 -2.011834319526628
0.01090342679127726 -2.209072978303748 0.01129283489096573 -2.327416173570018
0.01246105919003115 -2.524654832347139 0.0132398753894081 -2.603550295857989
0.01440809968847352 -2.800788954635109 0.01557632398753894 -2.958579881656803
0.01635514018691589 -3.155818540433923 0.01752336448598131 -3.353057199211044
0.01869158878504673 -3.510848126232741 0.01985981308411215 -3.708086785009861
0.02102803738317757 -3.865877712031558 0.02180685358255452 -4.023668639053254
0.02297507788161994 -4.181459566074951 0.02414330218068536 -4.378698224852071
0.0249221183800623 -4.497041420118343 0.02609034267912773 -4.694280078895464
0.02686915887850467 -4.812623274161735 0.02803738317757009 -4.970414201183432
0.02881619937694704 -5.088757396449704 0.02959501557632399 -5.2465483234714
0.03076323987538941 -5.404339250493097 0.03193146417445483 -5.562130177514792
0.03309968847352025 -5.719921104536489 0.03426791277258567 -5.956607495069033
0.03582554517133956 -6.11439842209073 0.03699376947040498 -6.272189349112425
0.0381619937694704 -6.469428007889546 0.0397196261682243 -6.627218934911243
0.04088785046728972 -6.824457593688363 0.04244548286604361 -7.021696252465484
0.04400311526479751 -7.179487179487179 0.04517133956386293 -7.416173570019724
0.04711838006230529 -7.495069033530571 0.04750778816199377 -7.731755424063117
0.04984423676012461 -7.810650887573965 0.05023364485981308 -8.007889546351084
0.05257009345794392 -8.086785009861932 0.05179127725856698 -8.205128205128204
0.05607476635514019 -8.402366863905325 0.05373831775700934 -8.402366863905325
0.05919003115264797 -8.717948717948717 0.05607476635514019 -8.63905325443787
0.06269470404984423 -9.03353057199211 0.05802180685358255 -8.796844181459566
0.06580996884735202 -9.23076923076923 0.05996884735202492 -8.994082840236686
0.06892523364485981 -9.506903353057199 0.06191588785046729 -9.151873767258383
0.07165109034267912 -9.704142011834319 0.06386292834890965 -9.349112426035504
0.07437694704049844 -9.90138067061144 0.06658878504672897 -9.546351084812624
0.07749221183800623 -10.13806706114398 0.06814641744548286 -9.664694280078896
0.08099688473520249 -10.3353057199211 0.06853582554517133 -9.664694280078896
0.0852803738317757 -10.61143984220907 0.07126168224299065 -9.90138067061144
0.08956386292834891 -10.88757396449704 0.07359813084112149 -10.01972386587771
0.09228971962616822 -11.16370808678501 0.07593457943925233 -10.13806706114398
0.09501557632398754 -11.40039447731755 0.07982866043613707 -10.3353057199211
0.09813084112149532 -11.59763313609468 0.08333333333333333 -10.45364891518738
0.1008566978193146 -11.91321499013807 0.08722741433021806 -10.61143984220907
0.1031931464174455 -12.14990138067061 0.0911214953271028 -10.72978303747534
0.1059190031152648 -12.50493096646943 0.09462616822429906 -10.84812623274162
0.1082554517133956 -12.82051282051282 0.0985202492211838 -11.00591715976331
0.1105919003115265 -13.17554240631164 0.102803738317757 -11.08481262327416
0.1133177570093458 -13.53057199211045 0.1066978193146417 -11.20315581854043
0.1152647975077882 -13.88560157790927 0.1105919003115265 -11.28205128205128
0.1172118380062305 -14.28007889546351 0.1144859813084112 -11.36094674556213
0.1191588785046729 -14.63510848126233 0.1183800623052959 -11.43984220907298
0.1214953271028037 -15.06903353057199 0.1218847352024922 -11.51873767258383
0.1234423676012461 -15.38461538461539 0.1257788161993769 -11.59763313609468
0.1253894080996885 -15.77909270216962 0.1281152647975078 -11.67652859960552
0.1273364485981308 -16.09467455621302 0.1320093457943925 -11.75542406311637
0.1296728971962617 -16.44970414201184 0.1366822429906542 -11.87376725838264
0.131619937694704 -16.7258382642998 0.1401869158878505 -11.95266272189349
0.1335669781931464 -17.0414201183432 0.1433021806853582 -12.07100591715976
0.1359034267912773 -17.31755424063116 0.146417445482866 -12.14990138067061
0.1382398753894081 -17.59368836291913 0.1495327102803738 -12.26824457593688
0.1425233644859813 -17.83037475345168 0.1530373831775701 -12.42603550295858
0.1460280373831776 -18.0276134122288 0.1561526479750779 -12.58382642998028
0.1491433021806854 -18.10650887573965 0.1584890965732087 -12.70216962524655
0.1522585669781931 -18.14595660749507 0.1588785046728972 -12.97830374753452
0.1557632398753894 -18.14595660749507 0.1592679127725857 -13.21499013806706
0.1580996884735202 -18.06706114398422 0.1596573208722741 -13.6094674556213
0.1584890965732087 -17.75147928994083 0.1600467289719626 -13.92504930966469
0.1592679127725857 -17.23865877712031 0.1604361370716511 -14.16173570019724
0.1592679127725857 -17.51479289940828 0.1604361370716511 -14.43786982248521
0.1600467289719626 -16.56804733727811 0.1604361370716511 -14.7534516765286
0.1600467289719626 -16.92307692307692 0.161214953271028 -14.9112426035503
0.1604361370716511 -15.93688362919132 0.1627725856697819 -15.02958579881657
0.1608255451713396 -16.29191321499014 0.1631619937694704 -15.02958579881657
0.1623831775700935 -15.77909270216962 0.1635514018691589 -15.18737672583826
0.1635514018691589 -15.54240631163708 0.1647196261682243 -15.38461538461539
0.1654984423676013 -15.50295857988166 0.1666666666666667 -15.30571992110454
0.1678348909657321 -15.54240631163708 0.169392523364486 -15.22682445759369
0.1701713395638629 -15.62130177514793 0.1721183800623053 -15.22682445759369
0.1736760124610592 -15.70019723865878 0.1744548286604361 -15.18737672583826
0.17601246105919 -15.70019723865878 0.1775700934579439 -15.14792899408284
0.1783489096573209 -15.70019723865878 0.1799065420560748 -15.10848126232742
0.1814641744548287 -15.77909270216962 0.183411214953271 -15.10848126232742
0.183411214953271 -15.81854043392505 0.1873052959501558 -15.06903353057199
0.1865264797507788 -15.93688362919132 0.1911993769470405 -14.95069033530572
0.1904205607476636 -16.09467455621302 0.1931464174454829 -14.83234714003945
0.1935358255451713 -16.17357001972386 0.1954828660436137 -14.7534516765286
0.1962616822429906 -16.25246548323472 0.1974299065420561 -14.5956607495069
0.1997663551401869 -16.29191321499014 0.1993769470404984 -14.47731755424063
0.2017133956386293 -16.25246548323472 0.2005451713395638 -14.28007889546351
0.2040498442367601 -16.17357001972386 0.2024922118380062 -14.08284023668639
0.2067757009345794 -16.13412228796844 0.2024922118380062 -14.12228796844181
0.2087227414330218 -16.05522682445759 0.2040498442367601 -13.84615384615385
0.2114485981308411 -15.93688362919132 0.2059968847352025 -13.64891518737673
0.2137850467289719 -15.81854043392505 0.2071651090342679 -13.41222879684418
0.2165109034267913 -15.70019723865878 0.2091121495327103 -13.17554240631164
0.2176791277258567 -15.5818540433925 0.2098909657320872 -12.93885601577909
0.2200155763239875 -15.34516765285996 0.2114485981308411 -12.74161735700197
0.2219626168224299 -15.14792899408284 0.2126168224299065 -12.50493096646943
0.2231308411214953 -14.95069033530572 0.2137850467289719 -12.22879684418146
0.2254672897196262 -14.67455621301775 0.2153426791277258 -11.91321499013807
0.227803738317757 -14.35897435897436 0.2172897196261682 -11.6370808678501
0.2297507788161994 -14.08284023668639 0.2188473520249221 -11.28205128205128
0.2316978193146417 -13.767258382643 0.2200155763239875 -11.00591715976331
0.2332554517133956 -13.49112426035503 0.2215732087227414 -10.69033530571992
0.2355919003115265 -13.21499013806706 0.2231308411214953 -10.3353057199211
0.2379283489096573 -12.93885601577909 0.2250778816199377 -9.980276134122288
0.2402647975077881 -12.66272189349112 0.2274143302180685 -9.546351084812624
0.242601246105919 -12.38658777120316 0.2274143302180685 -9.585798816568047
0.2453271028037383 -12.14990138067061 0.2293613707165109 -9.191321499013807
0.2472741433021807 -11.95266272189349 0.2313084112149533 -8.757396449704142
0.2492211838006231 -11.7948717948718 0.2332554517133956 -8.481262327416173
0 0 0.235202492211838 -8.205128205128204
0 0 0.2371495327102804 -7.968441814595661
0 0 0.2390965732087227 -7.692307692307692
0 0 0.2410436137071651 -7.455621301775148
0 0 0.2433800623052959 -7.297830374753451
0 0 0.2461059190031153 -7.140039447731755
# name: L1
# type: scalar
3
# name: dataLen
# type: matrix
# rows: 3
# columns: 1
107
113
0

View File

@ -0,0 +1,56 @@
% postproc.m: loads the data necessary and saves the graphs (compared to the reults by glowinski)
clear;
clc;
close all;
% read data from literature
load coord_pos.mat
% read data from simulation
par1=load('../../DEM/post/position_particle_1.txt');
par2=load('../../DEM/post/position_particle_2.txt');
linienstaerke=2;
MarkerGroesse=8;
figure(1)
offset=5-par1(1,4);
h= plot(par1(:,1),offset+par1(:,4),'*',par2(:,1),offset+par2(:,4),'+',coord(1:dataLen(1,1),1+(1-1)*2),coord(1:dataLen(1,1),2+(1-1)*2),'o',coord(1:dataLen(2,1),1+(2-1)*2),coord(1:dataLen(2,1),2+(2-1)*2),'s');
set(h,'LineWidth',linienstaerke,'MarkerSize',MarkerGroesse);
set(gca,'FontSize',14)
axis([0 .25 0 6])
xlabel('time (s)')
ylabel('position (cm)')
title('Comparison of the y-position of two particles','FontSize',15)
legend('following particle','leading particle','following particle Glow.','leading particle Glow.')
set(gca,'FontSize',12)
#print('pos_y_two_part_rec_glow.png')
print('pos_y_two_part_rec_glow.eps','-deps2')
clear;
% read data from literature
load coord_vel.mat
% read data from simulation
par1vel=load('../../DEM/post/velocity_particle_1.txt');
par2vel=load('../../DEM/post/velocity_particle_2.txt');
linienstaerke=2;
MarkerGroesse=8;
figure(2)
h= plot(par1vel(:,1),par1vel(:,4),'*',par2vel(:,1),par2vel(:,4),'+',coord(1:dataLen(1,1),1+(1-1)*2),coord(1:dataLen(1,1),2+(1-1)*2),'o',coord(1:dataLen(2,1),1+(2-1)*2),coord(1:dataLen(2,1),2+(2-1)*2),'s');
set(h,'LineWidth',linienstaerke,'MarkerSize',MarkerGroesse);
set(gca,'FontSize',14)
axis([0 .25 -20 0])
xlabel('time (s)')
ylabel('position (cm)')
title('Comparison of the settling velocity of two particles','FontSize',15)
legend('following particle','leading particle','following particle Glow.','leading particle Glow.')
set(gca,'FontSize',12)
%print('vel_y_two_part_rec_glow.png')
print('vel_y_two_part_rec_glow.eps','-deps2')

View File

@ -0,0 +1,81 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
application interDyMFoam;
startFrom startTime;
startTime 0;
stopAt endTime;
endTime 0.05;
deltaT 0.0003;
writeControl adjustableRunTime;//timeStep;//
writeInterval 0.003;//10;//0.05;//
purgeWrite 0;
writeFormat ascii;
writePrecision 6;
writeCompression uncompressed;
timeFormat general;
timePrecision 6;
runTimeModifiable off;//yes;
adjustTimeStep no;
maxCo 1;
maxDeltaT 1;
// ************************************************************************* //
functions
(
probes
{
type probes;
// Where to load it from
functionObjectLibs ( "libsampling.so" );
// Name of the directory for probe data
name drag;
probeLocations
(
(0.0 0.0 0.0)
);
// Fields to be probed
fields ( particleForces );
// Write at same frequency as fields
outputControl timeStep;//outputTime;
outputInterval 1;
}
);
// ************************************************************************* //

View File

@ -0,0 +1,81 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
application interDyMFoam;
startFrom startTime;
startTime 0;
stopAt endTime;
endTime 0.1;
deltaT 0.0003;
writeControl adjustableRunTime;//timeStep;//
writeInterval 0.003;//10;//0.05;//
purgeWrite 0;
writeFormat ascii;
writePrecision 6;
writeCompression uncompressed;
timeFormat general;
timePrecision 6;
runTimeModifiable off;//yes;
adjustTimeStep no;
maxCo 1;
maxDeltaT 1;
// ************************************************************************* //
functions
(
probes
{
type probes;
// Where to load it from
functionObjectLibs ( "libsampling.so" );
// Name of the directory for probe data
name drag;
probeLocations
(
(0.0 0.0 0.0)
);
// Fields to be probed
fields ( particleForces );
// Write at same frequency as fields
outputControl timeStep;//outputTime;
outputInterval 1;
}
);
// ************************************************************************* //

View File

@ -0,0 +1,86 @@
/*-------------------------------*- C++ -*---------------------------------*\
| ========= |
| \\ / OpenFOAM |
| \\ / |
| \\ / The Open Source CFD Toolbox |
| \\/ http://www.OpenFOAM.org |
\*-------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
note "mesh decomposition control dictionary";
location "system";
object decomposeParDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
numberOfSubdomains 8;
//- Keep owner and neighbour on same processor for faces in zones:
// preserveFaceZones (heater solid1 solid3);
//method scotch;
// method hierarchical;
method simple;
// method metis;
// method manual;
simpleCoeffs
{
n (2 2 2);
delta 0.001;
}
hierarchicalCoeffs
{
n (2 2 1);
delta 0.001;
order xyz;
}
metisCoeffs
{
/*
processorWeights
(
1
1
1
1
);
*/
}
scotchCoeffs
{
//processorWeights
//(
// 1
// 1
// 1
// 1
//);
//writeGraph true;
//strategy "b";
}
manualCoeffs
{
dataFile "decompositionData";
}
//// Is the case distributed
//distributed yes;
//// Per slave (so nProcs-1 entries) the directory above the case.
//roots
//(
// "/tmp"
// "/tmp"
//);
// ************************************************************************* //

View File

@ -0,0 +1,75 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object fvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
ddtSchemes
{
default Euler;
}
gradSchemes
{
default Gauss linear;
grad(p) Gauss linear;
grad(U) Gauss linear;
}
divSchemes
{
default Gauss linear;
div(phi,U) Gauss limitedLinearV 1;
div(phi,k) Gauss limitedLinear 1;
div(phi,epsilon) Gauss limitedLinear 1;
div(phi,R) Gauss limitedLinear 1;
div(R) Gauss linear;
div(phi,nuTilda) Gauss limitedLinear 1;
div((nuEff*dev(grad(U).T()))) Gauss linear;
div(U) Gauss linear;
}
laplacianSchemes
{
default Gauss linear corrected;
laplacian(nuEff,U) Gauss linear corrected;
laplacian((1|A(U)),p) Gauss linear corrected;
laplacian((voidfraction2|A(U)),p) Gauss linear corrected;
laplacian(DkEff,k) Gauss linear corrected;
laplacian(DepsilonEff,epsilon) Gauss linear corrected;
laplacian(DREff,R) Gauss linear corrected;
laplacian(DnuTildaEff,nuTilda) Gauss linear corrected;
laplacian(phiIB) Gauss linear corrected;
laplacian(U) Gauss linear corrected;
}
interpolationSchemes
{
default linear;
interpolate(U) linear;
}
snGradSchemes
{
default corrected;
}
fluxRequired
{
default no;
p ;
}
// ************************************************************************* //

View File

@ -0,0 +1,94 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solvers
{
p
{
solver PCG;
preconditioner DIC;
tolerance 1e-06;
relTol 0;
}
pFinal
{
solver PCG;
preconditioner DIC;
tolerance 1e-06;
relTol 0;
}
U
{
solver PBiCG;
preconditioner DILU;
tolerance 1e-05;
relTol 0;
}
k
{
solver PBiCG;
preconditioner DILU;
tolerance 1e-05;
relTol 0;
}
epsilon
{
solver PBiCG;
preconditioner DILU;
tolerance 1e-05;
relTol 0;
}
R
{
solver PBiCG;
preconditioner DILU;
tolerance 1e-05;
relTol 0;
}
nuTilda
{
solver PBiCG;
preconditioner DILU;
tolerance 1e-05;
relTol 0;
}
phiIB
{
solver PCG;
preconditioner DIC;
tolerance 1e-06;
relTol 0;
}
}
PISO
{
nCorrectors 4;
nNonOrthogonalCorrectors 0;
pRefCell 0;
pRefValue 100000;
}
// ************************************************************************* //

View File

@ -0,0 +1,122 @@
#echo both
atom_style granular
atom_modify map array
communicate single vel yes
#--modified C.K.
#dimension 2
#--modified C.K.
#boundary f f p
boundary f f f
newton off
units si
processors 2 2 2
region reg block 0 1 0 1 0 4 units box
create_box 1 reg
neighbor 0.3 bin
neigh_modify delay 0 binsize 0.01
#Material properties required for new pair styles
fix m1 all property/global youngsModulus peratomtype 5.e7
fix m2 all property/global poissonsRatio peratomtype 0.45
fix m3 all property/global coefficientRestitution peratomtypepair 1 0.9
fix m4 all property/global coefficientFriction peratomtypepair 1 0.5
#pair style
pair_style gran/hertz/history 1 0 #Hertzian without cohesion
pair_coeff * *
#timestep, gravity
timestep 0.00003
#fix gravi all gravity 9.81 vector 0.0 -1.0 0.0
fix gravi all gravity 981 vector 0.0 0.0 -1.0
#walls
fix xwalls all wall/gran/hertz/history 1 0 xplane 0 1 1
#fix ywalls all wall/gran/hertz/history 1 0 yplane -1 1f 1
fix ywalls all wall/gran/hertz/history 1 0 yplane 0 1 1
fix zwalls all wall/gran/hertz/history 1 0 zplane 0 4 1
#--modified C.K. deleted z-wall
#-import mesh from cad:
#fix cad1 all mesh/gran hopperGenauerSALOME.stl 1 1.0 0. 0. 0. 0. 180. 0.
#-use the imported mesh as granular wall
#fix bucket_wall all wall/gran/hertz/history 1 0 mesh/gran 1 cad1
#cfd coupling
fix cfd all couple/cfd couple_every 10 mpi
fix cfd2 all couple/cfd/force
#- create single partciles
#create_atoms 1 single 0.05 0.3 0.025 units box
#create_atoms 1 single 1 0.001 0.0 units box
create_atoms 1 single .5 .5 3.5 units box
create_atoms 1 single .5 .5 3.16 units box
#create_atoms 1 single .5 .5 3.26 units box
#create_atoms 1 single 1.5 -0.001 0.0 units box
#set atom 1 diameter 0.015 density 100 vx 0 vy -.5 vz 0
set atom 1 diameter 0.167 density 1.5 vx 0 vy 0 vz 0
#set atom 2 diameter 0.167 density 1.14 vx 0 vy 0 vz 0
set atom 2 diameter 0.167 density 1.5 vx 0 vy 0 vz 0
#create_atoms 1 single 0.048 0.018 0.05 units box
#set atom 1 diameter 0.001 density 3000 vx 0.1 vy 0 vz 0
#create_atoms 1 single 0.052 0.018 0.05 units box
#set atom 2 diameter 0.001 density 3000 vx -0.1 vy 0 vz 0
variable vx1 equal vx[1]
variable vy1 equal vy[1]
variable vz1 equal vz[1]
variable vx2 equal vx[2]
variable vy2 equal vy[2]
variable vz2 equal vz[2]
variable x1 equal x[1]
variable y1 equal y[1]
variable z1 equal z[1]
variable x2 equal x[2]
variable y2 equal y[2]
variable z2 equal z[2]
variable time equal step*dt
fix extra1 all print 100 "${time} ${vx1} ${vy1} ${vz1}" file ../DEM/post/velocity_particle_1.txt title "%" screen no
fix extra2 all print 100 "${time} ${vx2} ${vy2} ${vz2}" file ../DEM/post/velocity_particle_2.txt title "%" screen no
fix extra3 all print 100 "${time} ${x1} ${y1} ${z1}" file ../DEM/post/position_particle_1.txt title "%" screen no
fix extra4 all print 100 "${time} ${x2} ${y2} ${z2}" file ../DEM/post/position_particle_2.txt title "%" screen no
#apply nve integration to all particles that are inserted as single particles
fix integr all nve/sphere #wenn das ausgeblendet, dann kein vel update
#fix 1 all nve/noforce
#--modified C.K.
#fix 2D all enforce2d
#screen output
compute 1 all erotate/sphere
thermo_style custom step atoms ke c_1 vol
thermo 1000
thermo_modify lost ignore norm no
compute_modify thermo_temp dynamic yes
#insert the first particles so that dump is not empty
#dump myDump all stl 1 ../DEM/post/dump.stl
#run 1
dump dmp all custom 100 ../DEM/post/dump.liggghts_init id type type x y z ix iy iz vx vy vz fx fy fz omegax omegay omegaz radius
#undump myDump
#force : f_couple_cfd[0] f_couple_cfd[1] f_couple_cfd[2]
#node : f_couple_cfd[6]
#cell id : f_couple_cfd[7]
run 1 upto #80000 upto
#write_restart liggghts.restart

View File

@ -0,0 +1 @@
dummyfile

View File

@ -0,0 +1,82 @@
#!/bin/bash
#===================================================================#
# allrun script for testcase as part of test routine
# run settlingTest CFD part
# Christoph Goniva - Feb. 2011
#===================================================================#
#- source CFDEM env vars
. ~/.bashrc
#- include functions
source $CFDEM_SRC_DIR/etc/functions.sh
#--------------------------------------------------------------------------------#
#- define variables
casePath="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")"
logpath=$casePath
headerText="run_parallel_cfdemSolverPiso_ErgunTestMPI_CFDDEM"
logfileName="log_$headerText"
solverName="cfdemSolverIB"
nrProcs="8"
machineFileName="none" # yourMachinefileName | none
debugMode="off" # on | off
testHarnessPath="$CFDEM_TEST_HARNESS_PATH"
runOctave="true"
postproc="false"
#--------------------------------------------------------------------------------#
#- call function to run a parallel CFD-DEM case
parCFDDEMrun $logpath $logfileName $casePath $headerText $solverName $nrProcs $machineFileName $debugMode
if [ $runOctave == "true" ]
then
cd $casePath/CFD/octave
octave postproc.m
evince pos_y_two_part_rec_glow.eps
evince vel_y_two_part_rec_glow.eps
#display pos_y_two_part_rec_glow.png &
#display vel_y_two_part_rec_glow.png &
fi
if [ $postproc == "true" ]
then
#- get VTK data from liggghts dump file
cd $casePath/DEM/post
python -i $CFDEM_LPP_DIR/lpp.py dump.liggghts_init
#- get VTK data from CFD sim
cd $casePath/CFD
foamToVTK
#- start paraview
paraview
#- keep terminal open (if started in new terminal)
echo "...press enter to clean up case"
echo "press Ctr+C to keep data"
read
fi
#- copy log file to test harness
cp ../../$logfileName $testHarnessPath
#- clean up case
echo "deleting data at: $casePath"
rm -r $casePath/CFD/0.*
rm -r $casePath/CFD/VTK
rm -r $casePath/CFD/couplingFiles/*
rm -r $casePath/CFD/processor*
rm -r $casePath/CFD/particles*
rm -r $casePath/CFD/probes
rm -r $casePath/DEM/post/*
rm -r $casePath/DEM/log.*
rm -r $casePath/log_*
echo "done"
#- preserve post directory
echo "dummyfile" >> $casePath/DEM/post/dummy

View File

@ -0,0 +1,22 @@
#!/bin/bash
#===================================================================#
# allrun script for testcase as part of test routine
# run settlingTest
# Christoph Goniva - Sept. 2010
#===================================================================#
#- define variables
casePath="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")"
# check if mesh was built
if [ -d "$casePath/CFD/constant/polyMesh/boundary" ]; then
echo "mesh was built before - using old mesh"
else
echo "mesh needs to be built"
cd $casePath/CFD
blockMesh
fi
#- run parallel CFD-DEM in new terminal
gnome-terminal --title='cfdemSolverPiso ErgunTestMPI CFD' -e "bash $casePath/parCFDDEMrun.sh"

View File

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

View File

@ -0,0 +1,89 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: http://www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volVectorField;
object U;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -1 0 0 0 0];
internalField uniform (0 0 0);
boundaryField
{
wall
{
//type fixedValue;
//value uniform (0 0 0);
type slip;
}
inlet
{
/*type flowRateInletVelocity;
flowRate 0.001;
value uniform (0 0 0);*/
/*type fixedValue;
value uniform (0 0 0.0001);*/
//type zeroGradient;
/* type groovyBC;
variables "Uend=vector(0,0,0.02);tEnd=0.1;";
valueExpression "((time() < tEnd) ? Uend/tEnd*time():Uend)";
value uniform (0 0 0);*/
/*// 2.0.x, 1.6,ext
type timeVaryingUniformFixedValue;
fileName "steps_0p1s";
outOfBounds clamp;
value uniform (0 0 0);*/
// 2.1.x
type uniformFixedValue;
uniformValue table
(
(0.000 (0 0 0.002))
(0.010 (0 0 0.002))
(0.011 (0 0 0.004))
(0.020 (0 0 0.004))
(0.021 (0 0 0.006))
(0.030 (0 0 0.006))
(0.031 (0 0 0.008))
(0.040 (0 0 0.008))
(0.041 (0 0 0.010))
(0.050 (0 0 0.010))
(0.051 (0 0 0.012))
(0.060 (0 0 0.012))
(0.061 (0 0 0.014))
(0.070 (0 0 0.014))
(0.071 (0 0 0.016))
(0.080 (0 0 0.016))
(0.081 (0 0 0.018))
(0.090 (0 0 0.018))
(0.091 (0 0 0.020))
(0.100 (0 0 0.020))
);
}
outlet
{
/*type fluxCorrectedVelocity; //inletOutlet;
value uniform (0 0 0);
inletValue uniform (0 0 0);*/
type zeroGradient;
}
}
// ************************************************************************* //

View File

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

View File

@ -0,0 +1,48 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "0";
object epsilon;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -3 0 0 0 0];
internalField uniform 0.003;
boundaryField
{
wall
{
type epsilonWallFunction;
Cmu 0.09;
kappa 0.41;
E 9.8;
value uniform 0.003;
}
outlet
{
type inletOutlet;
inletValue uniform 0.003;
value uniform 0.003;
}
inlet
{
/*type turbulentMixingLengthDissipationRateInlet;
mixingLength 0.005;
value uniform 0.003;*/
type zeroGradient;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,45 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "0";
object k;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -2 0 0 0 0];
internalField uniform 0.001;
boundaryField
{
wall
{
type kqRWallFunction;
value uniform 0.001;
}
outlet
{
type inletOutlet;
inletValue uniform 0.001;
value uniform 0.001;
}
inlet
{
/*type turbulentIntensityKineticEnergyInlet;
intensity 0.05;
value uniform 0.001;*/
type zeroGradient;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,45 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "0";
object nut;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -1 0 0 0 0];
internalField uniform 0;
boundaryField
{
wall
{
type nutWallFunction;
Cmu 0.09;
kappa 0.41;
E 9.8;
value uniform 0;
}
outlet
{
type calculated;
value uniform 0;
}
inlet
{
type calculated;
value uniform 0;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,43 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: http://www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
object p;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -2 0 0 0 0];
internalField uniform 1.0e5;
boundaryField
{
wall
{
type zeroGradient;
}
inlet
{
type zeroGradient;
//type fixedValue;
//value uniform 100000;
}
outlet
{
//type zeroGradient;
type fixedValue;
value uniform 100000;
}
}
// ************************************************************************* //

View File

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

View File

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

View File

@ -0,0 +1,25 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "constant";
object RASProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
RASModel laminar;
turbulence off;
printCoeffs on;
// ************************************************************************* //

View File

@ -0,0 +1,175 @@
/*---------------------------------------------------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.4 |
| \\ / A nd | Web: http://www.openfoam.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "";
case "";
instance "";
local "";
class dictionary;
object couplingProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
//===========================================================================//
// sub-models & settings
modelType "A"; // A or B
couplingInterval 100;
voidFractionModel divided;
locateModel engine;
meshMotionModel noMeshMotion;
regionModel allRegion;
IOModel "off";
dataExchangeModel twoWayMPI;//twoWayFiles;//oneWayVTK;//
averagingModel dense;//dilute;//
clockModel standardClock;//off;
forceModels
(
//GidaspowDrag
DiFeliceDrag
//KochHillDrag
gradPForce
viscForce
//Archimedes
//volWeightedAverage
//totalMomentumExchange
);
momCoupleModels
(
implicitCouple
);
turbulenceModelType "RASProperties";//"LESProperties";//
//===========================================================================//
// sub-model properties
implicitCoupleProps
{
velFieldName "U";
granVelFieldName "Us";
voidfractionFieldName "voidfraction";
}
ArchimedesProps
{
densityFieldName "rho";
gravityFieldName "g";
}
gradPForceProps
{
pFieldName "p";
densityFieldName "rho";
voidfractionFieldName "voidfraction";
velocityFieldName "U";
//interpolation;
}
viscForceProps
{
velocityFieldName "U";
densityFieldName "rho";
interpolation;
}
volWeightedAverageProps
{
scalarFieldNames
(
voidfraction
);
vectorFieldNames
(
);
upperThreshold 0.999;
lowerThreshold 0;
verbose;
}
totalMomentumExchangeProps
{
implicitMomExFieldName "Ksl";
explicitMomExFieldName "none";
fluidVelFieldName "U";
granVelFieldName "Us";
densityFieldName "rho";
}
GidaspowDragProps
{
velFieldName "U";
densityFieldName "rho";
}
DiFeliceDragProps
{
velFieldName "U";
densityFieldName "rho";
voidfractionFieldName "voidfraction";
}
KochHillDragProps
{
velFieldName "U";
densityFieldName "rho";
}
virtualMassForceProps
{
velFieldName "U";
densityFieldName "rho";
}
oneWayVTKProps
{
couplingFilename "vtk_out%4.4d.vtk";
maxNumberOfParticles 30000;
}
twoWayFilesProps
{
maxNumberOfParticles 10100;
}
centreProps
{
alphaMin 0.10;
}
engineProps
{
treeSearch true;
}
dividedProps
{
alphaMin 0.1;
scaleUpVol 1.0;
}
twoWayMPIProps
{
maxNumberOfParticles 10100;
liggghtsPath "../DEM/in.liggghts_resume";
}
// ************************************************************************* //

View File

@ -0,0 +1,22 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class uniformDimensionedVectorField;
location "constant";
object g;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -2 0 0 0 0];
value ( 0 0 -9.81 );
// ************************************************************************* //

View File

@ -0,0 +1,30 @@
/*---------------------------------------------------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.4 |
| \\ / A nd | Web: http://www.openfoam.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "";
case "";
instance "";
local "";
class dictionary;
object liggghtsCommands;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
liggghtsCommandModels
(
runLiggghts
);
// ************************************************************************* //

View File

@ -0,0 +1,154 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 2.0 |
| \\ / A nd | Web: http://www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object blockMeshDict;
}
// ************************************
meshGenApp blockMesh;
convertToMeters 1;
//64 mm column diameter
//15 cm length
//Width of middle square section
//how many cells in the square section
//how many cells from square section to perimeter
// how many cells from top to bottom
vertices
(
( 0.0069 0.0069 0.0 ) // Vertex fiveoclocksqb = 0
(-0.0069 0.0069 0.0 ) // Vertex sevenoclocksqb = 1
(-0.0069 -0.0069 0.0 ) // Vertex elevenoclocksqb = 2
( 0.0069 -0.0069 0.0 ) // Vertex oneoclocksqb = 3
( 0.00975807358913172 0.00975807357161699 0.0 ) // Vertex fiveoclockcb = 4
(-0.00975807358913172 0.00975807357161699 0.0) // Vertex sevenoclockcb = 5
(-0.00975807358913172 -0.00975807357161699 0.0) // Vertex elevenoclockcb = 6
( 0.00975807358913172 -0.00975807357161699 0.0) // Vertex oneoclockcb = 7
( 0.0069 0.0069 0.0553) // Vertex fiveoclocksqt = 8
(-0.0069 0.0069 0.0553) // Vertex sevenoclocksqt = 9
(-0.0069 -0.0069 0.0553) // Vertex elevenoclocksqt = 10
( 0.0069 -0.0069 0.0553) // Vertex oneoclocksqt = 11
( 0.00975807358913172 0.00975807357161699 0.0553) // Vertex fiveoclockct = 12
(-0.00975807358913172 0.00975807357161699 0.0553) // Vertex sevenoclockct = 13
(-0.00975807358913172 -0.00975807357161699 0.0553) // Vertex elevenoclockct = 14
( 0.00975807358913172 -0.00975807357161699 0.0553) // Vertex oneoclockct = 15
);
blocks
(
//square block
hex (
2 3 0 1
10 11 8 9
)
(8 8 24)
simpleGrading (1 1 1)
//slice1
hex (
1 0 4 5
9 8 12 13
)
(8 4 24)
simpleGrading (1 1 1)
//slice2
hex (
6 2 1 5
14 10 9 13
)
( 4 8 24)
simpleGrading (1 1 1)
//slice3
hex (
6 7 3 2
14 15 11 10
)
(8 4 24)
simpleGrading (1 1 1)
//slice4
hex (
3 7 4 0
11 15 12 8
)
(4 8 24)
simpleGrading (1 1 1)
);
//create the quarter circles
edges
(
arc 4 5 (0.0 0.0138 0.0 )
arc 5 6 (-0.0138 0.0 0.0)
arc 6 7 (0.0 -0.0138 0.0 )
arc 7 4 (0.0138 0.0 0.0)
arc 12 13 (0.0 0.0138 0.0553 )
arc 13 14 (-0.0138 0.0 0.0553 )
arc 14 15 (0.0 -0.0138 0.0553 )
arc 15 12 (0.0138 0.0 0.0553 )
);
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 wall
(
(5 4 12 13)
(5 13 14 6)
(6 14 15 7)
(7 15 12 4)
)
);
mergePatchPairs
(
);

View File

@ -0,0 +1,37 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "constant";
object transportProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
transportModel Newtonian;
nu nu [ 0 2 -1 0 0 0 0 ] 1.5e-04;
CrossPowerLawCoeffs
{
nu0 nu0 [ 0 2 -1 0 0 0 0 ] 1e-06;
nuInf nuInf [ 0 2 -1 0 0 0 0 ] 1e-06;
m m [ 0 0 1 0 0 0 0 ] 1;
n n [ 0 0 0 0 0 0 0 ] 1;
}
BirdCarreauCoeffs
{
nu0 nu0 [ 0 2 -1 0 0 0 0 ] 1e-06;
nuInf nuInf [ 0 2 -1 0 0 0 0 ] 1e-06;
k k [ 0 0 1 0 0 0 0 ] 0;
n n [ 0 0 0 0 0 0 0 ] 1;
}
// ************************************************************************* //

View File

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

View File

@ -0,0 +1,69 @@
function [data,colname]=loaddata(filename,columns,headerlines)
% data = loaddata(filename,columns,headerlines)
% data = loaddata(filename,0,headerlines): automatc detection of
% columns by word count in first headerline or first data line
% (if headerline==0), separated by blanks or tabs
% columns=-1: write colum assignment code lines
% works only if headerline>0 and colnames separated by
% not more than 1 blank!
% columns=-2: columns separated by 2 blanks (fluent/scheme auswertung-instat.scm)
% [data, colname] = loaddata(filename,0,headerlines)
% colname = cell string array of column names from headerline
fprintf(1,'loading %s ... ', filename);
f=fopen(filename,'r');
if f==-1
fprintf(1,'\n*** error: could not open "%s" ...\n', filename);
data=[];
else
for i=1:headerlines
if i==1 s=fgets(f); else fgets(f); end
end
if headerlines==0
s=fgets(f); frewind(f);
end
if columns<=0 % & headerlines>=1
fprintf(1,'\n');
fprintf(1,' %s',s);
pos = findstr(sprintf('\t'),s); % trennzeichenpositionen in zeile suchen
if length(pos)>0
endpos=length(s);
%if isspace(s(endpos-1)) endpos=endpos-1; end
pos = [0 pos(1,:) endpos]; % anfangs- und endposition hinzuf<EFBFBD>gen
elseif columns==-2 % spalteneintr<EFBFBD>ge durch 2 blanks getrennt (fluent/scheme)
pos=[0];
for i=1:length(s)-1
if isspace(s(i)) & isspace(s(i+1))
pos(end+1)=i+1;
end
end
pos(end+1)=length(s);
else % spalteneintr<EFBFBD>ge durch blanks getrennt
%pos = findstr(' ',s); % trennzeichenpositionen in zeile suchen
pos=[];
word=0;
for i=1:length(s)
if isspace(s(i))
word=0;
elseif ~word
word=1;
pos(end+1)=i-1;
end
end
pos(end+1)=length(s);
end
if headerlines>=1
for i=1:length(pos)-1 % alle spalten
colname{i}=s(pos(i)+1:pos(i+1)-1);
if columns==-1 fprintf(' = data(strmatch(''%s'',colname),:); %% column %d\n', colname{i},i); end
if columns==-2 fprintf('%% column %d: %s\n', i, colname{i}); end
end
end
columns = length(pos)-1;
fprintf(1,' total: %d columns ',columns);
end
data=fscanf(f,'%f',[columns,inf]);
fclose(f);
fprintf(1,'done.\n');
end

View File

@ -0,0 +1,96 @@
close all;
clear;
clc;
%====================================%
% simulation data 1
%====================================%
%path = '../probes/0/p';
path = '../probes/0/p';
columns=22;
headerlines=4;
data = loaddata(path,columns,headerlines);
data=transpose(data);
[x,y]=size(data)
dp_sim = (data(:,2)-data(:,y))/10000;
t_sim = data(:,1);
%fprintf('final pressureDrop of sim = %f Pa\n',dp_sim(length(dp_sim)) )
%====================================%
% analytical calculation
%====================================%
%===================
% Ergun Equation
%===================
fprintf('\ncalc Ergun eqn:\n')
dp = 0.001 % particle diameter
phip = 1 % sphericity
epsilon = 0.451335 % void fraction
Ustart = 0.002
Uend = 0.02
timeStepSize = 0.001; % time interval of pressure data
Tstart = 0;
Tend = t_sim(length(t_sim));
deltaU=(Uend-Ustart)/((Tend-Tstart)/timeStepSize);
U = Ustart+deltaU:deltaU:Uend; % velocity over time
Ua = U / epsilon; % physical velocity
L = 0.0156 % length of bed
rhoG = 10 % density in kg/m3
nuG = 1.5*10^-4 % kinemat Visk in m2/s
muG = nuG*rhoG % dynam visc in Pa s
dpErgun= L * (
150*((1-epsilon)^2/epsilon^3)*((muG.*U)/(phip*dp)^2)
+1.75*((1-epsilon)/epsilon^3)*((rhoG.*U.^2)/(phip*dp))
)/10000/rhoG;
fprintf('NOTE: this pressure is divided by density (according to CFD solver)\n')
fprintf('so the result does not depend on density\n')
%fprintf('final pressure drop (Ergun eqn)= %f Pa\n',dpErgun)
%==================================
% min fluidization velocity in m/s
%==================================
rhoP = 2000 % particle density in kg/m3
g = 9.81 % gravity m/s2
Umf = dp^2*(rhoP-rhoG)*g/(150*muG)*(epsilon^3*phip^2)/(1-epsilon)
ReMF = Umf*dp*rhoG/muG % must be <20 !!!
%Umf = sqrt(phip*dp^2/1.75*(rhoP-rhoG)/rhoG*g*epsilon^3) % Re>1000
dpUmf= L * (
150*((1-epsilon)^2/epsilon^3)*((muG.*Umf)/(phip*dp)^2)
+1.75*((1-epsilon)/epsilon^3)*((rhoG.*Umf.^2)/(phip*dp))
)/10000/rhoG;
%====================================%
% plot data
%====================================%
length(U)
length(dp_sim)
figure(2)
plot(U,dp_sim)
title("Ergun pressure drop vs. simulation")
a=strcat("analytical (Ergun), Umf=",num2str(Umf),", dpUmf=",num2str(dpUmf));
legend(a,"simulation")
xlabel("velocity in [m/s]")
ylabel("pressure drop [bar]")
axis([0,Uend,0,dpErgun(length(dpErgun))])
figure(1)
plot(U,dpErgun,U,dp_sim,[Umf,Uend],dpUmf*ones(1,2))
title("Ergun pressure drop vs. simulation")
a=strcat("analytical (Ergun), Umf=",num2str(Umf),", dpUmf=",num2str(dpUmf));
legend(a,"simulation")
xlabel("velocity in [m/s]")
ylabel("pressure drop [bar]")
axis([0,Uend,0,dpErgun(length(dpErgun))])
%print('cfdemSolverPiso_settlingTest.eps','-deps2')
print -color "cfdemSolverPiso_ErgunTestMPI.eps"
replot;

View File

@ -0,0 +1,22 @@
(
(0.000 (0 0 0.002))
(0.010 (0 0 0.002))
(0.011 (0 0 0.004))
(0.020 (0 0 0.004))
(0.021 (0 0 0.006))
(0.030 (0 0 0.006))
(0.031 (0 0 0.008))
(0.040 (0 0 0.008))
(0.041 (0 0 0.010))
(0.050 (0 0 0.010))
(0.051 (0 0 0.012))
(0.060 (0 0 0.012))
(0.061 (0 0 0.014))
(0.070 (0 0 0.014))
(0.071 (0 0 0.016))
(0.080 (0 0 0.016))
(0.081 (0 0 0.018))
(0.090 (0 0 0.018))
(0.091 (0 0 0.020))
(0.100 (0 0 0.020))
)

View File

@ -0,0 +1,117 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
application pisoFoam;
startFrom startTime;
startTime 0;
stopAt endTime;
endTime 0.1;//0.01;
deltaT 0.001;
writeControl adjustableRunTime;
writeInterval 0.001;//0.01;
purgeWrite 0;
writeFormat ascii;
writePrecision 6;
writeCompression uncompressed;
timeFormat general;
timePrecision 6;
runTimeModifiable yes;
adjustTimeStep no;
maxCo 0.1;
//libs ( "libgroovyBC.so" );
functions
(
probes
{
type probes;
// Where to load it from
functionObjectLibs ( "libsampling.so" );
// Name of the directory for probe data
name probes;
probeLocations
(
(0 0 0.0001)
(0 0 0.0026)
(0 0 0.0051)
(0 0 0.0076)
(0 0 0.0101)
(0 0 0.0126)
(0 0 0.0151)
(0 0 0.0176)
(0 0 0.0201)
(0 0 0.0226)
(0 0 0.0251)
(0 0 0.0276)
(0 0 0.0301)
(0 0 0.0326)
(0 0 0.0351)
(0 0 0.0375)
(0 0 0.0401)
(0 0 0.0426)
(0 0 0.0451)
(0 0 0.0476)
(0 0 0.0529)
);
// Fields to be probed
fields ( p U voidfraction volAverage_voidfraction);
// Write at same frequency as fields
outputControl timeStep;//outputTime;
outputInterval 1;
}
/*pressureDrop
{
type patchAverage;
functionObjectLibs
(
"libsimpleFunctionObjects.so"
);
verbose true;
patches
(
inlet
outlet
);
fields
(
p
);
factor 1;
}*/
);
// ************************************************************************* //

View File

@ -0,0 +1,117 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
application pisoFoam;
startFrom startTime;
startTime 0;
stopAt endTime;
endTime 0.1;//0.01;
deltaT 0.001;
writeControl adjustableRunTime;
writeInterval 0.001;//0.01;
purgeWrite 0;
writeFormat ascii;
writePrecision 6;
writeCompression uncompressed;
timeFormat general;
timePrecision 6;
runTimeModifiable yes;
adjustTimeStep no;
maxCo 0.1;
libs ("libOpenFOAM.so" "libgroovyBC.so");
functions
(
probes
{
type probes;
// Where to load it from
functionObjectLibs ( "libsampling.so" );
// Name of the directory for probe data
name probes;
probeLocations
(
(0 0 0.0001)
(0 0 0.0026)
(0 0 0.0051)
(0 0 0.0076)
(0 0 0.0101)
(0 0 0.0126)
(0 0 0.0151)
(0 0 0.0176)
(0 0 0.0201)
(0 0 0.0226)
(0 0 0.0251)
(0 0 0.0276)
(0 0 0.0301)
(0 0 0.0326)
(0 0 0.0351)
(0 0 0.0375)
(0 0 0.0401)
(0 0 0.0426)
(0 0 0.0451)
(0 0 0.0476)
(0 0 0.0529)
);
// Fields to be probed
fields ( p U voidfraction volAverage_voidfraction);
// Write at same frequency as fields
outputControl timeStep;//outputTime;
outputInterval 1;
}
/*pressureDrop
{
type patchAverage;
functionObjectLibs
(
"libsimpleFunctionObjects.so"
);
verbose true;
patches
(
inlet
outlet
);
fields
(
p
);
factor 1;
}*/
);
// ************************************************************************* //

View File

@ -0,0 +1,86 @@
/*-------------------------------*- C++ -*---------------------------------*\
| ========= |
| \\ / OpenFOAM |
| \\ / |
| \\ / The Open Source CFD Toolbox |
| \\/ http://www.OpenFOAM.org |
\*-------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
note "mesh decomposition control dictionary";
location "system";
object decomposeParDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
numberOfSubdomains 8;
//- Keep owner and neighbour on same processor for faces in zones:
// preserveFaceZones (heater solid1 solid3);
//method scotch;
// method hierarchical;
method simple;
// method metis;
// method manual;
simpleCoeffs
{
n (2 2 2);
delta 0.001;
}
hierarchicalCoeffs
{
n (2 2 1);
delta 0.001;
order xyz;
}
metisCoeffs
{
/*
processorWeights
(
1
1
1
1
);
*/
}
scotchCoeffs
{
//processorWeights
//(
// 1
// 1
// 1
// 1
//);
//writeGraph true;
//strategy "b";
}
manualCoeffs
{
dataFile "decompositionData";
}
//// Is the case distributed
//distributed yes;
//// Per slave (so nProcs-1 entries) the directory above the case.
//roots
//(
// "/tmp"
// "/tmp"
//);
// ************************************************************************* //

View File

@ -0,0 +1,33 @@
FoamFile
{
version 2.0;
format ascii;
root "/.automount/werner/Werner/bgschaid/bgschaid-foamStuff/DepositionTests";
case "neutralTest";
instance "system";
local "";
class dictionary;
object funkySetFieldsDict;
}
expressions
(
init
{
field voidfraction;
expression "1";
valuePatches 2(inlet outlet); // set value 1 at those patches
}
setGamma
{
field voidfraction;
expression "0.43";
//condition "pow(pow(pos().x-0.2,2) + pow(pos().y-0,2)+ pow(pos().z-0,2),0.5) < 0.04";
condition "pos().z < 0.01467 && pos().z > 0.0";
keepPatches true;
//valuePatches 1(inlet); // set value 1 at those patches
}
);

View File

@ -0,0 +1,76 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object fvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
ddtSchemes
{
default Euler;
}
gradSchemes
{
default Gauss linear;
grad(p) Gauss linear;
grad(U) Gauss linear;
}
divSchemes
{
default Gauss linear;
div(phi,U) Gauss limitedLinearV 1;
div(phi,k) Gauss limitedLinear 1;
div(phi,epsilon) Gauss limitedLinear 1;
div(phi,R) Gauss limitedLinear 1;
div(R) Gauss linear;
div(phi,nuTilda) Gauss limitedLinear 1;
div((viscousTerm*dev(grad(U).T()))) Gauss linear;
div((nu*dev(grad(U).T()))) Gauss linear;
div((nuEff*dev(grad(U).T()))) Gauss linear;
}
laplacianSchemes
{
default Gauss linear corrected;
laplacian(viscousTerm,U) Gauss linear corrected;
laplacian(nu,U) Gauss linear corrected;
laplacian(nuEff,U) Gauss linear corrected;
laplacian((1|A(U)),p) Gauss linear corrected;
laplacian((voidfraction2|A(U)),p) Gauss linear corrected;
laplacian(DkEff,k) Gauss linear corrected;
laplacian(DepsilonEff,epsilon) Gauss linear corrected;
laplacian(DREff,R) Gauss linear corrected;
laplacian(DnuTildaEff,nuTilda) Gauss linear corrected;
}
interpolationSchemes
{
default linear;
interpolate(U) linear;
}
snGradSchemes
{
default corrected;
}
fluxRequired
{
default no;
p ;
}
// ************************************************************************* //

View File

@ -0,0 +1,86 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solvers
{
p
{
solver PCG;
preconditioner DIC;
tolerance 1e-06;
relTol 0.1;
}
pFinal
{
solver PCG;
preconditioner DIC;
tolerance 1e-06;
relTol 0;
}
U
{
solver PBiCG;
preconditioner DILU;
tolerance 1e-05;
relTol 0;
}
k
{
solver PBiCG;
preconditioner DILU;
tolerance 1e-05;
relTol 0;
}
epsilon
{
solver PBiCG;
preconditioner DILU;
tolerance 1e-05;
relTol 0;
}
R
{
solver PBiCG;
preconditioner DILU;
tolerance 1e-05;
relTol 0;
}
nuTilda
{
solver PBiCG;
preconditioner DILU;
tolerance 1e-05;
relTol 0;
}
}
PISO
{
nCorrectors 4;
nNonOrthogonalCorrectors 1;
pRefCell 0;
pRefValue 0;
}
// ************************************************************************* //

View File

@ -0,0 +1,65 @@
# Pour granular particles into chute container, then induce flow
atom_style granular
atom_modify map array
communicate single vel yes
boundary m m m
newton off
units si
region reg block -0.015 0.015 -0.015 0.015 -0.001 0.0554 units box
create_box 1 reg
neighbor 0.001 bin
neigh_modify delay 0
#Material properties required for new pair styles
fix m1 all property/global youngsModulus peratomtype 5.e6
fix m2 all property/global poissonsRatio peratomtype 0.45
fix m3 all property/global coefficientRestitution peratomtypepair 1 0.3
fix m4 all property/global coefficientFriction peratomtypepair 1 0.5
#pair style
pair_style gran/hertz/history 1 0 #Hertzian without cohesion
pair_coeff * *
#timestep, gravity
timestep 0.00001
fix gravi all gravity 9.81 vector 0.0 0.0 -1.0
#walls
fix zwalls all wall/gran/hertz/history 1 0 zplane 0.0 0.0553 1
fix cylwalls all wall/gran/hertz/history 1 0 zcylinder 0.01385 1
#cfd coupling
#fix cfd all couple/cfd
#particle insertion
group nve_group region reg
region bc cylinder z 0.0 0.0 0.012 0.02 0.03 units box
fix ins nve_group pour 10000 1 1 vol 0.7 100 diam uniform 0.001 0.001 dens uniform 200 200 vel uniform 0. 0. 0. 0. -1.0 region bc
#apply nve integration to all particles that are inserted as single particles
fix integr nve_group nve/sphere
#screen output
compute 1 all erotate/sphere
thermo_style custom step atoms ke c_1 vol
thermo 1000
thermo_modify lost ignore norm no
compute_modify thermo_temp dynamic yes
#insert the first particles so that dump is not empty
run 1
dump dmp all custom 5000 post/dump.liggghts_init id type type x y z ix iy iz vx vy vz fx fy fz omegax omegay omegaz radius
#force : f_couple_cfd[0] f_couple_cfd[1] f_couple_cfd[2]
#node : f_couple_cfd[6]
#cell id : f_couple_cfd[7]
run 10000 upto
write_restart liggghts.restart

View File

@ -0,0 +1,72 @@
# Pour granular particles into chute container, then induce flow
atom_style granular
atom_modify map array
communicate single vel yes
boundary m m m
newton off
units si
processors 2 2 2
#read the restart file
read_restart ../DEM/liggghts.restart
#do not do this here, the simulation box is in the restart file!
#region reg block -0.015 0.015 -0.015 0.015 -0.001 0.0554 units box
#create_box 1 reg
neighbor 0.0005 bin
neigh_modify delay 0
#Material properties required for new pair styles
fix m1 all property/global youngsModulus peratomtype 5.e6
fix m2 all property/global poissonsRatio peratomtype 0.45
fix m3 all property/global coefficientRestitution peratomtypepair 1 0.3
fix m4 all property/global coefficientFriction peratomtypepair 1 0.5
#pair style
pair_style gran/hertz/history 1 0 #Hertzian without cohesion
pair_coeff * *
#timestep, gravity
timestep 0.00001
fix gravi all gravity 9.81 vector 0.0 0.0 -1.0
#walls
fix zwalls all wall/gran/hertz/history 1 0 zplane 0.0 0.0553 1
fix cylwalls all wall/gran/hertz/history 1 0 zcylinder 0.01385 1
# change the particles density
set group all density 2000
#cfd coupling
fix cfd all couple/cfd couple_every 100 mpi
fix cfd2 all couple/cfd/force
#apply nve integration to all particles that are inserted as single particles
#group nve_group region reg
fix integr nve_group nve/sphere
#center of mass
compute centerOfMass all com
#compute total dragforce
#compute dragtotal all reduce sum f_dragforce[1] f_dragforce[2] f_dragforce[3]
#screen output
compute 1 all erotate/sphere
thermo_style custom step atoms ke c_1 vol c_centerOfMass[3] #c_dragtotal[1] c_dragtotal[2] c_dragtotal[3]
thermo 10
thermo_modify lost ignore norm no
compute_modify thermo_temp dynamic yes
#insert the first particles so that dump is not empty
dump myDump all stl 1 post/dump_*.stl
#run 1
dump dmp all custom 5000 ../DEM/post/dump*.liggghts_restart id type type x y z ix iy iz vx vy vz fx fy fz omegax omegay omegaz radius
undump myDump
run 1

View File

@ -0,0 +1 @@
dummyfile

View File

@ -0,0 +1,100 @@
#!/bin/bash
#===================================================================#
# allrun script for testcase as part of test routine
# run settlingTest CFD part
# Christoph Goniva - Feb. 2011
#===================================================================#
#- source CFDEM env vars
. ~/.bashrc
#- include functions
source $CFDEM_SRC_DIR/etc/functions.sh
#--------------------------------------------------------------------------------#
#- define variables
casePath="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")"
logpath=$casePath
headerText="run_parallel_cfdemSolverPiso_ErgunTestMPI_CFDDEM"
logfileName="log_$headerText"
solverName="cfdemSolverPiso"
nrProcs="8"
machineFileName="none" # yourMachinefileName | none
debugMode="off" # on | off
testHarnessPath="$CFDEM_TEST_HARNESS_PATH"
runOctave="true"
postproc="false"
#--------------------------------------------------------------------------------#
#- call function to run a parallel CFD-DEM case
parCFDDEMrun $logpath $logfileName $casePath $headerText $solverName $nrProcs $machineFileName $debugMode
if [ $runOctave == "true" ]
then
#------------------------------#
# octave
#- change path
cd octave
#- rmove old graph
rm cfdemSolverPiso_ErgunTestMPI.eps
#- run octave
octave totalPressureDrop.m
#- show plot
evince cfdemSolverPiso_ErgunTestMPI.eps
#- copy log file to test harness
cp ../../$logfileName $testHarnessPath
cp cfdemSolverPiso_ErgunTestMPI.eps $testHarnessPath
fi
if [ $postproc == "true" ]
then
#- keep terminal open (if started in new terminal)
echo "simulation finisehd? ...press enter to proceed"
read
#- get VTK data from liggghts dump file
cd $casePath/DEM/post
python -i $CFDEM_LPP_DIR/lpp.py dump*.liggghts_restart
#- get VTK data from CFD sim
cd $casePath/CFD
foamToVTK #- serial run of foamToVTK
#source $CFDEM_SRC_DIR/etc/functions.sh #- include functions
#pseudoParallelRun "foamToVTK" $nrPostProcProcessors #- pseudo parallel run of foamToVTK
#- start paraview
paraview
#- keep terminal open (if started in new terminal)
echo "...press enter to clean up case"
echo "press Ctr+C to keep data"
read
fi
#- clean up case
echo "deleting data at: $casePath :\n"
rm -r $casePath/CFD/0.*
rm -r $casePath/CFD/log.*
rm -r $casePath/CFD/octave/octave-core
rm -r $casePath/CFD/VTK
rm -r $casePath/CFD/processor*
rm -r $casePath/CFD/couplingFiles/*
rm -r $casePath/DEM/post/*
rm -r $casePath/DEM/log.*
rm -r $casePath/DEM/liggghts.restartCFDEM*
rm -r $casePath/CFD/probes
rm -r $casePath/CFD/particles
rm -r $casePath/CFD/clockData
echo "done"
#- preserve post directory
echo "dummyfile" >> $casePath/DEM/post/dummy

View File

@ -0,0 +1,114 @@
#!/bin/bash
#===================================================================#
# allrun script for testcase as part of test routine
# run settlingTest
# Christoph Goniva - Sept. 2010
#===================================================================#
#- define variables
casePath="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")"
runOctave="true"
postproc="false"
# check if mesh was built
if [ -d "$casePath/CFD/constant/polyMesh/boundary" ]; then
echo "mesh was built before - using old mesh"
else
echo "mesh needs to be built"
cd $casePath/CFD
blockMesh
fi
#-------------------------------------------------------#
# adapt settings for init run
cp $casePath/CFD/constant/liggghtsCommands_init $casePath/CFD/constant/liggghtsCommands
cp $casePath/CFD/constant/couplingProperties_init $casePath/CFD/constant/couplingProperties
cp $casePath/CFD/system/controlDict_init $casePath/CFD/system/controlDict
#-------------------------------------------------------#
#- run parallel CFD-DEM in new terminal
gnome-terminal --title='cfdemSolverPiso ErgunTestMPI_restart CFD' -e "bash $casePath/parCFDDEMrun.sh"
#- wait until sim has finished then run octave
echo "simulation finished? ...press enter to proceed"
read
#-------------------------------------------------------#
# adapt settings for init or restart run
cp $casePath/CFD/constant/liggghtsCommands_restart $casePath/CFD/constant/liggghtsCommands
cp $casePath/CFD/constant/couplingProperties_restart $casePath/CFD/constant/couplingProperties
cp $casePath/CFD/system/controlDict_restart $casePath/CFD/system/controlDict
#- run parallel CFD-DEM in new terminal
gnome-terminal --title='cfdemSolverPiso ErgunTestMPI_restart CFD' -e "bash $casePath/parCFDDEMrun.sh"
#- wait until sim has finished then run octave
echo "simulation finished? ...press enter to proceed"
read
#-------------------------------------------------------#
if [ $runOctave == "true" ]
then
#- change path
cd $casePath/CFD/octave
#- rmove old graph
rm cfdemSolverPiso_ErgunTestMPI.eps
#- run octave
octave totalPressureDrop.m
#- show plot
evince cfdemSolverPiso_ErgunTestMPI.eps
#- copy log file to test harness
cp $casePath/../$logfileName $testHarnessPath
cp cfdemSolverPiso_ErgunTestMPI.eps $testHarnessPath
fi
if [ $postproc == "true" ]
then
#- keep terminal open (if started in new terminal)
echo "simulation finisehd? ...press enter to proceed"
read
#- get VTK data from liggghts dump file
cd $casePath/DEM/post
python -i $CFDEM_LPP_DIR/lpp.py dump.liggghts_restart
#- get VTK data from CFD sim
cd $casePath/CFD
foamToVTK #- serial run of foamToVTK
#source $CFDEM_SRC_DIR/etc/functions.sh #- include functions
#pseudoParallelRun "foamToVTK" $nrPostProcProcessors #- pseudo parallel run of foamToVTK
#- start paraview
paraview
#- keep terminal open (if started in new terminal)
echo "...press enter to clean up case"
echo "press Ctr+C to keep data"
read
fi
#- clean up case
rm -rf $casePath/CFD/0.*
rm -r $casePath/CFD/clockData
rm -rf $casePath/CFD/processor*
rm -r $casePath/CFD/VTK
rm -rf $casePath/CFD/patchAverage_pressureDrop
rm -rf $casePath/CFD/probes
rm -rf $casePath/CFD/particles
rm -r $casePath/CFD/log.*
rm $casePath/log.liggghts
rm $casePath/DEM/liggghts.restartCFDEM*
rm $casePath/DEM/post/dump.*
rm -r $casePath/DEM/log.*
#- preserve post directory
echo "dummyfile" >> $casePath/DEM/post/dummy

View File

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

View File

@ -0,0 +1,89 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: http://www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volVectorField;
object U;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -1 0 0 0 0];
internalField uniform (0 0 0);
boundaryField
{
wall
{
//type fixedValue;
//value uniform (0 0 0);
type slip;
}
inlet
{
/*type flowRateInletVelocity;
flowRate 0.001;
value uniform (0 0 0);*/
/*type fixedValue;
value uniform (0 0 0.0001);*/
//type zeroGradient;
/* type groovyBC;
variables "Uend=vector(0,0,0.02);tEnd=0.1;";
valueExpression "((time() < tEnd) ? Uend/tEnd*time():Uend)";
value uniform (0 0 0);*/
/*// 2.0.x, 1.6,ext
type timeVaryingUniformFixedValue;
fileName "steps_0p1s";
outOfBounds clamp;
value uniform (0 0 0);*/
// 2.1.x
type uniformFixedValue;
uniformValue table
(
(0.000 (0 0 0.002))
(0.010 (0 0 0.002))
(0.011 (0 0 0.004))
(0.020 (0 0 0.004))
(0.021 (0 0 0.006))
(0.030 (0 0 0.006))
(0.031 (0 0 0.008))
(0.040 (0 0 0.008))
(0.041 (0 0 0.010))
(0.050 (0 0 0.010))
(0.051 (0 0 0.012))
(0.060 (0 0 0.012))
(0.061 (0 0 0.014))
(0.070 (0 0 0.014))
(0.071 (0 0 0.016))
(0.080 (0 0 0.016))
(0.081 (0 0 0.018))
(0.090 (0 0 0.018))
(0.091 (0 0 0.020))
(0.100 (0 0 0.020))
);
}
outlet
{
/*type fluxCorrectedVelocity; //inletOutlet;
value uniform (0 0 0);
inletValue uniform (0 0 0);*/
type zeroGradient;
}
}
// ************************************************************************* //

View File

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

View File

@ -0,0 +1,48 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "0";
object epsilon;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -3 0 0 0 0];
internalField uniform 0.003;
boundaryField
{
wall
{
type epsilonWallFunction;
Cmu 0.09;
kappa 0.41;
E 9.8;
value uniform 0.003;
}
outlet
{
type inletOutlet;
inletValue uniform 0.003;
value uniform 0.003;
}
inlet
{
/*type turbulentMixingLengthDissipationRateInlet;
mixingLength 0.005;
value uniform 0.003;*/
type zeroGradient;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,45 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "0";
object k;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -2 0 0 0 0];
internalField uniform 0.001;
boundaryField
{
wall
{
type kqRWallFunction;
value uniform 0.001;
}
outlet
{
type inletOutlet;
inletValue uniform 0.001;
value uniform 0.001;
}
inlet
{
/*type turbulentIntensityKineticEnergyInlet;
intensity 0.05;
value uniform 0.001;*/
type zeroGradient;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,45 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "0";
object nut;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -1 0 0 0 0];
internalField uniform 0;
boundaryField
{
wall
{
type nutWallFunction;
Cmu 0.09;
kappa 0.41;
E 9.8;
value uniform 0;
}
outlet
{
type calculated;
value uniform 0;
}
inlet
{
type calculated;
value uniform 0;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,43 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: http://www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
object p;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -2 0 0 0 0];
internalField uniform 1.0e5;
boundaryField
{
wall
{
type zeroGradient;
}
inlet
{
type zeroGradient;
//type fixedValue;
//value uniform 100000;
}
outlet
{
//type zeroGradient;
type fixedValue;
value uniform 100000;
}
}
// ************************************************************************* //

View File

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

View File

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

View File

@ -0,0 +1,25 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "constant";
object RASProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
RASModel laminar;
turbulence off;
printCoeffs on;
// ************************************************************************* //

View File

@ -0,0 +1,175 @@
/*---------------------------------------------------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.4 |
| \\ / A nd | Web: http://www.openfoam.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "";
case "";
instance "";
local "";
class dictionary;
object couplingProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
//===========================================================================//
// sub-models & settings
verbous;
modelType "A"; // A or B
couplingInterval 100;
voidFractionModel divided;
locateModel engine;
meshMotionModel noMeshMotion;
regionModel allRegion;
IOModel "basicIO";
dataExchangeModel twoWayMPI;//twoWayFiles;//oneWayVTK;//
averagingModel dense;//dilute;//
clockModel off;
forceModels
(
//GidaspowDrag
DiFeliceDrag
//KochHillDrag
gradPForce
viscForce
//Archimedes
//volWeightedAverage
//totalMomentumExchange
);
momCoupleModels
(
implicitCouple
);
turbulenceModelType "RASProperties";//"LESProperties";//
//===========================================================================//
// sub-model properties
implicitCoupleProps
{
velFieldName "U";
granVelFieldName "Us";
voidfractionFieldName "voidfraction";
}
ArchimedesProps
{
densityFieldName "rho";
gravityFieldName "g";
}
gradPForceProps
{
pFieldName "p";
densityFieldName "rho";
voidfractionFieldName "voidfraction";
velocityFieldName "U";
//interpolation;
}
viscForceProps
{
velocityFieldName "U";
densityFieldName "rho";
interpolation;
}
volWeightedAverageProps
{
scalarFieldNames
(
voidfraction
);
vectorFieldNames
(
);
upperThreshold 0.999;
lowerThreshold 0;
verbous;
}
totalMomentumExchangeProps
{
implicitMomExFieldName "Ksl";
explicitMomExFieldName "none";
fluidVelFieldName "U";
granVelFieldName "Us";
densityFieldName "rho";
}
GidaspowDragProps
{
velFieldName "U";
densityFieldName "rho";
}
DiFeliceDragProps
{
velFieldName "U";
densityFieldName "rho";
voidfractionFieldName "voidfraction";
}
KochHillDragProps
{
velFieldName "U";
densityFieldName "rho";
}
virtualMassForceProps
{
velFieldName "U";
densityFieldName "rho";
}
oneWayVTKProps
{
couplingFilename "vtk_out%4.4d.vtk";
maxNumberOfParticles 30000;
}
twoWayFilesProps
{
maxNumberOfParticles 10100;
}
centreProps
{
alphaMin 0.10;
}
engineProps
{
treeSearch true;
}
dividedProps
{
alphaMin 0.1;
scaleUpVol 1.0;
}
twoWayMPIProps
{
maxNumberOfParticles 10100;
liggghtsPath "../DEM/in.liggghts_resume";
}
// ************************************************************************* //

View File

@ -0,0 +1,175 @@
/*---------------------------------------------------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.4 |
| \\ / A nd | Web: http://www.openfoam.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "";
case "";
instance "";
local "";
class dictionary;
object couplingProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
//===========================================================================//
// sub-models & settings
verbous;
modelType "A"; // A or B
couplingInterval 100;
voidFractionModel divided;
locateModel engine;
meshMotionModel noMeshMotion;
regionModel allRegion;
IOModel "basicIO";
dataExchangeModel twoWayMPI;//twoWayFiles;//oneWayVTK;//
averagingModel dense;//dilute;//
clockModel off;
forceModels
(
//GidaspowDrag
DiFeliceDrag
//KochHillDrag
gradPForce
viscForce
//Archimedes
//volWeightedAverage
//totalMomentumExchange
);
momCoupleModels
(
implicitCouple
);
turbulenceModelType "RASProperties";//"LESProperties";//
//===========================================================================//
// sub-model properties
implicitCoupleProps
{
velFieldName "U";
granVelFieldName "Us";
voidfractionFieldName "voidfraction";
}
ArchimedesProps
{
densityFieldName "rho";
gravityFieldName "g";
}
gradPForceProps
{
pFieldName "p";
densityFieldName "rho";
voidfractionFieldName "voidfraction";
velocityFieldName "U";
//interpolation;
}
viscForceProps
{
velocityFieldName "U";
densityFieldName "rho";
interpolation;
}
volWeightedAverageProps
{
scalarFieldNames
(
voidfraction
);
vectorFieldNames
(
);
upperThreshold 0.999;
lowerThreshold 0;
verbous;
}
totalMomentumExchangeProps
{
implicitMomExFieldName "Ksl";
explicitMomExFieldName "none";
fluidVelFieldName "U";
granVelFieldName "Us";
densityFieldName "rho";
}
GidaspowDragProps
{
velFieldName "U";
densityFieldName "rho";
}
DiFeliceDragProps
{
velFieldName "U";
densityFieldName "rho";
voidfractionFieldName "voidfraction";
}
KochHillDragProps
{
velFieldName "U";
densityFieldName "rho";
}
virtualMassForceProps
{
velFieldName "U";
densityFieldName "rho";
}
oneWayVTKProps
{
couplingFilename "vtk_out%4.4d.vtk";
maxNumberOfParticles 30000;
}
twoWayFilesProps
{
maxNumberOfParticles 10100;
}
centreProps
{
alphaMin 0.10;
}
engineProps
{
treeSearch true;
}
dividedProps
{
alphaMin 0.1;
scaleUpVol 1.0;
}
twoWayMPIProps
{
maxNumberOfParticles 10100;
liggghtsPath "../DEM/in.liggghts_restart";
}
// ************************************************************************* //

View File

@ -0,0 +1,22 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class uniformDimensionedVectorField;
location "constant";
object g;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -2 0 0 0 0];
value ( 0 0 -9.81 );
// ************************************************************************* //

View File

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

View File

@ -0,0 +1,31 @@
/*---------------------------------------------------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.4 |
| \\ / A nd | Web: http://www.openfoam.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "";
case "";
instance "";
local "";
class dictionary;
object liggghtsCommands;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
liggghtsCommandModels
(
runLiggghts
);
// ************************************************************************* //

View File

@ -0,0 +1,154 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 2.0 |
| \\ / A nd | Web: http://www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object blockMeshDict;
}
// ************************************
meshGenApp blockMesh;
convertToMeters 1;
//64 mm column diameter
//15 cm length
//Width of middle square section
//how many cells in the square section
//how many cells from square section to perimeter
// how many cells from top to bottom
vertices
(
( 0.0069 0.0069 0.0 ) // Vertex fiveoclocksqb = 0
(-0.0069 0.0069 0.0 ) // Vertex sevenoclocksqb = 1
(-0.0069 -0.0069 0.0 ) // Vertex elevenoclocksqb = 2
( 0.0069 -0.0069 0.0 ) // Vertex oneoclocksqb = 3
( 0.00975807358913172 0.00975807357161699 0.0 ) // Vertex fiveoclockcb = 4
(-0.00975807358913172 0.00975807357161699 0.0) // Vertex sevenoclockcb = 5
(-0.00975807358913172 -0.00975807357161699 0.0) // Vertex elevenoclockcb = 6
( 0.00975807358913172 -0.00975807357161699 0.0) // Vertex oneoclockcb = 7
( 0.0069 0.0069 0.0553) // Vertex fiveoclocksqt = 8
(-0.0069 0.0069 0.0553) // Vertex sevenoclocksqt = 9
(-0.0069 -0.0069 0.0553) // Vertex elevenoclocksqt = 10
( 0.0069 -0.0069 0.0553) // Vertex oneoclocksqt = 11
( 0.00975807358913172 0.00975807357161699 0.0553) // Vertex fiveoclockct = 12
(-0.00975807358913172 0.00975807357161699 0.0553) // Vertex sevenoclockct = 13
(-0.00975807358913172 -0.00975807357161699 0.0553) // Vertex elevenoclockct = 14
( 0.00975807358913172 -0.00975807357161699 0.0553) // Vertex oneoclockct = 15
);
blocks
(
//square block
hex (
2 3 0 1
10 11 8 9
)
(8 8 24)
simpleGrading (1 1 1)
//slice1
hex (
1 0 4 5
9 8 12 13
)
(8 4 24)
simpleGrading (1 1 1)
//slice2
hex (
6 2 1 5
14 10 9 13
)
( 4 8 24)
simpleGrading (1 1 1)
//slice3
hex (
6 7 3 2
14 15 11 10
)
(8 4 24)
simpleGrading (1 1 1)
//slice4
hex (
3 7 4 0
11 15 12 8
)
(4 8 24)
simpleGrading (1 1 1)
);
//create the quarter circles
edges
(
arc 4 5 (0.0 0.0138 0.0 )
arc 5 6 (-0.0138 0.0 0.0)
arc 6 7 (0.0 -0.0138 0.0 )
arc 7 4 (0.0138 0.0 0.0)
arc 12 13 (0.0 0.0138 0.0553 )
arc 13 14 (-0.0138 0.0 0.0553 )
arc 14 15 (0.0 -0.0138 0.0553 )
arc 15 12 (0.0138 0.0 0.0553 )
);
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 wall
(
(5 4 12 13)
(5 13 14 6)
(6 14 15 7)
(7 15 12 4)
)
);
mergePatchPairs
(
);

View File

@ -0,0 +1,37 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "constant";
object transportProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
transportModel Newtonian;
nu nu [ 0 2 -1 0 0 0 0 ] 1.5e-04;
CrossPowerLawCoeffs
{
nu0 nu0 [ 0 2 -1 0 0 0 0 ] 1e-06;
nuInf nuInf [ 0 2 -1 0 0 0 0 ] 1e-06;
m m [ 0 0 1 0 0 0 0 ] 1;
n n [ 0 0 0 0 0 0 0 ] 1;
}
BirdCarreauCoeffs
{
nu0 nu0 [ 0 2 -1 0 0 0 0 ] 1e-06;
nuInf nuInf [ 0 2 -1 0 0 0 0 ] 1e-06;
k k [ 0 0 1 0 0 0 0 ] 0;
n n [ 0 0 0 0 0 0 0 ] 1;
}
// ************************************************************************* //

View File

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

View File

@ -0,0 +1,69 @@
function [data,colname]=loaddata(filename,columns,headerlines)
% data = loaddata(filename,columns,headerlines)
% data = loaddata(filename,0,headerlines): automatc detection of
% columns by word count in first headerline or first data line
% (if headerline==0), separated by blanks or tabs
% columns=-1: write colum assignment code lines
% works only if headerline>0 and colnames separated by
% not more than 1 blank!
% columns=-2: columns separated by 2 blanks (fluent/scheme auswertung-instat.scm)
% [data, colname] = loaddata(filename,0,headerlines)
% colname = cell string array of column names from headerline
fprintf(1,'loading %s ... ', filename);
f=fopen(filename,'r');
if f==-1
fprintf(1,'\n*** error: could not open "%s" ...\n', filename);
data=[];
else
for i=1:headerlines
if i==1 s=fgets(f); else fgets(f); end
end
if headerlines==0
s=fgets(f); frewind(f);
end
if columns<=0 % & headerlines>=1
fprintf(1,'\n');
fprintf(1,' %s',s);
pos = findstr(sprintf('\t'),s); % trennzeichenpositionen in zeile suchen
if length(pos)>0
endpos=length(s);
%if isspace(s(endpos-1)) endpos=endpos-1; end
pos = [0 pos(1,:) endpos]; % anfangs- und endposition hinzuf<EFBFBD>gen
elseif columns==-2 % spalteneintr<EFBFBD>ge durch 2 blanks getrennt (fluent/scheme)
pos=[0];
for i=1:length(s)-1
if isspace(s(i)) & isspace(s(i+1))
pos(end+1)=i+1;
end
end
pos(end+1)=length(s);
else % spalteneintr<EFBFBD>ge durch blanks getrennt
%pos = findstr(' ',s); % trennzeichenpositionen in zeile suchen
pos=[];
word=0;
for i=1:length(s)
if isspace(s(i))
word=0;
elseif ~word
word=1;
pos(end+1)=i-1;
end
end
pos(end+1)=length(s);
end
if headerlines>=1
for i=1:length(pos)-1 % alle spalten
colname{i}=s(pos(i)+1:pos(i+1)-1);
if columns==-1 fprintf(' = data(strmatch(''%s'',colname),:); %% column %d\n', colname{i},i); end
if columns==-2 fprintf('%% column %d: %s\n', i, colname{i}); end
end
end
columns = length(pos)-1;
fprintf(1,' total: %d columns ',columns);
end
data=fscanf(f,'%f',[columns,inf]);
fclose(f);
fprintf(1,'done.\n');
end

View File

@ -0,0 +1,111 @@
close all;
clear;
clc;
%====================================%
% simulation data 1
%====================================%
%path = '../probes/0/p';
path = '../probes/0/p';
columns=22;
headerlines=4;
data = loaddata(path,columns,headerlines);
data=transpose(data);
[x,y]=size(data)
dp_sim = (data(:,2)-data(:,y))/10000;
t_sim = data(:,1);
%fprintf('final pressureDrop of sim = %f Pa\n',dp_sim(length(dp_sim)) )
%====================================%
% simulation data 2
%====================================%
%path = '../probes/0.05/p';
path = '../probes/0.05/p';
columns=22;
headerlines=4;
data = loaddata(path,columns,headerlines);
data=transpose(data);
[x,y]=size(data)
dp_sim_2 = (data(:,2)-data(:,y))/10000;
t_sim_2 = data(:,1);
%fprintf('final pressureDrop of sim = %f Pa\n',dp_sim(length(dp_sim)) )
%====================================%
% analytical calculation
%====================================%
%===================
% Ergun Equation
%===================
fprintf('\ncalc Ergun eqn:\n')
dp = 0.001 % particle diameter
phip = 1 % sphericity
epsilon = 0.451335 % void fraction
Ustart = 0.002
Uend = 0.02
timeStepSize = 0.001; % time interval of pressure data
Tstart = 0;
Tend = t_sim(length(t_sim))
Tend=0.1
deltaU=(Uend-Ustart)/((Tend-Tstart)/timeStepSize);
U = Ustart+deltaU:deltaU:Uend; % velocity over time
Ua = U / epsilon; % physical velocity
L = 0.0156 % length of bed
rhoG = 10 % density in kg/m3
nuG = 1.5*10^-4 % kinemat Visk in m2/s
muG = nuG*rhoG % dynam visc in Pa s
dpErgun= L * (
150*((1-epsilon)^2/epsilon^3)*((muG.*U)/(phip*dp)^2)
+1.75*((1-epsilon)/epsilon^3)*((rhoG.*U.^2)/(phip*dp))
)/10000/rhoG;
fprintf('NOTE: this pressure is divided by density (according to CFD solver)\n')
fprintf('so the result does not depend on density\n')
%fprintf('final pressure drop (Ergun eqn)= %f Pa\n',dpErgun)
%==================================
% min fluidization velocity in m/s
%==================================
rhoP = 2000 % particle density in kg/m3
g = 9.81 % gravity m/s2
Umf = dp^2*(rhoP-rhoG)*g/(150*muG)*(epsilon^3*phip^2)/(1-epsilon)
ReMF = Umf*dp*rhoG/muG % must be <20 !!!
%Umf = sqrt(phip*dp^2/1.75*(rhoP-rhoG)/rhoG*g*epsilon^3) % Re>1000
dpUmf= L * (
150*((1-epsilon)^2/epsilon^3)*((muG.*Umf)/(phip*dp)^2)
+1.75*((1-epsilon)/epsilon^3)*((rhoG.*Umf.^2)/(phip*dp))
)/10000/rhoG;
%====================================%
% plot data
%====================================%
%figure(2)
%plot(U,dp_sim)
%title("Ergun pressure drop vs. simulation")
%a=strcat("analytical (Ergun), Umf=",num2str(Umf),", dpUmf=",num2str(dpUmf));
%legend(a,"simulation")
%xlabel("velocity in [m/s]")
%ylabel("pressure drop [bar]")
%axis([0,Uend,0,dpErgun(length(dpErgun))])
figure(1)
plot(U,dpErgun,U(1:length(t_sim)),dp_sim,U(length(t_sim)+1:length(U)),dp_sim_2,'-+',[Umf,Uend],dpUmf*ones(1,2))
title("Ergun pressure drop vs. simulation")
a=strcat("analytical (Ergun), Umf=",num2str(Umf),", dpUmf=",num2str(dpUmf));
legend(a,"simulation")
xlabel("velocity in [m/s]")
ylabel("pressure drop [bar]")
axis([0,Uend,0,dpErgun(length(dpErgun))])
%print('cfdemSolverPiso_settlingTest.eps','-deps2')
print -color "cfdemSolverPiso_ErgunTestMPI.eps"
replot;

View File

@ -0,0 +1,117 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
application pisoFoam;
startFrom startTime;
startTime 0.05;
stopAt endTime;
endTime 0.1;//0.01;
deltaT 0.001;
writeControl adjustableRunTime;
writeInterval 0.001;//0.01;
purgeWrite 0;
writeFormat ascii;
writePrecision 6;
writeCompression uncompressed;
timeFormat general;
timePrecision 6;
runTimeModifiable yes;
adjustTimeStep no;
maxCo 0.1;
//libs ( "libgroovyBC.so" );
functions
(
probes
{
type probes;
// Where to load it from
functionObjectLibs ( "libsampling.so" );
// Name of the directory for probe data
name probes;
probeLocations
(
(0 0 0.0001)
(0 0 0.0026)
(0 0 0.0051)
(0 0 0.0076)
(0 0 0.0101)
(0 0 0.0126)
(0 0 0.0151)
(0 0 0.0176)
(0 0 0.0201)
(0 0 0.0226)
(0 0 0.0251)
(0 0 0.0276)
(0 0 0.0301)
(0 0 0.0326)
(0 0 0.0351)
(0 0 0.0375)
(0 0 0.0401)
(0 0 0.0426)
(0 0 0.0451)
(0 0 0.0476)
(0 0 0.0529)
);
// Fields to be probed
fields ( p U voidfraction volAverage_voidfraction);
// Write at same frequency as fields
outputControl timeStep;//outputTime;
outputInterval 1;
}
/*pressureDrop
{
type patchAverage;
functionObjectLibs
(
"libsimpleFunctionObjects.so"
);
verbose true;
patches
(
inlet
outlet
);
fields
(
p
);
factor 1;
}*/
);
// ************************************************************************* //

View File

@ -0,0 +1,117 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
application pisoFoam;
startFrom startTime;
startTime 0;
stopAt endTime;
endTime 0.1;//0.01;
deltaT 0.001;
writeControl adjustableRunTime;
writeInterval 0.001;//0.01;
purgeWrite 0;
writeFormat ascii;
writePrecision 6;
writeCompression uncompressed;
timeFormat general;
timePrecision 6;
runTimeModifiable yes;
adjustTimeStep no;
maxCo 0.1;
libs ("libOpenFOAM.so" "libgroovyBC.so");
functions
(
probes
{
type probes;
// Where to load it from
functionObjectLibs ( "libsampling.so" );
// Name of the directory for probe data
name probes;
probeLocations
(
(0 0 0.0001)
(0 0 0.0026)
(0 0 0.0051)
(0 0 0.0076)
(0 0 0.0101)
(0 0 0.0126)
(0 0 0.0151)
(0 0 0.0176)
(0 0 0.0201)
(0 0 0.0226)
(0 0 0.0251)
(0 0 0.0276)
(0 0 0.0301)
(0 0 0.0326)
(0 0 0.0351)
(0 0 0.0375)
(0 0 0.0401)
(0 0 0.0426)
(0 0 0.0451)
(0 0 0.0476)
(0 0 0.0529)
);
// Fields to be probed
fields ( p U voidfraction volAverage_voidfraction);
// Write at same frequency as fields
outputControl timeStep;//outputTime;
outputInterval 1;
}
/*pressureDrop
{
type patchAverage;
functionObjectLibs
(
"libsimpleFunctionObjects.so"
);
verbose true;
patches
(
inlet
outlet
);
fields
(
p
);
factor 1;
}*/
);
// ************************************************************************* //

View File

@ -0,0 +1,117 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
application pisoFoam;
startFrom startTime;
startTime 0;
stopAt endTime;
endTime 0.05;//0.01;
deltaT 0.001;
writeControl adjustableRunTime;
writeInterval 0.001;//0.01;
purgeWrite 0;
writeFormat ascii;
writePrecision 6;
writeCompression uncompressed;
timeFormat general;
timePrecision 6;
runTimeModifiable yes;
adjustTimeStep no;
maxCo 0.1;
//libs ( "libgroovyBC.so" );
functions
(
probes
{
type probes;
// Where to load it from
functionObjectLibs ( "libsampling.so" );
// Name of the directory for probe data
name probes;
probeLocations
(
(0 0 0.0001)
(0 0 0.0026)
(0 0 0.0051)
(0 0 0.0076)
(0 0 0.0101)
(0 0 0.0126)
(0 0 0.0151)
(0 0 0.0176)
(0 0 0.0201)
(0 0 0.0226)
(0 0 0.0251)
(0 0 0.0276)
(0 0 0.0301)
(0 0 0.0326)
(0 0 0.0351)
(0 0 0.0375)
(0 0 0.0401)
(0 0 0.0426)
(0 0 0.0451)
(0 0 0.0476)
(0 0 0.0529)
);
// Fields to be probed
fields ( p U voidfraction volAverage_voidfraction);
// Write at same frequency as fields
outputControl timeStep;//outputTime;
outputInterval 1;
}
/*pressureDrop
{
type patchAverage;
functionObjectLibs
(
"libsimpleFunctionObjects.so"
);
verbose true;
patches
(
inlet
outlet
);
fields
(
p
);
factor 1;
}*/
);
// ************************************************************************* //

View File

@ -0,0 +1,117 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
application pisoFoam;
startFrom startTime;
startTime 0.05;
stopAt endTime;
endTime 0.1;//0.01;
deltaT 0.001;
writeControl adjustableRunTime;
writeInterval 0.001;//0.01;
purgeWrite 0;
writeFormat ascii;
writePrecision 6;
writeCompression uncompressed;
timeFormat general;
timePrecision 6;
runTimeModifiable yes;
adjustTimeStep no;
maxCo 0.1;
//libs ( "libgroovyBC.so" );
functions
(
probes
{
type probes;
// Where to load it from
functionObjectLibs ( "libsampling.so" );
// Name of the directory for probe data
name probes;
probeLocations
(
(0 0 0.0001)
(0 0 0.0026)
(0 0 0.0051)
(0 0 0.0076)
(0 0 0.0101)
(0 0 0.0126)
(0 0 0.0151)
(0 0 0.0176)
(0 0 0.0201)
(0 0 0.0226)
(0 0 0.0251)
(0 0 0.0276)
(0 0 0.0301)
(0 0 0.0326)
(0 0 0.0351)
(0 0 0.0375)
(0 0 0.0401)
(0 0 0.0426)
(0 0 0.0451)
(0 0 0.0476)
(0 0 0.0529)
);
// Fields to be probed
fields ( p U voidfraction volAverage_voidfraction);
// Write at same frequency as fields
outputControl timeStep;//outputTime;
outputInterval 1;
}
/*pressureDrop
{
type patchAverage;
functionObjectLibs
(
"libsimpleFunctionObjects.so"
);
verbose true;
patches
(
inlet
outlet
);
fields
(
p
);
factor 1;
}*/
);
// ************************************************************************* //

View File

@ -0,0 +1,86 @@
/*-------------------------------*- C++ -*---------------------------------*\
| ========= |
| \\ / OpenFOAM |
| \\ / |
| \\ / The Open Source CFD Toolbox |
| \\/ http://www.OpenFOAM.org |
\*-------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
note "mesh decomposition control dictionary";
location "system";
object decomposeParDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
numberOfSubdomains 2;
//- Keep owner and neighbour on same processor for faces in zones:
// preserveFaceZones (heater solid1 solid3);
//method scotch;
// method hierarchical;
method simple;
// method metis;
// method manual;
simpleCoeffs
{
n (1 1 2);
delta 0.001;
}
hierarchicalCoeffs
{
n (2 2 1);
delta 0.001;
order xyz;
}
metisCoeffs
{
/*
processorWeights
(
1
1
1
1
);
*/
}
scotchCoeffs
{
//processorWeights
//(
// 1
// 1
// 1
// 1
//);
//writeGraph true;
//strategy "b";
}
manualCoeffs
{
dataFile "decompositionData";
}
//// Is the case distributed
//distributed yes;
//// Per slave (so nProcs-1 entries) the directory above the case.
//roots
//(
// "/tmp"
// "/tmp"
//);
// ************************************************************************* //

View File

@ -0,0 +1,33 @@
FoamFile
{
version 2.0;
format ascii;
root "/.automount/werner/Werner/bgschaid/bgschaid-foamStuff/DepositionTests";
case "neutralTest";
instance "system";
local "";
class dictionary;
object funkySetFieldsDict;
}
expressions
(
init
{
field voidfraction;
expression "1";
valuePatches 2(inlet outlet); // set value 1 at those patches
}
setGamma
{
field voidfraction;
expression "0.43";
//condition "pow(pow(pos().x-0.2,2) + pow(pos().y-0,2)+ pow(pos().z-0,2),0.5) < 0.04";
condition "pos().z < 0.01467 && pos().z > 0.0";
keepPatches true;
//valuePatches 1(inlet); // set value 1 at those patches
}
);

Some files were not shown because too many files have changed in this diff Show More