Merge branch 'feature/cvMesh'

This commit is contained in:
laurence
2013-06-04 10:04:21 +01:00
325 changed files with 112562 additions and 1402 deletions

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 T;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 1 0 0 0];
internalField uniform 1;
boundaryField
{
box_inlet
{
type fixedValue;
value uniform 1;
}
box_outlet
{
type zeroGradient;
}
box_bottom
{
type zeroGradient;
}
box_top
{
type zeroGradient;
}
letters_text
{
type zeroGradient;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,59 @@
/*--------------------------------*- 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 volVectorField;
object U;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -1 0 0 0 0];
internalField uniform (0 0 0);
boundaryField
{
box_inlet
{
type fixedValue;
value uniform (3 0 0);
}
box_outlet
{
type zeroGradient;
}
box_bottom
{
type supersonicFreestream;
UInf (3 0 0);
pInf 1;
TInf 1;
gamma 1.4;
}
box_top
{
type supersonicFreestream;
UInf (3 0 0);
pInf 1;
TInf 1;
gamma 1.4;
}
letters_text
{
type fixedValue;
value uniform (0 0 0);
}
}
// ************************************************************************* //

View File

@ -0,0 +1,51 @@
/*--------------------------------*- 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;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [1 -1 -2 0 0 0 0];
internalField uniform 1;
boundaryField
{
box_inlet
{
type fixedValue;
value uniform 1;
}
box_outlet
{
type zeroGradient;
}
box_bottom
{
type zeroGradient;
}
box_top
{
type zeroGradient;
}
letters_text
{
type zeroGradient;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,15 @@
#!/bin/sh
cd ${0%/*} || exit 1 # run from this directory
# Source tutorial run functions
. $WM_PROJECT_DIR/bin/tools/CleanFunctions
rm -rf constant/extendedFeatureEdgeMesh > /dev/null 2>&1
rm -rf constant/triSurface/*.eMesh > /dev/null 2>&1
rm -rf 0 > /dev/null 2>&1
rm -rf MeshedSurface.obj > /dev/null 2>&1
cleanCase
# ----------------------------------------------------------------- end-of-file

View File

@ -0,0 +1,15 @@
#!/bin/sh
cd ${0%/*} || exit 1 # run from this directory
# Source tutorial run functions
. $WM_PROJECT_DIR/bin/tools/RunFunctions
cp system/controlDict.mesher system/controlDict
runApplication surfaceFeatureExtract
runApplication foamyHex2DMesh -overwrite
runApplication extrude2DMesh -overwrite polyMesh2D
runApplication checkMesh -allGeometry -allTopology -constant -noZero
# ----------------------------------------------------------------- end-of-file

View File

@ -0,0 +1,18 @@
#!/bin/sh
cd ${0%/*} || exit 1 # run from this directory
# Source tutorial run functions
. $WM_PROJECT_DIR/bin/tools/RunFunctions
# Get the number of processors to run on from system/decomposeParDict
nProcs=$(getNumberOfProcessors)
cp system/controlDict.rhoCentralFoam system/controlDict
cp -r 0.org 0
runApplication decomposePar
runParallel rhoCentralFoam $nProcs
runApplication reconstructPar
# ----------------------------------------------------------------- end-of-file

View File

@ -0,0 +1,66 @@
/*--------------------------------*- 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 polyBoundaryMesh;
location "constant/polyMesh";
object boundary;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
7
(
letters_text
{
type patch;
nFaces 1064;
startFace 132063;
}
box_bottom
{
type patch;
nFaces 324;
startFace 133127;
}
box_top
{
type patch;
nFaces 324;
startFace 133451;
}
box_inlet
{
type patch;
nFaces 207;
startFace 133775;
}
box_outlet
{
type patch;
nFaces 207;
startFace 133982;
}
front
{
type empty;
inGroups 1(empty);
nFaces 64792;
startFace 134189;
}
back
{
type empty;
inGroups 1(empty);
nFaces 64792;
startFace 198981;
}
)
// ************************************************************************* //

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 dictionary;
location "constant";
object thermophysicalProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
thermoType hePsiThermo<pureMixture<const<hConst<perfectGas<specie>>,sensibleEnthalpy>>>;
// Note: these are the properties for a "normalised" inviscid gas
// for which the speed of sound is 1 m/s at a temperature of 1K
// and gamma = 7/5
mixture
{
specie
{
nMoles 1;
molWeight 11640.3;
}
thermodynamics
{
Cp 2.5;
Hf 0;
}
transport
{
mu 0;
Pr 1;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,96 @@
solid back
facet normal 0 0 -1
outer loop
vertex -1.618703 -1.830978 -0.557967
vertex 4.82342 2.27362 -0.557967
vertex 4.82342 -1.830978 -0.557967
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex -1.618703 -1.830978 -0.557967
vertex -1.618703 2.27362 -0.557967
vertex 4.82342 2.27362 -0.557967
endloop
endfacet
endsolid back
solid front
facet normal 0 0 1
outer loop
vertex 4.82342 2.27362 0.586404
vertex -1.618703 -1.830978 0.586404
vertex 4.82342 -1.830978 0.586404
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 4.82342 2.27362 0.586404
vertex -1.618703 2.27362 0.586404
vertex -1.618703 -1.830978 0.586404
endloop
endfacet
endsolid front
solid bottom
facet normal -2.19049e-08 -1 2.0834e-07
outer loop
vertex -1.618703 -1.830978 0.586404
vertex -1.618703 -1.830978 -0.557967
vertex 4.82342 -1.830978 -0.557967
endloop
endfacet
facet normal -1.97144e-07 -1 -6.25021e-07
outer loop
vertex 4.82342 -1.830978 -0.557967
vertex 4.82342 -1.830978 0.586404
vertex -1.618703 -1.830978 0.586404
endloop
endfacet
endsolid bottom
solid top
facet normal 6.57148e-08 1 4.1668e-07
outer loop
vertex 4.82342 2.27362 0.586404
vertex 4.82342 2.27362 -0.557967
vertex -1.618703 2.27362 -0.557967
endloop
endfacet
facet normal 8.76197e-08 1 3.1251e-07
outer loop
vertex -1.618703 2.27362 -0.557967
vertex -1.618703 2.27362 0.586404
vertex 4.82342 2.27362 0.586404
endloop
endfacet
endsolid top
solid inlet
facet normal -1 2.54891e-07 -2.60425e-07
outer loop
vertex -1.618703 -1.830978 -0.557967
vertex -1.618703 2.27362 0.586404
vertex -1.618703 2.27362 -0.557967
endloop
endfacet
facet normal -1 1.69927e-07 -1.0417e-07
outer loop
vertex -1.618703 -1.830978 -0.557967
vertex -1.618703 -1.830978 0.586404
vertex -1.618703 2.27362 0.586404
endloop
endfacet
endsolid inlet
solid outlet
facet normal 1 0 8.33361e-07
outer loop
vertex 4.82342 2.27362 -0.557967
vertex 4.82342 -1.830978 0.586404
vertex 4.82342 -1.830978 -0.557967
endloop
endfacet
facet normal 1 -6.79708e-07 -4.16681e-07
outer loop
vertex 4.82342 2.27362 -0.557967
vertex 4.82342 2.27362 0.586404
vertex 4.82342 -1.830978 0.586404
endloop
endfacet
endsolid outlet

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,21 @@
/*--------------------------------*- 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 laminar;
// ************************************************************************* //

View File

@ -0,0 +1,55 @@
/*--------------------------------*- 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 rhoCentralFoam;
startFrom startTime;
startTime 0;
stopAt endTime;
endTime 10;
deltaT 0.001;
writeControl adjustableRunTime;
writeInterval 0.25;
purgeWrite 0;
writeFormat ascii;
writePrecision 12;
writeCompression off;
timeFormat general;
timePrecision 6;
runTimeModifiable true;
adjustTimeStep yes;
maxCo 0.5;
maxDeltaT 1;
// ************************************************************************* //

View File

@ -0,0 +1,55 @@
/*--------------------------------*- 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 rhoCentralFoam;
startFrom startTime;
startTime 0;
stopAt endTime;
endTime 100;
deltaT 1;
writeControl adjustableRunTime;
writeInterval 1;
purgeWrite 0;
writeFormat ascii;
writePrecision 12;
writeCompression off;
timeFormat general;
timePrecision 6;
runTimeModifiable true;
adjustTimeStep yes;
maxCo 0.2;
maxDeltaT 1;
// ************************************************************************* //

View File

@ -0,0 +1,55 @@
/*--------------------------------*- 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 rhoCentralFoam;
startFrom startTime;
startTime 0;
stopAt endTime;
endTime 10;
deltaT 0.001;
writeControl adjustableRunTime;
writeInterval 0.25;
purgeWrite 0;
writeFormat ascii;
writePrecision 12;
writeCompression off;
timeFormat general;
timePrecision 6;
runTimeModifiable true;
adjustTimeStep yes;
maxCo 0.5;
maxDeltaT 1;
// ************************************************************************* //

View File

@ -0,0 +1,45 @@
/*--------------------------------*- 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 decomposeParDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
numberOfSubdomains 8;
method hierarchical;
simpleCoeffs
{
n ( 2 2 1 );
delta 0.001;
}
hierarchicalCoeffs
{
n ( 2 2 2 );
delta 0.001;
order xyz;
}
manualCoeffs
{
dataFile "";
}
distributed no;
roots ( );
// ************************************************************************* //

View File

@ -0,0 +1,42 @@
/*--------------------------------*- 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 extrude2DMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
extrudeModel linearDirection;
patchInfo
{}
patchType empty;
nLayers 1;
expansionRatio 1.0;
linearDirectionCoeffs
{
direction (0 0 1);
thickness 0.1;
}
wedgeCoeffs
{
axisPt (0 0 0);
axis (1 0 0);
angle 10;
}
// ************************************************************************* //

View File

@ -0,0 +1,159 @@
/*--------------------------------*- 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 foamyHex2DMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
geometry
{
opencfd_text.stl
{
name letters;
type closedTriSurfaceMesh;
}
opencfd_box.stl
{
name box;
type closedTriSurfaceMesh;
}
}
surfaceConformation
{
// The z-coordinate of the plane is taken from here.
locationInMesh (0 0 0);
pointPairDistanceCoeff 0.1;
minEdgeLenCoeff 0.1;
maxNotchLenCoeff 1.0;
minNearPointDistCoeff 0.1;
maxQuadAngle 120;
// Insert near-boundary point mirror or point-pairs
insertSurfaceNearestPointPairs yes;
// Mirror near-boundary points rather than insert point-pairs
mirrorPoints no;
// Insert point-pairs vor dual-cell vertices very near the surface
insertSurfaceNearPointPairs yes;
// Maximum number of iterations used in boundaryConform.
maxBoundaryConformingIter 5;
geometryToConformTo
{
letters
{
featureMethod extendedFeatureEdgeMesh;
extendedFeatureEdgeMesh "opencfd_text.extendedFeatureEdgeMesh";
}
box
{
featureMethod extendedFeatureEdgeMesh;
extendedFeatureEdgeMesh "opencfd_box.extendedFeatureEdgeMesh";
}
}
additionalFeatures
{}
// Choose if to randomise the initial grid created by insertGrid.
randomiseInitialGrid yes;
// Perturbation fraction, 1 = cell-size.
randomPerturbation 0.1;
}
motionControl
{
// This is a tolerance for determining whether to deal with surface
// protrusions or not.
minCellSize 0.02;
// Assign a priority to all requests for cell sizes, the highest overrules.
defaultPriority 0;
shapeControlFunctions
{
letters
{
type searchableSurfaceControl;
priority 1;
mode inside;
cellSizeFunction uniform;
linearDistanceCoeffs
{
distanceCellSizeCoeff 1;
distanceCoeff 50;
}
uniformCoeffs
{}
surfaceCellSizeFunction uniformValue;
uniformValueCoeffs
{
surfaceCellSizeCoeff 1;
}
}
}
relaxationModel adaptiveLinear;
adaptiveLinearCoeffs
{
relaxationStart 0.5;
relaxationEnd 0.0;
}
objOutput no;
meshedSurfaceOutput yes;
// Near-wall region where cells are aligned with the wall specified as a
// number of cell layers
nearWallAlignedDist 3;
}
shortEdgeFilter
{
// Factor to multiply the average of a face's edge lengths by.
// If an edge of that face is smaller than that value then delete it.
shortEdgeFilterFactor 0.2;
// Weighting for the lengths of edges that are attached to the boundaries.
// Used when calculating the length of an edge. Default 2.0.
edgeAttachedToBoundaryFactor 2.0;
}
extrusion
{
extrude off;
#include "extrude2DMeshDict"
}
// ************************************************************************* //

View File

@ -0,0 +1,61 @@
/*--------------------------------*- 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 fvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
//fluxScheme Kurganov;
fluxScheme Tadmor;
ddtSchemes
{
default Euler;
}
gradSchemes
{
default Gauss linear;
}
divSchemes
{
default none;
div(tauMC) Gauss linear;
}
laplacianSchemes
{
default Gauss linear corrected;
}
interpolationSchemes
{
default linear;
reconstruct(rho) vanLeer;
reconstruct(U) vanLeerV;
reconstruct(T) vanLeer;
}
snGradSchemes
{
default corrected;
}
fluxRequired
{
default no;
}
// ************************************************************************* //

View File

@ -0,0 +1,42 @@
/*--------------------------------*- 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 fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solvers
{
"(rho|rhoU|rhoE)"
{
solver diagonal;
}
U
{
solver smoothSolver;
smoother GaussSeidel;
nSweeps 2;
tolerance 1e-09;
relTol 0.01;
}
h
{
$U;
tolerance 1e-10;
relTol 0;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,87 @@
/*--------------------------------*- 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 surfaceFeatureExtractDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
opencfd_text.stl
{
extractionMethod extractFromSurface;
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;
}
subsetFeatures
{
// Use a plane to select feature edges
// (normal)(basePoint)
// Keep only edges that intersect the plane will be included
plane (0 0 1)(0 0 0);
// Keep nonManifold edges (edges with >2 connected faces where
// the faces form more than two different normal planes)
nonManifoldEdges no;
// Keep open edges (edges with 1 connected face)
openEdges no;
}
// Write options
// Write features to obj format for postprocessing
writeObj no;
}
opencfd_box.stl
{
extractionMethod extractFromSurface;
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;
}
subsetFeatures
{
// Use a plane to select feature edges
// (normal)(basePoint)
// Keep only edges that intersect the plane will be included
plane (0 0 1)(0 0 0);
// Keep nonManifold edges (edges with >2 connected faces where
// the faces form more than two different normal planes)
nonManifoldEdges no;
// Keep open edges (edges with 1 connected face)
openEdges no;
}
// Write options
// Write features to obj format for postprocessing
writeObj no;
}
// ************************************************************************* //

View File

@ -0,0 +1,16 @@
#!/bin/sh
cd ${0%/*} || exit 1 # run from this directory
# Source tutorial run functions
. $WM_PROJECT_DIR/bin/tools/CleanFunctions
rm -rf constant/extendedFeatureEdgeMesh > /dev/null 2>&1
rm -rf constant/triSurface/jaggedBoundary.eMesh > /dev/null 2>&1
rm -rf constant/polyMesh > /dev/null 2>&1
rm -rf MeshedSurface.obj > /dev/null 2>&1
cleanCase
# ----------------------------------------------------------------- end-of-file

View File

@ -0,0 +1,13 @@
#!/bin/sh
cd ${0%/*} || exit 1 # run from this directory
# Source tutorial run functions
. $WM_PROJECT_DIR/bin/tools/RunFunctions
runApplication surfaceFeatureExtract
runApplication foamyHex2DMesh -overwrite
runApplication extrude2DMesh -overwrite MeshedSurface
runApplication checkMesh -allGeometry -allTopology -constant -noZero
# ----------------------------------------------------------------- end-of-file

View File

@ -0,0 +1,954 @@
solid jagged
facet normal 0.468764725245 0.883323062286 -0
outer loop
vertex 0.0385189987719 -0.0289657991379 -1.5
vertex -0.0187957007438 0.00145015004091 1.5
vertex 0.0385189987719 -0.0289657991379 1.5
endloop
endfacet
facet normal 0.647754318236 0.761849291662 -0
outer loop
vertex -0.0682383030653 0.0434882007539 -1.5
vertex -0.0682383030653 0.0434882007539 1.5
vertex -0.0187957007438 0.00145015004091 -1.5
endloop
endfacet
facet normal 0.647754318236 0.761849291662 -0
outer loop
vertex -0.0187957007438 0.00145015004091 -1.5
vertex -0.0682383030653 0.0434882007539 1.5
vertex -0.0187957007438 0.00145015004091 1.5
endloop
endfacet
facet normal 0.796376571447 0.604801088334 -0
outer loop
vertex -0.107496999204 0.0951823964715 -1.5
vertex -0.107496999204 0.0951823964715 1.5
vertex -0.0682383030653 0.0434882007539 -1.5
endloop
endfacet
facet normal 0.796376571447 0.604801088334 -0
outer loop
vertex -0.0682383030653 0.0434882007539 -1.5
vertex -0.107496999204 0.0951823964715 1.5
vertex -0.0682383030653 0.0434882007539 1.5
endloop
endfacet
facet normal 0.907731420759 0.419551746233 -0
outer loop
vertex -0.134736001492 0.154116004705 -1.5
vertex -0.134736001492 0.154116004705 1.5
vertex -0.107496999204 0.0951823964715 -1.5
endloop
endfacet
facet normal 0.907731420759 0.419551746233 -0
outer loop
vertex -0.107496999204 0.0951823964715 -1.5
vertex -0.134736001492 0.154116004705 1.5
vertex -0.107496999204 0.0951823964715 1.5
endloop
endfacet
facet normal 0.976665530864 0.214766014121 -0
outer loop
vertex -0.148680999875 0.217531993985 -1.5
vertex -0.148680999875 0.217531993985 1.5
vertex -0.134736001492 0.154116004705 -1.5
endloop
endfacet
facet normal 0.976665530864 0.214766014121 -0
outer loop
vertex -0.134736001492 0.154116004705 -1.5
vertex -0.148680999875 0.217531993985 1.5
vertex -0.134736001492 0.154116004705 1.5
endloop
endfacet
facet normal 1 0 -0
outer loop
vertex -0.148680999875 0.282467007637 -1.5
vertex -0.148680999875 0.282467007637 1.5
vertex -0.148680999875 0.217531993985 -1.5
endloop
endfacet
facet normal 1 0 0
outer loop
vertex -0.148680999875 0.217531993985 -1.5
vertex -0.148680999875 0.282467007637 1.5
vertex -0.148680999875 0.217531993985 1.5
endloop
endfacet
facet normal 0.976666240056 -0.214762788992 0
outer loop
vertex -0.134736001492 0.345883995295 -1.5
vertex -0.134736001492 0.345883995295 1.5
vertex -0.148680999875 0.282467007637 -1.5
endloop
endfacet
facet normal 0.976666240056 -0.214762788992 0
outer loop
vertex -0.148680999875 0.282467007637 -1.5
vertex -0.134736001492 0.345883995295 1.5
vertex -0.148680999875 0.282467007637 1.5
endloop
endfacet
facet normal 0.90773249136 -0.4195494299 0
outer loop
vertex -0.107496999204 0.404817998409 -1.5
vertex -0.107496999204 0.404817998409 1.5
vertex -0.134736001492 0.345883995295 -1.5
endloop
endfacet
facet normal 0.90773249136 -0.4195494299 0
outer loop
vertex -0.134736001492 0.345883995295 -1.5
vertex -0.107496999204 0.404817998409 1.5
vertex -0.134736001492 0.345883995295 1.5
endloop
endfacet
facet normal 0.796375500831 -0.604802498073 0
outer loop
vertex -0.0682383030653 0.456512004137 -1.5
vertex -0.0682383030653 0.456512004137 1.5
vertex -0.107496999204 0.404817998409 -1.5
endloop
endfacet
facet normal -0.99415065992 0.108002154517 0
outer loop
vertex 0.442546993494 0.185445994139 -1.5
vertex 0.442546993494 0.185445994139 1.5
vertex 0.449559986591 0.25 -1.5
endloop
endfacet
facet normal -0.99415065992 0.108002154517 0
outer loop
vertex 0.449559986591 0.25 -1.5
vertex 0.442546993494 0.185445994139 1.5
vertex 0.449559986591 0.25 1.5
endloop
endfacet
facet normal -0.947745893024 0.319026209355 0
outer loop
vertex 0.421833008528 0.12391000241 -1.5
vertex 0.421833008528 0.12391000241 1.5
vertex 0.442546993494 0.185445994139 -1.5
endloop
endfacet
facet normal -0.947745893024 0.319026209355 0
outer loop
vertex 0.442546993494 0.185445994139 -1.5
vertex 0.421833008528 0.12391000241 1.5
vertex 0.442546993494 0.185445994139 1.5
endloop
endfacet
facet normal -0.857078113059 0.515186478971 0
outer loop
vertex 0.388388007879 0.0682699978352 -1.5
vertex 0.388388007879 0.0682699978352 1.5
vertex 0.421833008528 0.12391000241 -1.5
endloop
endfacet
facet normal -0.857078113059 0.515186478971 0
outer loop
vertex 0.421833008528 0.12391000241 -1.5
vertex 0.388388007879 0.0682699978352 1.5
vertex 0.421833008528 0.12391000241 1.5
endloop
endfacet
facet normal -0.726331758 0.687344293146 0
outer loop
vertex 0.343775987625 0.02112749964 -1.5
vertex 0.343775987625 0.02112749964 1.5
vertex 0.388388007879 0.0682699978352 -1.5
endloop
endfacet
facet normal -0.726331758 0.687344293146 0
outer loop
vertex 0.388388007879 0.0682699978352 -1.5
vertex 0.343775987625 0.02112749964 1.5
vertex 0.388388007879 0.0682699978352 1.5
endloop
endfacet
facet normal -0.561565427605 0.827432335916 0
outer loop
vertex 0.290082991123 -0.0153131000698 -1.5
vertex 0.290082991123 -0.0153131000698 1.5
vertex 0.343775987625 0.02112749964 -1.5
endloop
endfacet
facet normal -0.561565427605 0.827432335916 0
outer loop
vertex 0.343775987625 0.02112749964 -1.5
vertex 0.290082991123 -0.0153131000698 1.5
vertex 0.343775987625 0.02112749964 1.5
endloop
endfacet
facet normal -0.370449778906 0.928852497068 0
outer loop
vertex 0.229818999767 -0.0393478982151 -1.5
vertex 0.229818999767 -0.0393478982151 1.5
vertex 0.290082991123 -0.0153131000698 -1.5
endloop
endfacet
facet normal -0.370449778906 0.928852497068 0
outer loop
vertex 0.290082991123 -0.0153131000698 -1.5
vertex 0.229818999767 -0.0393478982151 1.5
vertex 0.290082991123 -0.0153131000698 1.5
endloop
endfacet
facet normal -0.161937308414 0.986801047904 0
outer loop
vertex 0.165802001953 -0.0498532988131 -1.5
vertex 0.165802001953 -0.0498532988131 1.5
vertex 0.229818999767 -0.0393478982151 -1.5
endloop
endfacet
facet normal -0.161937308414 0.986801047904 0
outer loop
vertex 0.229818999767 -0.0393478982151 -1.5
vertex 0.165802001953 -0.0498532988131 1.5
vertex 0.229818999767 -0.0393478982151 1.5
endloop
endfacet
facet normal 0.0541918998299 0.998530539339 -0
outer loop
vertex 0.101025998592 -0.0463377982378 -1.5
vertex 0.101025998592 -0.0463377982378 1.5
vertex 0.165802001953 -0.0498532988131 -1.5
endloop
endfacet
facet normal 0.0541918998299 0.998530539339 -0
outer loop
vertex 0.165802001953 -0.0498532988131 -1.5
vertex 0.101025998592 -0.0463377982378 1.5
vertex 0.165802001953 -0.0498532988131 1.5
endloop
endfacet
facet normal 0.267771842801 0.963482350748 -0
outer loop
vertex 0.0385189987719 -0.0289657991379 -1.5
vertex 0.0385189987719 -0.0289657991379 1.5
vertex 0.101025998592 -0.0463377982378 -1.5
endloop
endfacet
facet normal 0.267771842801 0.963482350748 -0
outer loop
vertex 0.101025998592 -0.0463377982378 -1.5
vertex 0.0385189987719 -0.0289657991379 1.5
vertex 0.101025998592 -0.0463377982378 1.5
endloop
endfacet
facet normal 0.468764725245 0.883323062286 -0
outer loop
vertex -0.0187957007438 0.00145015004091 -1.5
vertex -0.0187957007438 0.00145015004091 1.5
vertex 0.0385189987719 -0.0289657991379 -1.5
endloop
endfacet
facet normal -0.947745881345 -0.31902624405 0
outer loop
vertex 0.442546993494 0.314554005861 -1.5
vertex 0.442546993494 0.314554005861 1.5
vertex 0.421833008528 0.376089990139 -1.5
endloop
endfacet
facet normal -0.947745881345 -0.31902624405 0
outer loop
vertex 0.421833008528 0.376089990139 -1.5
vertex 0.442546993494 0.314554005861 1.5
vertex 0.421833008528 0.376089990139 1.5
endloop
endfacet
facet normal -0.99415065992 -0.108002154517 0
outer loop
vertex 0.449559986591 0.25 -1.5
vertex 0.449559986591 0.25 1.5
vertex 0.442546993494 0.314554005861 -1.5
endloop
endfacet
facet normal -0.99415065992 -0.108002154517 0
outer loop
vertex 0.442546993494 0.314554005861 -1.5
vertex 0.449559986591 0.25 1.5
vertex 0.442546993494 0.314554005861 1.5
endloop
endfacet
facet normal 0 -1 0
outer loop
vertex -0.300000011921 0 -1.39999997616
vertex -0.300000011921 0 1.5
vertex -0.699999988079 0 -1.39999997616
endloop
endfacet
facet normal 0 -1 0
outer loop
vertex -0.699999988079 0 -1.39999997616
vertex -0.300000011921 0 1.5
vertex -0.699999988079 0 1.5
endloop
endfacet
facet normal -1 0 0
outer loop
vertex -0.300000011921 -0.40000000596 -1.39999997616
vertex -0.300000011921 -0.40000000596 1.5
vertex -0.300000011921 0 -1.39999997616
endloop
endfacet
facet normal -1 0 0
outer loop
vertex -0.300000011921 0 -1.39999997616
vertex -0.300000011921 -0.40000000596 1.5
vertex -0.300000011921 0 1.5
endloop
endfacet
facet normal 0 1 0
outer loop
vertex -0.699999988079 -0.40000000596 -1.39999997616
vertex -0.699999988079 -0.40000000596 1.5
vertex -0.300000011921 -0.40000000596 -1.39999997616
endloop
endfacet
facet normal 0 1 -0
outer loop
vertex -0.300000011921 -0.40000000596 -1.39999997616
vertex -0.699999988079 -0.40000000596 1.5
vertex -0.300000011921 -0.40000000596 1.5
endloop
endfacet
facet normal 1 0 -0
outer loop
vertex -0.699999988079 0 -1.39999997616
vertex -0.699999988079 0 1.5
vertex -0.699999988079 -0.40000000596 -1.39999997616
endloop
endfacet
facet normal 1 0 0
outer loop
vertex -0.699999988079 -0.40000000596 -1.39999997616
vertex -0.699999988079 0 1.5
vertex -0.699999988079 -0.40000000596 1.5
endloop
endfacet
facet normal 0.796375500831 -0.604802498073 0
outer loop
vertex -0.107496999204 0.404817998409 -1.5
vertex -0.0682383030653 0.456512004137 1.5
vertex -0.107496999204 0.404817998409 1.5
endloop
endfacet
facet normal 0.647754558747 -0.761849087171 0
outer loop
vertex -0.018795799464 0.498549997807 -1.5
vertex -0.018795799464 0.498549997807 1.5
vertex -0.0682383030653 0.456512004137 -1.5
endloop
endfacet
facet normal 0.647754558747 -0.761849087171 0
outer loop
vertex -0.0682383030653 0.456512004137 -1.5
vertex -0.018795799464 0.498549997807 1.5
vertex -0.0682383030653 0.456512004137 1.5
endloop
endfacet
facet normal 0.468765490288 -0.88332265629 0
outer loop
vertex 0.0385188981891 0.528966009617 -1.5
vertex 0.0385188981891 0.528966009617 1.5
vertex -0.018795799464 0.498549997807 -1.5
endloop
endfacet
facet normal 0.468765490288 -0.88332265629 0
outer loop
vertex -0.018795799464 0.498549997807 -1.5
vertex 0.0385188981891 0.528966009617 1.5
vertex -0.018795799464 0.498549997807 1.5
endloop
endfacet
facet normal 0.267771629378 -0.963482410063 0
outer loop
vertex 0.101025998592 0.546338021755 -1.5
vertex 0.101025998592 0.546338021755 1.5
vertex 0.0385188981891 0.528966009617 -1.5
endloop
endfacet
facet normal 0.267771629378 -0.963482410063 0
outer loop
vertex 0.0385188981891 0.528966009617 -1.5
vertex 0.101025998592 0.546338021755 1.5
vertex 0.0385188981891 0.528966009617 1.5
endloop
endfacet
facet normal 0.0541842846189 -0.9985309526 0
outer loop
vertex 0.165802001953 0.549853026867 -1.5
vertex 0.165802001953 0.549853026867 1.5
vertex 0.101025998592 0.546338021755 -1.5
endloop
endfacet
facet normal 0.0541842846189 -0.9985309526 0
outer loop
vertex 0.101025998592 0.546338021755 -1.5
vertex 0.165802001953 0.549853026867 1.5
vertex 0.101025998592 0.546338021755 1.5
endloop
endfacet
facet normal -0.161931604744 -0.986801983878 0
outer loop
vertex 0.229818999767 0.539348006248 -1.5
vertex 0.229818999767 0.539348006248 1.5
vertex 0.165802001953 0.549853026867 -1.5
endloop
endfacet
facet normal -0.161931604744 -0.986801983878 0
outer loop
vertex 0.165802001953 0.549853026867 -1.5
vertex 0.229818999767 0.539348006248 1.5
vertex 0.165802001953 0.549853026867 1.5
endloop
endfacet
facet normal -0.370452156748 -0.928851548721 0
outer loop
vertex 0.290082991123 0.515313029289 -1.5
vertex 0.290082991123 0.515313029289 1.5
vertex 0.229818999767 0.539348006248 -1.5
endloop
endfacet
facet normal -0.370452156748 -0.928851548721 0
outer loop
vertex 0.229818999767 0.539348006248 -1.5
vertex 0.290082991123 0.515313029289 1.5
vertex 0.229818999767 0.539348006248 1.5
endloop
endfacet
facet normal -0.561559256785 -0.827436523921 0
outer loop
vertex 0.343775987625 0.47887301445 -1.5
vertex 0.343775987625 0.47887301445 1.5
vertex 0.290082991123 0.515313029289 -1.5
endloop
endfacet
facet normal -0.561559256785 -0.827436523921 0
outer loop
vertex 0.290082991123 0.515313029289 -1.5
vertex 0.343775987625 0.47887301445 1.5
vertex 0.290082991123 0.515313029289 1.5
endloop
endfacet
facet normal -0.726335500024 -0.687340338846 0
outer loop
vertex 0.388388007879 0.431730002165 -1.5
vertex 0.388388007879 0.431730002165 1.5
vertex 0.343775987625 0.47887301445 -1.5
endloop
endfacet
facet normal -0.726335500024 -0.687340338846 0
outer loop
vertex 0.343775987625 0.47887301445 -1.5
vertex 0.388388007879 0.431730002165 1.5
vertex 0.343775987625 0.47887301445 1.5
endloop
endfacet
facet normal -0.857078143521 -0.515186428295 0
outer loop
vertex 0.421833008528 0.376089990139 -1.5
vertex 0.421833008528 0.376089990139 1.5
vertex 0.388388007879 0.431730002165 -1.5
endloop
endfacet
facet normal -0.857078143521 -0.515186428295 0
outer loop
vertex 0.388388007879 0.431730002165 -1.5
vertex 0.421833008528 0.376089990139 1.5
vertex 0.388388007879 0.431730002165 1.5
endloop
endfacet
facet normal 1 -0 0
outer loop
vertex 1.29999995232 0 1.5
vertex 1.29999995232 0.40000000596 -1.5
vertex 1.29999995232 0.40000000596 1.5
endloop
endfacet
facet normal 0 -1 0
outer loop
vertex 0.899999976158 0 1.5
vertex 0.899999976158 0 -1.5
vertex 1.29999995232 0 -1.5
endloop
endfacet
facet normal 0 -1 0
outer loop
vertex 0.899999976158 0 1.5
vertex 1.29999995232 0 -1.5
vertex 1.29999995232 0 1.5
endloop
endfacet
facet normal 0.196116149188 -0.980580672881 0
outer loop
vertex 0.40000000596 -0.10000000149 1.5
vertex 0.40000000596 -0.10000000149 -1.5
vertex 0.899999976158 0 -1.5
endloop
endfacet
facet normal 0.196116149188 -0.980580672881 0
outer loop
vertex 0.40000000596 -0.10000000149 1.5
vertex 0.899999976158 0 -1.5
vertex 0.899999976158 0 1.5
endloop
endfacet
facet normal 1 0 0
outer loop
vertex 0.40000000596 -0.300000011921 1.5
vertex 0.40000000596 -0.300000011921 -1.5
vertex 0.40000000596 -0.10000000149 -1.5
endloop
endfacet
facet normal 1 -0 0
outer loop
vertex 0.40000000596 -0.300000011921 1.5
vertex 0.40000000596 -0.10000000149 -1.5
vertex 0.40000000596 -0.10000000149 1.5
endloop
endfacet
facet normal 0.242535608029 0.970142504397 0
outer loop
vertex 0.800000011921 -0.40000000596 1.5
vertex 0.800000011921 -0.40000000596 -1.5
vertex 0.40000000596 -0.300000011921 -1.5
endloop
endfacet
facet normal 0.242535608029 0.970142504397 0
outer loop
vertex 0.800000011921 -0.40000000596 1.5
vertex 0.40000000596 -0.300000011921 -1.5
vertex 0.40000000596 -0.300000011921 1.5
endloop
endfacet
facet normal 0.242535591022 0.970142508649 0
outer loop
vertex 1.20000004768 -0.5 1.5
vertex 1.20000004768 -0.5 -1.5
vertex 0.800000011921 -0.40000000596 -1.5
endloop
endfacet
facet normal 0.242535591022 0.970142508649 0
outer loop
vertex 1.20000004768 -0.5 1.5
vertex 0.800000011921 -0.40000000596 -1.5
vertex 0.800000011921 -0.40000000596 1.5
endloop
endfacet
facet normal 0.980580666699 -0.196116180098 0
outer loop
vertex 1.10000002384 -1 1.5
vertex 1.10000002384 -1 -1.5
vertex 1.20000004768 -0.5 -1.5
endloop
endfacet
facet normal 0.980580666699 -0.196116180098 0
outer loop
vertex 1.10000002384 -1 1.5
vertex 1.20000004768 -0.5 -1.5
vertex 1.20000004768 -0.5 1.5
endloop
endfacet
facet normal 0.124034761887 -0.992277873301 0
outer loop
vertex 0.300000011921 -1.10000002384 1.5
vertex 0.300000011921 -1.10000002384 -1.5
vertex 1.10000002384 -1 -1.5
endloop
endfacet
facet normal 0.124034761887 -0.992277873301 0
outer loop
vertex 0.300000011921 -1.10000002384 1.5
vertex 1.10000002384 -1 -1.5
vertex 1.10000002384 -1 1.5
endloop
endfacet
facet normal -0.894427244312 0.447213488876 0
outer loop
vertex 0.40000000596 -0.899999976158 1.5
vertex 0.40000000596 -0.899999976158 -1.5
vertex 0.300000011921 -1.10000002384 -1.5
endloop
endfacet
facet normal 0.707106781187 0.707106781187 0
outer loop
vertex -0.600000023842 0.699999988079 1.5
vertex -0.600000023842 0.699999988079 -1.5
vertex -0.800000011921 0.899999976158 -1.5
endloop
endfacet
facet normal 0.707106781187 0.707106781187 0
outer loop
vertex -0.600000023842 0.699999988079 1.5
vertex -0.800000011921 0.899999976158 -1.5
vertex -0.800000011921 0.899999976158 1.5
endloop
endfacet
facet normal 0 1 0
outer loop
vertex -0.40000000596 0.699999988079 1.5
vertex -0.40000000596 0.699999988079 -1.5
vertex -0.600000023842 0.699999988079 -1.5
endloop
endfacet
facet normal 0 1 0
outer loop
vertex -0.40000000596 0.699999988079 1.5
vertex -0.600000023842 0.699999988079 -1.5
vertex -0.600000023842 0.699999988079 1.5
endloop
endfacet
facet normal -0.948683307475 0.316227737744 0
outer loop
vertex -0.300000011921 1 1.5
vertex -0.300000011921 1 -1.5
vertex -0.40000000596 0.699999988079 -1.5
endloop
endfacet
facet normal -0.948683307475 0.316227737744 0
outer loop
vertex -0.300000011921 1 1.5
vertex -0.40000000596 0.699999988079 -1.5
vertex -0.40000000596 0.699999988079 1.5
endloop
endfacet
facet normal -0.316227822563 0.948683279202 0
outer loop
vertex 0 1.10000002384 1.5
vertex 0 1.10000002384 -1.5
vertex -0.300000011921 1 -1.5
endloop
endfacet
facet normal -0.316227822563 0.948683279202 0
outer loop
vertex 0 1.10000002384 1.5
vertex -0.300000011921 1 -1.5
vertex -0.300000011921 1 1.5
endloop
endfacet
facet normal 0.447213675468 0.894427151016 0
outer loop
vertex 0.20000000298 1 1.5
vertex 0.20000000298 1 -1.5
vertex 0 1.10000002384 -1.5
endloop
endfacet
facet normal 0.447213675468 0.894427151016 0
outer loop
vertex 0.20000000298 1 1.5
vertex 0 1.10000002384 -1.5
vertex 0 1.10000002384 1.5
endloop
endfacet
facet normal 0.554700177151 0.832050307054 0
outer loop
vertex 0.5 0.800000011921 1.5
vertex 0.5 0.800000011921 -1.5
vertex 0.20000000298 1 -1.5
endloop
endfacet
facet normal 0.554700177151 0.832050307054 0
outer loop
vertex 0.5 0.800000011921 1.5
vertex 0.20000000298 1 -1.5
vertex 0.20000000298 1 1.5
endloop
endfacet
facet normal -0.707106781187 0.707106781187 0
outer loop
vertex 0.699999988079 1 1.5
vertex 0.699999988079 1 -1.5
vertex 0.5 0.800000011921 -1.5
endloop
endfacet
facet normal -0.707106781187 0.707106781187 0
outer loop
vertex 0.699999988079 1 1.5
vertex 0.5 0.800000011921 -1.5
vertex 0.5 0.800000011921 1.5
endloop
endfacet
facet normal 0.554700158076 0.832050319771 0
outer loop
vertex 1 0.800000011921 1.5
vertex 1 0.800000011921 -1.5
vertex 0.699999988079 1 -1.5
endloop
endfacet
facet normal 0.554700158076 0.832050319771 0
outer loop
vertex 1 0.800000011921 1.5
vertex 0.699999988079 1 -1.5
vertex 0.699999988079 1 1.5
endloop
endfacet
facet normal 0.800000050068 0.599999933243 0
outer loop
vertex 1.29999995232 0.40000000596 1.5
vertex 1.29999995232 0.40000000596 -1.5
vertex 1 0.800000011921 -1.5
endloop
endfacet
facet normal 0.800000050068 0.599999933243 0
outer loop
vertex 1.29999995232 0.40000000596 1.5
vertex 1 0.800000011921 -1.5
vertex 1 0.800000011921 1.5
endloop
endfacet
facet normal 1 0 0
outer loop
vertex 1.29999995232 0 1.5
vertex 1.29999995232 0 -1.5
vertex 1.29999995232 0.40000000596 -1.5
endloop
endfacet
facet normal -0.707106702161 -0.707106860212 -0
outer loop
vertex -1.20000004768 0.10000000149 1.5
vertex -1.20000004768 0.10000000149 -1.5
vertex -1.10000002384 0 -1.5
endloop
endfacet
facet normal -0.707106702161 -0.707106860212 0
outer loop
vertex -1.20000004768 0.10000000149 1.5
vertex -1.10000002384 0 -1.5
vertex -1.10000002384 0 1.5
endloop
endfacet
facet normal -0.894427370928 -0.447213235644 -0
outer loop
vertex -1.29999995232 0.300000011921 1.5
vertex -1.29999995232 0.300000011921 -1.5
vertex -1.20000004768 0.10000000149 -1.5
endloop
endfacet
facet normal -0.894427370928 -0.447213235644 0
outer loop
vertex -1.29999995232 0.300000011921 1.5
vertex -1.20000004768 0.10000000149 -1.5
vertex -1.20000004768 0.10000000149 1.5
endloop
endfacet
facet normal -0.894427350936 0.447213275628 0
outer loop
vertex -1.20000004768 0.5 1.5
vertex -1.20000004768 0.5 -1.5
vertex -1.29999995232 0.300000011921 -1.5
endloop
endfacet
facet normal -0.894427350936 0.447213275628 0
outer loop
vertex -1.20000004768 0.5 1.5
vertex -1.29999995232 0.300000011921 -1.5
vertex -1.29999995232 0.300000011921 1.5
endloop
endfacet
facet normal -0.894427350936 -0.447213275628 -0
outer loop
vertex -1.29999995232 0.699999988079 1.5
vertex -1.29999995232 0.699999988079 -1.5
vertex -1.20000004768 0.5 -1.5
endloop
endfacet
facet normal -0.894427350936 -0.447213275628 0
outer loop
vertex -1.29999995232 0.699999988079 1.5
vertex -1.20000004768 0.5 -1.5
vertex -1.20000004768 0.5 1.5
endloop
endfacet
facet normal -1 0 -0
outer loop
vertex -1.29999995232 0.800000011921 1.5
vertex -1.29999995232 0.800000011921 -1.5
vertex -1.29999995232 0.699999988079 -1.5
endloop
endfacet
facet normal -1 -0 0
outer loop
vertex -1.29999995232 0.800000011921 1.5
vertex -1.29999995232 0.699999988079 -1.5
vertex -1.29999995232 0.699999988079 1.5
endloop
endfacet
facet normal 0.447213808748 0.894427084376 0
outer loop
vertex -1.10000002384 0.699999988079 1.5
vertex -1.10000002384 0.699999988079 -1.5
vertex -1.29999995232 0.800000011921 -1.5
endloop
endfacet
facet normal 0.447213808748 0.894427084376 0
outer loop
vertex -1.10000002384 0.699999988079 1.5
vertex -1.29999995232 0.800000011921 -1.5
vertex -1.29999995232 0.800000011921 1.5
endloop
endfacet
facet normal -0.4472135955 0.894427191 0
outer loop
vertex -0.899999976158 0.800000011921 1.5
vertex -0.899999976158 0.800000011921 -1.5
vertex -1.10000002384 0.699999988079 -1.5
endloop
endfacet
facet normal -0.4472135955 0.894427191 0
outer loop
vertex -0.899999976158 0.800000011921 1.5
vertex -1.10000002384 0.699999988079 -1.5
vertex -1.10000002384 0.699999988079 1.5
endloop
endfacet
facet normal -0.707106781187 0.707106781187 0
outer loop
vertex -0.800000011921 0.899999976158 1.5
vertex -0.800000011921 0.899999976158 -1.5
vertex -0.899999976158 0.800000011921 -1.5
endloop
endfacet
facet normal -0.707106781187 0.707106781187 0
outer loop
vertex -0.800000011921 0.899999976158 1.5
vertex -0.899999976158 0.800000011921 -1.5
vertex -0.899999976158 0.800000011921 1.5
endloop
endfacet
facet normal -0.894427244312 0.447213488876 0
outer loop
vertex 0.40000000596 -0.899999976158 1.5
vertex 0.300000011921 -1.10000002384 -1.5
vertex 0.300000011921 -1.10000002384 1.5
endloop
endfacet
facet normal -0.316227744812 -0.948683305119 -0
outer loop
vertex -0.20000000298 -0.699999988079 1.5
vertex -0.20000000298 -0.699999988079 -1.5
vertex 0.40000000596 -0.899999976158 -1.5
endloop
endfacet
facet normal -0.316227744812 -0.948683305119 0
outer loop
vertex -0.20000000298 -0.699999988079 1.5
vertex 0.40000000596 -0.899999976158 -1.5
vertex 0.40000000596 -0.899999976158 1.5
endloop
endfacet
facet normal 0.707106754845 -0.707106807528 0
outer loop
vertex -0.40000000596 -0.899999976158 1.5
vertex -0.40000000596 -0.899999976158 -1.5
vertex -0.20000000298 -0.699999988079 -1.5
endloop
endfacet
facet normal 0.707106754845 -0.707106807528 0
outer loop
vertex -0.40000000596 -0.899999976158 1.5
vertex -0.20000000298 -0.699999988079 -1.5
vertex -0.20000000298 -0.699999988079 1.5
endloop
endfacet
facet normal -0.196116078939 -0.980580686931 -0
outer loop
vertex -0.899999976158 -0.800000011921 1.5
vertex -0.899999976158 -0.800000011921 -1.5
vertex -0.40000000596 -0.899999976158 -1.5
endloop
endfacet
facet normal -0.196116078939 -0.980580686931 0
outer loop
vertex -0.899999976158 -0.800000011921 1.5
vertex -0.40000000596 -0.899999976158 -1.5
vertex -0.40000000596 -0.899999976158 1.5
endloop
endfacet
facet normal -0.316227766017 -0.948683298051 -0
outer loop
vertex -1.20000004768 -0.699999988079 1.5
vertex -1.20000004768 -0.699999988079 -1.5
vertex -0.899999976158 -0.800000011921 -1.5
endloop
endfacet
facet normal -0.316227766017 -0.948683298051 0
outer loop
vertex -1.20000004768 -0.699999988079 1.5
vertex -0.899999976158 -0.800000011921 -1.5
vertex -0.899999976158 -0.800000011921 1.5
endloop
endfacet
facet normal -0.948683382869 -0.31622751156 -0
outer loop
vertex -1.29999995232 -0.40000000596 1.5
vertex -1.29999995232 -0.40000000596 -1.5
vertex -1.20000004768 -0.699999988079 -1.5
endloop
endfacet
facet normal -0.948683382869 -0.31622751156 0
outer loop
vertex -1.29999995232 -0.40000000596 1.5
vertex -1.20000004768 -0.699999988079 -1.5
vertex -1.20000004768 -0.699999988079 1.5
endloop
endfacet
facet normal -0.707106912895 0.707106649478 0
outer loop
vertex -1.10000002384 -0.20000000298 1.5
vertex -1.10000002384 -0.20000000298 -1.5
vertex -1.29999995232 -0.40000000596 -1.5
endloop
endfacet
facet normal -0.707106912895 0.707106649478 0
outer loop
vertex -1.10000002384 -0.20000000298 1.5
vertex -1.29999995232 -0.40000000596 -1.5
vertex -1.29999995232 -0.40000000596 1.5
endloop
endfacet
facet normal -0.447213515532 0.894427230984 0
outer loop
vertex -0.899999976158 -0.10000000149 1.5
vertex -0.899999976158 -0.10000000149 -1.5
vertex -1.10000002384 -0.20000000298 -1.5
endloop
endfacet
facet normal -0.447213515532 0.894427230984 0
outer loop
vertex -0.899999976158 -0.10000000149 1.5
vertex -1.10000002384 -0.20000000298 -1.5
vertex -1.10000002384 -0.20000000298 1.5
endloop
endfacet
facet normal -1 0 -0
outer loop
vertex -0.899999976158 0.20000000298 1.5
vertex -0.899999976158 0.20000000298 -1.5
vertex -0.899999976158 -0.10000000149 -1.5
endloop
endfacet
facet normal -1 -0 0
outer loop
vertex -0.899999976158 0.20000000298 1.5
vertex -0.899999976158 -0.10000000149 -1.5
vertex -0.899999976158 -0.10000000149 1.5
endloop
endfacet
facet normal 0.707106702161 -0.707106860212 0
outer loop
vertex -1.10000002384 0 1.5
vertex -1.10000002384 0 -1.5
vertex -0.899999976158 0.20000000298 -1.5
endloop
endfacet
facet normal 0.707106702161 -0.707106860212 0
outer loop
vertex -1.10000002384 0 1.5
vertex -0.899999976158 0.20000000298 -1.5
vertex -0.899999976158 0.20000000298 1.5
endloop
endfacet
endsolid jagged

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 dictionary;
location "system";
object controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
startFrom startTime;
startTime 0;
stopAt endTime;
endTime 100;
deltaT 1;
writeControl timeStep;
writeInterval 1;
purgeWrite 0;
writeFormat ascii;
writePrecision 12;
writeCompression off;
timeFormat general;
timePrecision 6;
runTimeModifiable true;
// ************************************************************************* //

View File

@ -0,0 +1,42 @@
/*--------------------------------*- 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 extrude2DMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
extrudeModel linearDirection;
patchInfo
{}
patchType empty;
nLayers 1;
expansionRatio 1.0;
linearDirectionCoeffs
{
direction (0 0 1);
thickness 0.1;
}
wedgeCoeffs
{
axisPt (0 0 0);
axis (1 0 0);
angle 10;
}
// ************************************************************************* //

View File

@ -0,0 +1,148 @@
/*--------------------------------*- 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 foamyHex2DMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
geometry
{
jaggedBoundary.stl
{
name jaggedBoundary;
type closedTriSurfaceMesh;
}
}
surfaceConformation
{
// The z-coordinate of the plane is taken from here.
locationInMesh (-0.6 0.3 0.0);
pointPairDistanceCoeff 0.001;
// If area of a dual cell is less than the square of this, do not refine.
minEdgeLenCoeff 0.001;
// How much cells are allowed to stick out of the surfaces before
// points are inserted onto the boundary
maxNotchLenCoeff 1;
minNearPointDistCoeff 0.001;
maxQuadAngle 125;
// Insert near-boundary point mirror or point-pairs
insertSurfaceNearestPointPairs yes;
// Mirror near-boundary points rather than insert point-pairs
mirrorPoints no;
// Insert point-pairs vor dual-cell vertices very near the surface
insertSurfaceNearPointPairs yes;
// Maximum number of iterations used in boundaryConform.
maxBoundaryConformingIter 5;
geometryToConformTo
{
jaggedBoundary
{
featureMethod extendedFeatureEdgeMesh;
extendedFeatureEdgeMesh "jaggedBoundary.extendedFeatureEdgeMesh";
}
}
additionalFeatures
{
}
// Choose if to randomise the initial grid created by insertGrid.
randomiseInitialGrid yes;
// Perturbation fraction, 1 = cell-size.
randomPerturbation 0.1;
}
motionControl
{
// This is a tolerance for determining whether to deal with surface
// protrusions or not.
minCellSize 0.04;
// Assign a priority to all requests for cell sizes, the highest overrules.
defaultPriority 0;
shapeControlFunctions
{
jaggedBoundary
{
type searchableSurfaceControl;
priority 1;
mode inside;
cellSizeFunction surfaceOffsetLinearDistance;
surfaceOffsetLinearDistanceCoeffs
{
distanceCellSizeCoeff 1;
totalDistanceCoeff 5;
surfaceOffsetCoeff 1;
}
surfaceCellSizeFunction uniformValue;
uniformValueCoeffs
{
surfaceCellSizeCoeff 0.1;
}
}
}
relaxationModel adaptiveLinear;
adaptiveLinearCoeffs
{
relaxationStart 0.5;
relaxationEnd 0.0;
}
objOutput no;
meshedSurfaceOutput yes;
// Near-wall region where cells are aligned with the wall specified as a
// number of cell layers
nearWallAlignedDist 3;
}
shortEdgeFilter
{
// Factor to multiply the average of a face's edge lengths by.
// If an edge of that face is smaller than that value then delete it.
shortEdgeFilterFactor 0.2;
// Weighting for the lengths of edges that are attached to the boundaries.
// Used when calculating the length of an edge. Default 2.0.
edgeAttachedToBoundaryFactor 2.0;
}
extrusion
{
extrude off;
#include "extrude2DMeshDict";
}
// ************************************************************************* //

View File

@ -0,0 +1,54 @@
/*--------------------------------*- 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 fvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
ddtSchemes
{
default none;
}
gradSchemes
{
default none;
}
divSchemes
{
default none;
}
laplacianSchemes
{
default none;
}
interpolationSchemes
{
default none;
}
snGradSchemes
{
default none;
}
fluxRequired
{
default no;
}
// ************************************************************************* //

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 dictionary;
location "system";
object fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solvers
{}
// ************************************************************************* //

View File

@ -0,0 +1,52 @@
/*--------------------------------*- 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 surfaceFeatureExtractDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
jaggedBoundary.stl
{
extractionMethod extractFromSurface;
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 175;
}
subsetFeatures
{
// Use a plane to select feature edges
// (normal)(basePoint)
// Keep only edges that intersect the plane will be included
plane (0 0 1)(-0.6 0.3 0.0);
// Keep nonManifold edges (edges with >2 connected faces where
// the faces form more than two different normal planes)
nonManifoldEdges no;
// Keep open edges (edges with 1 connected face)
openEdges no;
}
// Write options
// Write features to obj format for postprocessing
writeObj no;
}
// ************************************************************************* //

View File

@ -0,0 +1,16 @@
#!/bin/sh
cd ${0%/*} || exit 1 # run from this directory
# Source tutorial run functions
. $WM_PROJECT_DIR/bin/tools/CleanFunctions
rm -rf constant/extendedFeatureEdgeMesh > /dev/null 2>&1
rm -rf constant/triSurface/unit_cube.eMesh > /dev/null 2>&1
rm -rf constant/polyMesh > /dev/null 2>&1
rm -rf MeshedSurface*.obj > /dev/null 2>&1
cleanCase
# ----------------------------------------------------------------- end-of-file

View File

@ -0,0 +1,13 @@
#!/bin/sh
cd ${0%/*} || exit 1 # run from this directory
# Source tutorial run functions
. $WM_PROJECT_DIR/bin/tools/RunFunctions
runApplication surfaceFeatureExtract
runApplication foamyHex2DMesh -overwrite
runApplication extrude2DMesh -overwrite polyMesh2D
runApplication checkMesh -allGeometry -allTopology -constant -noZero
# ----------------------------------------------------------------- end-of-file

View File

@ -0,0 +1,88 @@
solid inlet
facet normal 1 0 0
outer loop
vertex 1 1 0.5
vertex 1 0 0.5
vertex 1 0 -0.5
endloop
endfacet
facet normal 1 0 -0
outer loop
vertex 1 1 -0.5
vertex 1 1 0.5
vertex 1 0 -0.5
endloop
endfacet
endsolid inlet
solid cube.tri
facet normal -1 0 0
outer loop
vertex 0 0 -0.5
vertex 0 0 0.5
vertex 0 1 0.5
endloop
endfacet
facet normal -1 0 0
outer loop
vertex 0 1 -0.5
vertex 0 0 -0.5
vertex 0 1 0.5
endloop
endfacet
facet normal 0 1 0
outer loop
vertex 1 1 0.5
vertex 1 1 -0.5
vertex 0 1 -0.5
endloop
endfacet
facet normal -0 1 0
outer loop
vertex 0 1 0.5
vertex 1 1 0.5
vertex 0 1 -0.5
endloop
endfacet
facet normal 0 -1 0
outer loop
vertex 0 0 -0.5
vertex 1 0 -0.5
vertex 1 0 0.5
endloop
endfacet
facet normal 0 -1 0
outer loop
vertex 0 0 0.5
vertex 0 0 -0.5
vertex 1 0 0.5
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 1 1 0.5
vertex 0 1 0.5
vertex 0 0 0.5
endloop
endfacet
facet normal 0 -0 1
outer loop
vertex 1 0 0.5
vertex 1 1 0.5
vertex 0 0 0.5
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex 0 0 -0.5
vertex 0 1 -0.5
vertex 1 1 -0.5
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex 1 0 -0.5
vertex 0 0 -0.5
vertex 1 1 -0.5
endloop
endfacet
endsolid cube.tri

View File

@ -0,0 +1,52 @@
/*--------------------------------*- 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;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
startFrom startTime;
startTime 0;
stopAt endTime;
endTime 100;
deltaT 1;
writeControl timeStep;
writeInterval 1;
purgeWrite 0;
writeFormat ascii;
writePrecision 12;
writeCompression off;
timeFormat general;
timePrecision 6;
runTimeModifiable true;
DebugSwitches
{
shortEdgeFilter2D 0;
}
// ************************************************************************* //

View File

@ -0,0 +1,42 @@
/*--------------------------------*- 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 extrude2DMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
extrudeModel wedge;
patchInfo
{}
patchType wedge;
nLayers 1;
expansionRatio 1.0;
linearDirectionCoeffs
{
direction (0 0 1);
thickness 0.1;
}
wedgeCoeffs
{
axisPt (0 0 0);
axis (1 0 0);
angle 10;
}
// ************************************************************************* //

View File

@ -0,0 +1,166 @@
/*--------------------------------*- 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 foamyHex2DMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
geometry
{
unit_cube.stl
{
name cube;
type triSurfaceMesh;
}
refinementBox
{
type searchableBox;
min (0.25 0.25 -1000);
max (0.75 0.75 1000);
}
}
surfaceConformation
{
// The z-coordinate of the plane is taken from here.
locationInMesh (0 0 0);
pointPairDistanceCoeff 0.005;
minEdgeLenCoeff 0.005;
maxNotchLenCoeff 0.003;
minNearPointDistCoeff 0.0025;
maxQuadAngle 125;
// Insert near-boundary point mirror or point-pairs
insertSurfaceNearestPointPairs yes;
// Mirror near-boundary points rather than insert point-pairs
mirrorPoints no;
// Insert point-pairs vor dual-cell vertices very near the surface
insertSurfaceNearPointPairs yes;
// Maximum number of iterations used in boundaryConform.
maxBoundaryConformingIter 5;
geometryToConformTo
{
cube
{
featureMethod extendedFeatureEdgeMesh;
extendedFeatureEdgeMesh "unit_cube.extendedFeatureEdgeMesh";
}
}
additionalFeatures
{}
// Choose if to randomise the initial grid created by insertGrid.
randomiseInitialGrid yes;
// Perturbation fraction, 1 = cell-size.
randomPerturbation 0.1;
}
motionControl
{
minCellSize 0.04;
// Assign a priority to all requests for cell sizes, the highest overrules.
defaultPriority 0;
shapeControlFunctions
{
cube
{
type searchableSurfaceControl;
priority 1;
mode bothSides;
cellSizeFunction linearDistance;
linearDistanceCoeffs
{
distanceCellSizeCoeff 1;
distanceCoeff 5;
}
surfaceCellSizeFunction uniformValue;
uniformValueCoeffs
{
surfaceCellSizeCoeff 0.05;
}
}
refinementBox
{
type searchableSurfaceControl;
priority 1;
mode bothSides;
cellSizeFunction linearDistance;
linearDistanceCoeffs
{
distanceCellSizeCoeff 1;
distanceCoeff 5;
}
surfaceCellSizeFunction uniformValue;
uniformValueCoeffs
{
surfaceCellSizeCoeff 0.05;
}
}
}
relaxationModel adaptiveLinear;
adaptiveLinearCoeffs
{
relaxationStart 0.5;
relaxationEnd 0.0;
}
objOutput no;
meshedSurfaceOutput yes;
// Near-wall region where cells are aligned with the wall specified as a
// number of cell layers
nearWallAlignedDist 3;
}
shortEdgeFilter
{
// Factor to multiply the average of a face's edge lengths by.
// If an edge of that face is smaller than that value then delete it.
shortEdgeFilterFactor 0.25;
// Weighting for the lengths of edges that are attached to the boundaries.
// Used when calculating the length of an edge. Default 2.0.
edgeAttachedToBoundaryFactor 2.0;
}
extrusion
{
extrude off;
#include "extrude2DMeshDict";
}
// ************************************************************************* //

View File

@ -0,0 +1,54 @@
/*--------------------------------*- 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 fvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
ddtSchemes
{
default none;
}
gradSchemes
{
default none;
}
divSchemes
{
default none;
}
laplacianSchemes
{
default none;
}
interpolationSchemes
{
default none;
}
snGradSchemes
{
default none;
}
fluxRequired
{
default no;
}
// ************************************************************************* //

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 dictionary;
location "system";
object fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solvers
{}
// ************************************************************************* //

View File

@ -0,0 +1,52 @@
/*--------------------------------*- 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 surfaceFeatureExtractDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
unit_cube.stl
{
extractionMethod extractFromSurface;
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 175;
}
subsetFeatures
{
// Use a plane to select feature edges
// (normal)(basePoint)
// Keep only edges that intersect the plane will be included
plane (0 0 1)(0 0 0);
// Keep nonManifold edges (edges with >2 connected faces where
// the faces form more than two different normal planes)
nonManifoldEdges no;
// Keep open edges (edges with 1 connected face)
openEdges yes;
}
// Write options
// Write features to obj format for postprocessing
writeObj yes;
}
// ************************************************************************* //

View File

@ -0,0 +1,14 @@
#!/bin/sh
cd ${0%/*} || exit 1 # run from this directory
# Source tutorial run functions
. $WM_PROJECT_DIR/bin/tools/CleanFunctions
cleanCase
rm -rf constant/cellAlignments > /dev/null 2>&1
rm -rf constant/targetCellSize > /dev/null 2>&1
rm -rf constant/internalDelaunayVertices > /dev/null 2>&1
# ----------------------------------------------------------------- end-of-file

View File

@ -0,0 +1,11 @@
#!/bin/sh
cd ${0%/*} || exit 1 # run from this directory
# Source tutorial run functions
. $WM_PROJECT_DIR/bin/tools/RunFunctions
runApplication foamyHexMesh
runApplication collapseEdges -latestTime -collapseFaces
runApplication checkMesh -latestTime -allGeometry -allTopology
# ----------------------------------------------------------------- end-of-file

View File

@ -0,0 +1,19 @@
#!/bin/sh
cd ${0%/*} || exit 1 # run from this directory
# Source tutorial run functions
. $WM_PROJECT_DIR/bin/tools/RunFunctions
# Get the number of processors to run on from system/decomposeParDict
nProc=$(getNumberOfProcessors)
runApplication blockMesh
runApplication decomposePar
runParallel foamyHexMesh $nProc
runParallel collapseEdges $nProc -latestTime -collapseFaces
runParallel checkMesh $nProc -latestTime -allTopology -allGeometry
runApplication reconstructParMesh -latestTime
# ----------------------------------------------------------------- end-of-file

View File

@ -0,0 +1,18 @@
#!/bin/sh
cd ${0%/*} || exit 1 # run from this directory
# Source tutorial run functions
. $WM_PROJECT_DIR/bin/tools/RunFunctions
runApplication foamyHexMesh
# Change collapseEdges to only do one iteration
cp system/collapseDict system/collapseDict.org
sed -e s/"\(maximumIterations[ \t]*\)\([0-9]*\);"/"\1 1;"/g \
system/collapseDict.org > system/collapseDict
runApplication collapseEdges -latestTime -collapseFaces
# ----------------------------------------------------------------- end-of-file

View File

@ -0,0 +1,69 @@
/*--------------------------------*- 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 blockMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
convertToMeters 1.0;
xmin -1.3;
xmax 0.65;
ymin -1.1;
ymax 0.8;
zmin -1.4;
zmax 0.55;
vertices
(
($xmin $ymin $zmin)
($xmax $ymin $zmin)
($xmax $ymax $zmin)
($xmin $ymax $zmin)
($xmin $ymin $zmax)
($xmax $ymin $zmax)
($xmax $ymax $zmax)
($xmin $ymax $zmax)
);
blocks
(
hex (0 1 2 3 4 5 6 7) (11 11 9) simpleGrading (1 1 1)
);
edges
(
);
boundary
(
walls
{
type wall;
faces
(
(3 7 6 2)
(0 4 7 3)
(2 6 5 1)
(1 5 4 0)
(0 3 2 1)
(4 5 6 7)
);
}
);
mergePatchPairs
(
);
// ************************************************************************* //

View File

@ -0,0 +1,28 @@
/*--------------------------------*- 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 polyBoundaryMesh;
location "constant/polyMesh";
object boundary;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
1
(
walls
{
type wall;
nFaces 638;
startFace 2948;
}
)
// ************************************************************************* //

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,84 @@
/*--------------------------------*- 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 collapseDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
controlMeshQuality on;
collapseEdgesCoeffs
{
// Edges shorter than this absolute value will be merged
minimumEdgeLength 1e-6;
// The maximum angle between two edges that share a point attached to
// no other edges
maximumMergeAngle 180;
}
collapseFacesCoeffs
{
// The initial face length factor
initialFaceLengthFactor 0.5;
// 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
// to a point.
maxCollapseFaceToPointSideLengthCoeff 0.3;
// Allow early collapse of edges to a point
allowEarlyCollapseToPoint on;
// Fraction to premultiply maxCollapseFaceToPointSideLengthCoeff by if
// allowEarlyCollapseToPoint is enabled
allowEarlyCollapseCoeff 0.2;
// Defining how close to the midpoint (M) of the projected
// vertices line a projected vertex (X) can be before making this
// an invalid edge collapse
//
// X---X-g----------------M----X-----------g----X--X
//
// Only allow a collapse if all projected vertices are outwith
// guardFraction (g) of the distance form the face centre to the
// furthest vertex in the considered direction
guardFraction 0.1;
}
controlMeshQualityCoeffs
{
// Name of the dictionary that has the mesh quality coefficients used
// by motionSmoother::checkMesh
#include "meshQualityDict";
// The amount that minimumEdgeLength will be reduced by for each
// edge if that edge's collapse generates a poor quality face
edgeReductionFactor 0.5;
// The amount that initialFaceLengthFactor will be reduced by for each
// face if its collapse generates a poor quality face
faceReductionFactor 0.5;
// Maximum number of smoothing iterations for the reductionFactors
maximumSmoothingIterations 2;
// Maximum number of outer iterations is mesh quality checking is enabled
maximumIterations 10;
// Maximum number of iterations deletion of a point can cause a bad face
// to be constructed before it is forced to not be deleted
maxPointErrorCount 3;
}
// ************************************************************************* //

View File

@ -0,0 +1,53 @@
/*--------------------------------*- 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;
root "";
case "";
instance "";
local "";
class dictionary;
object controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
startFrom startTime;
startTime 0;
stopAt endTime;
endTime 80;
deltaT 1;
writeControl timeStep;
writeInterval 80;
purgeWrite 0;
writeFormat ascii;
writePrecision 12;
writeCompression uncompressed;
timeFormat general;
timePrecision 6;
runTimeModifiable yes;
// ************************************************************************* //

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 dictionary;
location "system";
object decomposeParDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
numberOfSubdomains 2;
method scotch;
//method ptscotch;
// method hierarchical;
simpleCoeffs
{
n ( 2 2 1 );
delta 0.001;
}
hierarchicalCoeffs
{
n ( 2 1 1 );
delta 0.001;
order xyz;
}
manualCoeffs
{
dataFile "";
}
distributed no;
roots ( );
// ************************************************************************* //

View File

@ -0,0 +1,131 @@
/*--------------------------------*- 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 foamyHexMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// Include defaults parameters from master dictionary
#include "$WM_PROJECT_DIR/etc/caseDicts/foamyHexMeshDict"
geometry
{
blob.stl
{
name blob;
type triSurfaceMesh;
}
refinementBox
{
type searchableBox;
min (-0.2 -0.6 -0.2);
max ( 0.4 0.2 0.35);
}
}
backgroundMeshDecomposition
{
minLevels 0;
sampleResolution 4;
spanScale 20;
maxCellWeightCoeff 20;
}
initialPoints
{
initialPointsMethod autoDensity;
// initialPointsMethod pointFile;
autoDensityCoeffs
{
minLevels 0;
maxSizeRatio 5.0;
sampleResolution 5;
surfaceSampleResolution 5;
}
pointFileCoeffs
{
pointFile "constant/internalDelaunayVertices";
}
}
surfaceConformation
{
locationInMesh (0.1 0.1 0.2);
featurePointControls
{
specialiseFeaturePoints off;
edgeAiming off;
guardFeaturePoints off;
snapFeaturePoints off;
circulateEdges off;
}
geometryToConformTo
{
blob
{
featureMethod none;
}
}
}
motionControl
{
defaultCellSize 0.1;
minimumCellSizeCoeff 0;
maxSmoothingIterations 100;
maxRefinementIterations 0;
shapeControlFunctions
{
blob
{
type searchableSurfaceControl;
priority 1;
mode bothSides;
surfaceCellSizeFunction uniformValue;
uniformValueCoeffs
{
surfaceCellSizeCoeff 1;
}
cellSizeFunction uniform;
uniformCoeffs
{}
}
}
objOutput no;
timeChecks no;
}
meshQualityControls
{
#include "meshQualityDict"
}
// ************************************************************************* //

View File

@ -0,0 +1,54 @@
/*--------------------------------*- 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 fvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
ddtSchemes
{
default none;
}
gradSchemes
{
default none;
}
divSchemes
{
default none;
}
laplacianSchemes
{
default none;
}
interpolationSchemes
{
default none;
}
snGradSchemes
{
default none;
}
fluxRequired
{
default no;
}
// ************************************************************************* //

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 dictionary;
location "system";
object fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solvers
{
}
// ************************************************************************* //

View File

@ -0,0 +1,65 @@
/*--------------------------------*- 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 meshQualityDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
//- Maximum non-orthogonality allowed. Set to 180 to disable.
maxNonOrtho 65;
//- Max skewness allowed. Set to <0 to disable.
maxBoundarySkewness 50;
maxInternalSkewness 10;
//- Max concaveness allowed. Is angle (in degrees) below which concavity
// is allowed. 0 is straight face, <0 would be convex face.
// Set to 180 to disable.
maxConcave 80;
//- Minimum quality of the tet formed by the face-centre
// and variable base point minimum decomposition triangles and
// the cell centre. This has to be a positive number for tracking
// to work. Set to very negative number (e.g. -1E30) to
// disable.
// <0 = inside out tet,
// 0 = flat tet
// 1 = regular tet
minTetQuality 1e-30;
//- Minimum pyramid volume. Is absolute volume of cell pyramid.
// Set to a sensible fraction of the smallest cell volume expected.
// Set to very negative number (e.g. -1E30) to disable.
minVol 1e-20;
//- Minimum face area. Set to <0 to disable.
minArea -1;
//- Minimum face twist. Set to <-1 to disable. dot product of face normal
//- and face centre triangles normal
minTwist 0.001;
//- minimum normalised cell determinant
//- 1 = hex, <= 0 = folded or flattened illegal cell
minDeterminant 0.001;
//- minFaceWeight (0 -> 0.5)
minFaceWeight 0.02;
//- minVolRatio (0 -> 1)
minVolRatio 0.01;
//must be >0 for Fluent compatibility
minTriangleTwist -1;
// ************************************************************************* //

View File

@ -0,0 +1,310 @@
/*--------------------------------*- 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 snappyHexMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// Which of the steps to run
castellatedMesh false;
snap false;
addLayers true;
// Geometry. Definition of all surfaces. All surfaces are of class
// searchableSurface.
// Surfaces are used
// - to specify refinement for any mesh cell intersecting it
// - to specify refinement for any mesh cell inside/outside/near
// - to 'snap' the mesh boundary to the surface
geometry
{
// motorBike.obj
// {
// type triSurfaceMesh;
// name motorBike;
// }
//
// refinementBox
// {
// type searchableBox;
// min (-1.0 -0.7 0.0);
// max ( 8.0 0.7 2.5);
// }
};
// Settings for the castellatedMesh generation.
castellatedMeshControls
{
// Refinement parameters
// ~~~~~~~~~~~~~~~~~~~~~
// If local number of cells is >= maxLocalCells on any processor
// switches from from refinement followed by balancing
// (current method) to (weighted) balancing before refinement.
maxLocalCells 100000;
// Overall cell limit (approximately). Refinement will stop immediately
// upon reaching this number so a refinement level might not complete.
// Note that this is the number of cells before removing the part which
// is not 'visible' from the keepPoint. The final number of cells might
// actually be a lot less.
maxGlobalCells 2000000;
// The surface refinement loop might spend lots of iterations refining just a
// few cells. This setting will cause refinement to stop if <= minimumRefine
// are selected for refinement. Note: it will at least do one iteration
// (unless the number of cells to refine is 0)
minRefinementCells 10;
// Allow a certain level of imbalance during refining
// (since balancing is quite expensive)
// Expressed as fraction of perfect balance (= overall number of cells /
// nProcs). 0=balance always.
maxLoadUnbalance 0.10;
// Number of buffer layers between different levels.
// 1 means normal 2:1 refinement restriction, larger means slower
// refinement.
nCellsBetweenLevels 3;
// Explicit feature edge refinement
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Specifies a level for any cell intersected by its edges.
// This is a featureEdgeMesh, read from constant/triSurface for now.
features
(
//{
// file "someLine.eMesh";
// level 2;
//}
);
// Surface based refinement
// ~~~~~~~~~~~~~~~~~~~~~~~~
// Specifies two levels for every surface. The first is the minimum level,
// every cell intersecting a surface gets refined up to the minimum level.
// The second level is the maximum level. Cells that 'see' multiple
// intersections where the intersections make an
// angle > resolveFeatureAngle get refined up to the maximum level.
refinementSurfaces
{
// motorBike
// {
// // Surface-wise min and max refinement level
// level (5 6);
//
// // Optional specification of patch type (default is wall). No
// // constraint types (cyclic, symmetry) etc. are allowed.
// patchInfo
// {
// type wall;
// inGroups (motorBike);
// }
// }
}
// Resolve sharp angles
resolveFeatureAngle 30;
// Region-wise refinement
// ~~~~~~~~~~~~~~~~~~~~~~
// Specifies refinement level for cells in relation to a surface. One of
// three modes
// - distance. 'levels' specifies per distance to the surface the
// wanted refinement level. The distances need to be specified in
// descending order.
// - inside. 'levels' is only one entry and only the level is used. All
// cells inside the surface get refined up to the level. The surface
// needs to be closed for this to be possible.
// - outside. Same but cells outside.
refinementRegions
{
// refinementBox
// {
// mode inside;
// levels ((1E15 4));
// }
}
// Mesh selection
// ~~~~~~~~~~~~~~
// After refinement patches get added for all refinementSurfaces and
// all cells intersecting the surfaces get put into these patches. The
// section reachable from the locationInMesh is kept.
// NOTE: This point should never be on a face, always inside a cell, even
// after refinement.
locationInMesh (-1 0 0);
// Whether any faceZones (as specified in the refinementSurfaces)
// are only on the boundary of corresponding cellZones or also allow
// free-standing zone faces. Not used if there are no faceZones.
allowFreeStandingZoneFaces true;
}
// Settings for the snapping.
snapControls
{
//- Number of patch smoothing iterations before finding correspondence
// to surface
nSmoothPatch 3;
//- Relative distance for points to be attracted by surface feature point
// or edge. True distance is this factor times local
// maximum edge length.
tolerance 4.0;
//- Number of mesh displacement relaxation iterations.
nSolveIter 0;
//- Maximum number of snapping relaxation iterations. Should stop
// before upon reaching a correct mesh.
nRelaxIter 5;
//- Highly experimental and wip: number of feature edge snapping
// iterations. Leave out altogether to disable.
// Do not use here since mesh resolution too low and baffles present
//nFeatureSnapIter 10;
}
// Settings for the layer addition.
addLayersControls
{
// Are the thickness parameters below relative to the undistorted
// size of the refined cell outside layer (true) or absolute sizes (false).
relativeSizes false;
// Per final patch (so not geometry!) the layer information
layers
{
blob.stl_patch1
{
nSurfaceLayers 4;
}
}
// Expansion factor for layer mesh
expansionRatio 1.5;
// Wanted thickness of final added cell layer. If multiple layers
// is the thickness of the layer furthest away from the wall.
// Relative to undistorted size of cell outside layer.
// is the thickness of the layer furthest away from the wall.
// See relativeSizes parameter.
finalLayerThickness 0.02;
// Minimum thickness of cell layer. If for any reason layer
// cannot be above minThickness do not add layer.
// Relative to undistorted size of cell outside layer.
minThickness 0.005;
// If points get not extruded do nGrow layers of connected faces that are
// also not grown. This helps convergence of the layer addition process
// close to features.
// Note: changed(corrected) w.r.t 17x! (didn't do anything in 17x)
nGrow 0;
// Advanced settings
// When not to extrude surface. 0 is flat surface, 90 is when two faces
// are perpendicular
featureAngle 90;
// Maximum number of snapping relaxation iterations. Should stop
// before upon reaching a correct mesh.
nRelaxIter 3;
// Number of smoothing iterations of surface normals
nSmoothSurfaceNormals 1;
// Number of smoothing iterations of interior mesh movement direction
nSmoothNormals 3;
// Smooth layer thickness over surface patches
nSmoothThickness 10;
// Stop layer growth on highly warped cells
maxFaceThicknessRatio 1000;
// Reduce layer growth where ratio thickness to medial
// distance is large
maxThicknessToMedialRatio 0.3;
// Angle used to pick up medial axis points
// Note: changed(corrected) w.r.t 17x! 90 degrees corresponds to 130 in 17x.
minMedianAxisAngle 90;
// Create buffer region for new layer terminations
nBufferCellsNoExtrude 0;
// Overall max number of layer addition iterations. The mesher will exit
// if it reaches this number of iterations; possibly with an illegal
// mesh.
nLayerIter 50;
}
// Generic mesh quality settings. At any undoable phase these determine
// where to undo.
meshQualityControls
{
#include "meshQualityDict"
// Advanced
//- Number of error distribution iterations
nSmoothScale 4;
//- amount to scale back displacement at error points
errorReduction 0.75;
}
// Advanced
// Flags for optional output
// 0 : only write final meshes
// 1 : write intermediate meshes
// 2 : write volScalarField with cellLevel for postprocessing
// 4 : write current intersections as .obj files
debug 0;
// Merge tolerance. Is fraction of overall bounding box of initial mesh.
// Note: the write tolerance needs to be higher than this.
mergeTolerance 1e-6;
// ************************************************************************* //

View File

@ -0,0 +1,149 @@
/*--------------------------------*- 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 topoSetDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
actions
(
{
name z;
type cellSet;
action new;
source boxToCell;
sourceInfo
{
box (-100 -100 -0.2)(100 100 100);
}
}
{
name zf;
type faceSet;
action new;
source cellToFace;
sourceInfo
{
set z;
option all;
}
}
{
name z;
type cellSet;
action invert;
}
{
name zf;
type faceSet;
action subset;
source cellToFace;
sourceInfo
{
set z;
option all;
}
}
// ~~~~~~~~~~~~~~~~ //
{
name x;
type cellSet;
action new;
source boxToCell;
sourceInfo
{
box (-0.32 -100 -100)(100 100 100);
}
}
{
name xf;
type faceSet;
action new;
source cellToFace;
sourceInfo
{
set x;
option all;
}
}
{
name x;
type cellSet;
action invert;
}
{
name xf;
type faceSet;
action subset;
source cellToFace;
sourceInfo
{
set x;
option all;
}
}
// ~~~~~~~~~~~~~~~~ //
{
name sp;
type cellSet;
action new;
source sphereToCell;
sourceInfo
{
centre (-0.3 -0.3 -0.3);
radius 0.4;
}
}
{
name spf;
type faceSet;
action new;
source cellToFace;
sourceInfo
{
set sp;
option all;
}
}
{
name sp;
type cellSet;
action invert;
}
{
name spf;
type faceSet;
action subset;
source cellToFace;
sourceInfo
{
set sp;
option all;
}
}
);
// ************************************************************************* //

View File

@ -0,0 +1,14 @@
#!/bin/sh
cd ${0%/*} || exit 1 # run from this directory
# Source tutorial run functions
. $WM_PROJECT_DIR/bin/tools/CleanFunctions
rm -rf constant/extendedFeatureEdgeMesh > /dev/null 2>&1
rm -r constant/ccx constant/ccy constant/ccz > /dev/null 2>&1
rm -r constant/internalDelaunayVertices constant/targetCellSize > /dev/null 2>&1
rm -r 0/ccx 0/ccy 0/ccz > /dev/null 2>&1
cleanCase
# ----------------------------------------------------------------- end-of-file

View File

@ -0,0 +1,12 @@
#!/bin/sh
cd ${0%/*} || exit 1 # run from this directory
# Source tutorial run functions
. $WM_PROJECT_DIR/bin/tools/RunFunctions
runApplication foamyHexMesh
runApplication collapseEdges -latestTime -collapseFaces
runApplication checkMesh -latestTime -allGeometry -allTopology
# ----------------------------------------------------------------- end-of-file

View File

@ -0,0 +1,25 @@
#!/bin/sh
cd ${0%/*} || exit 1 # run from this directory
# Source tutorial run functions
. $WM_PROJECT_DIR/bin/tools/RunFunctions
# Get the number of processors to run on from system/decomposeParDict
nProc=$(getNumberOfProcessors)
# Create tight-fitting background mesh
runApplication blockMesh
runApplication topoSet -dict system/topoSetDict-background
mv log.topoSet log.topoSet.background
runApplication subsetMesh background -patch walls -overwrite
runApplication decomposePar
runParallel foamyHexMesh $nProc
runParallel collapseEdges $nProc -latestTime -collapseFaces
runParallel checkMesh $nProc -latestTime -allTopology -allGeometry
runApplication reconstructParMesh -latestTime
# ----------------------------------------------------------------- end-of-file

View File

@ -0,0 +1,19 @@
#!/bin/sh
cd ${0%/*} || exit 1 # run from this directory
# Source tutorial run functions
. $WM_PROJECT_DIR/bin/tools/RunFunctions
# Create tight-fitting background mesh
runApplication blockMesh
runApplication foamyHexMesh
# Change collapseEdges to only do one iteration
cp system/collapseDict system/collapseDict.org
sed -e s/"\(maximumIterations[ \t]*\)\([0-9]*\);"/"\1 1;"/g \
system/collapseDict.org > system/collapseDict
runApplication collapseEdges -latestTime -collapseFaces
# ----------------------------------------------------------------- end-of-file

View File

@ -0,0 +1,69 @@
/*--------------------------------*- 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 blockMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
convertToMeters 1.0;
xmin -0.0265;
xmax 0.0265;
ymin -0.028;
ymax 0.023;
zmin -0.024;
zmax 0.01;
vertices
(
($xmin $ymin $zmin)
($xmax $ymin $zmin)
($xmax $ymax $zmin)
($xmin $ymax $zmin)
($xmin $ymin $zmax)
($xmax $ymin $zmax)
($xmax $ymax $zmax)
($xmin $ymax $zmax)
);
blocks
(
hex (0 1 2 3 4 5 6 7) (5 6 3) simpleGrading (1 1 1)
);
edges
(
);
boundary
(
walls
{
type wall;
faces
(
(3 7 6 2)
(0 4 7 3)
(2 6 5 1)
(1 5 4 0)
(0 3 2 1)
(4 5 6 7)
);
}
);
mergePatchPairs
(
);
// ************************************************************************* //

View File

@ -0,0 +1,28 @@
/*--------------------------------*- 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 polyBoundaryMesh;
location "constant/polyMesh";
object boundary;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
1
(
walls
{
type wall;
nFaces 126;
startFace 207;
}
)
// ************************************************************************* //

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,84 @@
/*--------------------------------*- 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 collapseDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
controlMeshQuality on;
collapseEdgesCoeffs
{
// Edges shorter than this absolute value will be merged
minimumEdgeLength 1e-6;
// The maximum angle between two edges that share a point attached to
// no other edges
maximumMergeAngle 180;
}
collapseFacesCoeffs
{
// The initial face length factor
initialFaceLengthFactor 0.5;
// 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
// to a point.
maxCollapseFaceToPointSideLengthCoeff 0.3;
// Allow early collapse of edges to a point
allowEarlyCollapseToPoint on;
// Fraction to premultiply maxCollapseFaceToPointSideLengthCoeff by if
// allowEarlyCollapseToPoint is enabled
allowEarlyCollapseCoeff 0.2;
// Defining how close to the midpoint (M) of the projected
// vertices line a projected vertex (X) can be before making this
// an invalid edge collapse
//
// X---X-g----------------M----X-----------g----X--X
//
// Only allow a collapse if all projected vertices are outwith
// guardFraction (g) of the distance form the face centre to the
// furthest vertex in the considered direction
guardFraction 0.1;
}
controlMeshQualityCoeffs
{
// Name of the dictionary that has the mesh quality coefficients used
// by motionSmoother::checkMesh
#include "meshQualityDict";
// The amount that minimumEdgeLength will be reduced by for each
// edge if that edge's collapse generates a poor quality face
edgeReductionFactor 0.5;
// The amount that initialFaceLengthFactor will be reduced by for each
// face if its collapse generates a poor quality face
faceReductionFactor 0.5;
// Maximum number of smoothing iterations for the reductionFactors
maximumSmoothingIterations 2;
// Maximum number of outer iterations is mesh quality checking is enabled
maximumIterations 10;
// Maximum number of iterations deletion of a point can cause a bad face
// to be constructed before it is forced to not be deleted
maxPointErrorCount 3;
}
// ************************************************************************* //

View File

@ -0,0 +1,58 @@
/*--------------------------------*- 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;
root "";
case "";
instance "";
local "";
class dictionary;
object controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
application cvMesh;
startFrom startTime;
startTime 0;
stopAt endTime;
endTime 100;
deltaT 1;
writeControl timeStep;
writeInterval 100;
purgeWrite 0;
writeFormat ascii;
writePrecision 10;
writeCompression uncompressed;
timeFormat general;
timePrecision 6;
runTimeModifiable yes;
libs ("libdistributed.so");
// ************************************************************************* //

View File

@ -0,0 +1,46 @@
/*--------------------------------*- 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 decomposeParDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
numberOfSubdomains 8;
//method scotch;
method hierarchical;
simpleCoeffs
{
n ( 2 2 2 );
delta 0.001;
}
hierarchicalCoeffs
{
n ( 2 2 2 );
delta 0.001;
order xyz;
}
manualCoeffs
{
dataFile "";
}
distributed no;
roots ( );
// ************************************************************************* //

View File

@ -0,0 +1,35 @@
/*--------------------------------*- 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 faceSetDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// Name of set to operate on
name facesToBeRemoved;
// One of clear/new/invert/add/delete|subset/list
action new;
// Actions to apply to pointSet. These are all the topoSetSource's ending
// in ..ToFace (see the meshTools library).
topoSetSources
(
// Select by explicitly providing face labels
labelToFace
{
value #include "../facesToBeRemoved";
}
);
// ************************************************************************* //

View File

@ -0,0 +1,202 @@
/*--------------------------------*- 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 foamyHexMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// Include defaults parameters from master dictionary
#include "$WM_PROJECT_DIR/etc/caseDicts/foamyHexMeshDict"
// Any scalar with a name <name>Coeff specifies a value that will be implemented
// as a faction of the target cell size
geometry
{
flange.obj
{
name flange;
type triSurfaceMesh;
regions
{
patch1
{
name wall;
}
patch2
{
name plate;
}
patch3
{
name rings;
}
patch4
{
name outlet;
}
}
}
}
initialPoints
{
initialPointsMethod autoDensity;
autoDensityCoeffs
{
minLevels 2;
maxSizeRatio 3.0;
sampleResolution 4;
surfaceSampleResolution 5;
}
}
surfaceConformation
{
locationInMesh (0 0 0);
geometryToConformTo
{
flange
{
featureMethod extractFeatures;
includedAngle 140;
regions
{
wall
{
patchInfo
{
inGroups (groupFlange groupWalls);
}
}
plate
{
patchInfo
{
inGroups (groupFlange groupWalls);
}
}
rings
{
patchInfo
{
inGroups (groupFlange);
}
}
outlet
{
patchInfo
{
type patch;
inGroups (groupFlange);
}
}
}
}
}
}
motionControl
{
defaultCellSize 0.0008;
minimumCellSizeCoeff 0;
maxSmoothingIterations 100;
maxRefinementIterations 0;
shapeControlFunctions
{
flange
{
type searchableSurfaceControl;
priority 1;
mode inside;
surfaceCellSizeFunction uniformValue;
uniformValueCoeffs
{
surfaceCellSizeCoeff 1;
}
cellSizeFunction surfaceOffsetLinearDistance;
surfaceOffsetLinearDistanceCoeffs
{
distanceCellSizeCoeff 1;
surfaceOffsetCoeff 2.5;
linearDistanceCoeff 2.5;
}
regions
{
rings
{
type searchableSurfaceControl;
priority 2;
mode inside;
surfaceCellSizeFunction uniformValue;
uniformValueCoeffs
{
surfaceCellSizeCoeff 0.5;
}
cellSizeFunction surfaceOffsetLinearDistance;
surfaceOffsetLinearDistanceCoeffs
{
distanceCellSizeCoeff 1;
surfaceOffsetCoeff 2;
linearDistanceCoeff 2;
}
}
}
}
}
adaptiveLinearCoeffs
{
relaxationStart 1.0;
relaxationEnd 0.0;
}
objOutput no;
timeChecks no;
}
backgroundMeshDecomposition
{
minLevels 1;
sampleResolution 4;
spanScale 5;
maxCellWeightCoeff 10;
}
meshQualityControls
{
#include "meshQualityDict"
}
// ************************************************************************* //

View File

@ -0,0 +1,55 @@
/*--------------------------------*- 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 fvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
ddtSchemes
{
default none;
}
gradSchemes
{
default Gauss linear;
}
divSchemes
{
default none;
}
laplacianSchemes
{
default none;
laplacian(nn) Gauss linear corrected;
}
interpolationSchemes
{
default none;
}
snGradSchemes
{
default corrected;
}
fluxRequired
{
default no;
}
// ************************************************************************* //

View File

@ -0,0 +1,29 @@
/*--------------------------------*- 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 fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solvers
{
nn
{
solver PCG;
preconditioner DIC;
tolerance 1e-06;
relTol 0;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,65 @@
/*--------------------------------*- 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 meshQualityDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
//- Maximum non-orthogonality allowed. Set to 180 to disable.
maxNonOrtho 45;
//- Max skewness allowed. Set to <0 to disable.
maxBoundarySkewness 50;
maxInternalSkewness 10;
//- Max concaveness allowed. Is angle (in degrees) below which concavity
// is allowed. 0 is straight face, <0 would be convex face.
// Set to 180 to disable.
maxConcave 80;
//- Minimum quality of the tet formed by the face-centre
// and variable base point minimum decomposition triangles and
// the cell centre. This has to be a positive number for tracking
// to work. Set to very negative number (e.g. -1E30) to
// disable.
// <0 = inside out tet,
// 0 = flat tet
// 1 = regular tet
minTetQuality 1e-30;
//- Minimum pyramid volume. Is absolute volume of cell pyramid.
// Set to a sensible fraction of the smallest cell volume expected.
// Set to very negative number (e.g. -1E30) to disable.
minVol 0;
//- Minimum face area. Set to <0 to disable.
minArea -1;
//- Minimum face twist. Set to <-1 to disable. dot product of face normal
//- and face centre triangles normal
minTwist 0.001;
//- minimum normalised cell determinant
//- 1 = hex, <= 0 = folded or flattened illegal cell
minDeterminant 0.001;
//- minFaceWeight (0 -> 0.5)
minFaceWeight 0.02;
//- minVolRatio (0 -> 1)
minVolRatio 0.01;
//must be >0 for Fluent compatibility
minTriangleTwist -1;
// ************************************************************************* //

View File

@ -0,0 +1,308 @@
/*--------------------------------*- 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 snappyHexMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// Which of the steps to run
castellatedMesh false;
snap false;
addLayers true;
// Geometry. Definition of all surfaces. All surfaces are of class
// searchableSurface.
// Surfaces are used
// - to specify refinement for any mesh cell intersecting it
// - to specify refinement for any mesh cell inside/outside/near
// - to 'snap' the mesh boundary to the surface
geometry
{
// motorBike.obj
// {
// type triSurfaceMesh;
// name motorBike;
// }
//
// refinementBox
// {
// type searchableBox;
// min (-1.0 -0.7 0.0);
// max ( 8.0 0.7 2.5);
// }
};
// Settings for the castellatedMesh generation.
castellatedMeshControls
{
// Refinement parameters
// ~~~~~~~~~~~~~~~~~~~~~
// If local number of cells is >= maxLocalCells on any processor
// switches from from refinement followed by balancing
// (current method) to (weighted) balancing before refinement.
maxLocalCells 100000;
// Overall cell limit (approximately). Refinement will stop immediately
// upon reaching this number so a refinement level might not complete.
// Note that this is the number of cells before removing the part which
// is not 'visible' from the keepPoint. The final number of cells might
// actually be a lot less.
maxGlobalCells 2000000;
// The surface refinement loop might spend lots of iterations refining just a
// few cells. This setting will cause refinement to stop if <= minimumRefine
// are selected for refinement. Note: it will at least do one iteration
// (unless the number of cells to refine is 0)
minRefinementCells 10;
// Allow a certain level of imbalance during refining
// (since balancing is quite expensive)
// Expressed as fraction of perfect balance (= overall number of cells /
// nProcs). 0=balance always.
maxLoadUnbalance 0.10;
// Number of buffer layers between different levels.
// 1 means normal 2:1 refinement restriction, larger means slower
// refinement.
nCellsBetweenLevels 3;
// Explicit feature edge refinement
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Specifies a level for any cell intersected by its edges.
// This is a featureEdgeMesh, read from constant/triSurface for now.
features
(
//{
// file "someLine.eMesh";
// level 2;
//}
);
// Surface based refinement
// ~~~~~~~~~~~~~~~~~~~~~~~~
// Specifies two levels for every surface. The first is the minimum level,
// every cell intersecting a surface gets refined up to the minimum level.
// The second level is the maximum level. Cells that 'see' multiple
// intersections where the intersections make an
// angle > resolveFeatureAngle get refined up to the maximum level.
refinementSurfaces
{
// motorBike
// {
// // Surface-wise min and max refinement level
// level (5 6);
//
// // Optional specification of patch type (default is wall). No
// // constraint types (cyclic, symmetry) etc. are allowed.
// patchInfo
// {
// type wall;
// inGroups (motorBike);
// }
// }
}
// Resolve sharp angles
resolveFeatureAngle 30;
// Region-wise refinement
// ~~~~~~~~~~~~~~~~~~~~~~
// Specifies refinement level for cells in relation to a surface. One of
// three modes
// - distance. 'levels' specifies per distance to the surface the
// wanted refinement level. The distances need to be specified in
// descending order.
// - inside. 'levels' is only one entry and only the level is used. All
// cells inside the surface get refined up to the level. The surface
// needs to be closed for this to be possible.
// - outside. Same but cells outside.
refinementRegions
{
// refinementBox
// {
// mode inside;
// levels ((1E15 4));
// }
}
// Mesh selection
// ~~~~~~~~~~~~~~
// After refinement patches get added for all refinementSurfaces and
// all cells intersecting the surfaces get put into these patches. The
// section reachable from the locationInMesh is kept.
// NOTE: This point should never be on a face, always inside a cell, even
// after refinement.
locationInMesh (-1 0 0);
// Whether any faceZones (as specified in the refinementSurfaces)
// are only on the boundary of corresponding cellZones or also allow
// free-standing zone faces. Not used if there are no faceZones.
allowFreeStandingZoneFaces true;
}
// Settings for the snapping.
snapControls
{
//- Number of patch smoothing iterations before finding correspondence
// to surface
nSmoothPatch 3;
//- Relative distance for points to be attracted by surface feature point
// or edge. True distance is this factor times local
// maximum edge length.
tolerance 4.0;
//- Number of mesh displacement relaxation iterations.
nSolveIter 0;
//- Maximum number of snapping relaxation iterations. Should stop
// before upon reaching a correct mesh.
nRelaxIter 5;
//- Highly experimental and wip: number of feature edge snapping
// iterations. Leave out altogether to disable.
// Do not use here since mesh resolution too low and baffles present
//nFeatureSnapIter 10;
}
// Settings for the layer addition.
addLayersControls
{
// Are the thickness parameters below relative to the undistorted
// size of the refined cell outside layer (true) or absolute sizes (false).
relativeSizes false;
// Per final patch (so not geometry!) the layer information
layers
{
"flange.obj.*"
{
nSurfaceLayers 1;
}
}
// Expansion factor for layer mesh
expansionRatio 1.5;
// Wanted thickness of final added cell layer. If multiple layers
// is the thickness of the layer furthest away from the wall.
// Relative to undistorted size of cell outside layer.
// is the thickness of the layer furthest away from the wall.
// See relativeSizes parameter.
finalLayerThickness 0.0003;
// Minimum thickness of cell layer. If for any reason layer
// cannot be above minThickness do not add layer.
// Relative to undistorted size of cell outside layer.
minThickness 0.0001;
// If points get not extruded do nGrow layers of connected faces that are
// also not grown. This helps convergence of the layer addition process
// close to features.
// Note: changed(corrected) w.r.t 17x! (didn't do anything in 17x)
nGrow 0;
// Advanced settings
// When not to extrude surface. 0 is flat surface, 90 is when two faces
// are perpendicular
featureAngle 90;
// Maximum number of snapping relaxation iterations. Should stop
// before upon reaching a correct mesh.
nRelaxIter 3;
// Number of smoothing iterations of surface normals
nSmoothSurfaceNormals 1;
// Number of smoothing iterations of interior mesh movement direction
nSmoothNormals 3;
// Smooth layer thickness over surface patches
nSmoothThickness 10;
// Stop layer growth on highly warped cells
maxFaceThicknessRatio 1000;
// Reduce layer growth where ratio thickness to medial
// distance is large
maxThicknessToMedialRatio 0.3;
// Angle used to pick up medial axis points
// Note: changed(corrected) w.r.t 17x! 90 degrees corresponds to 130 in 17x.
minMedianAxisAngle 90;
// Create buffer region for new layer terminations
nBufferCellsNoExtrude 0;
// Overall max number of layer addition iterations. The mesher will exit
// if it reaches this number of iterations; possibly with an illegal
// mesh.
nLayerIter 50;
}
meshQualityControls
{
// Generic mesh quality settings. At any undoable phase these determine
// where to undo.
#include "meshQualityDict"
//- Number of error distribution iterations
nSmoothScale 4;
//- amount to scale back displacement at error points
errorReduction 0.75;
}
// Advanced
// Flags for optional output
// 0 : only write final meshes
// 1 : write intermediate meshes
// 2 : write volScalarField with cellLevel for postprocessing
// 4 : write current intersections as .obj files
debug 0;
// Merge tolerance. Is fraction of overall bounding box of initial mesh.
// Note: the write tolerance needs to be higher than this.
mergeTolerance 1e-6;
// ************************************************************************* //

View File

@ -0,0 +1,319 @@
/*--------------------------------*- 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 topoSetDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// List of actions. Each action is a dictionary with e.g.
// // name of set
// name c0;
//
// // type: pointSet/faceSet/cellSet/faceZoneSet/cellZoneSet
// type cellSet;
//
// // action to perform on set. Two types:
// // - require no source : clear/invert
// // - require source : new/add/delete/subset
// action new;
//
// The source entry varies according to the type of set:
//
// cellSet
// ~~~~~~~
//
// // Select by explicitly providing cell labels
// source labelToCell;
// {
// value (12 13 56); // labels of cells
// }
//
// // Copy elements from cellSet
// source cellToCell;
// {
// set c1;
// }
//
// // Cells in cell zone
// source zoneToCell;
// {
// name ".*Zone"; // Name of cellZone, regular expressions allowed
// }
//
// // Cells on master or slave side of faceZone
// source faceZoneToCell;
// {
// name ".*Zone"; // Name of faceZone, regular expressions allowed
// option master; // master/slave
// }
//
// // Select based on faceSet
// source faceToCell;
// {
// set f0; // Name of faceSet
//
// //option neighbour; // cell with neighbour in faceSet
// //option owner; // ,, owner
// option any; // cell with any face in faceSet
// //option all; // cell with all faces in faceSet
// }
//
// // Select based on pointSet
// source pointToCell;
// {
// set p0;
// option any; // cell with any point in pointSet
// //option all; // cell with all points in pointSet
// }
//
// // Select based on cellShape
// source shapeToCell;
// {
// type hex; // hex/wedge/prism/pyr/tet/tetWedge/splitHex
// }
//
// // Cells with cell centre within box
// source boxToCell;
// {
// box (0 0 0) (1 1 1);
// }
//
// // Cells with cell centre within box
// // Is skewed, rotated box. Given as origin and three spanning vectors.
// source rotatedBoxToCell;
// {
// origin (0.2 0.2 -10);
// i (0.2 0.2 0);
// j (-0.2 0.2 0);
// k (10 10 10);
// }
//
// // Cells with centre within cylinder
// source cylinderToCell;
// {
// p1 (0.2 0.2 -10); // start point on cylinder axis
// p2 (0.2 0.2 0); // end point on cylinder axis
// radius 5.0;
// }
//
// // Cells with centre within sphere
// source sphereToCell;
// {
// centre (0.2 0.2 -10);
// radius 5.0;
// }
//
// // Cells with cellCentre nearest to coordinates
// source nearestToCell;
// {
// points ((0 0 0) (1 1 1)(2 2 2));
// }
//
// // Select based on surface
// source surfaceToCell;
// {
// file "www.avl.com-geometry.stl";
// outsidePoints ((-99 -99 -59)); // definition of outside
// includeCut false; // cells cut by surface
// includeInside false; // cells not on outside of surf
// includeOutside false; // cells on outside of surf
// nearDistance -1; // cells with centre near surf
// // (set to -1 if not used)
// curvature 0.9; // cells within nearDistance
// // and near surf curvature
// // (set to -100 if not used)
// }
//
// // values of field within certain range
// source fieldToCell;
// {
// fieldName U; // Note: uses mag(U) since volVectorField
// min 0.1;
// max 0.5;
// }
//
// // Mesh region (non-face connected part of (subset of)mesh)
// source regionToCell;
// {
// set c0; // name of cellSet giving mesh subset
// insidePoint (1 2 3); // point inside region to select
// }
//
//
//
// faceSet
// ~~~~~~~
//
// // Copy elements from faceSet
// source faceToFace;
// {
// set f1;
// }
//
// // Select based on cellSet
// source cellToFace;
// {
// set c0;
// option all; // All faces of cells
// //option both; // Only faces whose owner&neighbour are in cellSet
// }
//
// // Select based on pointSet
// source pointToFace;
// {
// set p0;
// option any; // Faces using any point in pointSet
// //option all // Faces with all points in pointSet
// }
//
// // Select by explicitly providing face labels
// source labelToFace;
// {
// value (12 13 56); // labels of faces
// }
//
// // All faces of patch
// source patchToFace;
// {
// name ".*Wall"; // Name of patch, regular expressions allowed
// }
//
// // All faces of faceZone
// source zoneToFace;
// {
// name ".*Zone1"; // Name of faceZone, regular expressions allowed
// }
//
// // Faces with face centre within box
// source boxToFace;
// {
// box (0 0 0) (1 1 1);
// }
//
// // Faces with normal to within certain angle aligned with vector.
// source normalToFace;
// {
// normal (0 0 1); // Vector
// cos 0.01; // Tolerance (max cos of angle)
// }
//
//
//
// pointSet
// ~~~~~~~
//
// // Copy elements from pointSet
// source pointToPoint;
// {
// set p1;
// }
//
// // Select based on cellSet
// source cellToPoint;
// {
// set c0;
// option all; // all points of cell
// }
//
// // Select based on faceSet
// source faceToPoint;
// {
// set f0; // name of faceSet
// option all; // all points of face
// }
//
// // Select by explicitly providing point labels
// source labelToPoint;
// {
// value (12 13 56); // labels of points
// }
//
// // All points in pointzone
// source zoneToPoint;
// {
// name ".*Zone"; // name of pointZone, regular expressions allowed
// }
//
// // Points nearest to coordinates
// source nearestToPoint;
// {
// points ((0 0 0) (1 1 1));
// }
//
// // Points with coordinate within box
// source boxToPoint;
// {
// box (0 0 0) (1 1 1);
// }
//
// // Select based on surface
// source surfaceToPoint;
// {
// file "www.avl.com-geometry.stl";
// nearDistance 0.1; // points near to surface
// includeInside false; // points on inside of surface
// // (requires closed surface with consistent
// // normals)
// includeOutside false; // ,, outside ,,
// }
//
//
//
//
// cellZoneSet
// ~~~~~~~~~~~
// (mirrors operations on a cellSet into a cellZone)
//
// // Select based on cellSet
// source setToCellZone;
// {
// set c0; // name of cellSet
// }
//
//
//
// faceZoneSet
// ~~~~~~~~~~~
// // Select based on faceSet without orientation
// source setToFaceZone;
// {
// set f0; // name of faceSet
// }
//
// // Select based on faceSet, using cellSet to determine orientation
// source setsToFaceZone;
// {
// faceSet f0; // name of faceSet
// cellSet c0; // name of cellSet of slave side
// }
actions
(
{
name background;
type cellSet;
action new;
source surfaceToCell;
sourceInfo
{
file "constant/triSurface/flange.obj";
outsidePoints ((-0.026 -0.0275 -0.0235));
includeCut true;
includeInside true;
includeOutside false;
nearDistance -1;
curvature -100;
}
}
);
// ************************************************************************* //

View File

@ -0,0 +1,152 @@
/*--------------------------------*- 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 topoSetDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
zSlice -0.009;
ySlice 0.0;
xSlice 0.0;
actions
(
{
name z;
type cellSet;
action new;
source boxToCell;
sourceInfo
{
box (-100 -100 $zSlice)(100 100 100);
}
}
{
name zf;
type faceSet;
action new;
source cellToFace;
sourceInfo
{
set z;
option all;
}
}
{
name z;
type cellSet;
action invert;
}
{
name zf;
type faceSet;
action subset;
source cellToFace;
sourceInfo
{
set z;
option all;
}
}
// ~~~~~~~~~~~~~~~~ //
{
name y;
type cellSet;
action new;
source boxToCell;
sourceInfo
{
box (-100 $ySlice -100)(100 100 100);
}
}
{
name yf;
type faceSet;
action new;
source cellToFace;
sourceInfo
{
set y;
option all;
}
}
{
name y;
type cellSet;
action invert;
}
{
name yf;
type faceSet;
action subset;
source cellToFace;
sourceInfo
{
set y;
option all;
}
}
// ~~~~~~~~~~~~~~~~ //
{
name x;
type cellSet;
action new;
source boxToCell;
sourceInfo
{
box ($xSlice -100 -100)(100 100 100);
}
}
{
name xf;
type faceSet;
action new;
source cellToFace;
sourceInfo
{
set x;
option all;
}
}
{
name x;
type cellSet;
action invert;
}
{
name xf;
type faceSet;
action subset;
source cellToFace;
sourceInfo
{
set x;
option all;
}
}
);
// ************************************************************************* //

View File

@ -0,0 +1,18 @@
#!/bin/sh
cd ${0%/*} || exit 1 # run from this directory
# Source tutorial run functions
. $WM_PROJECT_DIR/bin/tools/CleanFunctions
rm -r constant/extendedFeatureEdgeMesh constant/internalDelaunayVertices > /dev/null 2>&1
rm constant/triSurface/*.eMesh > /dev/null 2>&1
rm constant/triSurface/*_clean* > /dev/null 2>&1
rm -r constant/polyMesh > /dev/null 2>&1
rm constant/targetCellSize > /dev/null 2>&1
rm -r constant/tetDualMesh > /dev/null 2>&1
rm domain coneAndSphere > /dev/null 2>&1
cleanCase
# ----------------------------------------------------------------- end-of-file

View File

@ -0,0 +1,28 @@
#!/bin/sh
cd ${0%/*} || exit 1 # run from this directory
# Source tutorial run functions
. $WM_PROJECT_DIR/bin/tools/RunFunctions
# Remove any small triangles (edges < 1e-4, sliver with Q < 1e-6) from surface
# (cvMesh will try to conform to every feature).
runApplication surfaceClean \
constant/triSurface/coneAndSphere.obj \
1e-4 1e-6 \
constant/triSurface/coneAndSphere_clean.obj
mv log.surfaceClean log.surfaceClean.coneAndSphere
# Orient so point to be meshed is inside surface
runApplication surfaceOrient \
constant/triSurface/coneAndSphere_clean.obj \
-inside '(0 -0.5 0)' \
constant/triSurface/coneAndSphere_clean_orient.obj
mv log.surfaceOrient log.surfaceOrient.coneAndSphere
unset FOAM_SIGFPE
# Generate aligned points (in constant/internalDelaunayVertices) and a
# mesh from that.
runApplication foamyHexMesh
# ----------------------------------------------------------------- end-of-file

View File

@ -0,0 +1,828 @@
solid ascii
facet normal -1 0 0
outer loop
vertex -0.5 0.475528 -0.154509
vertex -0.5 0.456773 -0.203368
vertex -0.5 0.489074 -0.103956
endloop
endfacet
facet normal -1 0 0
outer loop
vertex -0.5 0.489074 -0.103956
vertex -0.5 0.456773 -0.203368
vertex -0.5 0.497261 -0.0522642
endloop
endfacet
facet normal -1 0 0
outer loop
vertex -0.5 0.497261 -0.0522642
vertex -0.5 0.456773 -0.203368
vertex -0.5 0.5 0
endloop
endfacet
facet normal -1 0 0
outer loop
vertex -0.5 0.5 0
vertex -0.5 0.456773 -0.203368
vertex -0.5 0.497261 0.0522642
endloop
endfacet
facet normal -1 0 0
outer loop
vertex -0.5 0.497261 0.0522642
vertex -0.5 0.456773 -0.203368
vertex -0.5 0.489074 0.103956
endloop
endfacet
facet normal -1 0 0
outer loop
vertex -0.5 0.489074 0.103956
vertex -0.5 0.456773 -0.203368
vertex -0.5 0.475528 0.154509
endloop
endfacet
facet normal -1 0 0
outer loop
vertex -0.5 0.475528 0.154509
vertex -0.5 0.456773 -0.203368
vertex -0.5 0.456773 0.203368
endloop
endfacet
facet normal -1 0 0
outer loop
vertex -0.5 0.456773 0.203368
vertex -0.5 0.456773 -0.203368
vertex -0.5 0.433013 0.25
endloop
endfacet
facet normal -1 0 0
outer loop
vertex -0.5 0.456773 -0.203368
vertex -0.5 0.433013 -0.25
vertex -0.5 0.433013 0.25
endloop
endfacet
facet normal -1 0 0
outer loop
vertex -0.5 0.433013 0.25
vertex -0.5 0.433013 -0.25
vertex -0.5 0.404509 0.293893
endloop
endfacet
facet normal -1 0 0
outer loop
vertex -0.5 0.404509 0.293893
vertex -0.5 0.433013 -0.25
vertex -0.5 0.371572 0.334565
endloop
endfacet
facet normal -1 0 0
outer loop
vertex -0.5 0.433013 -0.25
vertex -0.5 0.404509 -0.293893
vertex -0.5 0.371572 0.334565
endloop
endfacet
facet normal -1 0 0
outer loop
vertex -0.5 0.404509 -0.293893
vertex -0.5 0.371572 -0.334565
vertex -0.5 0.371572 0.334565
endloop
endfacet
facet normal -1 0 0
outer loop
vertex -0.5 0.371572 0.334565
vertex -0.5 0.371572 -0.334565
vertex -0.5 0.334565 0.371572
endloop
endfacet
facet normal -1 0 0
outer loop
vertex -0.5 0.334565 0.371572
vertex -0.5 0.371572 -0.334565
vertex -0.5 0.293893 0.404509
endloop
endfacet
facet normal -1 0 0
outer loop
vertex -0.5 0.293893 0.404509
vertex -0.5 0.371572 -0.334565
vertex -0.5 0.25 0.433013
endloop
endfacet
facet normal -1 0 0
outer loop
vertex -0.5 0.25 0.433013
vertex -0.5 0.371572 -0.334565
vertex -0.5 0.203368 0.456773
endloop
endfacet
facet normal -1 0 0
outer loop
vertex -0.5 0.203368 0.456773
vertex -0.5 0.371572 -0.334565
vertex -0.5 0.154509 0.475528
endloop
endfacet
facet normal -1 0 0
outer loop
vertex -0.5 0.154509 0.475528
vertex -0.5 0.371572 -0.334565
vertex -0.5 0.103956 0.489074
endloop
endfacet
facet normal -1 0 0
outer loop
vertex -0.5 0.103956 0.489074
vertex -0.5 0.371572 -0.334565
vertex -0.5 0.0522642 0.497261
endloop
endfacet
facet normal -1 0 0
outer loop
vertex -0.5 0.0522642 0.497261
vertex -0.5 0.371572 -0.334565
vertex -0.5 -1.02552e-10 0.5
endloop
endfacet
facet normal -1 0 0
outer loop
vertex -0.5 -1.02552e-10 0.5
vertex -0.5 0.371572 -0.334565
vertex -0.5 -0.0522642 0.497261
endloop
endfacet
facet normal -1 0 0
outer loop
vertex -0.5 -0.0522642 0.497261
vertex -0.5 0.371572 -0.334565
vertex -0.5 -0.103956 0.489074
endloop
endfacet
facet normal -1 0 0
outer loop
vertex -0.5 -0.103956 0.489074
vertex -0.5 0.371572 -0.334565
vertex -0.5 -0.154509 0.475528
endloop
endfacet
facet normal -1 0 0
outer loop
vertex -0.5 -0.154509 0.475528
vertex -0.5 0.371572 -0.334565
vertex -0.5 -0.203368 0.456773
endloop
endfacet
facet normal -1 0 0
outer loop
vertex -0.5 -0.203368 0.456773
vertex -0.5 0.371572 -0.334565
vertex -0.5 -0.25 0.433013
endloop
endfacet
facet normal -1 0 0
outer loop
vertex -0.5 -0.25 0.433013
vertex -0.5 0.371572 -0.334565
vertex -0.5 -0.293893 0.404509
endloop
endfacet
facet normal -1 0 0
outer loop
vertex -0.5 -0.293893 0.404509
vertex -0.5 0.371572 -0.334565
vertex -0.5 -0.334565 0.371572
endloop
endfacet
facet normal -1 0 0
outer loop
vertex -0.5 -0.334565 0.371572
vertex -0.5 0.371572 -0.334565
vertex -0.5 -0.371572 0.334565
endloop
endfacet
facet normal -1 0 0
outer loop
vertex -0.5 -0.371572 0.334565
vertex -0.5 0.371572 -0.334565
vertex -0.5 -0.404509 0.293893
endloop
endfacet
facet normal -1 0 0
outer loop
vertex -0.5 -0.404509 0.293893
vertex -0.5 0.371572 -0.334565
vertex -0.5 -0.433013 0.25
endloop
endfacet
facet normal -1 0 0
outer loop
vertex -0.5 -0.433013 0.25
vertex -0.5 0.371572 -0.334565
vertex -0.5 -0.456773 0.203368
endloop
endfacet
facet normal -1 0 0
outer loop
vertex -0.5 -0.456773 0.203368
vertex -0.5 0.371572 -0.334565
vertex -0.5 -0.475528 0.154509
endloop
endfacet
facet normal -1 0 0
outer loop
vertex -0.5 -0.475528 0.154509
vertex -0.5 0.371572 -0.334565
vertex -0.5 -0.489074 0.103956
endloop
endfacet
facet normal -1 0 0
outer loop
vertex -0.5 -0.489074 0.103956
vertex -0.5 0.371572 -0.334565
vertex -0.5 -0.497261 0.0522642
endloop
endfacet
facet normal -1 0 0
outer loop
vertex -0.5 -0.497261 0.0522642
vertex -0.5 0.371572 -0.334565
vertex -0.5 -0.5 -2.05103e-10
endloop
endfacet
facet normal -1 0 0
outer loop
vertex -0.5 -0.5 -2.05103e-10
vertex -0.5 0.371572 -0.334565
vertex -0.5 -0.497261 -0.0522642
endloop
endfacet
facet normal -1 0 0
outer loop
vertex -0.5 -0.497261 -0.0522642
vertex -0.5 0.371572 -0.334565
vertex -0.5 -0.489074 -0.103956
endloop
endfacet
facet normal -1 0 0
outer loop
vertex -0.5 -0.489074 -0.103956
vertex -0.5 0.371572 -0.334565
vertex -0.5 -0.475528 -0.154509
endloop
endfacet
facet normal -1 0 0
outer loop
vertex -0.5 -0.475528 -0.154509
vertex -0.5 0.371572 -0.334565
vertex -0.5 -0.456773 -0.203368
endloop
endfacet
facet normal -1 0 0
outer loop
vertex -0.5 -0.456773 -0.203368
vertex -0.5 0.371572 -0.334565
vertex -0.5 -0.433013 -0.25
endloop
endfacet
facet normal -1 0 0
outer loop
vertex -0.5 -0.433013 -0.25
vertex -0.5 0.371572 -0.334565
vertex -0.5 -0.404509 -0.293893
endloop
endfacet
facet normal -1 0 0
outer loop
vertex -0.5 -0.404509 -0.293893
vertex -0.5 0.371572 -0.334565
vertex -0.5 -0.371572 -0.334565
endloop
endfacet
facet normal -1 -0 0
outer loop
vertex -0.5 -0.371572 -0.334565
vertex -0.5 0.371572 -0.334565
vertex -0.5 -0.334565 -0.371572
endloop
endfacet
facet normal -1 0 0
outer loop
vertex -0.5 -0.334565 -0.371572
vertex -0.5 0.371572 -0.334565
vertex -0.5 -0.293893 -0.404509
endloop
endfacet
facet normal -1 0 0
outer loop
vertex -0.5 -0.293893 -0.404509
vertex -0.5 0.371572 -0.334565
vertex -0.5 -0.25 -0.433013
endloop
endfacet
facet normal -1 0 0
outer loop
vertex -0.5 -0.25 -0.433013
vertex -0.5 0.371572 -0.334565
vertex -0.5 -0.203368 -0.456773
endloop
endfacet
facet normal -1 0 0
outer loop
vertex -0.5 -0.203368 -0.456773
vertex -0.5 0.371572 -0.334565
vertex -0.5 -0.154509 -0.475528
endloop
endfacet
facet normal -1 0 0
outer loop
vertex -0.5 -0.154509 -0.475528
vertex -0.5 0.371572 -0.334565
vertex -0.5 -0.103956 -0.489074
endloop
endfacet
facet normal -1 0 0
outer loop
vertex -0.5 -0.103956 -0.489074
vertex -0.5 0.371572 -0.334565
vertex -0.5 -0.0522642 -0.497261
endloop
endfacet
facet normal -1 0 0
outer loop
vertex -0.5 -0.0522642 -0.497261
vertex -0.5 0.371572 -0.334565
vertex -0.5 3.07655e-10 -0.5
endloop
endfacet
facet normal -1 0 0
outer loop
vertex -0.5 3.07655e-10 -0.5
vertex -0.5 0.371572 -0.334565
vertex -0.5 0.0522642 -0.497261
endloop
endfacet
facet normal -1 0 0
outer loop
vertex -0.5 0.0522642 -0.497261
vertex -0.5 0.371572 -0.334565
vertex -0.5 0.103956 -0.489074
endloop
endfacet
facet normal -1 0 0
outer loop
vertex -0.5 0.103956 -0.489074
vertex -0.5 0.371572 -0.334565
vertex -0.5 0.154509 -0.475528
endloop
endfacet
facet normal -1 -0 0
outer loop
vertex -0.5 0.371572 -0.334565
vertex -0.5 0.334565 -0.371572
vertex -0.5 0.154509 -0.475528
endloop
endfacet
facet normal -1 -0 0
outer loop
vertex -0.5 0.334565 -0.371572
vertex -0.5 0.293893 -0.404509
vertex -0.5 0.154509 -0.475528
endloop
endfacet
facet normal -1 -0 0
outer loop
vertex -0.5 0.293893 -0.404509
vertex -0.5 0.25 -0.433013
vertex -0.5 0.154509 -0.475528
endloop
endfacet
facet normal -1 0 0
outer loop
vertex -0.5 0.203368 -0.456773
vertex -0.5 0.154509 -0.475528
vertex -0.5 0.25 -0.433013
endloop
endfacet
facet normal 0.446723 0.893446 0.0468234
outer loop
vertex 0.5 0 0
vertex -0.5 0.5 0
vertex -0.5 0.497261 0.0522642
endloop
endfacet
facet normal 0.446723 0.883657 0.139958
outer loop
vertex 0.5 0 0
vertex -0.5 0.497261 0.0522642
vertex -0.5 0.489074 0.103956
endloop
endfacet
facet normal 0.446723 0.864187 0.231558
outer loop
vertex 0.5 0 0
vertex -0.5 0.489074 0.103956
vertex -0.5 0.475528 0.154509
endloop
endfacet
facet normal 0.446723 0.835248 0.320622
outer loop
vertex 0.5 0 0
vertex -0.5 0.475528 0.154509
vertex -0.5 0.456773 0.203368
endloop
endfacet
facet normal 0.446723 0.797159 0.406173
outer loop
vertex 0.5 0 0
vertex -0.5 0.456773 0.203368
vertex -0.5 0.433013 0.25
endloop
endfacet
facet normal 0.446723 0.750335 0.487273
outer loop
vertex 0.5 0 0
vertex -0.5 0.433013 0.25
vertex -0.5 0.404509 0.293893
endloop
endfacet
facet normal 0.446723 0.695291 0.563036
outer loop
vertex 0.5 0 0
vertex -0.5 0.404509 0.293893
vertex -0.5 0.371572 0.334565
endloop
endfacet
facet normal 0.446723 0.632629 0.632629
outer loop
vertex 0.5 0 0
vertex -0.5 0.371572 0.334565
vertex -0.5 0.334565 0.371572
endloop
endfacet
facet normal 0.446723 0.563036 0.695291
outer loop
vertex 0.5 0 0
vertex -0.5 0.334565 0.371572
vertex -0.5 0.293893 0.404509
endloop
endfacet
facet normal 0.446723 0.487273 0.750335
outer loop
vertex 0.5 0 0
vertex -0.5 0.293893 0.404509
vertex -0.5 0.25 0.433013
endloop
endfacet
facet normal 0.446723 0.406173 0.797159
outer loop
vertex 0.5 0 0
vertex -0.5 0.25 0.433013
vertex -0.5 0.203368 0.456773
endloop
endfacet
facet normal 0.446723 0.320622 0.835248
outer loop
vertex 0.5 0 0
vertex -0.5 0.203368 0.456773
vertex -0.5 0.154509 0.475528
endloop
endfacet
facet normal 0.446723 0.231558 0.864187
outer loop
vertex 0.5 0 0
vertex -0.5 0.154509 0.475528
vertex -0.5 0.103956 0.489074
endloop
endfacet
facet normal 0.446723 0.139958 0.883657
outer loop
vertex 0.5 0 0
vertex -0.5 0.103956 0.489074
vertex -0.5 0.0522642 0.497261
endloop
endfacet
facet normal 0.446723 0.0468234 0.893446
outer loop
vertex 0.5 0 0
vertex -0.5 0.0522642 0.497261
vertex -0.5 -1.02552e-10 0.5
endloop
endfacet
facet normal 0.446723 -0.0468234 0.893446
outer loop
vertex 0.5 0 0
vertex -0.5 -1.02552e-10 0.5
vertex -0.5 -0.0522642 0.497261
endloop
endfacet
facet normal 0.446723 -0.139958 0.883657
outer loop
vertex 0.5 0 0
vertex -0.5 -0.0522642 0.497261
vertex -0.5 -0.103956 0.489074
endloop
endfacet
facet normal 0.446723 -0.231558 0.864187
outer loop
vertex 0.5 0 0
vertex -0.5 -0.103956 0.489074
vertex -0.5 -0.154509 0.475528
endloop
endfacet
facet normal 0.446723 -0.320622 0.835248
outer loop
vertex 0.5 0 0
vertex -0.5 -0.154509 0.475528
vertex -0.5 -0.203368 0.456773
endloop
endfacet
facet normal 0.446723 -0.406173 0.797159
outer loop
vertex 0.5 0 0
vertex -0.5 -0.203368 0.456773
vertex -0.5 -0.25 0.433013
endloop
endfacet
facet normal 0.446723 -0.487273 0.750335
outer loop
vertex 0.5 0 0
vertex -0.5 -0.25 0.433013
vertex -0.5 -0.293893 0.404509
endloop
endfacet
facet normal 0.446723 -0.563036 0.695291
outer loop
vertex 0.5 0 0
vertex -0.5 -0.293893 0.404509
vertex -0.5 -0.334565 0.371572
endloop
endfacet
facet normal 0.446723 -0.632629 0.632629
outer loop
vertex 0.5 0 0
vertex -0.5 -0.334565 0.371572
vertex -0.5 -0.371572 0.334565
endloop
endfacet
facet normal 0.446723 -0.695291 0.563036
outer loop
vertex 0.5 0 0
vertex -0.5 -0.371572 0.334565
vertex -0.5 -0.404509 0.293893
endloop
endfacet
facet normal 0.446723 -0.750335 0.487273
outer loop
vertex 0.5 0 0
vertex -0.5 -0.404509 0.293893
vertex -0.5 -0.433013 0.25
endloop
endfacet
facet normal 0.446723 -0.797159 0.406173
outer loop
vertex 0.5 0 0
vertex -0.5 -0.433013 0.25
vertex -0.5 -0.456773 0.203368
endloop
endfacet
facet normal 0.446723 -0.835248 0.320622
outer loop
vertex 0.5 0 0
vertex -0.5 -0.456773 0.203368
vertex -0.5 -0.475528 0.154509
endloop
endfacet
facet normal 0.446723 -0.864187 0.231558
outer loop
vertex 0.5 0 0
vertex -0.5 -0.475528 0.154509
vertex -0.5 -0.489074 0.103956
endloop
endfacet
facet normal 0.446723 -0.883657 0.139958
outer loop
vertex 0.5 0 0
vertex -0.5 -0.489074 0.103956
vertex -0.5 -0.497261 0.0522642
endloop
endfacet
facet normal 0.446723 -0.893446 0.0468234
outer loop
vertex 0.5 0 0
vertex -0.5 -0.497261 0.0522642
vertex -0.5 -0.5 -2.05103e-10
endloop
endfacet
facet normal 0.446723 -0.893446 -0.0468234
outer loop
vertex 0.5 0 0
vertex -0.5 -0.5 -2.05103e-10
vertex -0.5 -0.497261 -0.0522642
endloop
endfacet
facet normal 0.446723 -0.883657 -0.139958
outer loop
vertex 0.5 0 0
vertex -0.5 -0.497261 -0.0522642
vertex -0.5 -0.489074 -0.103956
endloop
endfacet
facet normal 0.446723 -0.864187 -0.231558
outer loop
vertex 0.5 0 0
vertex -0.5 -0.489074 -0.103956
vertex -0.5 -0.475528 -0.154509
endloop
endfacet
facet normal 0.446723 -0.835248 -0.320622
outer loop
vertex 0.5 0 0
vertex -0.5 -0.475528 -0.154509
vertex -0.5 -0.456773 -0.203368
endloop
endfacet
facet normal 0.446723 -0.797159 -0.406173
outer loop
vertex 0.5 0 0
vertex -0.5 -0.456773 -0.203368
vertex -0.5 -0.433013 -0.25
endloop
endfacet
facet normal 0.446723 -0.750335 -0.487273
outer loop
vertex 0.5 0 0
vertex -0.5 -0.433013 -0.25
vertex -0.5 -0.404509 -0.293893
endloop
endfacet
facet normal 0.446723 -0.695291 -0.563036
outer loop
vertex 0.5 0 0
vertex -0.5 -0.404509 -0.293893
vertex -0.5 -0.371572 -0.334565
endloop
endfacet
facet normal 0.446723 -0.632629 -0.632629
outer loop
vertex 0.5 0 0
vertex -0.5 -0.371572 -0.334565
vertex -0.5 -0.334565 -0.371572
endloop
endfacet
facet normal 0.446723 -0.563036 -0.695291
outer loop
vertex 0.5 0 0
vertex -0.5 -0.334565 -0.371572
vertex -0.5 -0.293893 -0.404509
endloop
endfacet
facet normal 0.446723 -0.487273 -0.750335
outer loop
vertex 0.5 0 0
vertex -0.5 -0.293893 -0.404509
vertex -0.5 -0.25 -0.433013
endloop
endfacet
facet normal 0.446723 -0.406173 -0.797159
outer loop
vertex 0.5 0 0
vertex -0.5 -0.25 -0.433013
vertex -0.5 -0.203368 -0.456773
endloop
endfacet
facet normal 0.446723 -0.320622 -0.835248
outer loop
vertex 0.5 0 0
vertex -0.5 -0.203368 -0.456773
vertex -0.5 -0.154509 -0.475528
endloop
endfacet
facet normal 0.446723 -0.231558 -0.864187
outer loop
vertex 0.5 0 0
vertex -0.5 -0.154509 -0.475528
vertex -0.5 -0.103956 -0.489074
endloop
endfacet
facet normal 0.446723 -0.139958 -0.883657
outer loop
vertex 0.5 0 0
vertex -0.5 -0.103956 -0.489074
vertex -0.5 -0.0522642 -0.497261
endloop
endfacet
facet normal 0.446723 -0.0468234 -0.893446
outer loop
vertex 0.5 0 0
vertex -0.5 -0.0522642 -0.497261
vertex -0.5 3.07655e-10 -0.5
endloop
endfacet
facet normal 0.446723 0.0468234 -0.893446
outer loop
vertex 0.5 0 0
vertex -0.5 3.07655e-10 -0.5
vertex -0.5 0.0522642 -0.497261
endloop
endfacet
facet normal 0.446723 0.139958 -0.883657
outer loop
vertex 0.5 0 0
vertex -0.5 0.0522642 -0.497261
vertex -0.5 0.103956 -0.489074
endloop
endfacet
facet normal 0.446723 0.231558 -0.864187
outer loop
vertex 0.5 0 0
vertex -0.5 0.103956 -0.489074
vertex -0.5 0.154509 -0.475528
endloop
endfacet
facet normal 0.446723 0.320622 -0.835248
outer loop
vertex 0.5 0 0
vertex -0.5 0.154509 -0.475528
vertex -0.5 0.203368 -0.456773
endloop
endfacet
facet normal 0.446723 0.406173 -0.797159
outer loop
vertex 0.5 0 0
vertex -0.5 0.203368 -0.456773
vertex -0.5 0.25 -0.433013
endloop
endfacet
facet normal 0.446723 0.487273 -0.750335
outer loop
vertex 0.5 0 0
vertex -0.5 0.25 -0.433013
vertex -0.5 0.293893 -0.404509
endloop
endfacet
facet normal 0.446723 0.563036 -0.695291
outer loop
vertex 0.5 0 0
vertex -0.5 0.293893 -0.404509
vertex -0.5 0.334565 -0.371572
endloop
endfacet
facet normal 0.446723 0.632629 -0.632629
outer loop
vertex 0.5 0 0
vertex -0.5 0.334565 -0.371572
vertex -0.5 0.371572 -0.334565
endloop
endfacet
facet normal 0.446723 0.695291 -0.563036
outer loop
vertex 0.5 0 0
vertex -0.5 0.371572 -0.334565
vertex -0.5 0.404509 -0.293893
endloop
endfacet
facet normal 0.446723 0.750335 -0.487273
outer loop
vertex 0.5 0 0
vertex -0.5 0.404509 -0.293893
vertex -0.5 0.433013 -0.25
endloop
endfacet
facet normal 0.446723 0.797159 -0.406173
outer loop
vertex 0.5 0 0
vertex -0.5 0.433013 -0.25
vertex -0.5 0.456773 -0.203368
endloop
endfacet
facet normal 0.446723 0.835248 -0.320622
outer loop
vertex 0.5 0 0
vertex -0.5 0.456773 -0.203368
vertex -0.5 0.475528 -0.154509
endloop
endfacet
facet normal 0.446723 0.864187 -0.231558
outer loop
vertex 0.5 0 0
vertex -0.5 0.475528 -0.154509
vertex -0.5 0.489074 -0.103956
endloop
endfacet
facet normal 0.446723 0.883657 -0.139958
outer loop
vertex 0.5 0 0
vertex -0.5 0.489074 -0.103956
vertex -0.5 0.497261 -0.0522642
endloop
endfacet
facet normal 0.446723 0.893446 -0.0468234
outer loop
vertex 0.5 0 0
vertex -0.5 0.497261 -0.0522642
vertex -0.5 0.5 0
endloop
endfacet
endsolid

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,85 @@
/*--------------------------------*- 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 collapseDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
controlMeshQuality on;
collapseEdgesCoeffs
{
// Edges shorter than this absolute value will be merged
minimumEdgeLength 1e-6;
// The maximum angle between two edges that share a point attached to
// no other edges
maximumMergeAngle 180;
}
collapseFacesCoeffs
{
// The initial face length factor
initialFaceLengthFactor 0.5;
// 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
// to a point.
maxCollapseFaceToPointSideLengthCoeff 0.3;
// Allow early collapse of edges to a point
allowEarlyCollapseToPoint on;
// Fraction to premultiply maxCollapseFaceToPointSideLengthCoeff by if
// allowEarlyCollapseToPoint is enabled
allowEarlyCollapseCoeff 0.2;
// Defining how close to the midpoint (M) of the projected
// vertices line a projected vertex (X) can be before making this
// an invalid edge collapse
//
// X---X-g----------------M----X-----------g----X--X
//
// Only allow a collapse if all projected vertices are outwith
// guardFraction (g) of the distance form the face centre to the
// furthest vertex in the considered direction
guardFraction 0.1;
}
controlMeshQualityCoeffs
{
// Name of the dictionary that has the mesh quality coefficients used
// by motionSmoother::checkMesh
#include "meshQualityDict";
// The amount that minimumEdgeLength will be reduced by for each
// edge if that edge's collapse generates a poor quality face
edgeReductionFactor 0.5;
// The amount that initialFaceLengthFactor will be reduced by for each
// face if its collapse generates a poor quality face
faceReductionFactor 0.5;
// Maximum number of smoothing iterations for the reductionFactors
maximumSmoothingIterations 2;
// Maximum number of outer iterations is mesh quality checking is enabled
maximumIterations 10;
// Maximum number of iterations deletion of a point can cause a bad face
// to be constructed before it is forced to not be deleted
maxPointErrorCount 3;
}
// ************************************************************************* //

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;
location "system";
class dictionary;
object controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
startFrom startTime;
startTime 0;
stopAt endTime;
endTime 80;
deltaT 1;
writeControl timeStep;
writeInterval 80; // 10 to see the meshing steps
purgeWrite 0;
writeFormat ascii;
writePrecision 10;
writeCompression uncompressed;
timeFormat general;
timePrecision 6;
runTimeModifiable yes;
// ************************************************************************* //

View File

@ -0,0 +1,159 @@
/*--------------------------------*- 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 foamyHexMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// Include defaults parameters from master dictionary
#include "$WM_PROJECT_DIR/etc/caseDicts/foamyHexMeshDict"
geometry
{
// Internal shape
coneAndSphere_clean_orient.obj
{
name coneAndSphere;
type triSurfaceMesh;
}
// Outside of domain
domain
{
type searchableBox;
min (-0.7 -0.9 -1);
max (1.3 1.1 1);
}
}
surfaceConformation
{
locationInMesh (0 -0.5 0);
featurePointControls
{
specialiseFeaturePoints on;
edgeAiming on;
guardFeaturePoints off;
snapFeaturePoints on;
circulateEdges off;
}
// Geometry to mesh to
geometryToConformTo
{
coneAndSphere
{
featureMethod extractFeatures;
includedAngle 140;
}
domain
{
featureMethod extractFeatures;
includedAngle 100;
mode outside;
}
}
}
initialPoints
{
initialPointsMethod autoDensity;
autoDensityCoeffs
{
minCellSizeLimit 0.1;
minLevels 4;
maxSizeRatio 5.0;
sampleResolution 3;
surfaceSampleResolution 3;
}
}
motionControl
{
defaultCellSize 0.1;
minimumCellSizeCoeff 0;
// For background cell size and alignment grid
maxSmoothingIterations 100;
maxRefinementIterations 0;
shapeControlFunctions
{
coneAndSphere
{
type searchableSurfaceControl;
priority 1;
mode bothSides;
surfaceCellSizeFunction uniformValue;
uniformValueCoeffs
{
surfaceCellSizeCoeff 0.75;
}
cellSizeFunction uniform;
uniformCoeffs
{}
}
domain
{
type searchableSurfaceControl;
priority 1;
mode bothSides;
surfaceCellSizeFunction uniformValue;
uniformValueCoeffs
{
surfaceCellSizeCoeff 1;
}
cellSizeFunction uniform;
uniformCoeffs
{}
}
}
// Output lots and lots of .obj files
objOutput no;
// Timing and memory usage.
timeChecks no;
}
// After simulation, when converting to polyMesh, filter out small faces/edges.
// Do not change. See cvControls.H
polyMeshFiltering
{
filterEdges on;
filterFaces on;
writeTetDualMesh false;
}
meshQualityControls
{
#include "meshQualityDict"
}
// ************************************************************************* //

View File

@ -0,0 +1,55 @@
/*--------------------------------*- 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 fvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
d2dt2Schemes
{
default steadyState;
}
gradSchemes
{
default Gauss cubic;
}
divSchemes
{
default Gauss cubic;
}
laplacianSchemes
{
default Gauss linear uncorrected;
}
interpolationSchemes
{
default cubic;
}
snGradSchemes
{
default uncorrected;
}
fluxRequired
{
default no;
D ;
}
// ************************************************************************* //

View File

@ -0,0 +1,41 @@
/*--------------------------------*- 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 fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solvers
{
"(D|Dcorr)"
{
solver GAMG;
tolerance 1e-06;
relTol 0.99;
smoother GaussSeidel;
cacheAgglomeration true;
nCellsInCoarsestLevel 6;
agglomerator faceAreaPair;
mergeLevels 1;
}
}
stressAnalysis
{
nCorrectors 1;
D 1e-10;
accelerationFactor 2;
}
// ************************************************************************* //

View File

@ -0,0 +1,65 @@
/*--------------------------------*- 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 meshQualityDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
//- Maximum non-orthogonality allowed. Set to 180 to disable.
maxNonOrtho 65;
//- Max skewness allowed. Set to <0 to disable.
maxBoundarySkewness 50;
maxInternalSkewness 10;
//- Max concaveness allowed. Is angle (in degrees) below which concavity
// is allowed. 0 is straight face, <0 would be convex face.
// Set to 180 to disable.
maxConcave 80;
//- Minimum quality of the tet formed by the face-centre
// and variable base point minimum decomposition triangles and
// the cell centre. This has to be a positive number for tracking
// to work. Set to very negative number (e.g. -1E30) to
// disable.
// <0 = inside out tet,
// 0 = flat tet
// 1 = regular tet
minTetQuality 1e-30;
//- Minimum pyramid volume. Is absolute volume of cell pyramid.
// Set to a sensible fraction of the smallest cell volume expected.
// Set to very negative number (e.g. -1E30) to disable.
minVol 0;
//- Minimum face area. Set to <0 to disable.
minArea -1;
//- Minimum face twist. Set to <-1 to disable. dot product of face normal
//- and face centre triangles normal
minTwist 0.001;
//- minimum normalised cell determinant
//- 1 = hex, <= 0 = folded or flattened illegal cell
minDeterminant 0.001;
//- minFaceWeight (0 -> 0.5)
minFaceWeight 0.02;
//- minVolRatio (0 -> 1)
minVolRatio 0.01;
//must be >0 for Fluent compatibility
minTriangleTwist -1;
// ************************************************************************* //

View File

@ -0,0 +1,148 @@
/*--------------------------------*- 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 topoSetDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
actions
(
{
name z;
type cellSet;
action new;
source boxToCell;
sourceInfo
{
box (-100 -100 0)(100 100 100);
}
}
{
name zf;
type faceSet;
action new;
source cellToFace;
sourceInfo
{
set z;
option all;
}
}
{
name z;
type cellSet;
action invert;
}
{
name zf;
type faceSet;
action subset;
source cellToFace;
sourceInfo
{
set z;
option all;
}
}
// ~~~~~~~~~~~~~~~~ //
{
name y;
type cellSet;
action new;
source boxToCell;
sourceInfo
{
box (-100 0.1 -100)(100 100 100);
}
}
{
name yf;
type faceSet;
action new;
source cellToFace;
sourceInfo
{
set y;
option all;
}
}
{
name y;
type cellSet;
action invert;
}
{
name yf;
type faceSet;
action subset;
source cellToFace;
sourceInfo
{
set y;
option all;
}
}
// ~~~~~~~~~~~~~~~~ //
{
name x;
type cellSet;
action new;
source boxToCell;
sourceInfo
{
box (0.3 -100 -100)(100 100 100);
}
}
{
name xf;
type faceSet;
action new;
source cellToFace;
sourceInfo
{
set x;
option all;
}
}
{
name x;
type cellSet;
action invert;
}
{
name xf;
type faceSet;
action subset;
source cellToFace;
sourceInfo
{
set x;
option all;
}
}
);
// ************************************************************************* //