release on 2012-10-23_10-36-40

This commit is contained in:
cfdem
2012-10-23 10:36:40 +02:00
parent 93fcd16a45
commit 5fb9e6cd84
79 changed files with 3796 additions and 153 deletions

View File

@ -0,0 +1,62 @@
#!/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]})")"
pizzaPath="$CFDEM_PIZZA_DIR"
postproc="false"
nrPostProcProcessors=2
# 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='cfdemSolverPisoMS ErgunTestMPI CFD' -e "bash $casePath/parCFDDEMrun.sh"
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
python $pizzaPath/pizza.py -f pizzaScriptRestart
#- 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
#- 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/DEM/post/*
rm -r $casePath/DEM/log.*
rm -r $casePath/log_*
echo "done"
fi

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,72 @@
/*--------------------------------*- 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.1);
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.1);*/
//type zeroGradient;
/*// superficial velocity BC
type groovyBC;
variables "Usup=vector(0,0,2);alpha=voidfraction;tEnd=0.1;"; // should be used with zeroGradient voidfraction
valueExpression "((time() < tEnd) ? Usup/alpha*(time()/tEnd) : Usup/alpha)";
value uniform (0 0 0);*/
/*// 2.0.x, 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.))
(0.099 (0 0 2))
(0.100 (0 0 2))
);
}
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 5;
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,177 @@
/*---------------------------------------------------------------------------*\
| ========= | |
| \\ / 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
verbose;
modelType B; // A or B
couplingInterval 100;
voidFractionModel dividedMS;
locateModel engine;
meshMotionModel noMeshMotion;
regionModel allRegion;
IOModel basicIO;
dataExchangeModel twoWayMPI;//twoWayFiles;//oneWayVTK;//
averagingModel dense;//dilute;//
clockModel off;
forceModels
(
off
Archimedes
volWeightedAverage
);
forceModelsMS
(
DiFeliceDragMS
);
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";
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";
}
DiFeliceDragMSProps
{
velFieldName "U";
densityFieldName "rho";
voidfractionFieldName "voidfraction";
hydraulicDiameter 0.002;
verbose;
}
oneWayVTKProps
{
couplingFilename "vtk_out%4.4d.vtk";
maxNumberOfParticles 30000;
}
twoWayFilesProps
{
maxNumberOfParticles 10100;
}
centreProps
{
alphaMin 0.10;
}
dividedMSProps
{
alphaMin 0.05;
scaleUpVol 1.0;
clumpVol 1.8433e-9; // this is particles volume, not clump!
nrigid 10;
}
bigParticleProps
{
alphaMin 0.05;
scaleUpVol 50.0;
maxCellsPerParticle 1000;
}
GaussProps
{
maxCellsPerParticle 5000;
alphaMin 0.05;
scaleUpVol 10.0;
}
engineProps
{
treeSearch true;
}
twoWayMPIProps
{
maxNumberOfParticles 101000;
liggghtsPath "../DEM/in.liggghts_init";
}
// ************************************************************************* //

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 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,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
)
(4 4 12)
simpleGrading (1 1 1)
//slice1
hex (
1 0 4 5
9 8 12 13
)
(4 2 12)
simpleGrading (1 1 1)
//slice2
hex (
6 2 1 5
14 10 9 13
)
( 2 4 12)
simpleGrading (1 1 1)
//slice3
hex (
6 7 3 2
14 15 11 10
)
(4 2 12)
simpleGrading (1 1 1)
//slice4
hex (
3 7 4 0
11 15 12 8
)
(2 4 12)
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-05;
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,29 @@
clc;
close all;
clear;
%==========================================================================
%m-file to calculate the properties of the imported clump
%==========================================================================
fprintf('\n sphere10.multisphere:\n')
rhoC=440
scaling=1e-3
nP=10
rP=0.3530494
VP=nP*(2*rP*scaling)^3*pi/6
dH=2*scaling
VC=dH^3*pi/6
rhoP=rhoC*VC/VP
% -0.3301476 -3.4959164E-008 0.5563700 0.3530494
% 0.5421265 -3.2849375E-008 0.3530494 0.3530494
% 0.0822932 0.5358442 0.3530495 0.3530494
% 0.0822932 -0.5358442 0.3530494 0.3530494
% -0.5126716 -0.3946047 -2.9544078E-009 0.3530494
% -0.5126715 0.3946047 -1.7513663E-008 0.3530494
% 0.0822932 0.5358442 -0.3530494 0.3530494
% 0.0822932 -0.5358442 -0.3530495 0.3530494
% 0.5421264 -3.9639417E-008 -0.3530495 0.3530494
% -0.3301475 -1.5302462E-008 -0.5563700 0.3530494

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,104 @@
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')
% calc density of clump
% Note: for drag calc the clump diameter is used-> reduced density of clump
dp = 0.002 % clump diameter
ds_=0.001*0.3530494*2 % diameter of sphere
ns_=10; % nr of spheres per clump
rhos_=1000; % density of spheres
VclumpToVbody=ns_*(ds_/dp)^3 % ratio of the tot volume of the spheres to the volume of the body with d_
rhoP = VclumpToVbody*rhos_ % density of clump
nP_=2500; % nr of clumps
phip = 1 % sphericity
Ustart = 0.
Uend = 2
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
L = 0.0212; % length of bed filled with particles
D = 0.0276; % diameter of bed
% calc epsilon from bedheight
%Vpartiles=dp^3*pi/6*nP_; % tot clump vol
Vpartiles=ds_^3*pi/6*nP_*ns_; % tot particle vol
Vfilled=D^2*pi/4*L; %volume filled with particles
epsilon = 1-Vpartiles/Vfilled % void fraction
%epsilon = 0.656968
Ua = U / epsilon; % physical velocity
rhoG = 5 % density in kg/m3
nuG = 1.5*10^-5 % 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 pressure\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
%====================================%
fig=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 "cfdemSolverPisoMS_ErgunTestMPI.eps"
replot;
SimName="ErgunTestMPI_sphereOfSpheres"
print(fig,strcat("figure_",SimName,".png"));

View File

@ -0,0 +1,28 @@
(
(0.000 (0 0 0.002))
(0.099 (0 0 0.30))
(0.100 (0 0 0.30))
)
/*(
(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;
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;
//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.1;//0.01;
deltaT 0.001;
writeControl adjustableRunTime;
writeInterval 0.001;//0.05;
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 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
}
);

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,74 @@
echo both
# Pour granular particles into chute container
atom_style hybrid granular molecular
atom_modify map array sort 0 0
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
mass 1 1.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
#============================
#distributions for insertion
fix pts1 all particletemplate/multisphere 1 atom_type 1 density constant 1000 nspheres 10 ntry 1000000 spheres file ../DEM/sphere10.multisphere scale 0.001 type 1
fix pdd1 all particledistribution/discrete 1. 1 pts1 1.0
#region and insertion
group rigid_group region reg
region bc cylinder z 0.0 0.0 0.012 0.001 0.05 units box
fix ins rigid_group insert/pack seed 100001 distributiontemplate pdd1 vel constant 0. 0. 0. insert_every once overlapcheck yes region bc ntry_mc 10000 particles_in_region 2500 # volumefraction_region 0.01 #
#integrator for multisphere rigid bodies
fix integr rigid_group rigid/multisphere
#============================
#cfd coupling
fix cfd all couple/cfd couple_every 100000 mpi
fix cfd2 all couple/cfd/force/multisphere
#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 ../DEM/post/dump.liggghts_init id type type x y z ix iy iz vx vy vz fx fy fz omegax omegay omegaz radius
run 80000 upto
#write_restart liggghts.restart

View File

@ -0,0 +1,4 @@
dummyfile
dummyfile
dummyfile
dummyfile

View File

@ -0,0 +1,10 @@
-0.3301476 -3.4959164E-008 0.5563700 0.3530494
0.5421265 -3.2849375E-008 0.3530494 0.3530494
0.0822932 0.5358442 0.3530495 0.3530494
0.0822932 -0.5358442 0.3530494 0.3530494
-0.5126716 -0.3946047 -2.9544078E-009 0.3530494
-0.5126715 0.3946047 -1.7513663E-008 0.3530494
0.0822932 0.5358442 -0.3530494 0.3530494
0.0822932 -0.5358442 -0.3530495 0.3530494
0.5421264 -3.9639417E-008 -0.3530495 0.3530494
-0.3301475 -1.5302462E-008 -0.5563700 0.3530494

View File

@ -0,0 +1,68 @@
#!/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_cfdemSolverPisoMS_ErgunTestMPI_CFDDEM"
logfileName="log_$headerText"
solverName="cfdemSolverPisoMS"
nrProcs="2"
machineFileName="none" # yourMachinefileName | none
debugMode="off" # on | off
testHarnessPath="$CFDEM_TEST_HARNESS_PATH"
cleanUp="true"
#--------------------------------------------------------------------------------#
#- call function to run a parallel CFD-DEM case
parCFDDEMrun $logpath $logfileName $casePath $headerText $solverName $nrProcs $machineFileName $debugMode
#------------------------------#
# octave
#- change path
cd octave
#- rmove old graph
rm cfdemSolverPisoMS_ErgunTestMPI.eps
#- run octave
octave totalPressureDrop.m
#- show plot
evince cfdemSolverPisoMS_ErgunTestMPI.eps
#------------------------------#
#- copy log file to test harness
cp ../../$logfileName $testHarnessPath
cp cfdemSolverPisoMS_ErgunTestMPI.eps $testHarnessPath
if [ $cleanUp == "true" ]
then
#- clean up case
cd ..
rm -rf 0.*
rm -rf processor*
rm -rf particles
rm -rf patchAverage_pressureDrop
rm -rf probes
rm log.liggghts
rm ../DEM/post/dump.*
fi
#- preserve post directory
echo "dummyfile" >> $casePath/DEM/post/dummy