mirror of
https://github.com/ParticulateFlow/CFDEMcoupling-PFM.git
synced 2025-12-08 06:37:44 +00:00
release on 2012-10-23_10-36-40
This commit is contained in:
62
tutorials/cfdemSolverPisoMS/ErgunTestMPI/Allrun.sh
Executable file
62
tutorials/cfdemSolverPisoMS/ErgunTestMPI/Allrun.sh
Executable 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
|
||||
41
tutorials/cfdemSolverPisoMS/ErgunTestMPI/CFD/0/Ksl
Normal file
41
tutorials/cfdemSolverPisoMS/ErgunTestMPI/CFD/0/Ksl
Normal 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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
72
tutorials/cfdemSolverPisoMS/ErgunTestMPI/CFD/0/U
Normal file
72
tutorials/cfdemSolverPisoMS/ErgunTestMPI/CFD/0/U
Normal 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;
|
||||
}
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
||||
45
tutorials/cfdemSolverPisoMS/ErgunTestMPI/CFD/0/Us
Normal file
45
tutorials/cfdemSolverPisoMS/ErgunTestMPI/CFD/0/Us
Normal 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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
48
tutorials/cfdemSolverPisoMS/ErgunTestMPI/CFD/0/epsilon
Normal file
48
tutorials/cfdemSolverPisoMS/ErgunTestMPI/CFD/0/epsilon
Normal 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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
45
tutorials/cfdemSolverPisoMS/ErgunTestMPI/CFD/0/k
Normal file
45
tutorials/cfdemSolverPisoMS/ErgunTestMPI/CFD/0/k
Normal 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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
45
tutorials/cfdemSolverPisoMS/ErgunTestMPI/CFD/0/nut
Normal file
45
tutorials/cfdemSolverPisoMS/ErgunTestMPI/CFD/0/nut
Normal 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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
43
tutorials/cfdemSolverPisoMS/ErgunTestMPI/CFD/0/p
Normal file
43
tutorials/cfdemSolverPisoMS/ErgunTestMPI/CFD/0/p
Normal 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;
|
||||
}
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
||||
39
tutorials/cfdemSolverPisoMS/ErgunTestMPI/CFD/0/rho
Normal file
39
tutorials/cfdemSolverPisoMS/ErgunTestMPI/CFD/0/rho
Normal 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;
|
||||
}
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
||||
41
tutorials/cfdemSolverPisoMS/ErgunTestMPI/CFD/0/voidfraction
Normal file
41
tutorials/cfdemSolverPisoMS/ErgunTestMPI/CFD/0/voidfraction
Normal 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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -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;
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -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";
|
||||
}
|
||||
// ************************************************************************* //
|
||||
22
tutorials/cfdemSolverPisoMS/ErgunTestMPI/CFD/constant/g
Normal file
22
tutorials/cfdemSolverPisoMS/ErgunTestMPI/CFD/constant/g
Normal 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 );
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -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
|
||||
);
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -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
|
||||
(
|
||||
);
|
||||
@ -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;
|
||||
}
|
||||
// ************************************************************************* //
|
||||
@ -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;
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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"));
|
||||
|
||||
28
tutorials/cfdemSolverPisoMS/ErgunTestMPI/CFD/steps_0p1s
Normal file
28
tutorials/cfdemSolverPisoMS/ErgunTestMPI/CFD/steps_0p1s
Normal 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))
|
||||
)*/
|
||||
117
tutorials/cfdemSolverPisoMS/ErgunTestMPI/CFD/system/controlDict
Normal file
117
tutorials/cfdemSolverPisoMS/ErgunTestMPI/CFD/system/controlDict
Normal 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;
|
||||
}*/
|
||||
);
|
||||
// ************************************************************************* //
|
||||
@ -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;
|
||||
}*/
|
||||
);
|
||||
// ************************************************************************* //
|
||||
@ -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"
|
||||
//);
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
33
tutorials/cfdemSolverPisoMS/ErgunTestMPI/CFD/system/funkySetFieldsDict
Executable file
33
tutorials/cfdemSolverPisoMS/ErgunTestMPI/CFD/system/funkySetFieldsDict
Executable 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
|
||||
}
|
||||
|
||||
);
|
||||
@ -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 ;
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -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;
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
74
tutorials/cfdemSolverPisoMS/ErgunTestMPI/DEM/in.liggghts_init
Executable file
74
tutorials/cfdemSolverPisoMS/ErgunTestMPI/DEM/in.liggghts_init
Executable 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
|
||||
BIN
tutorials/cfdemSolverPisoMS/ErgunTestMPI/DEM/liggghts.restart
Normal file
BIN
tutorials/cfdemSolverPisoMS/ErgunTestMPI/DEM/liggghts.restart
Normal file
Binary file not shown.
4
tutorials/cfdemSolverPisoMS/ErgunTestMPI/DEM/post/dummy
Normal file
4
tutorials/cfdemSolverPisoMS/ErgunTestMPI/DEM/post/dummy
Normal file
@ -0,0 +1,4 @@
|
||||
dummyfile
|
||||
dummyfile
|
||||
dummyfile
|
||||
dummyfile
|
||||
10
tutorials/cfdemSolverPisoMS/ErgunTestMPI/DEM/sphere10.multisphere
Executable file
10
tutorials/cfdemSolverPisoMS/ErgunTestMPI/DEM/sphere10.multisphere
Executable 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
|
||||
68
tutorials/cfdemSolverPisoMS/ErgunTestMPI/parCFDDEMrun.sh
Normal file
68
tutorials/cfdemSolverPisoMS/ErgunTestMPI/parCFDDEMrun.sh
Normal 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
|
||||
Reference in New Issue
Block a user