ENH: foamyHexMesh: Add new mixerVessel tutorial with baffles

This commit is contained in:
laurence
2013-09-27 13:00:17 +01:00
parent f663d40545
commit fab029fb5f
45 changed files with 337311 additions and 340 deletions

View File

@ -0,0 +1,64 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format binary;
class volVectorField;
object U;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -1 0 0 0 0];
internalField uniform (0 0 0);
boundaryField
{
".*"
{
type fixedValue;
value $internalField;
}
gasInlet
{
type fixedValue;
value uniform (0 0 0.5);
}
outlet
{
type pressureInletOutletVelocity;
phi phi;
value $internalField;
}
"(shaftRotating|stirrer)"
{
type movingWallVelocity;
value $internalField;
}
shaft
{
type rotatingWallVelocity;
origin (0 0 0);
axis (0 0 1);
omega -5;
}
"AMI.*"
{
type cyclicAMI;
value $internalField;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,47 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
object alpha.water;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0;
boundaryField
{
".*"
{
type zeroGradient;
}
gasInlet
{
type fixedValue;
value uniform 1;
}
outlet
{
type inletOutlet;
inletValue uniform 0;
value $internalField;
}
"AMI.*"
{
type cyclicAMI;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,50 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
object epsilon;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -3 0 0 0 0];
internalField uniform 7e-3;
boundaryField
{
".*"
{
type epsilonWallFunction;
value $internalField;
}
gasInlet
{
type fixedValue;
value $internalField;
}
outlet
{
type inletOutlet;
inletValue $internalField;
value $internalField;
}
"AMI.*"
{
type cyclicAMI;
value $internalField;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,49 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
object k;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -2 0 0 0 0];
internalField uniform 0.01;
boundaryField
{
".*"
{
type kqRWallFunction;
value $internalField;
}
gasInlet
{
type fixedValue;
value $internalField;
}
outlet
{
type inletOutlet;
inletValue $internalField;
value $internalField;
}
"AMI.*"
{
type cyclicAMI;
value $internalField;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,48 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
object nut;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -1 0 0 0 0];
internalField uniform 0;
boundaryField
{
".*"
{
type nutkWallFunction;
value $internalField;
}
gasInlet
{
type fixedValue;
value $internalField;
}
outlet
{
type inletOutlet;
inletValue $internalField;
value $internalField;
}
"AMI.*"
{
type cyclicAMI;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,43 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
object p_rgh;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [1 -1 -2 0 0 0 0];
internalField uniform 1.25e5;
boundaryField
{
".*"
{
type fixedFluxPressure;
phi phiAbs;
value $internalField;
}
outlet
{
type fixedValue;
value $internalField;
}
"AMI.*"
{
type cyclicAMI;
value $internalField;
}
}
// ************************************************************************* //

View File

@ -1,28 +1,24 @@
#!/bin/sh
cd ${0%/*} || exit 1 # run from this directory
# Source tutorial run functions
# Source tutorial clean functions
. $WM_PROJECT_DIR/bin/tools/CleanFunctions
rm -r constant/internalDelaunayVertices constant/targetCellSize > /dev/null 2>&1
rm -r snapToSurface?.obj subsetBox.obj surf1.obj tetsToSnapTo.obj > /dev/null 2>&1
rm -r constant/backgroundMeshDecomposition/polyMesh/boundary > /dev/null 2>&1
rm -r constant/backgroundMeshDecomposition/polyMesh/faces > /dev/null 2>&1
rm -r constant/backgroundMeshDecomposition/polyMesh/neighbour > /dev/null 2>&1
rm -r constant/backgroundMeshDecomposition/polyMesh/owner > /dev/null 2>&1
rm -r constant/backgroundMeshDecomposition/polyMesh/points > /dev/null 2>&1
rm -rf constant/extendedFeatureEdgeMesh > /dev/null 2>&1
rm -r constant/triSurface/rawSurfaces/*.stl > /dev/null 2>&1
rm -r constant/triSurface/*.stl > /dev/null 2>&1
rm -r constant/triSurface/*.obj > /dev/null 2>&1
rm -r constant/triSurface/*.eMesh > /dev/null 2>&1
rm -r constant/triSurface/problemFaces > /dev/null 2>&1
cleanCase
\rm -rf 0
\rm -rf constant/extendedFeatureEdgeMesh/
\rm -f constant/triSurface/*.eMesh*
\rm -f constant/triSurface/*.stl
\rm -f constant/triSurface/*.obj
\rm -f constant/triSurface/problemFaces
\rm -f *.obj
\rm -f constant/backgroundMeshDecomposition/polyMesh/boundary
\rm -f constant/backgroundMeshDecomposition/polyMesh/faces
\rm -f constant/backgroundMeshDecomposition/polyMesh/neighbour
\rm -f constant/backgroundMeshDecomposition/polyMesh/owner
\rm -f constant/backgroundMeshDecomposition/polyMesh/points
# ----------------------------------------------------------------- end-of-file

View File

@ -4,54 +4,36 @@ cd ${0%/*} || exit 1 # run from this directory
# Source tutorial run functions
. $WM_PROJECT_DIR/bin/tools/RunFunctions
\cp system/controlDict.flow system/controlDict
# Set application name
application=$(getApplication)
# Get number of processors to run on
nProcs=$(getNumberOfProcessors)
# copy flange surface from resources folder
cp $FOAM_TUTORIALS/resources/geometry/mixerVessel.tar.gz constant/triSurface/
tar zxf constant/triSurface/mixerVessel.tar.gz -C constant/triSurface/rawSurfaces
\rm -rf 0
# Run the surface preparation script
./constant/triSurface/surfaceProcess.sh > log.surfaceProcess 2>&1
runApplication createBaffles -overwrite
runApplication mergeOrSplitBaffles -split -overwrite
runApplication surfaceBooleanFeatures \
intersection \
constant/triSurface/vessel.stl \
constant/triSurface/spargerShaft.stl -perturb
# Get rid of zero faced patches
runApplication createPatch -overwrite
mv log.surfaceBooleanFeatures log.surfaceBooleanFeatures.vessel_spargerShaft
# Copy fields after meshing to avoind the generation of unnecessary patch fields
\cp -r 0.org 0
runApplication surfaceBooleanFeatures \
intersection \
constant/triSurface/vessel.stl \
constant/triSurface/shaftStatic.stl -perturb
# Initialize alpha
runApplication setFields
mv log.surfaceBooleanFeatures log.surfaceBooleanFeatures.vessel_shaftStatic
# Decompose
runApplication decomposePar -force
runApplication surfaceBooleanFeatures \
intersection \
constant/triSurface/spargerShaft.stl \
constant/triSurface/spargerInlet.stl -perturb
# Run
runParallel $application 6
mv log.surfaceBooleanFeatures log.surfaceBooleanFeatures.spargerShaft_spargerInlet
# Reconstruct
runApplication reconstructPar -noFunctionObjects
runApplication surfaceBooleanFeatures \
intersection \
constant/triSurface/stirrer.stl \
constant/triSurface/shaftRotating.stl -perturb
mv log.surfaceBooleanFeatures log.surfaceBooleanFeatures.stirrer_shaftRotating
runApplication surfaceFeatureExtract
runApplication blockMesh -region backgroundMeshDecomposition
runApplication decomposePar -region backgroundMeshDecomposition
runParallel foamyHexMesh $nProcs
runParallel collapseEdges $nProcs -collapseFaces -latestTime
runParallel checkMesh $nProcs -latestTime -allTopology -allGeometry
runApplication reconstructParMesh -latestTime
# ----------------------------------------------------------------- end-of-file

View File

@ -0,0 +1,103 @@
#!/bin/sh
cd ${0%/*} || exit 1 # run from this directory
# Source tutorial run functions
. $WM_PROJECT_DIR/bin/tools/RunFunctions
intersectSurfaces()
{
runApplication \
surfaceBooleanFeatures \
intersection \
"$@"
outputName1=$(basename $1)
outputName1=${outputName1%.*}
outputName2=$(basename $2)
outputName2=${outputName2%.*}
mv log.surfaceBooleanFeatures \
log.surfaceBooleanFeatures.$outputName1:$outputName2
}
# Set application name
application=$(getApplication)
# Get number of processors to run on
nProcs=$(getNumberOfProcessors)
\rm -rf 0
# Run the surface preparation script
./constant/triSurface/surfaceProcess.sh > log.surfaceProcess 2>&1
# Surface intersections
intersectSurfaces \
constant/triSurface/vessel.stl \
constant/triSurface/spargerShaft.stl \
-perturb
intersectSurfaces \
constant/triSurface/vessel.stl \
constant/triSurface/shaft.stl \
-perturb
intersectSurfaces \
constant/triSurface/spargerShaft.stl \
constant/triSurface/spargerInlet.stl \
-perturb
intersectSurfaces \
constant/triSurface/stirrer.stl \
constant/triSurface/shaftRotating.stl \
-perturb
intersectSurfaces \
constant/triSurface/stirrer_baffles.stl \
constant/triSurface/stirrer.stl \
-surf1Baffle \
-perturb
intersectSurfaces \
constant/triSurface/rotating.stl \
constant/triSurface/shaft.stl \
-surf1Baffle \
-perturb
# Intersect blades with the plate
for bladeI in $(seq 1 6);
do
intersectSurfaces \
constant/triSurface/stirrer_baffles_$bladeI.obj \
constant/triSurface/stirrer_baffles_plate.obj \
-surf1Baffle \
-surf2Baffle
done
# Meshing
\cp system/controlDict.mesh system/controlDict
runApplication blockMesh -region backgroundMeshDecomposition
runApplication decomposePar -region backgroundMeshDecomposition
runApplication surfaceFeatureExtract
runParallel foamyHexMesh $nProcs
runParallel collapseEdges $nProcs -collapseFaces -latestTime
mv log.collapseEdges log.collapseFaces
runParallel collapseEdges $nProcs -collapseFaceSet indirectPatchFaces -latestTime
mv log.collapseEdges log.collapseFaceSet
runParallel checkMesh $nProcs -allTopology -allGeometry -latestTime
runApplication reconstructParMesh -latestTime
# ----------------------------------------------------------------- end-of-file

View File

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

View File

@ -14,18 +14,18 @@ FoamFile
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
convertToMeters 1;
convertToMeters 1e-3;
vertices
(
( -300 -300 -250)
( 300 -300 -250)
( -309 -309 -250)
( 300 -309 -250)
( 300 300 -250)
( -300 300 -250)
( -300 -300 1500)
( 300 -300 1500)
( -309 300 -250)
( -309 -309 1500)
( 300 -309 1500)
( 300 300 1500)
( -300 300 1500)
( -309 300 1500)
);
blocks

View File

@ -0,0 +1,36 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "constant";
object dynamicMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dynamicFvMesh solidBodyMotionFvMesh;
motionSolverLibs ( "libfvMotionSolvers.so" );
solidBodyMotionFvMeshCoeffs
{
cellZone rotating;
solidBodyMotionFunction rotatingMotion;
rotatingMotionCoeffs
{
origin (0 0 0);
axis (0 0 1);
omega -5; // 5 rad/s
}
}
// ************************************************************************* //

View File

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

View File

@ -0,0 +1,36 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "constant";
object transportProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
phases (water air);
water
{
transportModel Newtonian;
nu nu [ 0 2 -1 0 0 0 0 ] 1e-06;
rho rho [ 1 -3 0 0 0 0 0 ] 300;
}
air
{
transportModel Newtonian;
nu nu [ 0 2 -1 0 0 0 0 ] 1e-6;
rho rho [ 1 -3 0 0 0 0 0 ] 1027;
}
sigma sigma [ 1 0 -2 0 0 0 0 ] 0.07;
// ************************************************************************* //

View File

@ -1,4 +0,0 @@
Folder to house tri-surfaces
The Allrun script copies the surface from the $FOAM_TUTORIALS/resources/geometry
folder

View File

@ -0,0 +1,114 @@
solid baffles
facet normal 0.707107 0.707107 -0
outer loop
vertex 0.137322 -0.137322 0.025
vertex 0.137322 -0.137322 0.4
vertex 0.155 -0.155 0.025
endloop
endfacet
facet normal 0.707107 0.707107 0
outer loop
vertex 0.137322 -0.137322 0.4
vertex 0.155 -0.155 0.4
vertex 0.155 -0.155 0.025
endloop
endfacet
facet normal 0.707107 0.707107 -0
outer loop
vertex 0.155 -0.155 0.025
vertex 0.155 -0.155 0.4
vertex 0.172678 -0.172678 0.025
endloop
endfacet
facet normal 0.707107 0.707107 0
outer loop
vertex 0.155 -0.155 0.4
vertex 0.172678 -0.172678 0.4
vertex 0.172678 -0.172678 0.025
endloop
endfacet
facet normal 0.707107 0.707107 -0
outer loop
vertex 0.137322 -0.137322 0.4
vertex 0.137322 -0.137322 0.775
vertex 0.155 -0.155 0.4
endloop
endfacet
facet normal 0.707107 0.707107 0
outer loop
vertex 0.137322 -0.137322 0.775
vertex 0.155 -0.155 0.775
vertex 0.155 -0.155 0.4
endloop
endfacet
facet normal 0.707107 0.707107 -0
outer loop
vertex 0.155 -0.155 0.4
vertex 0.155 -0.155 0.775
vertex 0.172678 -0.172678 0.4
endloop
endfacet
facet normal 0.707107 0.707107 0
outer loop
vertex 0.155 -0.155 0.775
vertex 0.172678 -0.172678 0.775
vertex 0.172678 -0.172678 0.4
endloop
endfacet
facet normal 0.707107 0.707107 -0
outer loop
vertex -0.172678 0.172678 0.025
vertex -0.172678 0.172678 0.4
vertex -0.155 0.155 0.025
endloop
endfacet
facet normal 0.707107 0.707107 0
outer loop
vertex -0.172678 0.172678 0.4
vertex -0.155 0.155 0.4
vertex -0.155 0.155 0.025
endloop
endfacet
facet normal 0.707107 0.707107 -0
outer loop
vertex -0.155 0.155 0.025
vertex -0.155 0.155 0.4
vertex -0.137322 0.137322 0.025
endloop
endfacet
facet normal 0.707107 0.707107 0
outer loop
vertex -0.155 0.155 0.4
vertex -0.137322 0.137322 0.4
vertex -0.137322 0.137322 0.025
endloop
endfacet
facet normal 0.707107 0.707107 -0
outer loop
vertex -0.172678 0.172678 0.4
vertex -0.172678 0.172678 0.775
vertex -0.155 0.155 0.4
endloop
endfacet
facet normal 0.707107 0.707107 0
outer loop
vertex -0.172678 0.172678 0.775
vertex -0.155 0.155 0.775
vertex -0.155 0.155 0.4
endloop
endfacet
facet normal 0.707107 0.707107 -0
outer loop
vertex -0.155 0.155 0.4
vertex -0.155 0.155 0.775
vertex -0.137322 0.137322 0.4
endloop
endfacet
facet normal 0.707107 0.707107 0
outer loop
vertex -0.155 0.155 0.775
vertex -0.137322 0.137322 0.775
vertex -0.137322 0.137322 0.4
endloop
endfacet
endsolid baffles

View File

@ -0,0 +1,254 @@
solid gasInlet
facet normal 0 0 1
outer loop
vertex 0.0984808 0.0173648 0
vertex 0 0 0
vertex 0.1 0 0
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 0.0939693 0.034202 0
vertex 0 0 0
vertex 0.0984808 0.0173648 0
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 0.0866025 0.05 0
vertex 0 0 0
vertex 0.0939693 0.034202 0
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 0.0766044 0.0642788 0
vertex 0 0 0
vertex 0.0866025 0.05 0
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 0.0642788 0.0766044 0
vertex 0 0 0
vertex 0.0766044 0.0642788 0
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 0.05 0.0866025 0
vertex 0 0 0
vertex 0.0642788 0.0766044 0
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 0.034202 0.0939693 0
vertex 0 0 0
vertex 0.05 0.0866025 0
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 0.0173648 0.0984808 0
vertex 0 0 0
vertex 0.034202 0.0939693 0
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 6.12323e-18 0.1 0
vertex 0 0 0
vertex 0.0173648 0.0984808 0
endloop
endfacet
facet normal -0 0 1
outer loop
vertex -0.0173648 0.0984808 0
vertex 0 0 0
vertex 6.12323e-18 0.1 0
endloop
endfacet
facet normal -0 0 1
outer loop
vertex -0.034202 0.0939693 0
vertex 0 0 0
vertex -0.0173648 0.0984808 0
endloop
endfacet
facet normal -0 0 1
outer loop
vertex -0.05 0.0866025 0
vertex 0 0 0
vertex -0.034202 0.0939693 0
endloop
endfacet
facet normal -0 0 1
outer loop
vertex -0.0642788 0.0766044 0
vertex 0 0 0
vertex -0.05 0.0866025 0
endloop
endfacet
facet normal -0 0 1
outer loop
vertex -0.0766044 0.0642788 0
vertex 0 0 0
vertex -0.0642788 0.0766044 0
endloop
endfacet
facet normal -0 0 1
outer loop
vertex -0.0866025 0.05 0
vertex 0 0 0
vertex -0.0766044 0.0642788 0
endloop
endfacet
facet normal -0 0 1
outer loop
vertex -0.0939693 0.034202 0
vertex 0 0 0
vertex -0.0866025 0.05 0
endloop
endfacet
facet normal -0 0 1
outer loop
vertex -0.0984808 0.0173648 0
vertex 0 0 0
vertex -0.0939693 0.034202 0
endloop
endfacet
facet normal -0 0 1
outer loop
vertex -0.1 1.22465e-17 0
vertex 0 0 0
vertex -0.0984808 0.0173648 0
endloop
endfacet
facet normal 0 -0 1
outer loop
vertex -0.0984808 -0.0173648 0
vertex 0 0 0
vertex -0.1 1.22465e-17 0
endloop
endfacet
facet normal 0 -0 1
outer loop
vertex -0.0939693 -0.034202 0
vertex 0 0 0
vertex -0.0984808 -0.0173648 0
endloop
endfacet
facet normal 0 -0 1
outer loop
vertex -0.0866025 -0.05 0
vertex 0 0 0
vertex -0.0939693 -0.034202 0
endloop
endfacet
facet normal 0 -0 1
outer loop
vertex -0.0766044 -0.0642788 0
vertex 0 0 0
vertex -0.0866025 -0.05 0
endloop
endfacet
facet normal 0 -0 1
outer loop
vertex -0.0642788 -0.0766044 0
vertex 0 0 0
vertex -0.0766044 -0.0642788 0
endloop
endfacet
facet normal 0 -0 1
outer loop
vertex -0.05 -0.0866025 0
vertex 0 0 0
vertex -0.0642788 -0.0766044 0
endloop
endfacet
facet normal 0 -0 1
outer loop
vertex -0.034202 -0.0939693 0
vertex 0 0 0
vertex -0.05 -0.0866025 0
endloop
endfacet
facet normal 0 -0 1
outer loop
vertex -0.0173648 -0.0984808 0
vertex 0 0 0
vertex -0.034202 -0.0939693 0
endloop
endfacet
facet normal 0 -0 1
outer loop
vertex -1.83697e-17 -0.1 0
vertex 0 0 0
vertex -0.0173648 -0.0984808 0
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 0.0173648 -0.0984808 0
vertex 0 0 0
vertex -1.83697e-17 -0.1 0
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 0.034202 -0.0939693 0
vertex 0 0 0
vertex 0.0173648 -0.0984808 0
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 0.05 -0.0866025 0
vertex 0 0 0
vertex 0.034202 -0.0939693 0
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 0.0642788 -0.0766044 0
vertex 0 0 0
vertex 0.05 -0.0866025 0
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 0.0766044 -0.0642788 0
vertex 0 0 0
vertex 0.0642788 -0.0766044 0
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 0.0866025 -0.05 0
vertex 0 0 0
vertex 0.0766044 -0.0642788 0
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 0.0939693 -0.034202 0
vertex 0 0 0
vertex 0.0866025 -0.05 0
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 0.0984808 -0.0173648 0
vertex 0 0 0
vertex 0.0939693 -0.034202 0
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 0.1 -2.44929e-17 0
vertex 0 0 0
vertex 0.0984808 -0.0173648 0
endloop
endfacet
endsolid gasInlet

View File

@ -0,0 +1,240 @@
solid outlet
facet normal 0 0 1
outer loop
vertex -0.129544 -0.0947905 1.3
vertex -0.13 -0.1 1.3
vertex -0.129544 -0.105209 1.3
endloop
endfacet
facet normal 0 0 1
outer loop
vertex -0.125981 -0.115 1.3
vertex -0.129544 -0.0947905 1.3
vertex -0.128191 -0.110261 1.3
endloop
endfacet
facet normal 0 0 1
outer loop
vertex -0.128191 -0.110261 1.3
vertex -0.129544 -0.0947905 1.3
vertex -0.129544 -0.105209 1.3
endloop
endfacet
facet normal 0 0 1
outer loop
vertex -0.122981 -0.119284 1.3
vertex -0.129544 -0.0947905 1.3
vertex -0.125981 -0.115 1.3
endloop
endfacet
facet normal 0 0 1
outer loop
vertex -0.119284 -0.122981 1.3
vertex -0.129544 -0.0947905 1.3
vertex -0.122981 -0.119284 1.3
endloop
endfacet
facet normal 0 0 1
outer loop
vertex -0.115 -0.125981 1.3
vertex -0.129544 -0.0947905 1.3
vertex -0.119284 -0.122981 1.3
endloop
endfacet
facet normal 0 0 1
outer loop
vertex -0.110261 -0.128191 1.3
vertex -0.129544 -0.0947905 1.3
vertex -0.115 -0.125981 1.3
endloop
endfacet
facet normal 0 0 1
outer loop
vertex -0.105209 -0.129544 1.3
vertex -0.129544 -0.0947905 1.3
vertex -0.110261 -0.128191 1.3
endloop
endfacet
facet normal 0 0 1
outer loop
vertex -0.1 -0.13 1.3
vertex -0.129544 -0.0947905 1.3
vertex -0.105209 -0.129544 1.3
endloop
endfacet
facet normal 0 0 1
outer loop
vertex -0.0947905 -0.129544 1.3
vertex -0.129544 -0.0947905 1.3
vertex -0.1 -0.13 1.3
endloop
endfacet
facet normal 0 0 1
outer loop
vertex -0.0897394 -0.128191 1.3
vertex -0.129544 -0.0947905 1.3
vertex -0.0947905 -0.129544 1.3
endloop
endfacet
facet normal 0 0 1
outer loop
vertex -0.085 -0.125981 1.3
vertex -0.129544 -0.0947905 1.3
vertex -0.0897394 -0.128191 1.3
endloop
endfacet
facet normal 0 0 1
outer loop
vertex -0.0807164 -0.122981 1.3
vertex -0.129544 -0.0947905 1.3
vertex -0.085 -0.125981 1.3
endloop
endfacet
facet normal 0 0 1
outer loop
vertex -0.0770187 -0.119284 1.3
vertex -0.129544 -0.0947905 1.3
vertex -0.0807164 -0.122981 1.3
endloop
endfacet
facet normal 0 0 1
outer loop
vertex -0.0740192 -0.115 1.3
vertex -0.129544 -0.0947905 1.3
vertex -0.0770187 -0.119284 1.3
endloop
endfacet
facet normal 0 0 1
outer loop
vertex -0.0718092 -0.110261 1.3
vertex -0.129544 -0.0947905 1.3
vertex -0.0740192 -0.115 1.3
endloop
endfacet
facet normal 0 0 1
outer loop
vertex -0.0704558 -0.105209 1.3
vertex -0.129544 -0.0947905 1.3
vertex -0.0718092 -0.110261 1.3
endloop
endfacet
facet normal 0 0 1
outer loop
vertex -0.07 -0.1 1.3
vertex -0.129544 -0.0947905 1.3
vertex -0.0704558 -0.105209 1.3
endloop
endfacet
facet normal 0 0 1
outer loop
vertex -0.0704558 -0.0947905 1.3
vertex -0.129544 -0.0947905 1.3
vertex -0.07 -0.1 1.3
endloop
endfacet
facet normal 0 0 1
outer loop
vertex -0.0718092 -0.0897394 1.3
vertex -0.129544 -0.0947905 1.3
vertex -0.0704558 -0.0947905 1.3
endloop
endfacet
facet normal 0 0 1
outer loop
vertex -0.0740192 -0.085 1.3
vertex -0.129544 -0.0947905 1.3
vertex -0.0718092 -0.0897394 1.3
endloop
endfacet
facet normal 0 0 1
outer loop
vertex -0.0770187 -0.0807164 1.3
vertex -0.129544 -0.0947905 1.3
vertex -0.0740192 -0.085 1.3
endloop
endfacet
facet normal 0 0 1
outer loop
vertex -0.0807164 -0.0770187 1.3
vertex -0.129544 -0.0947905 1.3
vertex -0.0770187 -0.0807164 1.3
endloop
endfacet
facet normal 0 0 1
outer loop
vertex -0.085 -0.0740192 1.3
vertex -0.129544 -0.0947905 1.3
vertex -0.0807164 -0.0770187 1.3
endloop
endfacet
facet normal 0 0 1
outer loop
vertex -0.0897394 -0.0718092 1.3
vertex -0.129544 -0.0947905 1.3
vertex -0.085 -0.0740192 1.3
endloop
endfacet
facet normal 0 0 1
outer loop
vertex -0.0947905 -0.0704558 1.3
vertex -0.129544 -0.0947905 1.3
vertex -0.0897394 -0.0718092 1.3
endloop
endfacet
facet normal 0 0 1
outer loop
vertex -0.1 -0.07 1.3
vertex -0.129544 -0.0947905 1.3
vertex -0.0947905 -0.0704558 1.3
endloop
endfacet
facet normal -0 0 1
outer loop
vertex -0.105209 -0.0704558 1.3
vertex -0.129544 -0.0947905 1.3
vertex -0.1 -0.07 1.3
endloop
endfacet
facet normal -0 0 1
outer loop
vertex -0.110261 -0.0718092 1.3
vertex -0.129544 -0.0947905 1.3
vertex -0.105209 -0.0704558 1.3
endloop
endfacet
facet normal -0 0 1
outer loop
vertex -0.115 -0.0740192 1.3
vertex -0.129544 -0.0947905 1.3
vertex -0.110261 -0.0718092 1.3
endloop
endfacet
facet normal -0 0 1
outer loop
vertex -0.119284 -0.0770187 1.3
vertex -0.129544 -0.0947905 1.3
vertex -0.115 -0.0740192 1.3
endloop
endfacet
facet normal -0 0 1
outer loop
vertex -0.122981 -0.0807164 1.3
vertex -0.129544 -0.0947905 1.3
vertex -0.119284 -0.0770187 1.3
endloop
endfacet
facet normal -0 0 1
outer loop
vertex -0.125981 -0.085 1.3
vertex -0.129544 -0.0947905 1.3
vertex -0.122981 -0.0807164 1.3
endloop
endfacet
facet normal -0 0 1
outer loop
vertex -0.128191 -0.0897394 1.3
vertex -0.129544 -0.0947905 1.3
vertex -0.125981 -0.085 1.3
endloop
endfacet
endsolid ascii

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -2,35 +2,33 @@
cd ${0%/*} || exit 1 # run from this directory
#cp rawSurfaces/MRF.stl MRF.stl
#cp rawSurfaces/baffles.stl baffles.stl
\cp rawSurfaces/*.stl .
cp rawSurfaces/vessel.stl vessel.stl
cp rawSurfaces/sparger.stl sparger.stl
cp rawSurfaces/shaftRotating.stl shaftRotating.stl
cp rawSurfaces/shaftStatic.stl shaftStatic.stl
cp rawSurfaces/gasInlet.stl gasInlet.stl
cp rawSurfaces/stirrer.stl stirrer.stl
# Vessel surface
surfaceAutoPatch vessel.stl vessel.stl 120
surfaceAdd outlet.stl vessel.stl vessel.stl
# Sparger
surfaceCheck sparger.stl
surfaceAdd gasInlet.stl sparger_0.obj spargerInlet.stl
surfaceConvert sparger_1.obj spargerShaft.stl
surfaceOrient -inside spargerInlet.stl "(-100 -50 500)" spargerInlet.stl
surfaceOrient -inside spargerShaft.stl "(-50 -20 -100)" spargerShaft.stl
surfaceOrient -inside spargerInlet.stl "(0 0.1 1)" spargerInlet.stl
surfaceOrient -inside spargerShaft.stl "(0 0.1 -0.1)" spargerShaft.stl
# Rotating shaft
surfaceOrient -inside shaftRotating.stl "(-100 -50 500)" shaftRotating.stl
surfaceOrient -inside shaftRotating.stl "(0 0.1 1)" shaftRotating.stl
# Static shaft
surfaceOrient -inside shaftStatic.stl "(15 -200 1000)" shaftStatic.stl
surfaceOrient -inside shaft.stl "(0 0.1 1)" shaft.stl
# Stirrer
surfaceSplitByTopology stirrer.stl stirrer.stl
surfaceOrient -inside stirrer.stl "(15 -200 1000)" stirrer.stl
surfaceOrient -inside stirrer.stl "(0 0.1 1)" stirrer.stl
\mv stirrer_bafflePart_0.stl stirrer_baffles.stl
surfaceCheck stirrer_baffles.stl
\mv stirrer_baffles_0.obj stirrer_baffles_plate.obj
# ----------------------------------------------------------------- end-of-file

View File

@ -0,0 +1,20 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: dev |
| \\ / 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 @@
/home/ren2/laurence/OpenFOAM/laurence-dev-foamyHexMesh-baffles/run/mixerVesselFoamy/system

View File

@ -0,0 +1 @@
/home/ren2/laurence/OpenFOAM/laurence-dev-foamyHexMesh-baffles/run/mixerVesselFoamy/system

View File

@ -32,7 +32,7 @@ collapseEdgesCoeffs
collapseFacesCoeffs
{
// The initial face length factor
initialFaceLengthFactor 0.3;
initialFaceLengthFactor 1;
// If the face can't be collapsed to an edge, and it has a span less than
// the target face length multiplied by this coefficient, collapse it
@ -76,7 +76,7 @@ controlMeshQualityCoeffs
// Maximum number of outer iterations is mesh quality checking is enabled
maximumIterations 10;
maximumSmoothingIterations 2;
maximumSmoothingIterations 1;
maxPointErrorCount 3;
}

View File

@ -15,7 +15,7 @@ FoamFile
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
application icoFoam;
application foamyHexMesh;
startFrom startTime;
@ -45,5 +45,4 @@ timePrecision 6;
runTimeModifiable yes;
// ************************************************************************* //

View File

@ -0,0 +1,56 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
application interDyMFoam;
startFrom startTime;
startTime 0;
stopAt endTime;
endTime 5.0;
deltaT 1e-4;
writeControl adjustableRunTime;
writeInterval 0.05;
purgeWrite 0;
writeFormat binary;
writePrecision 6;
writeCompression uncompressed;
timeFormat general;
timePrecision 10;
runTimeModifiable yes;
adjustTimeStep yes;
maxCo 1.5;
maxAlphaCo 1;
maxDeltaT 1;
// ************************************************************************* //

View File

@ -11,37 +11,38 @@ FoamFile
format ascii;
class dictionary;
location "system";
object decomposeParDict;
object controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
numberOfSubdomains 8;
application foamyHexMesh;
//method ptscotch;
//method hierarchical;
method scotch;
startFrom startTime;
simpleCoeffs
{
n ( 2 2 1 );
delta 0.001;
}
startTime 0;
hierarchicalCoeffs
{
n ( 2 2 2 );
delta 0.001;
order xyz;
}
stopAt endTime;
manualCoeffs
{
dataFile "";
}
endTime 100;
distributed no;
deltaT 1;
roots ( );
writeControl timeStep;
writeInterval 100;
purgeWrite 0;
writeFormat binary;
writePrecision 10;
writeCompression uncompressed;
timeFormat general;
timePrecision 6;
runTimeModifiable yes;
// ************************************************************************* //

View File

@ -0,0 +1,100 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object createBafflesDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// Whether to convert internal faces only (so leave boundary faces intact).
// This is only relevant if your face selection type can pick up boundary
// faces.
internalFacesOnly true;
// Baffles to create.
baffles
{
baffles
{
//- Use predefined faceZone to select faces and orientation.
type faceZone;
zoneName baffles;
patches
{
master
{
//- Master side patch
name baffles;
type wall;
}
slave
{
${..master}
}
}
}
stirrer_baffles
{
//- Use predefined faceZone to select faces and orientation.
type faceZone;
zoneName stirrer_baffles;
patches
{
master
{
//- Master side patch
name stirrer_baffles;
type wall;
}
slave
{
${..master}
}
}
}
rotating
{
//- Use predefined faceZone to select faces and orientation.
type faceZone;
zoneName rotating;
patches
{
master
{
//- Master side patch
name AMI1;
type cyclicAMI;
matchTolerance 0.0001;
neighbourPatch AMI2;
transform noOrdering;
}
slave
{
//- Slave side patch
name AMI2;
type cyclicAMI;
matchTolerance 0.0001;
neighbourPatch AMI1;
transform noOrdering;
}
}
}
}
// ************************************************************************* //

View File

@ -0,0 +1,27 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object createPatchDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// Do a synchronisation of coupled points after creation of any patches.
// Note: this does not work with points that are on multiple coupled patches
// with transformations (i.e. cyclics).
pointSync false;
// Patches to create.
patches
(
);
// ************************************************************************* //

View File

@ -24,6 +24,7 @@ geometry
initialPoints
{
//initialPointsMethod pointFile;
initialPointsMethod autoDensity;
autoDensityCoeffs
@ -33,217 +34,51 @@ initialPoints
sampleResolution 5;
surfaceSampleResolution 5;
}
pointFileCoeffs
{
insideOutsideCheck off;
randomiseInitialGrid off;
randomPerturbationCoeff 1e-3;
pointFile "0/internalDelaunayVertices";
}
}
surfaceConformation
{
locationInMesh (200 0 10);
locationInMesh (0 0.1 1.0);
geometryToConformTo
#include "meshDict.conformationSurfaces"
featurePointExclusionDistanceCoeff 0.65;
featureEdgeExclusionDistanceCoeff 0.5;
maxSurfaceProtrusionCoeff 0.1;
conformationControls
{
spargerInlet
{
featureMethod extendedFeatureEdgeMesh;
extendedFeatureEdgeMesh "spargerInlet.extendedFeatureEdgeMesh";
}
spargerShaft
{
featureMethod none;
}
vessel
{
featureMethod extendedFeatureEdgeMesh;
extendedFeatureEdgeMesh "vessel.extendedFeatureEdgeMesh";
regions
{
patch0 {}
patch1 {}
patch2 {}
}
}
shaftRotating
{
featureMethod extendedFeatureEdgeMesh;
extendedFeatureEdgeMesh "shaftRotating.extendedFeatureEdgeMesh";
}
shaftStatic
{
featureMethod none;
}
stirrer
{
featureMethod extendedFeatureEdgeMesh;
extendedFeatureEdgeMesh "stirrer.extendedFeatureEdgeMesh";
}
}
additionalFeatures
{
spargerShaft_spargerInlet_intersection
{
featureMethod extendedFeatureEdgeMesh;
extendedFeatureEdgeMesh "spargerShaft_spargerInlet_intersection.extendedFeatureEdgeMesh";
}
vessel_shaftStatic_intersection
{
featureMethod extendedFeatureEdgeMesh;
extendedFeatureEdgeMesh "vessel_shaftStatic_intersection.extendedFeatureEdgeMesh";
}
vessel_spargerShaft_intersection
{
featureMethod extendedFeatureEdgeMesh;
extendedFeatureEdgeMesh "vessel_spargerShaft_intersection.extendedFeatureEdgeMesh";
}
stirrer_shaftRotating_intersection
{
featureMethod extendedFeatureEdgeMesh;
extendedFeatureEdgeMesh "stirrer_shaftRotating_intersection.extendedFeatureEdgeMesh";
}
edgeSearchDistCoeff 5;
surfacePtReplaceDistCoeff 0.5;
surfacePtExclusionDistanceCoeff 0.5;
maxIterations 15;
iterationToInitialHitRatioLimit 0.0001;
}
}
motionControl
{
defaultCellSize 10;
defaultCellSize 6e-3;
minimumCellSizeCoeff 0.1;
minimumCellSizeCoeff 0.1;
maxRefinementIterations 1;
maxRefinementIterations 1;
maxSmoothingIterations 100;
maxSmoothingIterations 100;
shapeControlFunctions
{
vessel
{
type searchableSurfaceControl;
priority 1;
mode inside;
forceInitialPointInsertion off;
surfaceCellSizeFunction uniformValue;
uniformValueCoeffs
{
surfaceCellSizeCoeff 1;
}
cellSizeFunction uniform;
uniformCoeffs{}
regions
{
patch0
{
surfaceCellSizeFunction uniformValue;
uniformValueCoeffs
{
surfaceCellSizeCoeff 1;
}
cellSizeFunction uniform;
uniformCoeffs{}
}
patch1
{
priority 2;
surfaceCellSizeFunction uniformValue;
uniformValueCoeffs
{
surfaceCellSizeCoeff 0.5;
}
cellSizeFunction uniformDistance;
uniformDistanceCoeffs
{
distanceCoeff 5;
}
}
patch2
{
priority 2;
surfaceCellSizeFunction uniformValue;
uniformValueCoeffs
{
surfaceCellSizeCoeff 0.5;
}
cellSizeFunction uniformDistance;
uniformDistanceCoeffs
{
distanceCoeff 2;
}
}
}
}
shaftRotating
{
type searchableSurfaceControl;
priority 2;
mode inside;
forceInitialPointInsertion off;
surfaceCellSizeFunction uniformValue;
uniformValueCoeffs
{
surfaceCellSizeCoeff 0.25;
}
cellSizeFunction linearDistance;
linearDistanceCoeffs
{
distanceCellSizeCoeff 1;
distanceCoeff 4;
}
}
shaftStatic
{
${shaftRotating};
}
stirrer
{
${shaftRotating};
}
spargerInlet
{
type searchableSurfaceControl;
priority 2;
mode inside;
forceInitialPointInsertion off;
surfaceCellSizeFunction uniformValue;
uniformValueCoeffs
{
surfaceCellSizeCoeff 0.25;
}
cellSizeFunction linearDistance;
linearDistanceCoeffs
{
distanceCellSizeCoeff 1;
distanceCoeff 4;
}
}
spargerShaft
{
${spargerInlet}
}
#include "meshDict.cellShapeControl"
}
objOutput no;
@ -263,15 +98,11 @@ backgroundMeshDecomposition
polyMeshFiltering
{
writeTetDualMesh false;
filterEdges on;
filterFaces off;
}
meshQualityControls
{
#include "meshQualityDict"
writeBackgroundMeshDecomposition true;
writeCellShapeControlMesh true;
writeTetDualMesh false;
filterEdges on;
filterFaces off;
}

View File

@ -15,16 +15,54 @@ FoamFile
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
ddtSchemes
{
default Euler;
}
gradSchemes
{
default Gauss linear;
grad(U) cellLimited Gauss linear 1;
}
divSchemes
{
div(rho*phi,U) Gauss linearUpwind grad(U);
div(phi,alpha) Gauss vanLeer;
div(phirb,alpha) Gauss interfaceCompression 1;
div(phid1,p_rgh) Gauss upwind;
div(phid2,p_rgh) Gauss upwind;
div(rho*phi,T) Gauss linearUpwind unlimited;
div(rho*phi,K) Gauss upwind;
div(phi,k) Gauss upwind;
div(phi,epsilon) Gauss upwind;
div((muEff*dev2(T(grad(U))))) Gauss linear;
div((muEff*dev(T(grad(U))))) Gauss linear;
}
laplacianSchemes
{
default Gauss linear limited 0.333;
}
interpolationSchemes
{
default linear;
}
snGradSchemes
{
default limited 0.333;
}
fluxRequired
{
default no;
p_rgh;
pcorr;
}
// ************************************************************************* //

View File

@ -15,4 +15,91 @@ FoamFile
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solvers
{
alpha.water
{
nAlphaCorr 1;
nAlphaSubCycles 2;
cAlpha 1;
}
p_rgh
{
solver GAMG;
tolerance 1e-6;
relTol 0.02;
smoother GaussSeidel;
cacheAgglomeration true;
nCellsInCoarsestLevel 10;
agglomerator faceAreaPair;
nPreSweeps 0;
nPostSweeps 2;
mergeLevels 1;
}
pcorr
{
$p_rgh;
tolerance 0.1;
relTol 0;
}
p_rghFinal
{
$p_rgh;
relTol 0;
}
".*(rho|rhoFinal)"
{
solver diagonal;
}
"U.*"
{
solver smoothSolver;
smoother GaussSeidel;
tolerance 1e-6;
relTol 0;
nSweeps 1;
}
"(T|k|epsilon).*"
{
solver PBiCG;
preconditioner DILU;
tolerance 1e-6;
relTol 0;
}
}
PIMPLE
{
momentumPredictor yes;
correctPhi yes;
transSonic no;
nOuterCorrectors 1;
nCorrectors 3;
nNonOrthogonalCorrectors 0;
nAlphaCorr 1;
nAlphaSubCycles 2;
cAlpha 1;
}
relaxationFactors
{
fields
{
}
equations
{
"U.*" 1;
"k.*" 1;
"epsilon.*" 1;
"T.*" 1;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,189 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object meshDict.cellShapeControl;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
vessel
{
type searchableSurfaceControl;
priority 1;
mode inside;
forceInitialPointInsertion off;
surfaceCellSizeFunction uniformValue;
uniformValueCoeffs
{
surfaceCellSizeCoeff 1;
}
cellSizeFunction uniform;
uniformCoeffs{}
regions
{
vessel
{
surfaceCellSizeFunction uniformValue;
uniformValueCoeffs
{
surfaceCellSizeCoeff 1;
}
cellSizeFunction uniform;
uniformCoeffs{}
}
outlet
{
priority 2;
surfaceCellSizeFunction uniformValue;
uniformValueCoeffs
{
surfaceCellSizeCoeff 0.5;
}
cellSizeFunction uniformDistance;
uniformDistanceCoeffs
{
distanceCoeff 2;
}
}
}
}
shaftRotating
{
type searchableSurfaceControl;
priority 2;
mode inside;
forceInitialPointInsertion on;
surfaceCellSizeFunction uniformValue;
uniformValueCoeffs
{
surfaceCellSizeCoeff 0.5;
}
cellSizeFunction linearDistance;
linearDistanceCoeffs
{
distanceCellSizeCoeff 1;
distanceCoeff 4;
}
}
shaft
{
${shaftRotating};
}
stirrer
{
${shaftRotating};
}
spargerInlet
{
type searchableSurfaceControl;
priority 2;
mode inside;
forceInitialPointInsertion on;
surfaceCellSizeFunction uniformValue;
uniformValueCoeffs
{
surfaceCellSizeCoeff 0.5;
}
cellSizeFunction linearDistance;
linearDistanceCoeffs
{
distanceCellSizeCoeff 1;
distanceCoeff 4;
}
}
spargerShaft
{
${spargerInlet}
}
stirrer_baffles
{
type searchableSurfaceControl;
priority 2;
mode bothSides;
forceInitialPointInsertion on;
surfaceCellSizeFunction uniformValue;
uniformValueCoeffs
{
surfaceCellSizeCoeff 0.5;
}
cellSizeFunction linearDistance;
linearDistanceCoeffs
{
distanceCellSizeCoeff 1;
distanceCoeff 4;
}
}
rotating
{
type searchableSurfaceControl;
priority 2;
mode bothSides;
forceInitialPointInsertion on;
surfaceCellSizeFunction uniformValue;
uniformValueCoeffs
{
surfaceCellSizeCoeff 1;
}
cellSizeFunction uniform;
uniformCoeffs{}
//cellSizeFunction linearDistance;
//linearDistanceCoeffs
//{
// distanceCellSizeCoeff 1;
// distanceCoeff 4;
//}
}
baffles
{
${rotating}
/* type searchableSurfaceControl;*/
/* priority 3;*/
/* mode bothSides;*/
/* forceInitialPointInsertion on;*/
/* surfaceCellSizeFunction uniformValue;*/
/* uniformValueCoeffs*/
/* {*/
/* surfaceCellSizeCoeff 0.25;*/
/* }*/
/* cellSizeFunction linearDistance;*/
/* linearDistanceCoeffs*/
/* {*/
/* distanceCellSizeCoeff 1;*/
/* distanceCoeff 4;*/
/* }*/
}
// ************************************************************************* //

View File

@ -0,0 +1,228 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object meshDict.conformationSurfaces;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
geometryToConformTo
{
spargerInlet
{
featureMethod extendedFeatureEdgeMesh;
extendedFeatureEdgeMesh "spargerInlet.extendedFeatureEdgeMesh";
regions
{
gasInlet
{
patchInfo
{
type patch;
}
}
sparger
{
patchInfo
{
type wall;
inGroups (meshedWalls);
}
}
}
}
spargerShaft
{
featureMethod none;
patchInfo
{
type wall;
inGroups (meshedWalls);
}
}
vessel
{
featureMethod extendedFeatureEdgeMesh;
extendedFeatureEdgeMesh "vessel.extendedFeatureEdgeMesh";
regions
{
outlet
{
patchInfo
{
type patch;
}
}
vessel
{
patchInfo
{
type wall;
inGroups (meshedWalls);
}
}
}
}
shaftRotating
{
featureMethod extendedFeatureEdgeMesh;
extendedFeatureEdgeMesh "shaftRotating.extendedFeatureEdgeMesh";
patchInfo
{
type wall;
inGroups (meshedWalls);
}
}
shaft
{
featureMethod none;
patchInfo
{
type wall;
inGroups (meshedWalls);
}
}
stirrer
{
featureMethod extendedFeatureEdgeMesh;
extendedFeatureEdgeMesh "stirrer.extendedFeatureEdgeMesh";
patchInfo
{
type wall;
inGroups (meshedWalls);
}
}
stirrer_baffles
{
featureMethod extendedFeatureEdgeMesh;
extendedFeatureEdgeMesh "stirrer_baffles.extendedFeatureEdgeMesh";
patchInfo
{
type wall;
inGroups (meshedWalls);
}
meshableSide both;
faceZone stirrer_baffles;
}
rotating
{
featureMethod extendedFeatureEdgeMesh;
extendedFeatureEdgeMesh "rotating.extendedFeatureEdgeMesh";
meshableSide both;
faceZone rotating;
cellZone rotating;
cellZoneInside inside;
}
baffles
{
featureMethod extendedFeatureEdgeMesh;
extendedFeatureEdgeMesh "baffles.extendedFeatureEdgeMesh";
patchInfo
{
type wall;
inGroups (meshedWalls);
}
meshableSide both;
faceZone baffles;
}
}
additionalFeatures
{
spargerShaft_spargerInlet_intersection
{
featureMethod extendedFeatureEdgeMesh;
extendedFeatureEdgeMesh "spargerShaft_spargerInlet_intersection.extendedFeatureEdgeMesh";
}
vessel_shaft_intersection
{
featureMethod extendedFeatureEdgeMesh;
extendedFeatureEdgeMesh "vessel_shaft_intersection.extendedFeatureEdgeMesh";
}
vessel_spargerShaft_intersection
{
featureMethod extendedFeatureEdgeMesh;
extendedFeatureEdgeMesh "vessel_spargerShaft_intersection.extendedFeatureEdgeMesh";
}
stirrer_shaftRotating_intersection
{
featureMethod extendedFeatureEdgeMesh;
extendedFeatureEdgeMesh "stirrer_shaftRotating_intersection.extendedFeatureEdgeMesh";
}
rotating_shaft_intersection
{
featureMethod extendedFeatureEdgeMesh;
extendedFeatureEdgeMesh "rotating_shaft_intersection.extendedFeatureEdgeMesh";
}
stirrer_baffles_stirrer_intersection
{
featureMethod extendedFeatureEdgeMesh;
extendedFeatureEdgeMesh "stirrer_baffles_stirrer_intersection.extendedFeatureEdgeMesh";
}
stirrer_baffles_1_stirrer_baffles_plate_intersection
{
featureMethod extendedFeatureEdgeMesh;
extendedFeatureEdgeMesh "stirrer_baffles_1_stirrer_baffles_plate_intersection.extendedFeatureEdgeMesh";
}
stirrer_baffles_2_stirrer_baffles_plate_intersection
{
featureMethod extendedFeatureEdgeMesh;
extendedFeatureEdgeMesh "stirrer_baffles_2_stirrer_baffles_plate_intersection.extendedFeatureEdgeMesh";
}
stirrer_baffles_3_stirrer_baffles_plate_intersection
{
featureMethod extendedFeatureEdgeMesh;
extendedFeatureEdgeMesh "stirrer_baffles_3_stirrer_baffles_plate_intersection.extendedFeatureEdgeMesh";
}
stirrer_baffles_4_stirrer_baffles_plate_intersection
{
featureMethod extendedFeatureEdgeMesh;
extendedFeatureEdgeMesh "stirrer_baffles_4_stirrer_baffles_plate_intersection.extendedFeatureEdgeMesh";
}
stirrer_baffles_5_stirrer_baffles_plate_intersection
{
featureMethod extendedFeatureEdgeMesh;
extendedFeatureEdgeMesh "stirrer_baffles_5_stirrer_baffles_plate_intersection.extendedFeatureEdgeMesh";
}
stirrer_baffles_6_stirrer_baffles_plate_intersection
{
featureMethod extendedFeatureEdgeMesh;
extendedFeatureEdgeMesh "stirrer_baffles_6_stirrer_baffles_plate_intersection.extendedFeatureEdgeMesh";
}
}
// ************************************************************************* //

View File

@ -21,9 +21,8 @@ vessel.stl
regions
{
patch0 {name vessel_wall;}
patch1 {name vessel_outletPipe;}
patch2 {name vessel_outlet;}
outlet {name outlet;}
vessel {name vessel;}
}
}
@ -32,6 +31,19 @@ spargerInlet.stl
{
name spargerInlet;
type triSurfaceMesh;
regions
{
gasInlet
{
name gasInlet;
}
sparger
{
name sparger;
}
}
}
@ -39,6 +51,14 @@ spargerShaft.stl
{
name spargerShaft;
type triSurfaceMesh;
regions
{
sparger
{
name spargerShaft;
}
}
}
@ -46,13 +66,44 @@ shaftRotating.stl
{
name shaftRotating;
type triSurfaceMesh;
regions
{
shaftRotating
{
name shaftRotating;
}
}
}
shaftStatic.stl
shaft.stl
{
name shaftStatic;
name shaft;
type triSurfaceMesh;
regions
{
shaft
{
name shaft;
}
}
}
stirrer_baffles.stl
{
name stirrer_baffles;
type triSurfaceMesh;
regions
{
stirrer
{
name stirrer_baffles;
}
}
}
@ -60,6 +111,44 @@ stirrer.stl
{
name stirrer;
type triSurfaceMesh;
regions
{
stirrer
{
name stirrer;
}
}
}
rotating.stl
{
name rotating;
type triSurfaceMesh;
regions
{
MRF
{
name rotating;
}
}
}
baffles.stl
{
name baffles;
type triSurfaceMesh;
regions
{
baffles
{
name baffles;
}
}
}

View File

@ -0,0 +1,36 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object setFieldsDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
defaultFieldValues
(
volScalarFieldValue alpha.water 1
);
regions
(
boxToCell
{
box (-4 -4 -1) (4 4 0.74);
fieldValues
(
volScalarFieldValue alpha.water 0
);
}
);
// ************************************************************************* //

View File

@ -20,23 +20,18 @@ shaftRotating.stl
extractFromSurfaceCoeffs
{
// Mark edges whose adjacent surface normals are at an angle less
// than includedAngle as features
// - 0 : selects no edges
// - 180: selects all edges
includedAngle 100;
}
subsetFeatures
{
// Remove the top feature
insideBox (-100 -100 -100)(100 100 100);
insideBox (-0.1 -0.1 -0.1)(0.1 0.1 0.1);
}
// Write options
// Write features to obj format for postprocessing
writeObj no;
writeObj yes;
}
@ -46,10 +41,6 @@ vessel.stl
extractFromSurfaceCoeffs
{
// Mark edges whose adjacent surface normals are at an angle less
// than includedAngle as features
// - 0 : selects no edges
// - 180: selects all edges
includedAngle 120;
}
@ -65,7 +56,6 @@ vessel.stl
// Write options
// Write features to obj format for postprocessing
writeObj no;
}
@ -76,16 +66,11 @@ spargerInlet.stl
extractFromSurfaceCoeffs
{
// Mark edges whose adjacent surface normals are at an angle less
// than includedAngle as features
// - 0 : selects no edges
// - 180: selects all edges
includedAngle 120;
}
// Write options
// Write features to obj format for postprocessing
writeObj no;
}
@ -96,16 +81,62 @@ stirrer.stl
extractFromSurfaceCoeffs
{
// Mark edges whose adjacent surface normals are at an angle less
// than includedAngle as features
// - 0 : selects no edges
// - 180: selects all edges
includedAngle 120;
}
// Write options
// Write features to obj format for postprocessing
writeObj no;
}
stirrer_baffles.stl
{
extractionMethod extractFromSurface;
extractFromSurfaceCoeffs
{
includedAngle 120;
}
baffles (stirrer);
// Write options
writeObj no;
}
rotating.stl
{
extractionMethod extractFromSurface;
extractFromSurfaceCoeffs
{
includedAngle 120;
}
baffles (MRF);
// Write options
writeObj yes;
}
baffles.stl
{
extractionMethod extractFromSurface;
extractFromSurfaceCoeffs
{
includedAngle 120;
}
baffles (baffles);
// Write options
writeObj no;
}