Snappy hex mesh proximity check

This commit is contained in:
Mattijs Janssens
2019-03-25 16:49:50 +00:00
committed by Andrew Heather
parent a1999bc92c
commit 6c3f2f4df1
30 changed files with 4974 additions and 135 deletions

View File

@ -14,6 +14,7 @@ meshRefinement/meshRefinementMerge.C
meshRefinement/meshRefinementProblemCells.C meshRefinement/meshRefinementProblemCells.C
meshRefinement/meshRefinementRefine.C meshRefinement/meshRefinementRefine.C
meshRefinement/meshRefinementGapRefine.C meshRefinement/meshRefinementGapRefine.C
meshRefinement/meshRefinementBlock.C
meshRefinement/patchFaceOrientation.C meshRefinement/patchFaceOrientation.C
refinementFeatures/refinementFeatures.C refinementFeatures/refinementFeatures.C

View File

@ -1,5 +1,4 @@
EXE_INC = \ EXE_INC = \
/* -g -DFULLDEBUG -O0 */ \
-I$(LIB_SRC)/parallel/decompose/decompositionMethods/lnInclude \ -I$(LIB_SRC)/parallel/decompose/decompositionMethods/lnInclude \
-I$(LIB_SRC)/dynamicMesh/lnInclude \ -I$(LIB_SRC)/dynamicMesh/lnInclude \
-I$(LIB_SRC)/finiteVolume/lnInclude \ -I$(LIB_SRC)/finiteVolume/lnInclude \

View File

@ -58,6 +58,8 @@ License
#include "fvMeshTools.H" #include "fvMeshTools.H"
#include "motionSmoother.H" #include "motionSmoother.H"
#include "faceSet.H" #include "faceSet.H"
#include "topoDistanceData.H"
#include "FaceCellWave.H"
// Leak path // Leak path
#include "shortestPathSet.H" #include "shortestPathSet.H"
@ -358,6 +360,218 @@ void Foam::meshRefinement::updateIntersections(const labelList& changedFaces)
} }
Foam::labelList Foam::meshRefinement::nearestPatch
(
const labelList& adaptPatchIDs
) const
{
// Determine nearest patch for all mesh faces. Used when removing cells
// to give some reasonable patch to exposed faces.
const polyBoundaryMesh& patches = mesh_.boundaryMesh();
labelList nearestAdaptPatch;
if (adaptPatchIDs.size())
{
nearestAdaptPatch.setSize(mesh_.nFaces(), adaptPatchIDs[0]);
// Count number of faces in adaptPatchIDs
label nFaces = 0;
forAll(adaptPatchIDs, i)
{
const polyPatch& pp = patches[adaptPatchIDs[i]];
nFaces += pp.size();
}
// Field on cells and faces.
List<topoDistanceData> cellData(mesh_.nCells());
List<topoDistanceData> faceData(mesh_.nFaces());
// Start of changes
labelList patchFaces(nFaces);
List<topoDistanceData> patchData(nFaces);
nFaces = 0;
forAll(adaptPatchIDs, i)
{
label patchi = adaptPatchIDs[i];
const polyPatch& pp = patches[patchi];
forAll(pp, i)
{
patchFaces[nFaces] = pp.start()+i;
patchData[nFaces] = topoDistanceData(patchi, 0);
nFaces++;
}
}
// Propagate information inwards
FaceCellWave<topoDistanceData> deltaCalc
(
mesh_,
patchFaces,
patchData,
faceData,
cellData,
mesh_.globalData().nTotalCells()+1
);
// And extract
bool haveWarned = false;
forAll(faceData, facei)
{
if (!faceData[facei].valid(deltaCalc.data()))
{
if (!haveWarned)
{
WarningInFunction
<< "Did not visit some faces, e.g. face " << facei
<< " at " << mesh_.faceCentres()[facei] << endl
<< "Assigning these faces to patch "
<< adaptPatchIDs[0]
<< endl;
haveWarned = true;
}
}
else
{
nearestAdaptPatch[facei] = faceData[facei].data();
}
}
}
else
{
// Use patch 0
nearestAdaptPatch.setSize(mesh_.nFaces(), 0);
}
return nearestAdaptPatch;
}
Foam::labelList Foam::meshRefinement::nearestIntersection
(
const labelList& surfacesToTest,
const label defaultRegion
) const
{
// Determine nearest intersection for all mesh faces. Used when removing
// cells to give some reasonable patch to exposed faces. Use this
// function instead of nearestPatch if you don't have patches yet.
// Swap neighbouring cell centres and cell level
labelList neiLevel(mesh_.nFaces()-mesh_.nInternalFaces());
pointField neiCc(mesh_.nFaces()-mesh_.nInternalFaces());
calcNeighbourData(neiLevel, neiCc);
// Collect segments
// ~~~~~~~~~~~~~~~~
const labelList testFaces(intersectedFaces());
pointField start(testFaces.size());
pointField end(testFaces.size());
labelList minLevel(testFaces.size());
calcCellCellRays
(
neiCc,
neiLevel,
testFaces,
start,
end,
minLevel
);
// Do tests in one go
labelList surface1;
List<pointIndexHit> hit1;
labelList region1;
labelList surface2;
List<pointIndexHit> hit2;
labelList region2;
surfaces_.findNearestIntersection
(
surfacesToTest,
start,
end,
surface1,
hit1,
region1,
surface2,
hit2,
region2
);
labelList nearestRegion(mesh_.nFaces(), defaultRegion);
// Field on cells and faces.
List<topoDistanceData> cellData(mesh_.nCells());
List<topoDistanceData> faceData(mesh_.nFaces());
// Start walking from all intersected faces
DynamicList<label> patchFaces(start.size());
DynamicList<topoDistanceData> patchData(start.size());
forAll(start, i)
{
label facei = testFaces[i];
if (surface1[i] != -1)
{
patchFaces.append(facei);
label regioni = surfaces_.globalRegion(surface1[i], region1[i]);
patchData.append(topoDistanceData(regioni, 0));
}
else if (surface2[i] != -1)
{
patchFaces.append(facei);
label regioni = surfaces_.globalRegion(surface2[i], region2[i]);
patchData.append(topoDistanceData(regioni, 0));
}
}
// Propagate information inwards
FaceCellWave<topoDistanceData> deltaCalc
(
mesh_,
patchFaces,
patchData,
faceData,
cellData,
mesh_.globalData().nTotalCells()+1
);
// And extract
bool haveWarned = false;
forAll(faceData, facei)
{
if (!faceData[facei].valid(deltaCalc.data()))
{
if (!haveWarned)
{
WarningInFunction
<< "Did not visit some faces, e.g. face " << facei
<< " at " << mesh_.faceCentres()[facei] << endl
<< "Assigning these faces to global region "
<< defaultRegion << endl;
haveWarned = true;
}
}
else
{
nearestRegion[facei] = faceData[facei].data();
}
}
return nearestRegion;
}
void Foam::meshRefinement::testSyncPointList void Foam::meshRefinement::testSyncPointList
( (
const string& msg, const string& msg,
@ -3147,7 +3361,7 @@ void Foam::meshRefinement::write
dumpRefinementLevel(); dumpRefinementLevel();
} }
if (debugFlags & OBJINTERSECTIONS && prefix.size()) if ((debugFlags & OBJINTERSECTIONS) && prefix.size())
{ {
dumpIntersections(prefix); dumpIntersections(prefix);
} }

View File

@ -2,7 +2,7 @@
========= | ========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2015-2017 OpenCFD Ltd. \\ / A nd | Copyright (C) 2015-2019 OpenCFD Ltd.
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
| Copyright (C) 2011-2017 OpenFOAM Foundation | Copyright (C) 2011-2017 OpenFOAM Foundation
@ -329,6 +329,43 @@ private:
label& nRefine label& nRefine
) const; ) const;
//- Collect cells intersected by the surface that are candidates
// for gap checking. Used inside markSurfaceGapRefinement
void collectGapCandidates
(
const shellSurfaces& shells,
const labelList& testFaces,
const labelList& neiLevel,
const pointField& neiCc,
labelList& cellToCompact,
labelList& bFaceToCompact,
List<FixedList<label, 3>>& shellGapInfo,
List<volumeType>& shellGapMode
) const;
void collectGapCells
(
const scalar planarCos,
const List<FixedList<label, 3>>& extendedGapLevel,
const List<volumeType>& extendedGapMode,
const labelList& testFaces,
const pointField& start,
const pointField& end,
const labelList& cellToCompact,
const labelList& bFaceToCompact,
const List<FixedList<label, 3>>& shellGapInfo,
const List<volumeType>& shellGapMode,
const label nAllowRefine,
const labelList& neiLevel,
const pointField& neiCc,
labelList& refineCell,
label& nRefine
) const;
//- Mark cells intersected by the surface if they are inside //- Mark cells intersected by the surface if they are inside
// close gaps // close gaps
label markSurfaceGapRefinement label markSurfaceGapRefinement
@ -472,6 +509,11 @@ private:
label markProximityRefinement label markProximityRefinement
( (
const scalar curvature, const scalar curvature,
// Per region the min and max cell level
const labelList& surfaceMinLevel,
const labelList& surfaceMaxLevel,
const label nAllowRefine, const label nAllowRefine,
const labelList& neiLevel, const labelList& neiLevel,
const pointField& neiCc, const pointField& neiCc,
@ -608,6 +650,15 @@ private:
// adaptPatchIDs[0] // adaptPatchIDs[0]
labelList nearestPatch(const labelList& adaptPatchIDs) const; labelList nearestPatch(const labelList& adaptPatchIDs) const;
//- Returns list with for every face the label of the nearest
// (global) region. Any unreached face (disconnected mesh?) becomes
// defaultRegion
labelList nearestIntersection
(
const labelList& surfacesToTest,
const label defaultRegion
) const;
//- Returns list with for every internal face -1 or the patch //- Returns list with for every internal face -1 or the patch
// they should be baffled into. // they should be baffled into.
labelList markFacesOnProblemCellsGeometric labelList markFacesOnProblemCellsGeometric
@ -1005,11 +1056,13 @@ public:
//- Is local topology a small gap normal to the test vector //- Is local topology a small gap normal to the test vector
bool isNormalGap bool isNormalGap
( (
const scalar, const scalar planarCos,
const vector&, const label level0,
const vector&, const vector& point0,
const vector&, const vector& normal0,
const vector& const label level1,
const vector& point1,
const vector& normal1
) const; ) const;
//- Calculate list of cells to refine. //- Calculate list of cells to refine.
@ -1032,6 +1085,44 @@ public:
const label maxLocalCells const label maxLocalCells
) const; ) const;
// Blocking cells
//- Mark faces on interface between set and rest
// (and same cell level)
void markOutsideFaces
(
const labelList& cellLevel,
const labelList& neiLevel,
const labelList& refineCell,
bitSet& isOutsideFace
) const;
//- Count number of faces on cell that are in set
label countFaceDirs
(
const bitSet& isOutsideFace,
const label celli
) const;
//- Add one layer of cells to set
void growSet
(
const labelList& neiLevel,
const bitSet& isOutsideFace,
labelList& refineCell,
label& nRefine
) const;
//- Detect gapRefinement cells and remove them
autoPtr<mapPolyMesh> removeGapCells
(
const scalar planarAngle,
const labelList& minSurfaceLevel,
const labelList& globalToMasterPatch,
const label growIter
);
//- Refine some cells //- Refine some cells
autoPtr<mapPolyMesh> refine(const labelList& cellsToRefine); autoPtr<mapPolyMesh> refine(const labelList& cellsToRefine);
@ -1561,6 +1652,9 @@ public:
); );
}; };
template<>
inline bool contiguous<FixedList<label, 3>>() {return true;}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -0,0 +1,437 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2018-2019 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
\*---------------------------------------------------------------------------*/
#include "meshRefinement.H"
#include "fvMesh.H"
#include "Time.H"
#include "refinementSurfaces.H"
#include "removeCells.H"
#include "unitConversion.H"
#include "bitSet.H"
// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * //
//Foam::label Foam::meshRefinement::markFakeGapRefinement
//(
// const scalar planarCos,
//
// const label nAllowRefine,
// const labelList& neiLevel,
// const pointField& neiCc,
//
// labelList& refineCell,
// label& nRefine
//) const
//{
// label oldNRefine = nRefine;
//
//
// // Collect candidate faces (i.e. intersecting any surface and
// // owner/neighbour not yet refined.
// const labelList testFaces(getRefineCandidateFaces(refineCell));
//
// // Collect segments
// pointField start(testFaces.size());
// pointField end(testFaces.size());
// labelList minLevel(testFaces.size());
//
// calcCellCellRays
// (
// neiCc,
// neiLevel,
// testFaces,
// start,
// end,
// minLevel
// );
//
//
// // Re-use the gap shooting methods. This needs:
// // - shell gapLevel : faked. Set to 0,labelMax
// // - surface gapLevel : faked by overwriting
//
//
// List<FixedList<label, 3>>& surfGapLevel = const_cast
// <
// List<FixedList<label, 3>>&
// >(surfaces_.extendedGapLevel());
//
// List<volumeType>& surfGapMode = const_cast
// <
// List<volumeType>&
// >(surfaces_.extendedGapMode());
//
// const List<FixedList<label, 3>> surfOldLevel(surfGapLevel);
// const List<volumeType> surfOldMode(surfGapMode);
//
// // Set the extended gap levels
// forAll(surfaces_.gapLevel(), regioni)
// {
// surfGapLevel[regioni] = FixedList<label, 3>
// ({
// 3,
// -1,
// surfaces_.gapLevel()[regioni]+1
// });
// }
// surfGapMode = volumeType::MIXED;
//
//Pout<< "gapLevel was:" << surfOldLevel << endl;
//Pout<< "gapLevel now:" << surfGapLevel << endl;
//Pout<< "gapMode was:" << surfOldMode << endl;
//Pout<< "gapMode now:" << surfGapMode << endl;
//Pout<< "nRefine was:" << oldNRefine << endl;
//
//
//
// List<List<FixedList<label, 3>>>& shellGapLevel = const_cast
// <
// List<List<FixedList<label, 3>>>&
// >(shells_.extendedGapLevel());
//
// List<List<volumeType>>& shellGapMode = const_cast
// <
// List<List<volumeType>>&
// >(shells_.extendedGapMode());
//
// const List<List<FixedList<label, 3>>> shellOldLevel(shellGapLevel);
// const List<List<volumeType>> shellOldMode(shellGapMode);
//
// // Set the extended gap levels
// forAll(shellGapLevel, shelli)
// {
// shellGapLevel[shelli] = FixedList<label, 3>({3, -1, labelMax});
// shellGapMode[shelli] = volumeType::MIXED;
// }
//Pout<< "shellLevel was:" << shellOldLevel << endl;
//Pout<< "shellLevel now:" << shellGapLevel << endl;
//
// const label nAdditionalRefined = markSurfaceGapRefinement
// (
// planarCos,
//
// nAllowRefine,
// neiLevel,
// neiCc,
//
// refineCell,
// nRefine
// );
//
//Pout<< "nRefine now:" << nRefine << endl;
//
// // Restore
// surfGapLevel = surfOldLevel;
// surfGapMode = surfOldMode;
// shellGapLevel = shellOldLevel;
// shellGapMode = shellOldMode;
//
// return nAdditionalRefined;
//}
void Foam::meshRefinement::markOutsideFaces
(
const labelList& cellLevel,
const labelList& neiLevel,
const labelList& refineCell,
bitSet& isOutsideFace
) const
{
// Get faces:
// - on outside of cell set
// - inbetween same cell level (i.e. quads)
isOutsideFace.setSize(mesh_.nFaces());
isOutsideFace = Zero;
forAll(mesh_.faceNeighbour(), facei)
{
label own = mesh_.faceOwner()[facei];
label nei = mesh_.faceNeighbour()[facei];
if
(
(cellLevel[own] == cellLevel[nei])
&& (
(refineCell[own] != -1)
!= (refineCell[nei] != -1)
)
)
{
isOutsideFace.set(facei);
}
}
{
const label nBnd = mesh_.nFaces()-mesh_.nInternalFaces();
labelList neiRefineCell(nBnd);
syncTools::swapBoundaryCellList(mesh_, refineCell, neiRefineCell);
for (label bFacei = 0; bFacei < nBnd; ++bFacei)
{
label facei = mesh_.nInternalFaces()+bFacei;
label own = mesh_.faceOwner()[facei];
if
(
(cellLevel[own] == neiLevel[bFacei])
&& (
(refineCell[own] != -1)
!= (neiRefineCell[bFacei] != -1)
)
)
{
isOutsideFace.set(facei);
}
}
}
}
Foam::label Foam::meshRefinement::countFaceDirs
(
const bitSet& isOutsideFace,
const label celli
) const
{
const cell& cFaces = mesh_.cells()[celli];
const vectorField& faceAreas = mesh_.faceAreas();
Vector<bool> haveDirs(vector::uniform(false));
forAll(cFaces, cFacei)
{
const label facei = cFaces[cFacei];
if (isOutsideFace[facei])
{
const vector& n = faceAreas[facei];
scalar magSqrN = magSqr(n);
if (magSqrN > ROOTVSMALL)
{
for
(
direction dir = 0;
dir < pTraits<vector>::nComponents;
dir++
)
{
if (Foam::sqr(n[dir]) > 0.99*magSqrN)
{
haveDirs[dir] = true;
break;
}
}
}
}
}
label nDirs = 0;
forAll(haveDirs, dir)
{
if (haveDirs[dir])
{
nDirs++;
}
}
return nDirs;
}
void Foam::meshRefinement::growSet
(
const labelList& neiLevel,
const bitSet& isOutsideFace,
labelList& refineCell,
label& nRefine
) const
{
// Get cells with three or more outside faces
const cellList& cells = mesh_.cells();
forAll(cells, celli)
{
if (refineCell[celli] == -1)
{
if (countFaceDirs(isOutsideFace, celli) == 3)
{
// Mark cell with any value
refineCell[celli] = 0;
nRefine++;
}
}
}
}
Foam::autoPtr<Foam::mapPolyMesh> Foam::meshRefinement::removeGapCells
(
const scalar planarAngle,
const labelList& minSurfaceLevel,
const labelList& globalToMasterPatch,
const label growIter
)
{
// Swap neighbouring cell centres and cell level
labelList neiLevel(mesh_.nFaces()-mesh_.nInternalFaces());
pointField neiCc(mesh_.nFaces()-mesh_.nInternalFaces());
calcNeighbourData(neiLevel, neiCc);
labelList refineCell(mesh_.nCells(), -1);
label nRefine = 0;
markProximityRefinement
(
Foam::cos(degToRad(planarAngle)),
minSurfaceLevel, // surface min level
labelList(minSurfaceLevel.size(), labelMax), // surfaceGapLevel
labelMax/Pstream::nProcs(), //nAllowRefine,
neiLevel,
neiCc,
refineCell,
nRefine
);
//// Mark big-gap refinement
//markFakeGapRefinement
//(
// Foam::cos(degToRad(planarAngle)),
//
// labelMax/Pstream::nProcs(), //nAllowRefine,
// neiLevel,
// neiCc,
//
// refineCell,
// nRefine
//);
Info<< "Marked for blocking due to close opposite surfaces : "
<< returnReduce(nRefine, sumOp<label>()) << " cells." << endl;
// Remove outliers, i.e. cells with all points exposed
if (growIter)
{
labelList oldRefineCell(refineCell);
// Pass1: extend the set to fill in gaps
bitSet isOutsideFace;
for (label iter = 0; iter < growIter; iter++)
{
// Get outside faces
markOutsideFaces
(
meshCutter_.cellLevel(),
neiLevel,
refineCell,
isOutsideFace
);
// Extend with cells with three outside faces
growSet(neiLevel, isOutsideFace, refineCell, nRefine);
}
// Pass2: erode back to original set if pass1 didn't help
for (label iter = 0; iter < growIter; iter++)
{
// Get outside faces. Ignore cell level.
markOutsideFaces
(
labelList(mesh_.nCells(), 0),
labelList(neiLevel.size(), 0),
refineCell,
isOutsideFace
);
// Unmark cells with three or more outside faces
for (label celli = 0; celli < mesh_.nCells(); celli++)
{
if (refineCell[celli] != -1 && oldRefineCell[celli] == -1)
{
if (countFaceDirs(isOutsideFace, celli) >= 3)
{
refineCell[celli] = -1;
--nRefine;
}
}
}
}
Info<< "Marked for blocking after filtering : "
<< returnReduce(nRefine, sumOp<label>()) << " cells." << endl;
}
// Determine patch for every mesh face
const PtrList<surfaceZonesInfo>& surfZones = surfaces_.surfZones();
labelList unnamedSurfaces(surfaceZonesInfo::getUnnamedSurfaces(surfZones));
const label defaultRegion(surfaces_.globalRegion(unnamedSurfaces[0], 0));
const labelList nearestRegion
(
nearestIntersection
(
unnamedSurfaces,
defaultRegion
)
);
// Pack
labelList cellsToRemove(nRefine);
nRefine = 0;
forAll(refineCell, cellI)
{
if (refineCell[cellI] != -1)
{
cellsToRemove[nRefine++] = cellI;
}
}
// Remove cells
removeCells cellRemover(mesh_);
labelList exposedFaces(cellRemover.getExposedFaces(cellsToRemove));
labelList exposedPatches(exposedFaces.size());
forAll(exposedFaces, i)
{
label facei = exposedFaces[i];
exposedPatches[i] = globalToMasterPatch[nearestRegion[facei]];
}
return doRemoveCells
(
cellsToRemove,
exposedFaces,
exposedPatches,
cellRemover
);
}
// ************************************************************************* //

View File

@ -42,8 +42,6 @@ License
#include "snapParameters.H" #include "snapParameters.H"
#include "motionSmoother.H" #include "motionSmoother.H"
#include "topoDistanceData.H"
#include "FaceCellWave.H"
// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // // * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * //
@ -375,94 +373,6 @@ bool Foam::meshRefinement::isCollapsedCell
} }
Foam::labelList Foam::meshRefinement::nearestPatch
(
const labelList& adaptPatchIDs
) const
{
const polyBoundaryMesh& patches = mesh_.boundaryMesh();
labelList nearestAdaptPatch;
if (adaptPatchIDs.size())
{
nearestAdaptPatch.setSize(mesh_.nFaces(), adaptPatchIDs[0]);
// Count number of faces in adaptPatchIDs
label nFaces = 0;
forAll(adaptPatchIDs, i)
{
const polyPatch& pp = patches[adaptPatchIDs[i]];
nFaces += pp.size();
}
// Field on cells and faces.
List<topoDistanceData> cellData(mesh_.nCells());
List<topoDistanceData> faceData(mesh_.nFaces());
// Start of changes
labelList patchFaces(nFaces);
List<topoDistanceData> patchData(nFaces);
nFaces = 0;
forAll(adaptPatchIDs, i)
{
label patchi = adaptPatchIDs[i];
const polyPatch& pp = patches[patchi];
forAll(pp, i)
{
patchFaces[nFaces] = pp.start()+i;
patchData[nFaces] = topoDistanceData(patchi, 0);
nFaces++;
}
}
// Propagate information inwards
FaceCellWave<topoDistanceData> deltaCalc
(
mesh_,
patchFaces,
patchData,
faceData,
cellData,
mesh_.globalData().nTotalCells()+1
);
// And extract
bool haveWarned = false;
forAll(faceData, facei)
{
if (!faceData[facei].valid(deltaCalc.data()))
{
if (!haveWarned)
{
WarningInFunction
<< "Did not visit some faces, e.g. face " << facei
<< " at " << mesh_.faceCentres()[facei] << endl
<< "Assigning these cells to patch "
<< adaptPatchIDs[0]
<< endl;
haveWarned = true;
}
}
else
{
nearestAdaptPatch[facei] = faceData[facei].data();
}
}
}
else
{
// Use patch 0
nearestAdaptPatch.setSize(mesh_.nFaces(), 0);
}
return nearestAdaptPatch;
}
// Returns list with for every internal face -1 or the patch they should // Returns list with for every internal face -1 or the patch they should
// be baffled into. Gets run after createBaffles so all the unzoned surface // be baffled into. Gets run after createBaffles so all the unzoned surface
// intersections have already been turned into baffles. (Note: zoned surfaces // intersections have already been turned into baffles. (Note: zoned surfaces

View File

@ -1191,13 +1191,14 @@ Foam::label Foam::meshRefinement::markSurfaceCurvatureRefinement
// Per segment the list of levels of the surfaces // Per segment the list of levels of the surfaces
labelListList surfaceLevel; labelListList surfaceLevel;
surfaces_.findAllHigherIntersections surfaces_.findAllIntersections
( (
start, start,
end, end,
minLevel, // max level of surface has to be bigger minLevel, // max level of surface has to be bigger
// than min level of neighbouring cells // than min level of neighbouring cells
labelList(surfaces_.maxLevel().size(), 0), // min level
surfaces_.maxLevel(), surfaces_.maxLevel(),
surfaceNormal, surfaceNormal,
@ -1572,13 +1573,17 @@ bool Foam::meshRefinement::isGap
bool Foam::meshRefinement::isNormalGap bool Foam::meshRefinement::isNormalGap
( (
const scalar planarCos, const scalar planarCos,
const label level0,
const vector& point0, const vector& point0,
const vector& normal0, const vector& normal0,
const label level1,
const vector& point1, const vector& point1,
const vector& normal1 const vector& normal1
) const ) const
{ {
//const scalar edge0Len = meshCutter_.level0EdgeLength();
//- Hits differ and angles are oppositeish and //- Hits differ and angles are oppositeish and
// hits have a normal distance // hits have a normal distance
vector d = point1-point0; vector d = point1-point0;
@ -1588,24 +1593,31 @@ bool Foam::meshRefinement::isNormalGap
{ {
scalar cosAngle = (normal0 & normal1); scalar cosAngle = (normal0 & normal1);
vector avg = Zero; vector avgNormal = Zero;
if (cosAngle < (-1+planarCos)) if (cosAngle < (-1+planarCos))
{ {
// Opposite normals // Opposite normals
avg = 0.5*(normal0-normal1); avgNormal = 0.5*(normal0-normal1);
} }
else if (cosAngle > (1-planarCos)) else if (cosAngle > (1-planarCos))
{ {
avg = 0.5*(normal0+normal1); avgNormal = 0.5*(normal0+normal1);
} }
if (avg != vector::zero) if (avgNormal != vector::zero)
{ {
avg /= mag(avg); avgNormal /= mag(avgNormal);
d /= magD;
//scalar normalDist = mag(d&avgNormal);
//const scalar avgCellSize = edge0Len/pow(2.0, 0.5*(level0+level1));
//if (normalDist > 1*avgCellSize)
//{
// Pout<< "** skipping large distance " << endl;
// return false;
//}
// Check average normal with respect to intersection locations // Check average normal with respect to intersection locations
if (mag(avg&d) > Foam::cos(degToRad(45.0))) if (mag(avgNormal&d/magD) > Foam::cos(degToRad(45.0)))
{ {
return true; return true;
} }
@ -1628,7 +1640,7 @@ bool Foam::meshRefinement::checkProximity
const label cellI, const label cellI,
label& cellMaxLevel, // cached max surface level for this cell label& cellMaxLevel, // cached max surface level for this cell
vector& cellMaxLocation, // cached surface normal for this cell vector& cellMaxLocation, // cached surface location for this cell
vector& cellMaxNormal, // cached surface normal for this cell vector& cellMaxNormal, // cached surface normal for this cell
labelList& refineCell, labelList& refineCell,
@ -1657,8 +1669,10 @@ bool Foam::meshRefinement::checkProximity
bool closeSurfaces = isNormalGap bool closeSurfaces = isNormalGap
( (
planarCos, planarCos,
cellLevel[cellI], //cellMaxLevel,
cellMaxLocation, cellMaxLocation,
cellMaxNormal, cellMaxNormal,
cellLevel[cellI], //surfaceLevel,
surfaceLocation, surfaceLocation,
surfaceNormal surfaceNormal
); );
@ -1702,6 +1716,10 @@ bool Foam::meshRefinement::checkProximity
Foam::label Foam::meshRefinement::markProximityRefinement Foam::label Foam::meshRefinement::markProximityRefinement
( (
const scalar planarCos, const scalar planarCos,
const labelList& surfaceMinLevel,
const labelList& surfaceMaxLevel,
const label nAllowRefine, const label nAllowRefine,
const labelList& neiLevel, const labelList& neiLevel,
const pointField& neiCc, const pointField& neiCc,
@ -1723,7 +1741,7 @@ Foam::label Foam::meshRefinement::markProximityRefinement
// Collect candidate faces (i.e. intersecting any surface and // Collect candidate faces (i.e. intersecting any surface and
// owner/neighbour not yet refined. // owner/neighbour not yet refined.
labelList testFaces(getRefineCandidateFaces(refineCell)); const labelList testFaces(getRefineCandidateFaces(refineCell));
// Collect segments // Collect segments
pointField start(testFaces.size()); pointField start(testFaces.size());
@ -1755,14 +1773,15 @@ Foam::label Foam::meshRefinement::markProximityRefinement
// Per segment the list of levels of the surfaces // Per segment the list of levels of the surfaces
labelListList surfaceLevel; labelListList surfaceLevel;
surfaces_.findAllHigherIntersections surfaces_.findAllIntersections
( (
start, start,
end, end,
minLevel, // gap level of surface has to be bigger minLevel, // gap level of surface has to be bigger
// than min level of neighbouring cells // than min level of neighbouring cells
surfaces_.gapLevel(), surfaceMinLevel,
surfaceMaxLevel,
surfaceLocation, surfaceLocation,
surfaceNormal, surfaceNormal,
@ -1777,7 +1796,7 @@ Foam::label Foam::meshRefinement::markProximityRefinement
//OBJstream str //OBJstream str
//( //(
// mesh_.time().path() // mesh_.time().path()
// / "findAllHigherIntersections_" // / "findAllIntersections_"
// + mesh_.time().timeName() // + mesh_.time().timeName()
// + ".obj" // + ".obj"
//); //);
@ -1785,7 +1804,7 @@ Foam::label Foam::meshRefinement::markProximityRefinement
//OBJstream str2 //OBJstream str2
//( //(
// mesh_.time().path() // mesh_.time().path()
// / "findAllHigherIntersections2_" // / "findAllIntersections2_"
// + mesh_.time().timeName() // + mesh_.time().timeName()
// + ".obj" // + ".obj"
//); //);
@ -1884,8 +1903,10 @@ Foam::label Foam::meshRefinement::markProximityRefinement
isNormalGap isNormalGap
( (
planarCos, planarCos,
cellLevel[own], //cellMaxLevel[own],
cellMaxLocation[own], cellMaxLocation[own],
cellMaxNormal[own], cellMaxNormal[own],
cellLevel[nei], //cellMaxLevel[nei],
cellMaxLocation[nei], cellMaxLocation[nei],
cellMaxNormal[nei] cellMaxNormal[nei]
) )
@ -1954,8 +1975,10 @@ Foam::label Foam::meshRefinement::markProximityRefinement
isNormalGap isNormalGap
( (
planarCos, planarCos,
cellLevel[own], //cellMaxLevel[own],
cellMaxLocation[own], cellMaxLocation[own],
cellMaxNormal[own], cellMaxNormal[own],
neiLevel[bFaceI], //neiBndMaxLevel[bFaceI],
neiBndMaxLocation[bFaceI], neiBndMaxLocation[bFaceI],
neiBndMaxNormal[bFaceI] neiBndMaxNormal[bFaceI]
) )
@ -2217,19 +2240,25 @@ Foam::labelList Foam::meshRefinement::refineCandidates
// Refinement based on gap (only neighbouring cells) // Refinement based on gap (only neighbouring cells)
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
const labelList& surfaceGapLevel = surfaces_.gapLevel();
if if
( (
gapRefinement gapRefinement
&& (planarCos >= -1 && planarCos <= 1) && (planarCos >= -1 && planarCos <= 1)
&& (max(surfaces_.gapLevel()) > -1) && (max(surfaceGapLevel) > -1)
) )
{ {
Info<< "Specified gap level : " << max(surfaces_.gapLevel()) Info<< "Specified gap level : " << max(surfaceGapLevel)
<< ", planar angle " << planarAngle << endl; << ", planar angle " << planarAngle << endl;
label nGap = markProximityRefinement label nGap = markProximityRefinement
( (
planarCos, planarCos,
labelList(surfaceGapLevel.size(), -1), // surface min level
surfaceGapLevel, // surface max level
nAllowRefine, nAllowRefine,
neiLevel, neiLevel,
neiCc, neiCc,

View File

@ -160,6 +160,7 @@ Foam::refinementSurfaces::refinementSurfaces
surfZones_.setSize(surfI); surfZones_.setSize(surfI);
regionOffset_.setSize(surfI); regionOffset_.setSize(surfI);
// Per surface data
labelList globalMinLevel(surfI, Zero); labelList globalMinLevel(surfI, Zero);
labelList globalMaxLevel(surfI, Zero); labelList globalMaxLevel(surfI, Zero);
labelList globalLevelIncr(surfI, Zero); labelList globalLevelIncr(surfI, Zero);
@ -174,6 +175,10 @@ Foam::refinementSurfaces::refinementSurfaces
scalarField globalAngle(surfI, -GREAT); scalarField globalAngle(surfI, -GREAT);
PtrList<dictionary> globalPatchInfo(surfI); PtrList<dictionary> globalPatchInfo(surfI);
labelList globalBlockLevel(surfI, labelMax);
// Per surface, per region data
List<Map<label>> regionMinLevel(surfI); List<Map<label>> regionMinLevel(surfI);
List<Map<label>> regionMaxLevel(surfI); List<Map<label>> regionMaxLevel(surfI);
List<Map<label>> regionLevelIncr(surfI); List<Map<label>> regionLevelIncr(surfI);
@ -181,7 +186,7 @@ Foam::refinementSurfaces::refinementSurfaces
List<Map<volumeType>> regionGapMode(surfI); List<Map<volumeType>> regionGapMode(surfI);
List<Map<scalar>> regionAngle(surfI); List<Map<scalar>> regionAngle(surfI);
List<Map<autoPtr<dictionary>>> regionPatchInfo(surfI); List<Map<autoPtr<dictionary>>> regionPatchInfo(surfI);
List<Map<label>> regionBlockLevel(surfI);
wordHashSet unmatchedKeys(surfacesDict.toc()); wordHashSet unmatchedKeys(surfacesDict.toc());
@ -282,6 +287,8 @@ Foam::refinementSurfaces::refinementSurfaces
); );
} }
dict.readIfPresent("perpendicularAngle", globalAngle[surfI]); dict.readIfPresent("perpendicularAngle", globalAngle[surfI]);
dict.readIfPresent("blockLevel", globalBlockLevel[surfI]);
if (dict.found("regions")) if (dict.found("regions"))
{ {
@ -392,6 +399,12 @@ Foam::refinementSurfaces::refinementSurfaces
regionDict.subDict("patchInfo").clone() regionDict.subDict("patchInfo").clone()
); );
} }
label l;
if (regionDict.readIfPresent<label>("blockLevel", l))
{
regionBlockLevel[surfI].insert(regionI, l);
}
} }
} }
} }
@ -432,6 +445,8 @@ Foam::refinementSurfaces::refinementSurfaces
perpendicularAngle_.setSize(nRegions); perpendicularAngle_.setSize(nRegions);
perpendicularAngle_ = -GREAT; perpendicularAngle_ = -GREAT;
patchInfo_.setSize(nRegions); patchInfo_.setSize(nRegions);
blockLevel_.setSize(nRegions);
blockLevel_ = labelMax;
forAll(globalMinLevel, surfI) forAll(globalMinLevel, surfI)
@ -458,6 +473,7 @@ Foam::refinementSurfaces::refinementSurfaces
globalPatchInfo[surfI].clone() globalPatchInfo[surfI].clone()
); );
} }
blockLevel_[globalRegionI] = globalBlockLevel[surfI];
} }
// Overwrite with region specific information // Overwrite with region specific information
@ -490,6 +506,12 @@ Foam::refinementSurfaces::refinementSurfaces
patchInfo_.set(globalRegionI, dict.clone()); patchInfo_.set(globalRegionI, dict.clone());
} }
forAllConstIter(Map<label>, regionBlockLevel[surfI], iter)
{
label globalRegionI = regionOffset_[surfI] + iter.key();
blockLevel_[globalRegionI] = regionBlockLevel[surfI][iter.key()];
}
} }
} }
@ -903,13 +925,14 @@ void Foam::refinementSurfaces::findHigherIntersection
} }
void Foam::refinementSurfaces::findAllHigherIntersections void Foam::refinementSurfaces::findAllIntersections
( (
const pointField& start, const pointField& start,
const pointField& end, const pointField& end,
const labelList& currentLevel, // current cell refinement level const labelList& currentLevel, // current cell refinement level
const labelList& globalRegionLevel, const labelList& globalMinLevel,
const labelList& globalMaxLevel,
List<vectorList>& surfaceNormal, List<vectorList>& surfaceNormal,
labelListList& surfaceLevel labelListList& surfaceLevel
@ -976,7 +999,11 @@ void Foam::refinementSurfaces::findAllHigherIntersections
label region = globalRegion(surfI, surfRegion[i]); label region = globalRegion(surfI, surfRegion[i]);
label pointI = pointMap[i]; label pointI = pointMap[i];
if (globalRegionLevel[region] > currentLevel[pointI]) if
(
currentLevel[pointI] >= globalMinLevel[region]
&& currentLevel[pointI] < globalMaxLevel[region]
)
{ {
// Append to pointI info // Append to pointI info
label sz = surfaceNormal[pointI].size(); label sz = surfaceNormal[pointI].size();
@ -984,20 +1011,21 @@ void Foam::refinementSurfaces::findAllHigherIntersections
surfaceNormal[pointI][sz] = surfNormal[i]; surfaceNormal[pointI][sz] = surfNormal[i];
surfaceLevel[pointI].setSize(sz+1); surfaceLevel[pointI].setSize(sz+1);
surfaceLevel[pointI][sz] = globalRegionLevel[region]; surfaceLevel[pointI][sz] = globalMaxLevel[region];
} }
} }
} }
} }
void Foam::refinementSurfaces::findAllHigherIntersections void Foam::refinementSurfaces::findAllIntersections
( (
const pointField& start, const pointField& start,
const pointField& end, const pointField& end,
const labelList& currentLevel, // current cell refinement level const labelList& currentLevel, // current cell refinement level
const labelList& globalRegionLevel, const labelList& globalMinLevel,
const labelList& globalMaxLevel,
List<pointList>& surfaceLocation, List<pointList>& surfaceLocation,
List<vectorList>& surfaceNormal, List<vectorList>& surfaceNormal,
@ -1063,7 +1091,11 @@ void Foam::refinementSurfaces::findAllHigherIntersections
label region = globalRegion(surfI, surfRegion[i]); label region = globalRegion(surfI, surfRegion[i]);
label pointI = pointMap[i]; label pointI = pointMap[i];
if (globalRegionLevel[region] > currentLevel[pointI]) if
(
currentLevel[pointI] >= globalMinLevel[region]
&& currentLevel[pointI] < globalMaxLevel[region]
)
{ {
// Append to pointI info // Append to pointI info
label sz = surfaceNormal[pointI].size(); label sz = surfaceNormal[pointI].size();
@ -1074,7 +1106,9 @@ void Foam::refinementSurfaces::findAllHigherIntersections
surfaceNormal[pointI][sz] = surfNormal[i]; surfaceNormal[pointI][sz] = surfNormal[i];
surfaceLevel[pointI].setSize(sz+1); surfaceLevel[pointI].setSize(sz+1);
surfaceLevel[pointI][sz] = globalRegionLevel[region]; // Level should just be higher than provided point level.
// Actual value is not important.
surfaceLevel[pointI][sz] = globalMaxLevel[region];
} }
} }
} }

View File

@ -88,6 +88,10 @@ class refinementSurfaces
//- From global region number to small-gap level //- From global region number to small-gap level
labelList gapLevel_; labelList gapLevel_;
//- From global region number to cell level at which blockage detection
// needs to apply
labelList blockLevel_;
//- From global region number to small-gap level specification //- From global region number to small-gap level specification
List<FixedList<label, 3>> extendedGapLevel_; List<FixedList<label, 3>> extendedGapLevel_;
@ -202,6 +206,13 @@ public:
return gapLevel_; return gapLevel_;
} }
//- From global region number to cell level at which blockage
//- detection is applied
const labelList& blockLevel() const
{
return blockLevel_;
}
//- From global region number to specification of gap and its //- From global region number to specification of gap and its
// refinement: 3 labels specifying // refinement: 3 labels specifying
// - minimum wanted number of cells in the gap // - minimum wanted number of cells in the gap
@ -287,25 +298,31 @@ public:
labelList& surfaceLevel labelList& surfaceLevel
) const; ) const;
//- Find all intersections of edge. Unsorted order. //- Find all intersections of edge with any surface with applicable
void findAllHigherIntersections // min/max refinement level. Unsorted order.
void findAllIntersections
( (
const pointField& start, const pointField& start,
const pointField& end, const pointField& end,
const labelList& currentLevel, // current cell refinement level const labelList& currentLevel, // current cell refinement level
const labelList& globalRegionLevel, // level per surfregion
const labelList& globalMinLevel, // level per surfregion
const labelList& globalMaxLevel, // level per surfregion
List<vectorList>& surfaceNormal, List<vectorList>& surfaceNormal,
labelListList& surfaceLevel labelListList& surfaceLevel
) const; ) const;
//- Find all intersections of edge. Unsorted order. //- Find all intersections of edge with any surface with applicable
void findAllHigherIntersections // min/max refinement level. Unsorted order.
void findAllIntersections
( (
const pointField& start, const pointField& start,
const pointField& end, const pointField& end,
const labelList& currentLevel, // current cell refinement level const labelList& currentLevel, // current cell refinement level
const labelList& globalRegionLevel, // level per surfregion
const labelList& globalMinLevel, // level per surfregion
const labelList& globalMaxLevel, // level per surfregion
List<pointList>& surfaceLocation, List<pointList>& surfaceLocation,
List<vectorList>& surfaceNormal, List<vectorList>& surfaceNormal,

View File

@ -193,6 +193,18 @@ public:
return shells_; return shells_;
} }
//- Per shell, per region the small-gap level specification
const List<List<FixedList<label, 3>>>& extendedGapLevel() const
{
return extendedGapLevel_;
}
//- Per shell, per region the small-gap level specification
const List<List<volumeType>>& extendedGapMode() const
{
return extendedGapMode_;
}
// Query // Query
//- Highest shell level //- Highest shell level

View File

@ -2,7 +2,7 @@
========= | ========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2015-2018 OpenCFD Ltd. \\ / A nd | Copyright (C) 2015-2019 OpenCFD Ltd.
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
| Copyright (C) 2011-2015 OpenFOAM Foundation | Copyright (C) 2011-2015 OpenFOAM Foundation
@ -92,6 +92,7 @@ Foam::refinementParameters::refinementParameters
dict.lookupOrDefault<Switch>("interfaceRefine", true) dict.lookupOrDefault<Switch>("interfaceRefine", true)
), ),
nErodeCellZone_(dict.lookupOrDefault<label>("nCellZoneErodeIter", 0)), nErodeCellZone_(dict.lookupOrDefault<label>("nCellZoneErodeIter", 0)),
nFilterIter_(dict.lookupOrDefault<label>("nFilterIter", 2)),
dryRun_(dryRun) dryRun_(dryRun)
{ {
point locationInMesh; point locationInMesh;

View File

@ -2,7 +2,7 @@
========= | ========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2015 OpenCFD Ltd. \\ / A nd | Copyright (C) 2015-2019 OpenCFD Ltd.
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
| Copyright (C) 2011-2014 OpenFOAM Foundation | Copyright (C) 2011-2014 OpenFOAM Foundation
@ -90,7 +90,7 @@ class refinementParameters
wordList zonesInMesh_; wordList zonesInMesh_;
//- Information on how to handle faces on faceZones //- Information on how to handle faces on faceZones
dictionary faceZoneControls_; const dictionary faceZoneControls_;
//- FaceZone faces allowed which have owner and neighbour in same //- FaceZone faces allowed which have owner and neighbour in same
@ -110,6 +110,8 @@ class refinementParameters
const label nErodeCellZone_; const label nErodeCellZone_;
const label nFilterIter_;
const bool dryRun_; const bool dryRun_;
@ -219,11 +221,19 @@ public:
return interfaceRefine_; return interfaceRefine_;
} }
//- Number of iterations of erosion to get a consistent cellZone
label nErodeCellZone() const label nErodeCellZone() const
{ {
return nErodeCellZone_; return nErodeCellZone_;
} }
//- Number of iterations of infill/erosion to get a smoother
// blockage
label nFilterIter() const
{
return nFilterIter_;
}
// Other // Other

View File

@ -549,6 +549,22 @@ Foam::label Foam::snappyRefineDriver::gapOnlyRefine
if (debug&meshRefinement::MESH) if (debug&meshRefinement::MESH)
{ {
Pout<< "Writing current mesh to time "
<< meshRefiner_.timeName() << endl;
meshRefiner_.write
(
meshRefinement::debugType(debug),
meshRefinement::writeType
(
meshRefinement::writeLevel()
| meshRefinement::WRITEMESH
),
mesh.time().path()/meshRefiner_.timeName()
);
Pout<< "Dumped mesh in = "
<< mesh.time().cpuTimeIncrement() << " s\n" << nl << endl;
Pout<< "Dumping " << candidateCells.size() Pout<< "Dumping " << candidateCells.size()
<< " cells to cellSet candidateCellsFromGap." << endl; << " cells to cellSet candidateCellsFromGap." << endl;
cellSet c(mesh, "candidateCellsFromGap", candidateCells); cellSet c(mesh, "candidateCellsFromGap", candidateCells);
@ -716,6 +732,56 @@ Foam::label Foam::snappyRefineDriver::gapOnlyRefine
} }
Foam::label Foam::snappyRefineDriver::surfaceProximityBlock
(
const refinementParameters& refineParams,
const label maxIter
)
{
if (refineParams.minRefineCells() == -1)
{
// Special setting to be able to restart shm on meshes with inconsistent
// cellLevel/pointLevel
return 0;
}
fvMesh& mesh = meshRefiner_.mesh();
if (min(meshRefiner_.surfaces().blockLevel()) == labelMax)
{
return 0;
}
label iter = 0;
for (iter = 0; iter < maxIter; iter++)
{
Info<< nl
<< "Gap blocking iteration " << iter << nl
<< "------------------------" << nl
<< endl;
// Determine cells to block
// ~~~~~~~~~~~~~~~~~~~~~~~~
meshRefiner_.removeGapCells
(
refineParams.planarAngle(),
meshRefiner_.surfaces().blockLevel(),
globalToMasterPatch_,
refineParams.nFilterIter()
);
if (debug)
{
const_cast<Time&>(mesh.time())++;
}
}
return iter;
}
Foam::label Foam::snappyRefineDriver::bigGapOnlyRefine Foam::label Foam::snappyRefineDriver::bigGapOnlyRefine
( (
const refinementParameters& refineParams, const refinementParameters& refineParams,
@ -787,6 +853,21 @@ Foam::label Foam::snappyRefineDriver::bigGapOnlyRefine
if (debug&meshRefinement::MESH) if (debug&meshRefinement::MESH)
{ {
Pout<< "Writing current mesh to time "
<< meshRefiner_.timeName() << endl;
meshRefiner_.write
(
meshRefinement::debugType(debug),
meshRefinement::writeType
(
meshRefinement::writeLevel()
| meshRefinement::WRITEMESH
),
mesh.time().path()/meshRefiner_.timeName()
);
Pout<< "Dumped mesh in = "
<< mesh.time().cpuTimeIncrement() << " s\n" << nl << endl;
Pout<< "Dumping " << candidateCells.size() Pout<< "Dumping " << candidateCells.size()
<< " cells to cellSet candidateCellsFromBigGap." << endl; << " cells to cellSet candidateCellsFromBigGap." << endl;
cellSet c(mesh, "candidateCellsFromBigGap", candidateCells); cellSet c(mesh, "candidateCellsFromBigGap", candidateCells);
@ -1421,7 +1502,7 @@ void Foam::snappyRefineDriver::removeInsideCells
); );
// Fix any additional (e.g. locationsOutsideMesh). Note: probably not // Fix any additional (e.g. locationsOutsideMesh). Note: probably not
// nessecary. // necessary.
meshRefiner_.splitMesh meshRefiner_.splitMesh
( (
nBufferLayers, // nBufferLayers nBufferLayers, // nBufferLayers
@ -2859,6 +2940,13 @@ void Foam::snappyRefineDriver::doRefine
100 // maxIter 100 // maxIter
); );
// Remove cells inbetween two surfaces
surfaceProximityBlock
(
refineParams,
1 //100 // maxIter
);
// Remove cells (a certain distance) beyond surface intersections // Remove cells (a certain distance) beyond surface intersections
removeInsideCells removeInsideCells
( (

View File

@ -134,6 +134,13 @@ class snappyRefineDriver
const label maxIter const label maxIter
); );
//- Block all cells in small gaps
label surfaceProximityBlock
(
const refinementParameters& refineParams,
const label maxIter
);
//- Refine all cells in large gaps //- Refine all cells in large gaps
label bigGapOnlyRefine label bigGapOnlyRefine
( (

View File

@ -106,7 +106,7 @@ Foam::fileName Foam::triSurfaceMesh::checkFile
{ {
const fileName rawFName(fName); const fileName rawFName(fName);
fName = relativeFilePath(io, fName, isGlobal); fName = relativeFilePath(io, rawFName, isGlobal);
if (!exists(fName)) if (!exists(fName))
{ {

View File

@ -0,0 +1,21 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v1806 |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format binary;
class cellSet;
arch "LSB;label=32;scalar=64";
location "0/polyMesh/sets";
object cellsToRemove;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
0()
// ************************************************************************* //

View File

@ -0,0 +1,7 @@
#!/bin/sh
cd ${0%/*} || exit 1 # Run from this directory
. $WM_PROJECT_DIR/bin/tools/CleanFunctions # Tutorial clean functions
cleanCase
#------------------------------------------------------------------------------

View File

@ -0,0 +1,15 @@
#!/bin/sh
cd ${0%/*} || exit 1 # Run from this directory
. $WM_PROJECT_DIR/bin/tools/RunFunctions # Tutorial run functions
runApplication blockMesh
runApplication snappyHexMesh
#runApplication decomposePar
#
#runParallel snappyHexMesh -overwrite
#
#runApplication reconstructParMesh -constant
#------------------------------------------------------------------------------

View File

@ -0,0 +1,702 @@
solid ascii
facet normal 0.0661619 -0.997809 0
outer loop
vertex -3.29359 0.155981 0.0271616
vertex -3.27701 0.157081 0.0270155
vertex -3.29359 0.155981 5.02716
endloop
endfacet
facet normal 0.0661619 -0.997809 0
outer loop
vertex -3.29359 0.155981 5.02716
vertex -3.27701 0.157081 0.0270155
vertex -3.27701 0.157081 5.02702
endloop
endfacet
facet normal 0.0628737 -0.998021 0
outer loop
vertex -3.27701 0.157081 0.0270155
vertex -3.22853 0.160134 0.0265803
vertex -3.27701 0.157081 5.02702
endloop
endfacet
facet normal 0.0628737 -0.998021 0
outer loop
vertex -3.27701 0.157081 5.02702
vertex -3.22853 0.160134 0.0265803
vertex -3.22853 0.160134 5.02658
endloop
endfacet
facet normal 0.0590454 -0.998255 0
outer loop
vertex -3.22853 0.160134 0.0265803
vertex -3.15011 0.164773 0.0258607
vertex -3.22853 0.160134 5.02658
endloop
endfacet
facet normal 0.0590454 -0.998255 0
outer loop
vertex -3.22853 0.160134 5.02658
vertex -3.15011 0.164773 0.0258607
vertex -3.15011 0.164773 5.02586
endloop
endfacet
facet normal 0.054922 -0.998491 0
outer loop
vertex -3.15011 0.164773 0.0258607
vertex -3.04367 0.170628 0.0248616
vertex -3.15011 0.164773 5.02586
endloop
endfacet
facet normal 0.054922 -0.998491 0
outer loop
vertex -3.15011 0.164773 5.02586
vertex -3.04367 0.170628 0.0248616
vertex -3.04367 0.170628 5.02486
endloop
endfacet
facet normal 0.050508 -0.998724 0
outer loop
vertex -3.04367 0.170628 0.0248616
vertex -2.91114 0.17733 0.0235877
vertex -3.04367 0.170628 5.02486
endloop
endfacet
facet normal 0.050508 -0.998724 0
outer loop
vertex -3.04367 0.170628 5.02486
vertex -2.91114 0.17733 0.0235877
vertex -2.91114 0.17733 5.02359
endloop
endfacet
facet normal 0.0457832 -0.998951 0
outer loop
vertex -2.91114 0.17733 0.0235877
vertex -2.75447 0.184511 0.0220438
vertex -2.91114 0.17733 5.02359
endloop
endfacet
facet normal 0.0457832 -0.998951 0
outer loop
vertex -2.91114 0.17733 5.02359
vertex -2.75447 0.184511 0.0220438
vertex -2.75447 0.184511 5.02204
endloop
endfacet
facet normal 0.0407187 -0.999171 0
outer loop
vertex -2.75447 0.184511 0.0220438
vertex -2.57557 0.191801 0.0202347
vertex -2.75447 0.184511 5.02204
endloop
endfacet
facet normal 0.0407187 -0.999171 0
outer loop
vertex -2.75447 0.184511 5.02204
vertex -2.57557 0.191801 0.0202347
vertex -2.57557 0.191801 5.02023
endloop
endfacet
facet normal 0.0352794 -0.999377 0
outer loop
vertex -2.57557 0.191801 0.0202347
vertex -2.3764 0.198832 0.0181651
vertex -2.57557 0.191801 5.02023
endloop
endfacet
facet normal 0.0352794 -0.999377 0
outer loop
vertex -2.57557 0.191801 5.02023
vertex -2.3764 0.198832 0.0181651
vertex -2.3764 0.198832 5.01817
endloop
endfacet
facet normal 0.0294239 -0.999567 0
outer loop
vertex -2.3764 0.198832 0.0181651
vertex -2.15887 0.205236 0.0158399
vertex -2.3764 0.198832 5.01817
endloop
endfacet
facet normal 0.0294239 -0.999567 0
outer loop
vertex -2.3764 0.198832 5.01817
vertex -2.15887 0.205236 0.0158399
vertex -2.15887 0.205236 5.01584
endloop
endfacet
facet normal 0.023104 -0.999733 0
outer loop
vertex -2.15887 0.205236 0.0158399
vertex -1.92493 0.210642 0.0132637
vertex -2.15887 0.205236 5.01584
endloop
endfacet
facet normal 0.023104 -0.999733 0
outer loop
vertex -2.15887 0.205236 5.01584
vertex -1.92493 0.210642 0.0132637
vertex -1.92493 0.210642 5.01326
endloop
endfacet
facet normal 0.0162636 -0.999868 0
outer loop
vertex -1.92493 0.210642 0.0132637
vertex -1.6765 0.214683 0.0104414
vertex -1.92493 0.210642 5.01326
endloop
endfacet
facet normal 0.0162636 -0.999868 0
outer loop
vertex -1.92493 0.210642 5.01326
vertex -1.6765 0.214683 0.0104414
vertex -1.6765 0.214683 5.01044
endloop
endfacet
facet normal 0.00883721 -0.999961 0
outer loop
vertex -1.6765 0.214683 0.0104414
vertex -1.41553 0.216989 0.00737764
vertex -1.6765 0.214683 5.01044
endloop
endfacet
facet normal 0.00883721 -0.999961 0
outer loop
vertex -1.6765 0.214683 5.01044
vertex -1.41553 0.216989 0.00737764
vertex -1.41553 0.216989 5.00738
endloop
endfacet
facet normal 0.000747672 -1 0
outer loop
vertex -1.41553 0.216989 0.00737764
vertex -1.14395 0.217192 0.00407733
vertex -1.41553 0.216989 5.00738
endloop
endfacet
facet normal 0.000747672 -1 0
outer loop
vertex -1.41553 0.216989 5.00738
vertex -1.14395 0.217192 0.00407733
vertex -1.14395 0.217192 5.00408
endloop
endfacet
facet normal -0.00809571 -0.999967 0
outer loop
vertex -1.14395 0.217192 0.00407733
vertex -0.863677 0.214923 0.000545189
vertex -1.14395 0.217192 5.00408
endloop
endfacet
facet normal -0.00809571 -0.999967 0
outer loop
vertex -1.14395 0.217192 5.00408
vertex -0.863677 0.214923 0.000545189
vertex -0.863677 0.214923 5.00055
endloop
endfacet
facet normal -0.0176094 -0.999845 0
outer loop
vertex -0.863677 0.214923 0.000545189
vertex -0.576681 0.209869 -0.00320975
vertex -0.863677 0.214923 5.00055
endloop
endfacet
facet normal -0.0176094 -0.999845 0
outer loop
vertex -0.863677 0.214923 5.00055
vertex -0.576681 0.209869 -0.00320975
vertex -0.576681 0.209869 4.99679
endloop
endfacet
facet normal -0.0267547 -0.999642 0
outer loop
vertex -0.576681 0.209869 -0.00320975
vertex -0.285042 0.202063 -0.00715164
vertex -0.576681 0.209869 4.99679
endloop
endfacet
facet normal -0.0267547 -0.999642 0
outer loop
vertex -0.576681 0.209869 4.99679
vertex -0.285042 0.202063 -0.00715164
vertex -0.285042 0.202063 4.99285
endloop
endfacet
facet normal -0.0352891 -0.999377 0
outer loop
vertex -0.285042 0.202063 -0.00715164
vertex 0.00910685 0.191676 -0.0112343
vertex -0.285042 0.202063 4.99285
endloop
endfacet
facet normal -0.0352891 -0.999377 0
outer loop
vertex -0.285042 0.202063 4.99285
vertex 0.00910685 0.191676 -0.0112343
vertex 0.00910685 0.191676 4.98877
endloop
endfacet
facet normal -0.043412 -0.999057 0
outer loop
vertex 0.00910685 0.191676 -0.0112343
vertex 0.303633 0.178878 -0.0154114
vertex 0.00910685 0.191676 4.98877
endloop
endfacet
facet normal -0.043412 -0.999057 0
outer loop
vertex 0.00910685 0.191676 4.98877
vertex 0.303633 0.178878 -0.0154114
vertex 0.303633 0.178878 4.98459
endloop
endfacet
facet normal -0.0513019 -0.998683 0
outer loop
vertex 0.303633 0.178878 -0.0154114
vertex 0.596402 0.163839 -0.0196367
vertex 0.303633 0.178878 4.98459
endloop
endfacet
facet normal -0.0513019 -0.998683 0
outer loop
vertex 0.303633 0.178878 4.98459
vertex 0.596402 0.163839 -0.0196367
vertex 0.596402 0.163839 4.98036
endloop
endfacet
facet normal -0.0591281 -0.99825 0
outer loop
vertex 0.596402 0.163839 -0.0196367
vertex 0.885281 0.146728 -0.023864
vertex 0.596402 0.163839 4.98036
endloop
endfacet
facet normal -0.0591281 -0.99825 0
outer loop
vertex 0.596402 0.163839 4.98036
vertex 0.885281 0.146728 -0.023864
vertex 0.885281 0.146728 4.97614
endloop
endfacet
facet normal -0.0670644 -0.997749 0
outer loop
vertex 0.885281 0.146728 -0.023864
vertex 1.16814 0.127716 -0.028047
vertex 0.885281 0.146728 4.97614
endloop
endfacet
facet normal -0.0670644 -0.997749 0
outer loop
vertex 0.885281 0.146728 4.97614
vertex 1.16814 0.127716 -0.028047
vertex 1.16814 0.127716 4.97195
endloop
endfacet
facet normal -0.0753008 -0.997161 0
outer loop
vertex 1.16814 0.127716 -0.028047
vertex 1.44283 0.106972 -0.0321394
vertex 1.16814 0.127716 4.97195
endloop
endfacet
facet normal -0.0753008 -0.997161 0
outer loop
vertex 1.16814 0.127716 4.97195
vertex 1.44283 0.106972 -0.0321394
vertex 1.44283 0.106972 4.96786
endloop
endfacet
facet normal -0.0840617 -0.996461 0
outer loop
vertex 1.44283 0.106972 -0.0321394
vertex 1.70724 0.0846666 -0.0360951
vertex 1.44283 0.106972 4.96786
endloop
endfacet
facet normal -0.0840617 -0.996461 0
outer loop
vertex 1.44283 0.106972 4.96786
vertex 1.70724 0.0846666 -0.0360951
vertex 1.70724 0.0846666 4.9639
endloop
endfacet
facet normal -0.0936296 -0.995607 0
outer loop
vertex 1.70724 0.0846666 -0.0360951
vertex 1.95922 0.0609695 -0.0398677
vertex 1.70724 0.0846666 4.9639
endloop
endfacet
facet normal -0.0936296 -0.995607 0
outer loop
vertex 1.70724 0.0846666 4.9639
vertex 1.95922 0.0609695 -0.0398677
vertex 1.95922 0.0609695 4.96013
endloop
endfacet
facet normal -0.104381 -0.994537 0
outer loop
vertex 1.95922 0.0609695 -0.0398677
vertex 2.19665 0.0360507 -0.043411
vertex 1.95922 0.0609695 4.96013
endloop
endfacet
facet normal -0.104381 -0.994537 0
outer loop
vertex 1.95922 0.0609695 4.96013
vertex 2.19665 0.0360507 -0.043411
vertex 2.19665 0.0360507 4.95659
endloop
endfacet
facet normal -0.11685 -0.99315 0
outer loop
vertex 2.19665 0.0360507 -0.043411
vertex 2.41738 0.0100801 -0.0466788
vertex 2.19665 0.0360507 4.95659
endloop
endfacet
facet normal -0.11685 -0.99315 0
outer loop
vertex 2.19665 0.0360507 4.95659
vertex 2.41738 0.0100801 -0.0466788
vertex 2.41738 0.0100801 4.95332
endloop
endfacet
facet normal -0.131833 -0.991272 0
outer loop
vertex 2.41738 0.0100801 -0.0466788
vertex 2.61929 -0.0167723 -0.0496248
vertex 2.41738 0.0100801 4.95332
endloop
endfacet
facet normal -0.131833 -0.991272 0
outer loop
vertex 2.41738 0.0100801 4.95332
vertex 2.61929 -0.0167723 -0.0496248
vertex 2.61929 -0.0167723 4.95038
endloop
endfacet
facet normal -0.150594 -0.988596 0
outer loop
vertex 2.61929 -0.0167723 -0.0496248
vertex 2.80024 -0.0443366 -0.0522027
vertex 2.61929 -0.0167723 4.95038
endloop
endfacet
facet normal -0.150594 -0.988596 0
outer loop
vertex 2.61929 -0.0167723 4.95038
vertex 2.80024 -0.0443366 -0.0522027
vertex 2.80024 -0.0443366 4.9478
endloop
endfacet
facet normal -0.175292 -0.984517 0
outer loop
vertex 2.80024 -0.0443366 -0.0522027
vertex 2.95809 -0.0724429 -0.0543663
vertex 2.80024 -0.0443366 4.9478
endloop
endfacet
facet normal -0.175292 -0.984517 0
outer loop
vertex 2.80024 -0.0443366 4.9478
vertex 2.95809 -0.0724429 -0.0543663
vertex 2.95809 -0.0724429 4.94563
endloop
endfacet
facet normal -0.209932 -0.977716 0
outer loop
vertex 2.95809 -0.0724429 -0.0543663
vertex 3.09073 -0.100921 -0.0560693
vertex 2.95809 -0.0724429 4.94563
endloop
endfacet
facet normal -0.209932 -0.977716 0
outer loop
vertex 2.95809 -0.0724429 4.94563
vertex 3.09073 -0.100921 -0.0560693
vertex 3.09073 -0.100921 4.94393
endloop
endfacet
facet normal -0.262858 -0.964835 0
outer loop
vertex 3.09073 -0.100921 -0.0560693
vertex 3.196 -0.129602 -0.0572656
vertex 3.09073 -0.100921 4.94393
endloop
endfacet
facet normal -0.262858 -0.964835 0
outer loop
vertex 3.09073 -0.100921 4.94393
vertex 3.196 -0.129602 -0.0572656
vertex 3.196 -0.129602 4.94273
endloop
endfacet
facet normal -0.354313 -0.935127 0
outer loop
vertex 3.196 -0.129602 -0.0572656
vertex 3.27178 -0.158314 -0.0579087
vertex 3.196 -0.129602 4.94273
endloop
endfacet
facet normal -0.354313 -0.935127 0
outer loop
vertex 3.196 -0.129602 4.94273
vertex 3.27178 -0.158314 -0.0579087
vertex 3.27178 -0.158314 4.94209
endloop
endfacet
facet normal -0.543308 -0.839533 0
outer loop
vertex 3.27178 -0.158314 -0.0579087
vertex 3.31593 -0.186889 -0.0579526
vertex 3.27178 -0.158314 4.94209
endloop
endfacet
facet normal -0.543308 -0.839533 0
outer loop
vertex 3.27178 -0.158314 4.94209
vertex 3.31593 -0.186889 -0.0579526
vertex 3.31593 -0.186889 4.94205
endloop
endfacet
facet normal -0.938554 -0.345133 0
outer loop
vertex 3.31593 -0.186889 -0.0579526
vertex 3.32633 -0.215156 -0.0573508
vertex 3.31593 -0.186889 4.94205
endloop
endfacet
facet normal -0.938554 -0.345133 0
outer loop
vertex 3.31593 -0.186889 4.94205
vertex 3.32633 -0.215156 -0.0573508
vertex 3.32633 -0.215156 4.94265
endloop
endfacet
facet normal -0.736826 0.676082 0
outer loop
vertex 3.32633 -0.215156 -0.0573508
vertex 3.30083 -0.242945 -0.0560573
vertex 3.32633 -0.215156 4.94265
endloop
endfacet
facet normal -0.736826 0.676082 0
outer loop
vertex 3.32633 -0.215156 4.94265
vertex 3.30083 -0.242945 -0.0560573
vertex 3.30083 -0.242945 4.94394
endloop
endfacet
facet normal -0.392899 0.919581 0
outer loop
vertex 3.30083 -0.242945 -0.0560573
vertex 3.2373 -0.270087 -0.0540256
vertex 3.30083 -0.242945 4.94394
endloop
endfacet
facet normal -0.392899 0.919581 0
outer loop
vertex 3.30083 -0.242945 4.94394
vertex 3.2373 -0.270087 -0.0540256
vertex 3.2373 -0.270087 4.94597
endloop
endfacet
facet normal -0.246078 0.96925 0
outer loop
vertex 3.2373 -0.270087 -0.0540256
vertex 3.13362 -0.296411 -0.0512096
vertex 3.2373 -0.270087 4.94597
endloop
endfacet
facet normal -0.246078 0.96925 0
outer loop
vertex 3.2373 -0.270087 4.94597
vertex 3.13362 -0.296411 -0.0512096
vertex 3.13362 -0.296411 4.94879
endloop
endfacet
facet normal -0.173081 0.984908 0
outer loop
vertex 3.13362 -0.296411 -0.0512096
vertex 2.98943 -0.32175 -0.0476006
vertex 3.13362 -0.296411 4.94879
endloop
endfacet
facet normal -0.173081 0.984908 0
outer loop
vertex 3.13362 -0.296411 4.94879
vertex 2.98943 -0.32175 -0.0476006
vertex 2.98943 -0.32175 4.9524
endloop
endfacet
facet normal -0.134459 0.990919 0
outer loop
vertex 2.98943 -0.32175 -0.0476006
vertex 2.81109 -0.345949 -0.0433305
vertex 2.98943 -0.32175 4.9524
endloop
endfacet
facet normal -0.134459 0.990919 0
outer loop
vertex 2.98943 -0.32175 4.9524
vertex 2.81109 -0.345949 -0.0433305
vertex 2.81109 -0.345949 4.95667
endloop
endfacet
facet normal -0.111286 0.993788 0
outer loop
vertex 2.81109 -0.345949 -0.0433305
vertex 2.60657 -0.368851 -0.0385647
vertex 2.81109 -0.345949 4.95667
endloop
endfacet
facet normal -0.111286 0.993788 0
outer loop
vertex 2.81109 -0.345949 4.95667
vertex 2.60657 -0.368851 -0.0385647
vertex 2.60657 -0.368851 4.96144
endloop
endfacet
facet normal -0.0958597 0.995395 0
outer loop
vertex 2.60657 -0.368851 -0.0385647
vertex 2.38381 -0.390304 -0.0334684
vertex 2.60657 -0.368851 4.96144
endloop
endfacet
facet normal -0.0958597 0.995395 0
outer loop
vertex 2.60657 -0.368851 4.96144
vertex 2.38381 -0.390304 -0.0334684
vertex 2.38381 -0.390304 4.96653
endloop
endfacet
facet normal -0.0848608 0.996393 0
outer loop
vertex 2.38381 -0.390304 -0.0334684
vertex 2.15075 -0.410154 -0.028207
vertex 2.38381 -0.390304 4.96653
endloop
endfacet
facet normal -0.0848608 0.996393 0
outer loop
vertex 2.38381 -0.390304 4.96653
vertex 2.15075 -0.410154 -0.028207
vertex 2.15075 -0.410154 4.97179
endloop
endfacet
facet normal -0.0766254 0.99706 0
outer loop
vertex 2.15075 -0.410154 -0.028207
vertex 1.91534 -0.428245 -0.0229456
vertex 2.15075 -0.410154 4.97179
endloop
endfacet
facet normal -0.0766254 0.99706 0
outer loop
vertex 2.15075 -0.410154 4.97179
vertex 1.91534 -0.428245 -0.0229456
vertex 1.91534 -0.428245 4.97705
endloop
endfacet
facet normal -0.0702302 0.997531 0
outer loop
vertex 1.91534 -0.428245 -0.0229456
vertex 1.68553 -0.444424 -0.0178496
vertex 1.91534 -0.428245 4.97705
endloop
endfacet
facet normal -0.0702302 0.997531 0
outer loop
vertex 1.91534 -0.428245 4.97705
vertex 1.68553 -0.444424 -0.0178496
vertex 1.68553 -0.444424 4.98215
endloop
endfacet
facet normal -0.0651223 0.997877 0
outer loop
vertex 1.68553 -0.444424 -0.0178496
vertex 1.46928 -0.458537 -0.0130841
vertex 1.68553 -0.444424 4.98215
endloop
endfacet
facet normal -0.0651223 0.997877 0
outer loop
vertex 1.68553 -0.444424 4.98215
vertex 1.46928 -0.458537 -0.0130841
vertex 1.46928 -0.458537 4.98692
endloop
endfacet
facet normal -0.0609499 0.998141 0
outer loop
vertex 1.46928 -0.458537 -0.0130841
vertex 1.27451 -0.47043 -0.00881455
vertex 1.46928 -0.458537 4.98692
endloop
endfacet
facet normal -0.0609499 0.998141 0
outer loop
vertex 1.46928 -0.458537 4.98692
vertex 1.27451 -0.47043 -0.00881455
vertex 1.27451 -0.47043 4.99119
endloop
endfacet
facet normal -0.0574809 0.998347 0
outer loop
vertex 1.27451 -0.47043 -0.00881455
vertex 1.1092 -0.479948 -0.00520608
vertex 1.27451 -0.47043 4.99119
endloop
endfacet
facet normal -0.0574809 0.998347 0
outer loop
vertex 1.27451 -0.47043 4.99119
vertex 1.1092 -0.479948 -0.00520608
vertex 1.1092 -0.479948 4.99479
endloop
endfacet
facet normal -0.0545577 0.998511 0
outer loop
vertex 1.1092 -0.479948 -0.00520608
vertex 0.981276 -0.486938 -0.00242399
vertex 1.1092 -0.479948 4.99479
endloop
endfacet
facet normal -0.0545577 0.998511 0
outer loop
vertex 1.1092 -0.479948 4.99479
vertex 0.981276 -0.486938 -0.00242399
vertex 0.981276 -0.486938 4.99758
endloop
endfacet
facet normal -0.0520808 0.998643 0
outer loop
vertex 0.981276 -0.486938 -0.00242399
vertex 0.898694 -0.491245 -0.000633541
vertex 0.981276 -0.486938 4.99758
endloop
endfacet
facet normal -0.0520808 0.998643 0
outer loop
vertex 0.981276 -0.486938 4.99758
vertex 0.898694 -0.491245 -0.000633541
vertex 0.898694 -0.491245 4.99937
endloop
endfacet
facet normal -0.0501135 0.998744 0
outer loop
vertex 0.898694 -0.491245 -0.000633541
vertex 0.8694 -0.492715 -6.93889e-18
vertex 0.898694 -0.491245 4.99937
endloop
endfacet
facet normal -0.0501135 0.998744 0
outer loop
vertex 0.898694 -0.491245 4.99937
vertex 0.8694 -0.492715 -6.93889e-18
vertex 0.8694 -0.492715 5
endloop
endfacet
endsolid

View File

@ -0,0 +1,702 @@
solid ascii
facet normal -0.529226 -0.848481 0
outer loop
vertex -3.29064 1.36317 0.227764
vertex -3.25894 1.3434 0.226215
vertex -3.29064 1.36317 5.22776
endloop
endfacet
facet normal -0.529226 -0.848481 0
outer loop
vertex -3.29064 1.36317 5.22776
vertex -3.25894 1.3434 0.226215
vertex -3.25894 1.3434 5.22622
endloop
endfacet
facet normal -0.522329 -0.852744 0
outer loop
vertex -3.25894 1.3434 0.226215
vertex -3.17197 1.29012 0.221796
vertex -3.25894 1.3434 5.22622
endloop
endfacet
facet normal -0.522329 -0.852744 0
outer loop
vertex -3.25894 1.3434 5.22622
vertex -3.17197 1.29012 0.221796
vertex -3.17197 1.29012 5.2218
endloop
endfacet
facet normal -0.512917 -0.858438 0
outer loop
vertex -3.17197 1.29012 0.221796
vertex -3.04192 1.21242 0.214849
vertex -3.17197 1.29012 5.2218
endloop
endfacet
facet normal -0.512917 -0.858438 0
outer loop
vertex -3.17197 1.29012 5.2218
vertex -3.04192 1.21242 0.214849
vertex -3.04192 1.21242 5.21485
endloop
endfacet
facet normal -0.500622 -0.865666 0
outer loop
vertex -3.04192 1.21242 0.214849
vertex -2.88097 1.11934 0.205716
vertex -3.04192 1.21242 5.21485
endloop
endfacet
facet normal -0.500622 -0.865666 0
outer loop
vertex -3.04192 1.21242 5.21485
vertex -2.88097 1.11934 0.205716
vertex -2.88097 1.11934 5.20572
endloop
endfacet
facet normal -0.484062 -0.875034 0
outer loop
vertex -2.88097 1.11934 0.205716
vertex -2.70132 1.01996 0.194739
vertex -2.88097 1.11934 5.20572
endloop
endfacet
facet normal -0.484062 -0.875034 0
outer loop
vertex -2.88097 1.11934 5.20572
vertex -2.70132 1.01996 0.194739
vertex -2.70132 1.01996 5.19474
endloop
endfacet
facet normal -0.460657 -0.887578 0
outer loop
vertex -2.70132 1.01996 0.194739
vertex -2.51516 0.92334 0.182259
vertex -2.70132 1.01996 5.19474
endloop
endfacet
facet normal -0.460657 -0.887578 0
outer loop
vertex -2.70132 1.01996 5.19474
vertex -2.51516 0.92334 0.182259
vertex -2.51516 0.92334 5.18226
endloop
endfacet
facet normal -0.426861 -0.904317 0
outer loop
vertex -2.51516 0.92334 0.182259
vertex -2.33341 0.83755 0.16861
vertex -2.51516 0.92334 5.18226
endloop
endfacet
facet normal -0.426861 -0.904317 0
outer loop
vertex -2.51516 0.92334 5.18226
vertex -2.33341 0.83755 0.16861
vertex -2.33341 0.83755 5.16861
endloop
endfacet
facet normal -0.387382 -0.921919 0
outer loop
vertex -2.33341 0.83755 0.16861
vertex -2.15882 0.764192 0.154069
vertex -2.33341 0.83755 5.16861
endloop
endfacet
facet normal -0.387382 -0.921919 0
outer loop
vertex -2.33341 0.83755 5.16861
vertex -2.15882 0.764192 0.154069
vertex -2.15882 0.764192 5.15407
endloop
endfacet
facet normal -0.345891 -0.938275 0
outer loop
vertex -2.15882 0.764192 0.154069
vertex -1.99089 0.702285 0.138891
vertex -2.15882 0.764192 5.15407
endloop
endfacet
facet normal -0.345891 -0.938275 0
outer loop
vertex -2.15882 0.764192 5.15407
vertex -1.99089 0.702285 0.138891
vertex -1.99089 0.702285 5.13889
endloop
endfacet
facet normal -0.302998 -0.952991 0
outer loop
vertex -1.99089 0.702285 0.138891
vertex -1.82908 0.650839 0.123332
vertex -1.99089 0.702285 5.13889
endloop
endfacet
facet normal -0.302998 -0.952991 0
outer loop
vertex -1.99089 0.702285 5.13889
vertex -1.82908 0.650839 0.123332
vertex -1.82908 0.650839 5.12333
endloop
endfacet
facet normal -0.259494 -0.965745 0
outer loop
vertex -1.82908 0.650839 0.123332
vertex -1.67288 0.608866 0.107646
vertex -1.82908 0.650839 5.12333
endloop
endfacet
facet normal -0.259494 -0.965745 0
outer loop
vertex -1.82908 0.650839 5.12333
vertex -1.67288 0.608866 0.107646
vertex -1.67288 0.608866 5.10765
endloop
endfacet
facet normal -0.216335 -0.976319 0
outer loop
vertex -1.67288 0.608866 0.107646
vertex -1.52174 0.575378 0.0920886
vertex -1.67288 0.608866 5.10765
endloop
endfacet
facet normal -0.216335 -0.976319 0
outer loop
vertex -1.67288 0.608866 5.10765
vertex -1.52174 0.575378 0.0920886
vertex -1.52174 0.575378 5.09209
endloop
endfacet
facet normal -0.174601 -0.984639 0
outer loop
vertex -1.52174 0.575378 0.0920886
vertex -1.37516 0.549385 0.0769146
vertex -1.52174 0.575378 5.09209
endloop
endfacet
facet normal -0.174601 -0.984639 0
outer loop
vertex -1.52174 0.575378 5.09209
vertex -1.37516 0.549385 0.0769146
vertex -1.37516 0.549385 5.07691
endloop
endfacet
facet normal -0.135429 -0.990787 0
outer loop
vertex -1.37516 0.549385 0.0769146
vertex -1.2326 0.529898 0.062379
vertex -1.37516 0.549385 5.07691
endloop
endfacet
facet normal -0.135429 -0.990787 0
outer loop
vertex -1.37516 0.549385 5.07691
vertex -1.2326 0.529898 0.062379
vertex -1.2326 0.529898 5.06238
endloop
endfacet
facet normal -0.0999443 -0.994993 0
outer loop
vertex -1.2326 0.529898 0.062379
vertex -1.09354 0.51593 0.0487369
vertex -1.2326 0.529898 5.06238
endloop
endfacet
facet normal -0.0999443 -0.994993 0
outer loop
vertex -1.2326 0.529898 5.06238
vertex -1.09354 0.51593 0.0487369
vertex -1.09354 0.51593 5.04874
endloop
endfacet
facet normal -0.0691936 -0.997603 0
outer loop
vertex -1.09354 0.51593 0.0487369
vertex -0.957447 0.506491 0.0362434
vertex -1.09354 0.51593 5.04874
endloop
endfacet
facet normal -0.0691936 -0.997603 0
outer loop
vertex -1.09354 0.51593 5.04874
vertex -0.957447 0.506491 0.0362434
vertex -0.957447 0.506491 5.03624
endloop
endfacet
facet normal -0.0440947 -0.999027 0
outer loop
vertex -0.957447 0.506491 0.0362434
vertex -0.823806 0.500592 0.0251535
vertex -0.957447 0.506491 5.03624
endloop
endfacet
facet normal -0.0440947 -0.999027 0
outer loop
vertex -0.957447 0.506491 5.03624
vertex -0.823806 0.500592 0.0251535
vertex -0.823806 0.500592 5.02515
endloop
endfacet
facet normal -0.0254015 -0.999677 0
outer loop
vertex -0.823806 0.500592 0.0251535
vertex -0.692088 0.497245 0.0157222
vertex -0.823806 0.500592 5.02515
endloop
endfacet
facet normal -0.0254015 -0.999677 0
outer loop
vertex -0.823806 0.500592 5.02515
vertex -0.692088 0.497245 0.0157222
vertex -0.692088 0.497245 5.01572
endloop
endfacet
facet normal -0.0136871 -0.999906 0
outer loop
vertex -0.692088 0.497245 0.0157222
vertex -0.561767 0.495461 0.00820454
vertex -0.692088 0.497245 5.01572
endloop
endfacet
facet normal -0.0136871 -0.999906 0
outer loop
vertex -0.692088 0.497245 5.01572
vertex -0.561767 0.495461 0.00820454
vertex -0.561767 0.495461 5.0082
endloop
endfacet
facet normal -0.00934395 -0.999956 0
outer loop
vertex -0.561767 0.495461 0.00820454
vertex -0.432318 0.494252 0.00285559
vertex -0.561767 0.495461 5.0082
endloop
endfacet
facet normal -0.00934395 -0.999956 0
outer loop
vertex -0.561767 0.495461 5.0082
vertex -0.432318 0.494252 0.00285559
vertex -0.432318 0.494252 5.00286
endloop
endfacet
facet normal -0.0125788 -0.999921 0
outer loop
vertex -0.432318 0.494252 0.00285559
vertex -0.303216 0.492628 -6.96415e-05
vertex -0.432318 0.494252 5.00286
endloop
endfacet
facet normal -0.0125788 -0.999921 0
outer loop
vertex -0.432318 0.494252 5.00286
vertex -0.303216 0.492628 -6.96415e-05
vertex -0.303216 0.492628 4.99993
endloop
endfacet
facet normal -0.0213899 -0.999771 0
outer loop
vertex -0.303216 0.492628 -6.96415e-05
vertex -0.173951 0.489862 -0.000468252
vertex -0.303216 0.492628 4.99993
endloop
endfacet
facet normal -0.0213899 -0.999771 0
outer loop
vertex -0.303216 0.492628 4.99993
vertex -0.173951 0.489862 -0.000468252
vertex -0.173951 0.489862 4.99953
endloop
endfacet
facet normal -0.0285485 -0.999592 0
outer loop
vertex -0.173951 0.489862 -0.000468252
vertex -0.044067 0.486153 0.00122502
vertex -0.173951 0.489862 4.99953
endloop
endfacet
facet normal -0.0285485 -0.999592 0
outer loop
vertex -0.173951 0.489862 4.99953
vertex -0.044067 0.486153 0.00122502
vertex -0.044067 0.486153 5.00122
endloop
endfacet
facet normal -0.0324509 -0.999473 0
outer loop
vertex -0.044067 0.486153 0.00122502
vertex 0.0868784 0.481901 0.00445673
vertex -0.044067 0.486153 5.00122
endloop
endfacet
facet normal -0.0324509 -0.999473 0
outer loop
vertex -0.044067 0.486153 5.00122
vertex 0.0868784 0.481901 0.00445673
vertex 0.0868784 0.481901 5.00446
endloop
endfacet
facet normal -0.0331395 -0.999451 0
outer loop
vertex 0.0868784 0.481901 0.00445673
vertex 0.219329 0.477509 0.00867343
vertex 0.0868784 0.481901 5.00446
endloop
endfacet
facet normal -0.0331395 -0.999451 0
outer loop
vertex 0.0868784 0.481901 5.00446
vertex 0.219329 0.477509 0.00867343
vertex 0.219329 0.477509 5.00867
endloop
endfacet
facet normal -0.0307156 -0.999528 0
outer loop
vertex 0.219329 0.477509 0.00867343
vertex 0.353728 0.473379 0.0133217
vertex 0.219329 0.477509 5.00867
endloop
endfacet
facet normal -0.0307156 -0.999528 0
outer loop
vertex 0.219329 0.477509 5.00867
vertex 0.353728 0.473379 0.0133217
vertex 0.353728 0.473379 5.01332
endloop
endfacet
facet normal -0.0253347 -0.999679 0
outer loop
vertex 0.353728 0.473379 0.0133217
vertex 0.490519 0.469913 0.017848
vertex 0.353728 0.473379 5.01332
endloop
endfacet
facet normal -0.0253347 -0.999679 0
outer loop
vertex 0.353728 0.473379 5.01332
vertex 0.490519 0.469913 0.017848
vertex 0.490519 0.469913 5.01785
endloop
endfacet
facet normal -0.0171959 -0.999852 0
outer loop
vertex 0.490519 0.469913 0.017848
vertex 0.630145 0.467511 0.021699
vertex 0.490519 0.469913 5.01785
endloop
endfacet
facet normal -0.0171959 -0.999852 0
outer loop
vertex 0.490519 0.469913 5.01785
vertex 0.630145 0.467511 0.021699
vertex 0.630145 0.467511 5.0217
endloop
endfacet
facet normal -0.00653719 -0.999979 0
outer loop
vertex 0.630145 0.467511 0.021699
vertex 0.773049 0.466577 0.0243212
vertex 0.630145 0.467511 5.0217
endloop
endfacet
facet normal -0.00653719 -0.999979 0
outer loop
vertex 0.630145 0.467511 5.0217
vertex 0.773049 0.466577 0.0243212
vertex 0.773049 0.466577 5.02432
endloop
endfacet
facet normal 0.00637471 -0.99998 0
outer loop
vertex 0.773049 0.466577 0.0243212
vertex 0.919676 0.467512 0.0251611
vertex 0.773049 0.466577 5.02432
endloop
endfacet
facet normal 0.00637471 -0.99998 0
outer loop
vertex 0.773049 0.466577 5.02432
vertex 0.919676 0.467512 0.0251611
vertex 0.919676 0.467512 5.02516
endloop
endfacet
facet normal 0.0212534 -0.999774 0
outer loop
vertex 0.919676 0.467512 0.0251611
vertex 1.07047 0.470717 0.0236654
vertex 0.919676 0.467512 5.02516
endloop
endfacet
facet normal 0.0212534 -0.999774 0
outer loop
vertex 0.919676 0.467512 5.02516
vertex 1.07047 0.470717 0.0236654
vertex 1.07047 0.470717 5.02367
endloop
endfacet
facet normal 0.037799 -0.999285 0
outer loop
vertex 1.07047 0.470717 0.0236654
vertex 1.22587 0.476595 0.0192805
vertex 1.07047 0.470717 5.02367
endloop
endfacet
facet normal 0.037799 -0.999285 0
outer loop
vertex 1.07047 0.470717 5.02367
vertex 1.22587 0.476595 0.0192805
vertex 1.22587 0.476595 5.01928
endloop
endfacet
facet normal 0.0557097 -0.998447 0
outer loop
vertex 1.22587 0.476595 0.0192805
vertex 1.38632 0.485548 0.0114531
vertex 1.22587 0.476595 5.01928
endloop
endfacet
facet normal 0.0557097 -0.998447 0
outer loop
vertex 1.22587 0.476595 5.01928
vertex 1.38632 0.485548 0.0114531
vertex 1.38632 0.485548 5.01145
endloop
endfacet
facet normal 0.0746878 -0.997207 0
outer loop
vertex 1.38632 0.485548 0.0114531
vertex 1.55227 0.497977 -0.000370394
vertex 1.38632 0.485548 5.01145
endloop
endfacet
facet normal 0.0746878 -0.997207 0
outer loop
vertex 1.38632 0.485548 5.01145
vertex 1.55227 0.497977 -0.000370394
vertex 1.55227 0.497977 4.99963
endloop
endfacet
facet normal 0.0944474 -0.99553 0
outer loop
vertex 1.55227 0.497977 -0.000370394
vertex 1.72415 0.514284 -0.0167433
vertex 1.55227 0.497977 4.99963
endloop
endfacet
facet normal 0.0944474 -0.99553 0
outer loop
vertex 1.55227 0.497977 4.99963
vertex 1.72415 0.514284 -0.0167433
vertex 1.72415 0.514284 4.98326
endloop
endfacet
facet normal 0.114721 -0.993398 0
outer loop
vertex 1.72415 0.514284 -0.0167433
vertex 1.90242 0.534871 -0.0382192
vertex 1.72415 0.514284 4.98326
endloop
endfacet
facet normal 0.114721 -0.993398 0
outer loop
vertex 1.72415 0.514284 4.98326
vertex 1.90242 0.534871 -0.0382192
vertex 1.90242 0.534871 4.96178
endloop
endfacet
facet normal 0.135265 -0.990809 0
outer loop
vertex 1.90242 0.534871 -0.0382192
vertex 2.08751 0.56014 -0.0653515
vertex 1.90242 0.534871 4.96178
endloop
endfacet
facet normal 0.135265 -0.990809 0
outer loop
vertex 1.90242 0.534871 4.96178
vertex 2.08751 0.56014 -0.0653515
vertex 2.08751 0.56014 4.93465
endloop
endfacet
facet normal 0.155593 -0.987821 0
outer loop
vertex 2.08751 0.56014 -0.0653515
vertex 2.27966 0.590405 -0.0985847
vertex 2.08751 0.56014 4.93465
endloop
endfacet
facet normal 0.155593 -0.987821 0
outer loop
vertex 2.08751 0.56014 4.93465
vertex 2.27966 0.590405 -0.0985847
vertex 2.27966 0.590405 4.90142
endloop
endfacet
facet normal 0.173128 -0.984899 0
outer loop
vertex 2.27966 0.590405 -0.0985847
vertex 2.47673 0.625047 -0.137215
vertex 2.27966 0.590405 4.90142
endloop
endfacet
facet normal 0.173128 -0.984899 0
outer loop
vertex 2.27966 0.590405 4.90142
vertex 2.47673 0.625047 -0.137215
vertex 2.47673 0.625047 4.86279
endloop
endfacet
facet normal 0.187282 -0.982306 0
outer loop
vertex 2.47673 0.625047 -0.137215
vertex 2.67522 0.66289 -0.179847
vertex 2.47673 0.625047 4.86279
endloop
endfacet
facet normal 0.187282 -0.982306 0
outer loop
vertex 2.47673 0.625047 4.86279
vertex 2.67522 0.66289 -0.179847
vertex 2.67522 0.66289 4.82015
endloop
endfacet
facet normal 0.198928 -0.980014 0
outer loop
vertex 2.67522 0.66289 -0.179847
vertex 2.87159 0.702749 -0.22508
vertex 2.67522 0.66289 4.82015
endloop
endfacet
facet normal 0.198928 -0.980014 0
outer loop
vertex 2.67522 0.66289 4.82015
vertex 2.87159 0.702749 -0.22508
vertex 2.87159 0.702749 4.77492
endloop
endfacet
facet normal 0.208673 -0.977985 0
outer loop
vertex 2.87159 0.702749 -0.22508
vertex 3.0623 0.743442 -0.271509
vertex 2.87159 0.702749 4.77492
endloop
endfacet
facet normal 0.208673 -0.977985 0
outer loop
vertex 2.87159 0.702749 4.77492
vertex 3.0623 0.743442 -0.271509
vertex 3.0623 0.743442 4.72849
endloop
endfacet
facet normal 0.216945 -0.976184 0
outer loop
vertex 3.0623 0.743442 -0.271509
vertex 3.24382 0.783782 -0.317731
vertex 3.0623 0.743442 4.72849
endloop
endfacet
facet normal 0.216945 -0.976184 0
outer loop
vertex 3.0623 0.743442 4.72849
vertex 3.24382 0.783782 -0.317731
vertex 3.24382 0.783782 4.68227
endloop
endfacet
facet normal 0.224052 -0.974577 0
outer loop
vertex 3.24382 0.783782 -0.317731
vertex 3.41261 0.822586 -0.362342
vertex 3.24382 0.783782 4.68227
endloop
endfacet
facet normal 0.224052 -0.974577 0
outer loop
vertex 3.24382 0.783782 4.68227
vertex 3.41261 0.822586 -0.362342
vertex 3.41261 0.822586 4.63766
endloop
endfacet
facet normal 0.230221 -0.973138 0
outer loop
vertex 3.41261 0.822586 -0.362342
vertex 3.56513 0.858669 -0.403941
vertex 3.41261 0.822586 4.63766
endloop
endfacet
facet normal 0.230221 -0.973138 0
outer loop
vertex 3.41261 0.822586 4.63766
vertex 3.56513 0.858669 -0.403941
vertex 3.56513 0.858669 4.59606
endloop
endfacet
facet normal 0.235625 -0.971844 0
outer loop
vertex 3.56513 0.858669 -0.403941
vertex 3.69785 0.890848 -0.441122
vertex 3.56513 0.858669 4.59606
endloop
endfacet
facet normal 0.235625 -0.971844 0
outer loop
vertex 3.56513 0.858669 4.59606
vertex 3.69785 0.890848 -0.441122
vertex 3.69785 0.890848 4.55888
endloop
endfacet
facet normal 0.240392 -0.970676 0
outer loop
vertex 3.69785 0.890848 -0.441122
vertex 3.80723 0.917937 -0.472484
vertex 3.69785 0.890848 4.55888
endloop
endfacet
facet normal 0.240392 -0.970676 0
outer loop
vertex 3.69785 0.890848 4.55888
vertex 3.80723 0.917937 -0.472484
vertex 3.80723 0.917937 4.52752
endloop
endfacet
facet normal 0.24462 -0.969619 0
outer loop
vertex 3.80723 0.917937 -0.472484
vertex 3.88974 0.938753 -0.496623
vertex 3.80723 0.917937 4.52752
endloop
endfacet
facet normal 0.24462 -0.969619 0
outer loop
vertex 3.80723 0.917937 4.52752
vertex 3.88974 0.938753 -0.496623
vertex 3.88974 0.938753 4.50338
endloop
endfacet
facet normal 0.248364 -0.968667 0
outer loop
vertex 3.88974 0.938753 -0.496623
vertex 3.94184 0.952111 -0.512135
vertex 3.88974 0.938753 4.50338
endloop
endfacet
facet normal 0.248364 -0.968667 0
outer loop
vertex 3.88974 0.938753 4.50338
vertex 3.94184 0.952111 -0.512135
vertex 3.94184 0.952111 4.48786
endloop
endfacet
facet normal 0.251448 -0.967871 0
outer loop
vertex 3.94184 0.952111 -0.512135
vertex 3.96 0.956827 -0.517617
vertex 3.94184 0.952111 4.48786
endloop
endfacet
facet normal 0.251448 -0.967871 0
outer loop
vertex 3.94184 0.952111 4.48786
vertex 3.96 0.956827 -0.517617
vertex 3.96 0.956827 4.48238
endloop
endfacet
endsolid

View File

@ -0,0 +1,485 @@
solid ascii
facet normal 0.162993 -0.653976 -0.738748
outer loop
vertex -2.00546 -1.92761 1.77067
vertex -1.9956 -1.91659 1.76309
vertex 1.91049 -3.77569 4.27067
endloop
endfacet
facet normal 0.163003 -0.653965 -0.738756
outer loop
vertex 1.91049 -3.77569 4.27067
vertex -1.9956 -1.91659 1.76309
vertex 1.92035 -3.76467 4.26309
endloop
endfacet
facet normal 0.160822 -0.656358 -0.737109
outer loop
vertex -1.9956 -1.91659 1.76309
vertex -1.96676 -1.88448 1.74079
vertex 1.92035 -3.76467 4.26309
endloop
endfacet
facet normal 0.16084 -0.656339 -0.737122
outer loop
vertex 1.92035 -3.76467 4.26309
vertex -1.96676 -1.88448 1.74079
vertex 1.94918 -3.73256 4.24079
endloop
endfacet
facet normal 0.158576 -0.658813 -0.735404
outer loop
vertex -1.96676 -1.88448 1.74079
vertex -1.9201 -1.83274 1.7045
vertex 1.94918 -3.73256 4.24079
endloop
endfacet
facet normal 0.158577 -0.658811 -0.735406
outer loop
vertex 1.94918 -3.73256 4.24079
vertex -1.9201 -1.83274 1.7045
vertex 1.99584 -3.68082 4.2045
endloop
endfacet
facet normal 0.156086 -0.661518 -0.733506
outer loop
vertex -1.9201 -1.83274 1.7045
vertex -1.85672 -1.76281 1.65492
vertex 1.99584 -3.68082 4.2045
endloop
endfacet
facet normal 0.156086 -0.661519 -0.733505
outer loop
vertex 1.99584 -3.68082 4.2045
vertex -1.85672 -1.76281 1.65492
vertex 2.05922 -3.61089 4.15492
endloop
endfacet
facet normal 0.153429 -0.664391 -0.731467
outer loop
vertex -1.85672 -1.76281 1.65492
vertex -1.77776 -1.67614 1.59276
vertex 2.05922 -3.61089 4.15492
endloop
endfacet
facet normal 0.153422 -0.664399 -0.731462
outer loop
vertex 2.05922 -3.61089 4.15492
vertex -1.77776 -1.67614 1.59276
vertex 2.13819 -3.52422 4.09276
endloop
endfacet
facet normal 0.150555 -0.66748 -0.729249
outer loop
vertex -1.77776 -1.67614 1.59276
vertex -1.68435 -1.57419 1.51873
vertex 2.13819 -3.52422 4.09276
endloop
endfacet
facet normal 0.150532 -0.667504 -0.729232
outer loop
vertex 2.13819 -3.52422 4.09276
vertex -1.68435 -1.57419 1.51873
vertex 2.23159 -3.42227 4.01872
endloop
endfacet
facet normal 0.14752 -0.67072 -0.726892
outer loop
vertex -1.68435 -1.57419 1.51873
vertex -1.57762 -1.45838 1.43353
vertex 2.23159 -3.42227 4.01872
endloop
endfacet
facet normal 0.14752 -0.67072 -0.726893
outer loop
vertex 2.23159 -3.42227 4.01872
vertex -1.57762 -1.45838 1.43353
vertex 2.33832 -3.30646 3.93352
endloop
endfacet
facet normal 0.144192 -0.674251 -0.724289
outer loop
vertex -1.57762 -1.45838 1.43353
vertex -1.4587 -1.3302 1.33788
vertex 2.33832 -3.30646 3.93352
endloop
endfacet
facet normal 0.144209 -0.674234 -0.724301
outer loop
vertex 2.33832 -3.30646 3.93352
vertex -1.4587 -1.3302 1.33788
vertex 2.45725 -3.17828 3.83788
endloop
endfacet
facet normal 0.140684 -0.677946 -0.721524
outer loop
vertex -1.4587 -1.3302 1.33788
vertex -1.32871 -1.19105 1.23248
vertex 2.45725 -3.17828 3.83788
endloop
endfacet
facet normal 0.140689 -0.677941 -0.721528
outer loop
vertex 2.45725 -3.17828 3.83788
vertex -1.32871 -1.19105 1.23248
vertex 2.58723 -3.03913 3.73248
endloop
endfacet
facet normal 0.136822 -0.681982 -0.718457
outer loop
vertex -1.32871 -1.19105 1.23248
vertex -1.1888 -1.04242 1.11804
vertex 2.58723 -3.03913 3.73248
endloop
endfacet
facet normal 0.136822 -0.681982 -0.718457
outer loop
vertex 2.58723 -3.03913 3.73248
vertex -1.1888 -1.04242 1.11804
vertex 2.72714 -2.8905 3.61804
endloop
endfacet
facet normal 0.13269 -0.686262 -0.715149
outer loop
vertex -1.1888 -1.04242 1.11804
vertex -1.04008 -0.885731 0.995274
vertex 2.72714 -2.8905 3.61804
endloop
endfacet
facet normal 0.132684 -0.686267 -0.715145
outer loop
vertex 2.72714 -2.8905 3.61804
vertex -1.04008 -0.885731 0.995274
vertex 2.87586 -2.73381 3.49527
endloop
endfacet
facet normal 0.128168 -0.690901 -0.711497
outer loop
vertex -1.04008 -0.885731 0.995274
vertex -0.883688 -0.722446 0.864888
vertex 2.87586 -2.73381 3.49527
endloop
endfacet
facet normal 0.128168 -0.690902 -0.711497
outer loop
vertex 2.87586 -2.73381 3.49527
vertex -0.883688 -0.722446 0.864888
vertex 3.03226 -2.57053 3.36489
endloop
endfacet
facet normal 0.123244 -0.695903 -0.707481
outer loop
vertex -0.883688 -0.722446 0.864888
vertex -0.720759 -0.554011 0.727592
vertex 3.03226 -2.57053 3.36489
endloop
endfacet
facet normal 0.123248 -0.695899 -0.707484
outer loop
vertex 3.03226 -2.57053 3.36489
vertex -0.720759 -0.554011 0.727592
vertex 3.19518 -2.40209 3.22759
endloop
endfacet
facet normal 0.117849 -0.701322 -0.703036
outer loop
vertex -0.720759 -0.554011 0.727592
vertex -0.552409 -0.381864 0.584085
vertex 3.19518 -2.40209 3.22759
endloop
endfacet
facet normal 0.117846 -0.701324 -0.703034
outer loop
vertex 3.19518 -2.40209 3.22759
vertex -0.552409 -0.381864 0.584085
vertex 3.36354 -2.22995 3.08409
endloop
endfacet
facet normal 0.112035 -0.707089 -0.698193
outer loop
vertex -0.552409 -0.381864 0.584085
vertex -0.379793 -0.207438 0.435135
vertex 3.36354 -2.22995 3.08409
endloop
endfacet
facet normal 0.112043 -0.707083 -0.698198
outer loop
vertex 3.36354 -2.22995 3.08409
vertex -0.379793 -0.207438 0.435135
vertex 3.53615 -2.05552 2.93514
endloop
endfacet
facet normal 0.106436 -0.712575 -0.693476
outer loop
vertex -0.379793 -0.207438 0.435135
vertex -0.204156 -0.0320027 0.281825
vertex 3.53615 -2.05552 2.93514
endloop
endfacet
facet normal 0.106443 -0.712569 -0.693481
outer loop
vertex 3.53615 -2.05552 2.93514
vertex -0.204156 -0.0320027 0.281825
vertex 3.71179 -1.88008 2.78183
endloop
endfacet
facet normal 0.101202 -0.71764 -0.689021
outer loop
vertex -0.204156 -0.0320027 0.281825
vertex -0.0267831 0.143231 0.125365
vertex 3.71179 -1.88008 2.78183
endloop
endfacet
facet normal 0.101197 -0.717645 -0.689017
outer loop
vertex 3.71179 -1.88008 2.78183
vertex -0.0267831 0.143231 0.125365
vertex 3.88916 -1.70485 2.62537
endloop
endfacet
facet normal 0.0962111 -0.722415 -0.684734
outer loop
vertex -0.0267831 0.143231 0.125365
vertex 0.151042 0.317053 -0.0330364
vertex 3.88916 -1.70485 2.62537
endloop
endfacet
facet normal 0.0961934 -0.72243 -0.68472
outer loop
vertex 3.88916 -1.70485 2.62537
vertex 0.151042 0.317053 -0.0330364
vertex 4.06699 -1.53103 2.46696
endloop
endfacet
facet normal 0.091355 -0.727007 -0.680525
outer loop
vertex 0.151042 0.317053 -0.0330364
vertex 0.328034 0.488251 -0.192168
vertex 4.06699 -1.53103 2.46696
endloop
endfacet
facet normal 0.0913634 -0.727 -0.680532
outer loop
vertex 4.06699 -1.53103 2.46696
vertex 0.328034 0.488251 -0.192168
vertex 4.24397 -1.35983 2.30783
endloop
endfacet
facet normal 0.0865321 -0.731521 -0.676306
outer loop
vertex 0.328034 0.488251 -0.192168
vertex 0.502908 0.655614 -0.35082
vertex 4.24397 -1.35983 2.30783
endloop
endfacet
facet normal 0.0865288 -0.731523 -0.676303
outer loop
vertex 4.24397 -1.35983 2.30783
vertex 0.502908 0.655614 -0.35082
vertex 4.41885 -1.19247 2.14918
endloop
endfacet
facet normal 0.0816325 -0.736054 -0.671983
outer loop
vertex 0.502908 0.655614 -0.35082
vertex 0.67438 0.817933 -0.507785
vertex 4.41885 -1.19247 2.14918
endloop
endfacet
facet normal 0.0816267 -0.736058 -0.671978
outer loop
vertex 4.41885 -1.19247 2.14918
vertex 0.67438 0.817933 -0.507785
vertex 4.59032 -1.03015 1.99221
endloop
endfacet
facet normal 0.0765397 -0.740711 -0.667449
outer loop
vertex 0.67438 0.817933 -0.507785
vertex 0.841157 0.973988 -0.661844
vertex 4.59032 -1.03015 1.99221
endloop
endfacet
facet normal 0.0765572 -0.740697 -0.667463
outer loop
vertex 4.59032 -1.03015 1.99221
vertex 0.841157 0.973988 -0.661844
vertex 4.7571 -0.874093 1.83816
endloop
endfacet
facet normal 0.0711146 -0.745614 -0.662573
outer loop
vertex 0.841157 0.973988 -0.661844
vertex 1.00197 1.12258 -0.811799
vertex 4.7571 -0.874093 1.83816
endloop
endfacet
facet normal 0.0711122 -0.745616 -0.662571
outer loop
vertex 4.7571 -0.874093 1.83816
vertex 1.00197 1.12258 -0.811799
vertex 4.9179 -0.725499 1.6882
endloop
endfacet
facet normal 0.0651802 -0.750903 -0.657188
outer loop
vertex 1.00197 1.12258 -0.811799
vertex 1.15551 1.26249 -0.956432
vertex 4.9179 -0.725499 1.6882
endloop
endfacet
facet normal 0.0651797 -0.750903 -0.657188
outer loop
vertex 4.9179 -0.725499 1.6882
vertex 1.15551 1.26249 -0.956432
vertex 5.07145 -0.585591 1.54357
endloop
endfacet
facet normal 0.0584879 -0.756779 -0.651049
outer loop
vertex 1.15551 1.26249 -0.956432
vertex 1.30052 1.39251 -1.09454
vertex 5.07145 -0.585591 1.54357
endloop
endfacet
facet normal 0.0584863 -0.75678 -0.651048
outer loop
vertex 5.07145 -0.585591 1.54357
vertex 1.30052 1.39251 -1.09454
vertex 5.21646 -0.45557 1.40546
endloop
endfacet
facet normal 0.0507177 -0.763483 -0.643834
outer loop
vertex 1.30052 1.39251 -1.09454
vertex 1.43569 1.51142 -1.2249
vertex 5.21646 -0.45557 1.40546
endloop
endfacet
facet normal 0.0507291 -0.763474 -0.643843
outer loop
vertex 5.21646 -0.45557 1.40546
vertex 1.43569 1.51142 -1.2249
vertex 5.35163 -0.336655 1.2751
endloop
endfacet
facet normal 0.0413665 -0.771383 -0.635025
outer loop
vertex 1.43569 1.51142 -1.2249
vertex 1.55976 1.61803 -1.34632
vertex 5.35163 -0.336655 1.2751
endloop
endfacet
facet normal 0.0413648 -0.771384 -0.635024
outer loop
vertex 5.35163 -0.336655 1.2751
vertex 1.55976 1.61803 -1.34632
vertex 5.4757 -0.230054 1.15369
endloop
endfacet
facet normal 0.0295873 -0.781073 -0.623738
outer loop
vertex 1.55976 1.61803 -1.34632
vertex 1.67142 1.7111 -1.45757
vertex 5.4757 -0.230054 1.15369
endloop
endfacet
facet normal 0.0295845 -0.781075 -0.623735
outer loop
vertex 5.4757 -0.230054 1.15369
vertex 1.67142 1.7111 -1.45757
vertex 5.58736 -0.136977 1.04243
endloop
endfacet
facet normal 0.0140508 -0.793412 -0.608523
outer loop
vertex 1.67142 1.7111 -1.45757
vertex 1.76939 1.78944 -1.55745
vertex 5.58736 -0.136977 1.04243
endloop
endfacet
facet normal 0.0140334 -0.793424 -0.608507
outer loop
vertex 5.58736 -0.136977 1.04243
vertex 1.76939 1.78944 -1.55745
vertex 5.68533 -0.0586386 0.942545
endloop
endfacet
facet normal -0.00789605 -0.809984 -0.586399
outer loop
vertex 1.76939 1.78944 -1.55745
vertex 1.8524 1.85184 -1.64476
vertex 5.68533 -0.0586386 0.942545
endloop
endfacet
facet normal -0.00790256 -0.809989 -0.586392
outer loop
vertex 5.68533 -0.0586386 0.942545
vertex 1.8524 1.85184 -1.64476
vertex 5.76834 0.00375753 0.855238
endloop
endfacet
facet normal -0.0417851 -0.833605 -0.550778
outer loop
vertex 1.8524 1.85184 -1.64476
vertex 1.91915 1.89707 -1.71828
vertex 5.76834 0.00375753 0.855238
endloop
endfacet
facet normal -0.0417606 -0.83359 -0.550803
outer loop
vertex 5.76834 0.00375753 0.855238
vertex 1.91915 1.89707 -1.71828
vertex 5.83509 0.04899 0.781722
endloop
endfacet
facet normal -0.101141 -0.869157 -0.484083
outer loop
vertex 1.91915 1.89707 -1.71828
vertex 1.96837 1.92393 -1.77679
vertex 5.83509 0.04899 0.781722
endloop
endfacet
facet normal -0.101138 -0.869155 -0.484087
outer loop
vertex 5.83509 0.04899 0.781722
vertex 1.96837 1.92393 -1.77679
vertex 5.88431 0.0758517 0.72321
endloop
endfacet
facet normal -0.2281 -0.918864 -0.321962
outer loop
vertex 1.96837 1.92393 -1.77679
vertex 1.99875 1.93121 -1.81909
vertex 5.88431 0.0758517 0.72321
endloop
endfacet
facet normal -0.228106 -0.918865 -0.321955
outer loop
vertex 5.88431 0.0758517 0.72321
vertex 1.99875 1.93121 -1.81909
vertex 5.9147 0.0831286 0.68091
endloop
endfacet
facet normal -0.529665 -0.817787 0.225122
outer loop
vertex 1.99875 1.93121 -1.81909
vertex 2.00903 1.9177 -1.84398
vertex 5.9147 0.0831286 0.68091
endloop
endfacet
facet normal -0.529651 -0.817805 0.225087
outer loop
vertex 5.9147 0.0831286 0.68091
vertex 2.00903 1.9177 -1.84398
vertex 5.92498 0.0696207 0.656022
endloop
endfacet
facet normal -0.532142 0.0175015 0.846474
outer loop
vertex 2.00903 1.9177 -1.84398
vertex 1.99792 1.88218 -1.85023
vertex 5.92498 0.0696207 0.656022
endloop
endfacet
endsolid

View File

@ -0,0 +1,702 @@
solid ascii
facet normal 0.16287 -0.654111 -0.738655
outer loop
vertex -2.00546 -1.92761 1.77067
vertex -1.9956 -1.91659 1.76309
vertex 1.91049 -3.77569 4.27067
endloop
endfacet
facet normal 0.162874 -0.654106 -0.738659
outer loop
vertex 1.91049 -3.77569 4.27067
vertex -1.9956 -1.91659 1.76309
vertex 1.92035 -3.76467 4.26309
endloop
endfacet
facet normal 0.160855 -0.656322 -0.737134
outer loop
vertex -1.9956 -1.91659 1.76309
vertex -1.96676 -1.88448 1.74079
vertex 1.92035 -3.76467 4.26309
endloop
endfacet
facet normal 0.160852 -0.656325 -0.737132
outer loop
vertex 1.92035 -3.76467 4.26309
vertex -1.96676 -1.88448 1.74079
vertex 1.94918 -3.73256 4.24079
endloop
endfacet
facet normal 0.158569 -0.65882 -0.735399
outer loop
vertex -1.96676 -1.88448 1.74079
vertex -1.9201 -1.83274 1.7045
vertex 1.94918 -3.73256 4.24079
endloop
endfacet
facet normal 0.158568 -0.658821 -0.735399
outer loop
vertex 1.94918 -3.73256 4.24079
vertex -1.9201 -1.83274 1.7045
vertex 1.99584 -3.68082 4.2045
endloop
endfacet
facet normal 0.156081 -0.661524 -0.733501
outer loop
vertex -1.9201 -1.83274 1.7045
vertex -1.85672 -1.76281 1.65492
vertex 1.99584 -3.68082 4.2045
endloop
endfacet
facet normal 0.156083 -0.661522 -0.733503
outer loop
vertex 1.99584 -3.68082 4.2045
vertex -1.85672 -1.76281 1.65492
vertex 2.05922 -3.61089 4.15492
endloop
endfacet
facet normal 0.153416 -0.664405 -0.731457
outer loop
vertex -1.85672 -1.76281 1.65492
vertex -1.77776 -1.67614 1.59276
vertex 2.05922 -3.61089 4.15492
endloop
endfacet
facet normal 0.153416 -0.664405 -0.731457
outer loop
vertex 2.05922 -3.61089 4.15492
vertex -1.77776 -1.67614 1.59276
vertex 2.13819 -3.52422 4.09276
endloop
endfacet
facet normal 0.150568 -0.667466 -0.729259
outer loop
vertex -1.77776 -1.67614 1.59276
vertex -1.68435 -1.57419 1.51873
vertex 2.13819 -3.52422 4.09276
endloop
endfacet
facet normal 0.150568 -0.667466 -0.729258
outer loop
vertex 2.13819 -3.52422 4.09276
vertex -1.68435 -1.57419 1.51873
vertex 2.23159 -3.42227 4.01872
endloop
endfacet
facet normal 0.147503 -0.670739 -0.726878
outer loop
vertex -1.68435 -1.57419 1.51873
vertex -1.57762 -1.45838 1.43353
vertex 2.23159 -3.42227 4.01872
endloop
endfacet
facet normal 0.147504 -0.670739 -0.726878
outer loop
vertex 2.23159 -3.42227 4.01872
vertex -1.57762 -1.45838 1.43353
vertex 2.33832 -3.30646 3.93352
endloop
endfacet
facet normal 0.144216 -0.674227 -0.724306
outer loop
vertex -1.57762 -1.45838 1.43353
vertex -1.4587 -1.3302 1.33788
vertex 2.33832 -3.30646 3.93352
endloop
endfacet
facet normal 0.144216 -0.674227 -0.724306
outer loop
vertex 2.33832 -3.30646 3.93352
vertex -1.4587 -1.3302 1.33788
vertex 2.45725 -3.17828 3.83788
endloop
endfacet
facet normal 0.140672 -0.677959 -0.721514
outer loop
vertex -1.4587 -1.3302 1.33788
vertex -1.32871 -1.19105 1.23248
vertex 2.45725 -3.17828 3.83788
endloop
endfacet
facet normal 0.140672 -0.677959 -0.721514
outer loop
vertex 2.45725 -3.17828 3.83788
vertex -1.32871 -1.19105 1.23248
vertex 2.58723 -3.03913 3.73248
endloop
endfacet
facet normal 0.136837 -0.681966 -0.718469
outer loop
vertex -1.32871 -1.19105 1.23248
vertex -1.1888 -1.04242 1.11804
vertex 2.58723 -3.03913 3.73248
endloop
endfacet
facet normal 0.136837 -0.681966 -0.718469
outer loop
vertex 2.58723 -3.03913 3.73248
vertex -1.1888 -1.04242 1.11804
vertex 2.72714 -2.8905 3.61804
endloop
endfacet
facet normal 0.132685 -0.686267 -0.715145
outer loop
vertex -1.1888 -1.04242 1.11804
vertex -1.04008 -0.885731 0.995274
vertex 2.72714 -2.8905 3.61804
endloop
endfacet
facet normal 0.132685 -0.686266 -0.715145
outer loop
vertex 2.72714 -2.8905 3.61804
vertex -1.04008 -0.885731 0.995274
vertex 2.87586 -2.73381 3.49527
endloop
endfacet
facet normal 0.128169 -0.690901 -0.711497
outer loop
vertex -1.04008 -0.885731 0.995274
vertex -0.883688 -0.722446 0.864888
vertex 2.87586 -2.73381 3.49527
endloop
endfacet
facet normal 0.128169 -0.690901 -0.711497
outer loop
vertex 2.87586 -2.73381 3.49527
vertex -0.883688 -0.722446 0.864888
vertex 3.03226 -2.57053 3.36489
endloop
endfacet
facet normal 0.123243 -0.695904 -0.70748
outer loop
vertex -0.883688 -0.722446 0.864888
vertex -0.720759 -0.554011 0.727592
vertex 3.03226 -2.57053 3.36489
endloop
endfacet
facet normal 0.123243 -0.695904 -0.70748
outer loop
vertex 3.03226 -2.57053 3.36489
vertex -0.720759 -0.554011 0.727592
vertex 3.19518 -2.40209 3.22759
endloop
endfacet
facet normal 0.117849 -0.701322 -0.703036
outer loop
vertex -0.720759 -0.554011 0.727592
vertex -0.552409 -0.381864 0.584085
vertex 3.19518 -2.40209 3.22759
endloop
endfacet
facet normal 0.117849 -0.701322 -0.703036
outer loop
vertex 3.19518 -2.40209 3.22759
vertex -0.552409 -0.381864 0.584085
vertex 3.36354 -2.22995 3.08409
endloop
endfacet
facet normal 0.112036 -0.707088 -0.698194
outer loop
vertex -0.552409 -0.381864 0.584085
vertex -0.379793 -0.207438 0.435135
vertex 3.36354 -2.22995 3.08409
endloop
endfacet
facet normal 0.112037 -0.707088 -0.698194
outer loop
vertex 3.36354 -2.22995 3.08409
vertex -0.379793 -0.207438 0.435135
vertex 3.53615 -2.05552 2.93514
endloop
endfacet
facet normal 0.106435 -0.712575 -0.693475
outer loop
vertex -0.379793 -0.207438 0.435135
vertex -0.204156 -0.0320027 0.281825
vertex 3.53615 -2.05552 2.93514
endloop
endfacet
facet normal 0.106435 -0.712575 -0.693475
outer loop
vertex 3.53615 -2.05552 2.93514
vertex -0.204156 -0.0320027 0.281825
vertex 3.71179 -1.88008 2.78183
endloop
endfacet
facet normal 0.101201 -0.717641 -0.689021
outer loop
vertex -0.204156 -0.0320027 0.281825
vertex -0.0267831 0.143231 0.125365
vertex 3.71179 -1.88008 2.78183
endloop
endfacet
facet normal 0.101201 -0.717641 -0.689021
outer loop
vertex 3.71179 -1.88008 2.78183
vertex -0.0267831 0.143231 0.125365
vertex 3.88916 -1.70485 2.62537
endloop
endfacet
facet normal 0.0962108 -0.722414 -0.684734
outer loop
vertex -0.0267831 0.143231 0.125365
vertex 0.151042 0.317053 -0.0330364
vertex 3.88916 -1.70485 2.62537
endloop
endfacet
facet normal 0.0962109 -0.722414 -0.684734
outer loop
vertex 3.88916 -1.70485 2.62537
vertex 0.151042 0.317053 -0.0330364
vertex 4.06699 -1.53103 2.46696
endloop
endfacet
facet normal 0.0913564 -0.727007 -0.680525
outer loop
vertex 0.151042 0.317053 -0.0330364
vertex 0.328034 0.488251 -0.192168
vertex 4.06699 -1.53103 2.46696
endloop
endfacet
facet normal 0.0913561 -0.727007 -0.680525
outer loop
vertex 4.06699 -1.53103 2.46696
vertex 0.328034 0.488251 -0.192168
vertex 4.24397 -1.35983 2.30783
endloop
endfacet
facet normal 0.0865316 -0.731521 -0.676305
outer loop
vertex 0.328034 0.488251 -0.192168
vertex 0.502908 0.655614 -0.35082
vertex 4.24397 -1.35983 2.30783
endloop
endfacet
facet normal 0.0865318 -0.731521 -0.676305
outer loop
vertex 4.24397 -1.35983 2.30783
vertex 0.502908 0.655614 -0.35082
vertex 4.41885 -1.19247 2.14918
endloop
endfacet
facet normal 0.0816341 -0.736053 -0.671984
outer loop
vertex 0.502908 0.655614 -0.35082
vertex 0.67438 0.817933 -0.507785
vertex 4.41885 -1.19247 2.14918
endloop
endfacet
facet normal 0.0816342 -0.736053 -0.671984
outer loop
vertex 4.41885 -1.19247 2.14918
vertex 0.67438 0.817933 -0.507785
vertex 4.59032 -1.03015 1.99221
endloop
endfacet
facet normal 0.0765387 -0.740713 -0.667447
outer loop
vertex 0.67438 0.817933 -0.507785
vertex 0.841157 0.973988 -0.661844
vertex 4.59032 -1.03015 1.99221
endloop
endfacet
facet normal 0.0765387 -0.740713 -0.667447
outer loop
vertex 4.59032 -1.03015 1.99221
vertex 0.841157 0.973988 -0.661844
vertex 4.7571 -0.874093 1.83816
endloop
endfacet
facet normal 0.0711149 -0.745613 -0.662574
outer loop
vertex 0.841157 0.973988 -0.661844
vertex 1.00197 1.12258 -0.811799
vertex 4.7571 -0.874093 1.83816
endloop
endfacet
facet normal 0.0711149 -0.745613 -0.662574
outer loop
vertex 4.7571 -0.874093 1.83816
vertex 1.00197 1.12258 -0.811799
vertex 4.9179 -0.725499 1.6882
endloop
endfacet
facet normal 0.065177 -0.750906 -0.657185
outer loop
vertex 1.00197 1.12258 -0.811799
vertex 1.15551 1.26249 -0.956432
vertex 4.9179 -0.725499 1.6882
endloop
endfacet
facet normal 0.065177 -0.750906 -0.657185
outer loop
vertex 4.9179 -0.725499 1.6882
vertex 1.15551 1.26249 -0.956432
vertex 5.07145 -0.585591 1.54357
endloop
endfacet
facet normal 0.058494 -0.756773 -0.651055
outer loop
vertex 1.15551 1.26249 -0.956432
vertex 1.30052 1.39251 -1.09454
vertex 5.07145 -0.585591 1.54357
endloop
endfacet
facet normal 0.0584939 -0.756773 -0.651055
outer loop
vertex 5.07145 -0.585591 1.54357
vertex 1.30052 1.39251 -1.09454
vertex 5.21646 -0.45557 1.40546
endloop
endfacet
facet normal 0.0507207 -0.76348 -0.643837
outer loop
vertex 1.30052 1.39251 -1.09454
vertex 1.43569 1.51142 -1.2249
vertex 5.21646 -0.45557 1.40546
endloop
endfacet
facet normal 0.050721 -0.76348 -0.643837
outer loop
vertex 5.21646 -0.45557 1.40546
vertex 1.43569 1.51142 -1.2249
vertex 5.35163 -0.336655 1.2751
endloop
endfacet
facet normal 0.0413597 -0.771388 -0.63502
outer loop
vertex 1.43569 1.51142 -1.2249
vertex 1.55976 1.61803 -1.34632
vertex 5.35163 -0.336655 1.2751
endloop
endfacet
facet normal 0.0413597 -0.771388 -0.63502
outer loop
vertex 5.35163 -0.336655 1.2751
vertex 1.55976 1.61803 -1.34632
vertex 5.4757 -0.230054 1.15369
endloop
endfacet
facet normal 0.0295946 -0.781067 -0.623746
outer loop
vertex 1.55976 1.61803 -1.34632
vertex 1.67142 1.7111 -1.45757
vertex 5.4757 -0.230054 1.15369
endloop
endfacet
facet normal 0.0295944 -0.781067 -0.623746
outer loop
vertex 5.4757 -0.230054 1.15369
vertex 1.67142 1.7111 -1.45757
vertex 5.58736 -0.136977 1.04243
endloop
endfacet
facet normal 0.0140343 -0.793424 -0.608508
outer loop
vertex 1.67142 1.7111 -1.45757
vertex 1.76939 1.78944 -1.55745
vertex 5.58736 -0.136977 1.04243
endloop
endfacet
facet normal 0.0140342 -0.793424 -0.608507
outer loop
vertex 5.58736 -0.136977 1.04243
vertex 1.76939 1.78944 -1.55745
vertex 5.68533 -0.0586386 0.942545
endloop
endfacet
facet normal -0.00790206 -0.809989 -0.586392
outer loop
vertex 1.76939 1.78944 -1.55745
vertex 1.8524 1.85184 -1.64476
vertex 5.68533 -0.0586386 0.942545
endloop
endfacet
facet normal -0.00790171 -0.809989 -0.586392
outer loop
vertex 5.68533 -0.0586386 0.942545
vertex 1.8524 1.85184 -1.64476
vertex 5.76834 0.00375753 0.855238
endloop
endfacet
facet normal -0.0417599 -0.833589 -0.550804
outer loop
vertex 1.8524 1.85184 -1.64476
vertex 1.91915 1.89707 -1.71828
vertex 5.76834 0.00375753 0.855238
endloop
endfacet
facet normal -0.0417601 -0.833589 -0.550804
outer loop
vertex 5.76834 0.00375753 0.855238
vertex 1.91915 1.89707 -1.71828
vertex 5.83509 0.04899 0.781722
endloop
endfacet
facet normal -0.101143 -0.869158 -0.484082
outer loop
vertex 1.91915 1.89707 -1.71828
vertex 1.96837 1.92393 -1.77679
vertex 5.83509 0.04899 0.781722
endloop
endfacet
facet normal -0.101143 -0.869158 -0.484082
outer loop
vertex 5.83509 0.04899 0.781722
vertex 1.96837 1.92393 -1.77679
vertex 5.88431 0.0758517 0.72321
endloop
endfacet
facet normal -0.228112 -0.918866 -0.321946
outer loop
vertex 1.96837 1.92393 -1.77679
vertex 1.99875 1.93121 -1.81909
vertex 5.88431 0.0758517 0.72321
endloop
endfacet
facet normal -0.228113 -0.918867 -0.321945
outer loop
vertex 5.88431 0.0758517 0.72321
vertex 1.99875 1.93121 -1.81909
vertex 5.9147 0.0831286 0.68091
endloop
endfacet
facet normal -0.529652 -0.817804 0.225088
outer loop
vertex 1.99875 1.93121 -1.81909
vertex 2.00903 1.9177 -1.84398
vertex 5.9147 0.0831286 0.68091
endloop
endfacet
facet normal -0.529651 -0.817806 0.225085
outer loop
vertex 5.9147 0.0831286 0.68091
vertex 2.00903 1.9177 -1.84398
vertex 5.92498 0.0696207 0.656022
endloop
endfacet
facet normal -0.532128 0.0175456 0.846482
outer loop
vertex 2.00903 1.9177 -1.84398
vertex 1.99792 1.88218 -1.85023
vertex 5.92498 0.0696207 0.656022
endloop
endfacet
facet normal -0.532126 0.0175498 0.846483
outer loop
vertex 5.92498 0.0696207 0.656022
vertex 1.99792 1.88218 -1.85023
vertex 5.91386 0.0341051 0.649767
endloop
endfacet
facet normal -0.352389 0.398675 0.846688
outer loop
vertex 1.99792 1.88218 -1.85023
vertex 1.96412 1.82345 -1.83664
vertex 5.91386 0.0341051 0.649767
endloop
endfacet
facet normal -0.35239 0.398674 0.846688
outer loop
vertex 5.91386 0.0341051 0.649767
vertex 1.96412 1.82345 -1.83664
vertex 5.88005 -0.024629 0.663355
endloop
endfacet
facet normal -0.269012 0.523558 0.808406
outer loop
vertex 1.96412 1.82345 -1.83664
vertex 1.90636 1.74029 -1.80201
vertex 5.88005 -0.024629 0.663355
endloop
endfacet
facet normal -0.269013 0.523557 0.808406
outer loop
vertex 5.88005 -0.024629 0.663355
vertex 1.90636 1.74029 -1.80201
vertex 5.8223 -0.107785 0.697991
endloop
endfacet
facet normal -0.226435 0.579376 0.782976
outer loop
vertex 1.90636 1.74029 -1.80201
vertex 1.8244 1.63261 -1.74603
vertex 5.8223 -0.107785 0.697991
endloop
endfacet
facet normal -0.226434 0.579377 0.782975
outer loop
vertex 5.8223 -0.107785 0.697991
vertex 1.8244 1.63261 -1.74603
vertex 5.74035 -0.215469 0.753974
endloop
endfacet
facet normal -0.20363 0.607323 0.767915
outer loop
vertex 1.8244 1.63261 -1.74603
vertex 1.72201 1.50447 -1.67183
vertex 5.74035 -0.215469 0.753974
endloop
endfacet
facet normal -0.203631 0.607323 0.767915
outer loop
vertex 5.74035 -0.215469 0.753974
vertex 1.72201 1.50447 -1.67183
vertex 5.63796 -0.343612 0.828167
endloop
endfacet
facet normal -0.189857 0.623578 0.758357
outer loop
vertex 1.72201 1.50447 -1.67183
vertex 1.6039 1.36094 -1.58338
vertex 5.63796 -0.343612 0.828167
endloop
endfacet
facet normal -0.189857 0.623578 0.758357
outer loop
vertex 5.63796 -0.343612 0.828167
vertex 1.6039 1.36094 -1.58338
vertex 5.51984 -0.487142 0.916618
endloop
endfacet
facet normal -0.180654 0.634184 0.751781
outer loop
vertex 1.6039 1.36094 -1.58338
vertex 1.47474 1.20708 -1.48463
vertex 5.51984 -0.487142 0.916618
endloop
endfacet
facet normal -0.180654 0.634184 0.751781
outer loop
vertex 5.51984 -0.487142 0.916618
vertex 1.47474 1.20708 -1.48463
vertex 5.39068 -0.641003 1.01537
endloop
endfacet
facet normal -0.174073 0.641645 0.746988
outer loop
vertex 1.47474 1.20708 -1.48463
vertex 1.33924 1.04793 -1.3795
vertex 5.39068 -0.641003 1.01537
endloop
endfacet
facet normal -0.174073 0.641644 0.746988
outer loop
vertex 5.39068 -0.641003 1.01537
vertex 1.33924 1.04793 -1.3795
vertex 5.25518 -0.800147 1.1205
endloop
endfacet
facet normal -0.169132 0.647179 0.74334
outer loop
vertex 1.33924 1.04793 -1.3795
vertex 1.20209 0.888568 -1.27196
vertex 5.25518 -0.800147 1.1205
endloop
endfacet
facet normal -0.169132 0.647179 0.743339
outer loop
vertex 5.25518 -0.800147 1.1205
vertex 1.20209 0.888568 -1.27196
vertex 5.11803 -0.959511 1.22804
endloop
endfacet
facet normal -0.165291 0.651441 0.740475
outer loop
vertex 1.20209 0.888568 -1.27196
vertex 1.06799 0.73404 -1.16595
vertex 5.11803 -0.959511 1.22804
endloop
endfacet
facet normal -0.165291 0.651441 0.740475
outer loop
vertex 5.11803 -0.959511 1.22804
vertex 1.06799 0.73404 -1.16595
vertex 4.98393 -1.11404 1.33405
endloop
endfacet
facet normal -0.162223 0.654822 0.738168
outer loop
vertex 1.06799 0.73404 -1.16595
vertex 0.941641 0.589416 -1.06542
vertex 4.98393 -1.11404 1.33405
endloop
endfacet
facet normal -0.162223 0.654822 0.738168
outer loop
vertex 4.98393 -1.11404 1.33405
vertex 0.941641 0.589416 -1.06542
vertex 4.85759 -1.25867 1.43459
endloop
endfacet
facet normal -0.15971 0.657575 0.736266
outer loop
vertex 0.941641 0.589416 -1.06542
vertex 0.827725 0.459735 -0.974307
vertex 4.85759 -1.25867 1.43459
endloop
endfacet
facet normal -0.15971 0.657575 0.736266
outer loop
vertex 4.85759 -1.25867 1.43459
vertex 0.827725 0.459735 -0.974307
vertex 4.74367 -1.38835 1.5257
endloop
endfacet
facet normal -0.157622 0.659851 0.734678
outer loop
vertex 0.827725 0.459735 -0.974307
vertex 0.730956 0.350076 -0.896578
vertex 4.74367 -1.38835 1.5257
endloop
endfacet
facet normal -0.157622 0.659851 0.734678
outer loop
vertex 4.74367 -1.38835 1.5257
vertex 0.730956 0.350076 -0.896578
vertex 4.64689 -1.498 1.60342
endloop
endfacet
facet normal -0.155862 0.661762 0.733334
outer loop
vertex 0.730956 0.350076 -0.896578
vertex 0.656019 0.265483 -0.836167
vertex 4.64689 -1.498 1.60342
endloop
endfacet
facet normal -0.155861 0.661763 0.733333
outer loop
vertex 4.64689 -1.498 1.60342
vertex 0.656019 0.265483 -0.836167
vertex 4.57196 -1.5826 1.66383
endloop
endfacet
facet normal -0.154368 0.663378 0.732189
outer loop
vertex 0.656019 0.265483 -0.836167
vertex 0.607613 0.211018 -0.797026
vertex 4.57196 -1.5826 1.66383
endloop
endfacet
facet normal -0.154369 0.663377 0.732189
outer loop
vertex 4.57196 -1.5826 1.66383
vertex 0.607613 0.211018 -0.797026
vertex 4.52356 -1.63706 1.70298
endloop
endfacet
facet normal -0.153182 0.664657 0.731277
outer loop
vertex 0.607613 0.211018 -0.797026
vertex 0.590434 0.191739 -0.783102
vertex 4.52356 -1.63706 1.70298
endloop
endfacet
facet normal -0.153182 0.664657 0.731277
outer loop
vertex 4.52356 -1.63706 1.70298
vertex 0.590434 0.191739 -0.783102
vertex 4.50638 -1.65634 1.7169
endloop
endfacet
endsolid

View File

@ -0,0 +1,702 @@
solid ascii
facet normal -0.218371 -0.916419 -0.335396
outer loop
vertex -1.99478 -1.1593 2.72311
vertex -1.97424 -1.15299 2.6925
vertex 1.92116 -3.00738 5.22311
endloop
endfacet
facet normal -0.218368 -0.916418 -0.335399
outer loop
vertex 1.92116 -3.00738 5.22311
vertex -1.97424 -1.15299 2.6925
vertex 1.94171 -3.00107 5.19251
endloop
endfacet
facet normal -0.213715 -0.915164 -0.341761
outer loop
vertex -1.97424 -1.15299 2.6925
vertex -1.91815 -1.13496 2.60914
vertex 1.94171 -3.00107 5.19251
endloop
endfacet
facet normal -0.213715 -0.915164 -0.34176
outer loop
vertex 1.94171 -3.00107 5.19251
vertex -1.91815 -1.13496 2.60914
vertex 1.9978 -2.98304 5.10914
endloop
endfacet
facet normal -0.207222 -0.913323 -0.350571
outer loop
vertex -1.91815 -1.13496 2.60914
vertex -1.83478 -1.10649 2.48569
vertex 1.9978 -2.98304 5.10914
endloop
endfacet
facet normal -0.207222 -0.913323 -0.350571
outer loop
vertex 1.9978 -2.98304 5.10914
vertex -1.83478 -1.10649 2.48569
vertex 2.08117 -2.95457 4.9857
endloop
endfacet
facet normal -0.19886 -0.910799 -0.361802
outer loop
vertex -1.83478 -1.10649 2.48569
vertex -1.73239 -1.06892 2.33484
vertex 2.08117 -2.95457 4.9857
endloop
endfacet
facet normal -0.198859 -0.910798 -0.361803
outer loop
vertex 2.08117 -2.95457 4.9857
vertex -1.73239 -1.06892 2.33484
vertex 2.18355 -2.917 4.83484
endloop
endfacet
facet normal -0.187609 -0.907132 -0.376715
outer loop
vertex -1.73239 -1.06892 2.33484
vertex -1.61928 -1.02354 2.16925
vertex 2.18355 -2.917 4.83484
endloop
endfacet
facet normal -0.187609 -0.907132 -0.376715
outer loop
vertex 2.18355 -2.917 4.83484
vertex -1.61928 -1.02354 2.16925
vertex 2.29666 -2.87163 4.66925
endloop
endfacet
facet normal -0.171811 -0.901472 -0.397277
outer loop
vertex -1.61928 -1.02354 2.16925
vertex -1.50372 -0.97169 2.00161
vertex 2.29666 -2.87163 4.66925
endloop
endfacet
facet normal -0.171811 -0.901472 -0.397277
outer loop
vertex 2.29666 -2.87163 4.66925
vertex -1.50372 -0.97169 2.00161
vertex 2.41222 -2.81977 4.50161
endloop
endfacet
facet normal -0.149148 -0.892335 -0.426021
outer loop
vertex -1.50372 -0.97169 2.00161
vertex -1.39309 -0.914576 1.84325
vertex 2.41222 -2.81977 4.50161
endloop
endfacet
facet normal -0.149148 -0.892335 -0.426021
outer loop
vertex 2.41222 -2.81977 4.50161
vertex -1.39309 -0.914576 1.84325
vertex 2.52285 -2.76266 4.34325
endloop
endfacet
facet normal -0.122915 -0.880301 -0.458216
outer loop
vertex -1.39309 -0.914576 1.84325
vertex -1.28906 -0.852878 1.69681
vertex 2.52285 -2.76266 4.34325
endloop
endfacet
facet normal -0.122915 -0.880301 -0.458215
outer loop
vertex 2.52285 -2.76266 4.34325
vertex -1.28906 -0.852878 1.69681
vertex 2.62689 -2.70096 4.19681
endloop
endfacet
facet normal -0.0956268 -0.866171 -0.490514
outer loop
vertex -1.28906 -0.852878 1.69681
vertex -1.19098 -0.787069 1.56148
vertex 2.62689 -2.70096 4.19681
endloop
endfacet
facet normal -0.0956263 -0.866171 -0.490514
outer loop
vertex 2.62689 -2.70096 4.19681
vertex -1.19098 -0.787069 1.56148
vertex 2.72496 -2.63515 4.06148
endloop
endfacet
facet normal -0.0676719 -0.85003 -0.52237
outer loop
vertex -1.19098 -0.787069 1.56148
vertex -1.09822 -0.717599 1.43642
vertex 2.72496 -2.63515 4.06148
endloop
endfacet
facet normal -0.0676726 -0.85003 -0.522369
outer loop
vertex 2.72496 -2.63515 4.06148
vertex -1.09822 -0.717599 1.43642
vertex 2.81772 -2.56568 3.93642
endloop
endfacet
facet normal -0.0395992 -0.832155 -0.553128
outer loop
vertex -1.09822 -0.717599 1.43642
vertex -1.01014 -0.644937 1.3208
vertex 2.81772 -2.56568 3.93642
endloop
endfacet
facet normal -0.039599 -0.832154 -0.553128
outer loop
vertex 2.81772 -2.56568 3.93642
vertex -1.01014 -0.644937 1.3208
vertex 2.9058 -2.49302 3.8208
endloop
endfacet
facet normal -0.0119769 -0.812956 -0.582203
outer loop
vertex -1.01014 -0.644937 1.3208
vertex -0.926088 -0.569527 1.21377
vertex 2.9058 -2.49302 3.8208
endloop
endfacet
facet normal -0.0119772 -0.812956 -0.582202
outer loop
vertex 2.9058 -2.49302 3.8208
vertex -0.926088 -0.569527 1.21377
vertex 2.98985 -2.41761 3.71377
endloop
endfacet
facet normal 0.0144723 -0.793083 -0.608942
outer loop
vertex -0.926088 -0.569527 1.21377
vertex -0.845434 -0.491844 1.11451
vertex 2.98985 -2.41761 3.71377
endloop
endfacet
facet normal 0.0144728 -0.793083 -0.608942
outer loop
vertex 2.98985 -2.41761 3.71377
vertex -0.845434 -0.491844 1.11451
vertex 3.0705 -2.33992 3.61451
endloop
endfacet
facet normal 0.039104 -0.773266 -0.632875
outer loop
vertex -0.845434 -0.491844 1.11451
vertex -0.76753 -0.41234 1.02218
vertex 3.0705 -2.33992 3.61451
endloop
endfacet
facet normal 0.0391043 -0.773266 -0.632875
outer loop
vertex 3.0705 -2.33992 3.61451
vertex -0.76753 -0.41234 1.02218
vertex 3.14841 -2.26042 3.52218
endloop
endfacet
facet normal 0.0612539 -0.754362 -0.653595
outer loop
vertex -0.76753 -0.41234 1.02218
vertex -0.691736 -0.331475 0.935956
vertex 3.14841 -2.26042 3.52218
endloop
endfacet
facet normal 0.0612534 -0.754362 -0.653595
outer loop
vertex 3.14841 -2.26042 3.52218
vertex -0.691736 -0.331475 0.935956
vertex 3.22421 -2.17956 3.43596
endloop
endfacet
facet normal 0.0803191 -0.737261 -0.670817
outer loop
vertex -0.691736 -0.331475 0.935956
vertex -0.617408 -0.249707 0.854988
vertex 3.22421 -2.17956 3.43596
endloop
endfacet
facet normal 0.080319 -0.737261 -0.670817
outer loop
vertex 3.22421 -2.17956 3.43596
vertex -0.617408 -0.249707 0.854988
vertex 3.29853 -2.09779 3.35499
endloop
endfacet
facet normal 0.0957891 -0.722815 -0.68437
outer loop
vertex -0.617408 -0.249707 0.854988
vertex -0.543909 -0.167501 0.778452
vertex 3.29853 -2.09779 3.35499
endloop
endfacet
facet normal 0.0957893 -0.722815 -0.68437
outer loop
vertex 3.29853 -2.09779 3.35499
vertex -0.543909 -0.167501 0.778452
vertex 3.37203 -2.01558 3.27845
endloop
endfacet
facet normal 0.107265 -0.711767 -0.694178
outer loop
vertex -0.543909 -0.167501 0.778452
vertex -0.470598 -0.0853143 0.70551
vertex 3.37203 -2.01558 3.27845
endloop
endfacet
facet normal 0.107264 -0.711767 -0.694177
outer loop
vertex 3.37203 -2.01558 3.27845
vertex -0.470598 -0.0853143 0.70551
vertex 3.44534 -1.93339 3.20551
endloop
endfacet
facet normal 0.114433 -0.70472 -0.700196
outer loop
vertex -0.470598 -0.0853143 0.70551
vertex -0.39683 -0.00360559 0.63533
vertex 3.44534 -1.93339 3.20551
endloop
endfacet
facet normal 0.114433 -0.70472 -0.700197
outer loop
vertex 3.44534 -1.93339 3.20551
vertex -0.39683 -0.00360559 0.63533
vertex 3.51911 -1.85168 3.13533
endloop
endfacet
facet normal 0.11709 -0.702079 -0.702406
outer loop
vertex -0.39683 -0.00360559 0.63533
vertex -0.321967 0.0771655 0.567076
vertex 3.51911 -1.85168 3.13533
endloop
endfacet
facet normal 0.11709 -0.702079 -0.702406
outer loop
vertex 3.51911 -1.85168 3.13533
vertex -0.321967 0.0771655 0.567076
vertex 3.59398 -1.77092 3.06708
endloop
endfacet
facet normal 0.115111 -0.704047 -0.700762
outer loop
vertex -0.321967 0.0771655 0.567076
vertex -0.245366 0.156538 0.499914
vertex 3.59398 -1.77092 3.06708
endloop
endfacet
facet normal 0.115111 -0.704047 -0.700762
outer loop
vertex 3.59398 -1.77092 3.06708
vertex -0.245366 0.156538 0.499914
vertex 3.67058 -1.69154 2.99991
endloop
endfacet
facet normal 0.10972 -0.709366 -0.696248
outer loop
vertex -0.245366 0.156538 0.499914
vertex -0.166546 0.234282 0.433126
vertex 3.67058 -1.69154 2.99991
endloop
endfacet
facet normal 0.10972 -0.709365 -0.696249
outer loop
vertex 3.67058 -1.69154 2.99991
vertex -0.166546 0.234282 0.433126
vertex 3.74939 -1.6138 2.93313
endloop
endfacet
facet normal 0.105339 -0.713641 -0.692546
outer loop
vertex -0.166546 0.234282 0.433126
vertex -0.0855948 0.310977 0.366408
vertex 3.74939 -1.6138 2.93313
endloop
endfacet
facet normal 0.105338 -0.713641 -0.692546
outer loop
vertex 3.74939 -1.6138 2.93313
vertex -0.0855948 0.310977 0.366408
vertex 3.83034 -1.5371 2.86641
endloop
endfacet
facet normal 0.102941 -0.715963 -0.690507
outer loop
vertex -0.0855948 0.310977 0.366408
vertex -0.00272523 0.387378 0.299545
vertex 3.83034 -1.5371 2.86641
endloop
endfacet
facet normal 0.102941 -0.715963 -0.690507
outer loop
vertex 3.83034 -1.5371 2.86641
vertex -0.00272523 0.387378 0.299545
vertex 3.91322 -1.4607 2.79955
endloop
endfacet
facet normal 0.102519 -0.71637 -0.690148
outer loop
vertex -0.00272523 0.387378 0.299545
vertex 0.0818505 0.464244 0.232322
vertex 3.91322 -1.4607 2.79955
endloop
endfacet
facet normal 0.10252 -0.71637 -0.690148
outer loop
vertex 3.91322 -1.4607 2.79955
vertex 0.0818505 0.464244 0.232322
vertex 3.99779 -1.38384 2.73232
endloop
endfacet
facet normal 0.104008 -0.714931 -0.691416
outer loop
vertex 0.0818505 0.464244 0.232322
vertex 0.16792 0.542331 0.164526
vertex 3.99779 -1.38384 2.73232
endloop
endfacet
facet normal 0.104008 -0.714931 -0.691416
outer loop
vertex 3.99779 -1.38384 2.73232
vertex 0.16792 0.542331 0.164526
vertex 4.08386 -1.30575 2.66453
endloop
endfacet
facet normal 0.107309 -0.711723 -0.694215
outer loop
vertex 0.16792 0.542331 0.164526
vertex 0.25527 0.622397 0.0959432
vertex 4.08386 -1.30575 2.66453
endloop
endfacet
facet normal 0.107309 -0.711723 -0.694215
outer loop
vertex 4.08386 -1.30575 2.66453
vertex 0.25527 0.622397 0.0959432
vertex 4.17121 -1.22568 2.59594
endloop
endfacet
facet normal 0.112285 -0.706843 -0.698402
outer loop
vertex 0.25527 0.622397 0.0959432
vertex 0.343688 0.705198 0.0263572
vertex 4.17121 -1.22568 2.59594
endloop
endfacet
facet normal 0.112285 -0.706843 -0.698402
outer loop
vertex 4.17121 -1.22568 2.59594
vertex 0.343688 0.705198 0.0263572
vertex 4.25963 -1.14288 2.52636
endloop
endfacet
facet normal 0.118801 -0.70037 -0.703824
outer loop
vertex 0.343688 0.705198 0.0263572
vertex 0.432963 0.791491 -0.0444441
vertex 4.25963 -1.14288 2.52636
endloop
endfacet
facet normal 0.118802 -0.70037 -0.703824
outer loop
vertex 4.25963 -1.14288 2.52636
vertex 0.432963 0.791491 -0.0444441
vertex 4.3489 -1.05659 2.45556
endloop
endfacet
facet normal 0.126672 -0.692427 -0.710281
outer loop
vertex 0.432963 0.791491 -0.0444441
vertex 0.522881 0.882036 -0.116677
vertex 4.3489 -1.05659 2.45556
endloop
endfacet
facet normal 0.126671 -0.692428 -0.71028
outer loop
vertex 4.3489 -1.05659 2.45556
vertex 0.522881 0.882036 -0.116677
vertex 4.43882 -0.966044 2.38332
endloop
endfacet
facet normal 0.135712 -0.683135 -0.717572
outer loop
vertex 0.522881 0.882036 -0.116677
vertex 0.613231 0.977588 -0.190555
vertex 4.43882 -0.966044 2.38332
endloop
endfacet
facet normal 0.135713 -0.683134 -0.717572
outer loop
vertex 4.43882 -0.966044 2.38332
vertex 0.613231 0.977588 -0.190555
vertex 4.52918 -0.870495 2.30945
endloop
endfacet
facet normal 0.145739 -0.672614 -0.7255
outer loop
vertex 0.613231 0.977588 -0.190555
vertex 0.703797 1.0789 -0.266291
vertex 4.52918 -0.870495 2.30945
endloop
endfacet
facet normal 0.145739 -0.672614 -0.725501
outer loop
vertex 4.52918 -0.870495 2.30945
vertex 0.703797 1.0789 -0.266291
vertex 4.61974 -0.769178 2.23371
endloop
endfacet
facet normal 0.156556 -0.661009 -0.733865
outer loop
vertex 0.703797 1.0789 -0.266291
vertex 0.794368 1.18674 -0.344099
vertex 4.61974 -0.769178 2.23371
endloop
endfacet
facet normal 0.156556 -0.661008 -0.733865
outer loop
vertex 4.61974 -0.769178 2.23371
vertex 0.794368 1.18674 -0.344099
vertex 4.71031 -0.661342 2.1559
endloop
endfacet
facet normal 0.167969 -0.648473 -0.742475
outer loop
vertex 0.794368 1.18674 -0.344099
vertex 0.884735 1.30185 -0.424197
vertex 4.71031 -0.661342 2.1559
endloop
endfacet
facet normal 0.167969 -0.648473 -0.742475
outer loop
vertex 4.71031 -0.661342 2.1559
vertex 0.884735 1.30185 -0.424197
vertex 4.80068 -0.546227 2.0758
endloop
endfacet
facet normal 0.17981 -0.635146 -0.751171
outer loop
vertex 0.884735 1.30185 -0.424197
vertex 0.974678 1.425 -0.506793
vertex 4.80068 -0.546227 2.0758
endloop
endfacet
facet normal 0.17981 -0.635146 -0.751171
outer loop
vertex 4.80068 -0.546227 2.0758
vertex 0.974678 1.425 -0.506793
vertex 4.89062 -0.423081 1.99321
endloop
endfacet
facet normal 0.191903 -0.621192 -0.759798
outer loop
vertex 0.974678 1.425 -0.506793
vertex 1.06399 1.55694 -0.592109
vertex 4.89062 -0.423081 1.99321
endloop
endfacet
facet normal 0.191903 -0.621192 -0.759798
outer loop
vertex 4.89062 -0.423081 1.99321
vertex 1.06399 1.55694 -0.592109
vertex 4.97993 -0.291136 1.90789
endloop
endfacet
facet normal 0.20411 -0.606748 -0.768242
outer loop
vertex 1.06399 1.55694 -0.592109
vertex 1.15246 1.69844 -0.680352
vertex 4.97993 -0.291136 1.90789
endloop
endfacet
facet normal 0.204111 -0.606748 -0.768242
outer loop
vertex 4.97993 -0.291136 1.90789
vertex 1.15246 1.69844 -0.680352
vertex 5.0684 -0.149646 1.81965
endloop
endfacet
facet normal 0.21613 -0.592167 -0.77629
outer loop
vertex 1.15246 1.69844 -0.680352
vertex 1.23984 1.85 -0.771643
vertex 5.0684 -0.149646 1.81965
endloop
endfacet
facet normal 0.21613 -0.592167 -0.77629
outer loop
vertex 5.0684 -0.149646 1.81965
vertex 1.23984 1.85 -0.771643
vertex 5.15578 0.00192113 1.72836
endloop
endfacet
facet normal 0.226464 -0.57934 -0.782994
outer loop
vertex 1.23984 1.85 -0.771643
vertex 1.32545 2.00964 -0.864998
vertex 5.15578 0.00192113 1.72836
endloop
endfacet
facet normal 0.226464 -0.57934 -0.782994
outer loop
vertex 5.15578 0.00192113 1.72836
vertex 1.32545 2.00964 -0.864998
vertex 5.2414 0.161559 1.635
endloop
endfacet
facet normal 0.234771 -0.568829 -0.788236
outer loop
vertex 1.32545 2.00964 -0.864998
vertex 1.40841 2.17386 -0.958799
vertex 5.2414 0.161559 1.635
endloop
endfacet
facet normal 0.234771 -0.568829 -0.788236
outer loop
vertex 5.2414 0.161559 1.635
vertex 1.40841 2.17386 -0.958799
vertex 5.32434 0.325781 1.5412
endloop
endfacet
facet normal 0.241585 -0.560072 -0.792437
outer loop
vertex 1.40841 2.17386 -0.958799
vertex 1.48778 2.33914 -1.05142
vertex 5.32434 0.325781 1.5412
endloop
endfacet
facet normal 0.241585 -0.560072 -0.792437
outer loop
vertex 5.32434 0.325781 1.5412
vertex 1.48778 2.33914 -1.05142
vertex 5.40372 0.49106 1.44858
endloop
endfacet
facet normal 0.247283 -0.552656 -0.795879
outer loop
vertex 1.48778 2.33914 -1.05142
vertex 1.56267 2.50196 -1.14121
vertex 5.40372 0.49106 1.44858
endloop
endfacet
facet normal 0.247282 -0.552656 -0.795879
outer loop
vertex 5.40372 0.49106 1.44858
vertex 1.56267 2.50196 -1.14121
vertex 5.47861 0.653882 1.35879
endloop
endfacet
facet normal 0.252099 -0.546319 -0.798738
outer loop
vertex 1.56267 2.50196 -1.14121
vertex 1.63216 2.65881 -1.22656
vertex 5.47861 0.653882 1.35879
endloop
endfacet
facet normal 0.252098 -0.546319 -0.798738
outer loop
vertex 5.47861 0.653882 1.35879
vertex 1.63216 2.65881 -1.22656
vertex 5.5481 0.810727 1.27344
endloop
endfacet
facet normal 0.256234 -0.540827 -0.801156
outer loop
vertex 1.63216 2.65881 -1.22656
vertex 1.69534 2.80616 -1.30582
vertex 5.5481 0.810727 1.27344
endloop
endfacet
facet normal 0.256234 -0.540827 -0.801156
outer loop
vertex 5.5481 0.810727 1.27344
vertex 1.69534 2.80616 -1.30582
vertex 5.61128 0.958075 1.19418
endloop
endfacet
facet normal 0.25982 -0.536026 -0.803224
outer loop
vertex 1.69534 2.80616 -1.30582
vertex 1.75129 2.94049 -1.37736
vertex 5.61128 0.958075 1.19418
endloop
endfacet
facet normal 0.25982 -0.536027 -0.803224
outer loop
vertex 5.61128 0.958075 1.19418
vertex 1.75129 2.94049 -1.37736
vertex 5.66724 1.09241 1.12264
endloop
endfacet
facet normal 0.262957 -0.531799 -0.805012
outer loop
vertex 1.75129 2.94049 -1.37736
vertex 1.79912 3.05829 -1.43956
vertex 5.66724 1.09241 1.12264
endloop
endfacet
facet normal 0.262957 -0.531798 -0.805012
outer loop
vertex 5.66724 1.09241 1.12264
vertex 1.79912 3.05829 -1.43956
vertex 5.71506 1.21021 1.06044
endloop
endfacet
facet normal 0.265719 -0.528053 -0.806569
outer loop
vertex 1.79912 3.05829 -1.43956
vertex 1.8379 3.15603 -1.49078
vertex 5.71506 1.21021 1.06044
endloop
endfacet
facet normal 0.265718 -0.528053 -0.806569
outer loop
vertex 5.71506 1.21021 1.06044
vertex 1.8379 3.15603 -1.49078
vertex 5.75385 1.30795 1.00922
endloop
endfacet
facet normal 0.268164 -0.524719 -0.807934
outer loop
vertex 1.8379 3.15603 -1.49078
vertex 1.86674 3.23021 -1.52938
vertex 5.75385 1.30795 1.00922
endloop
endfacet
facet normal 0.268163 -0.52472 -0.807934
outer loop
vertex 5.75385 1.30795 1.00922
vertex 1.86674 3.23021 -1.52938
vertex 5.78268 1.38213 0.970619
endloop
endfacet
facet normal 0.270324 -0.521759 -0.809131
outer loop
vertex 1.86674 3.23021 -1.52938
vertex 1.8847 3.2773 -1.55374
vertex 5.78268 1.38213 0.970619
endloop
endfacet
facet normal 0.270326 -0.521757 -0.809131
outer loop
vertex 5.78268 1.38213 0.970619
vertex 1.8847 3.2773 -1.55374
vertex 5.80064 1.42922 0.946254
endloop
endfacet
facet normal 0.272055 -0.519379 -0.810082
outer loop
vertex 1.8847 3.2773 -1.55374
vertex 1.8909 3.29378 -1.56223
vertex 5.80064 1.42922 0.946254
endloop
endfacet
facet normal 0.272056 -0.519377 -0.810082
outer loop
vertex 5.80064 1.42922 0.946254
vertex 1.8909 3.29378 -1.56223
vertex 5.80684 1.4457 0.937769
endloop
endfacet
endsolid

View File

@ -0,0 +1,98 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v1806 |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object blockMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
scale 1;
vertices
(
(-1 -3 -1)
( 5 -3 -1)
( 5 3 -1)
(-1 3 -1)
(-1 -3 5)
( 5 -3 5)
( 5 3 5)
(-1 3 5)
);
blocks
(
hex (0 1 2 3 4 5 6 7) (6 6 6) simpleGrading (1 1 1)
);
edges
(
);
boundary
(
maxY
{
type patch;
faces
(
(3 7 6 2)
);
}
minX
{
type patch;
faces
(
(0 4 7 3)
);
}
maxX
{
type patch;
faces
(
(2 6 5 1)
);
}
minY
{
type patch;
faces
(
(1 5 4 0)
);
}
minZ
{
type patch;
faces
(
(0 3 2 1)
);
}
maxZ
{
type patch;
faces
(
(4 5 6 7)
);
}
);
// ************************************************************************* //

View File

@ -0,0 +1,49 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v1806 s |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
application snappyHexMesh;
startFrom startTime;
startTime 0;
stopAt endTime;
endTime 2000;
deltaT 1;
writeControl timeStep;
writeInterval 100;
purgeWrite 0;
writeFormat binary;
writePrecision 6;
writeCompression off;
timeFormat general;
timePrecision 6;
runTimeModifiable true;
// ************************************************************************* //

View File

@ -0,0 +1,30 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v1806 |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object decomposeParDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
numberOfSubdomains 8;
method hierarchical;
coeffs
{
n (2 2 2);
//delta 0.001; // default=0.001
//order xyz; // default=xzy
dataFile "cellDecomposition";
}
// ************************************************************************* //

View File

@ -0,0 +1,57 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v1806 |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object fvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
ddtSchemes
{
default steadyState;
}
gradSchemes
{
default Gauss linear;
}
divSchemes
{
default none;
div(phi,U) bounded Gauss upwind;
div(phi,T) bounded Gauss upwind;
div(phi,k) bounded Gauss upwind;
div(phi,epsilon) bounded Gauss upwind;
div(phi,R) bounded Gauss upwind;
div(R) Gauss linear;
div((nuEff*dev(T(grad(U))))) Gauss linear;
}
laplacianSchemes
{
default Gauss linear limited corrected 0.333;
}
interpolationSchemes
{
default linear;
}
snGradSchemes
{
default limited corrected 0.333;
}
// ************************************************************************* //

View File

@ -0,0 +1,69 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v1806 |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solvers
{
p_rgh
{
solver PCG;
preconditioner DIC;
tolerance 1e-08;
relTol 0.01;
}
"(U|T|k|epsilon)"
{
solver PBiCGStab;
preconditioner DILU;
tolerance 1e-07;
relTol 0.1;
}
}
SIMPLE
{
nNonOrthogonalCorrectors 2;
pRefCell 0;
pRefValue 0;
residualControl
{
p_rgh 1e-2;
U 1e-4;
T 1e-3;
// possibly check turbulence fields
"(k|epsilon|omega)" 1e-3;
}
}
relaxationFactors
{
fields
{
p_rgh 0.7;
}
equations
{
U 0.2;
T 0.5;
"(k|epsilon)" 0.7;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,21 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v1806 |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object meshQualityDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// Include defaults parameters from master dictionary
#includeEtc "caseDicts/meshQualityDict"
// ************************************************************************* //

View File

@ -0,0 +1,326 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v1806 |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object snappyHexMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// Which of the steps to run
castellatedMesh true;
snap true;
addLayers false;
// 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
{
gap0
{
file "gap_transformed0.stl";
type triSurfaceMesh;
}
gap1
{
file "gap_transformed1.stl";
type triSurfaceMesh;
}
all
{
type searchableBox;
min (-1000 -1000 -1000);
max (1000 1000 1000);
}
};
// 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 0;
// Number of buffer layers between different levels.
// 1 means normal 2:1 refinement restriction, larger means slower
// refinement.
nCellsBetweenLevels 1;
// 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
(
);
// 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
{
"gap.*"
{
// Surface-wise min and max refinement level
level (2 2);
// Additional refinement in tight gaps
//MEJ: only to trigger entering gap finding
//gapLevelIncrement 1;
//MEJ: from cell level 2 onwards start checking for opposite
// surfaces
//gapLevel (1 2 10);
//MEJ: from cell level 2 onwards start checking for opposite
// surfaces
blockLevel 2;
}
}
// Resolve sharp angles
resolveFeatureAngle 60;
// 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
{
all
{
mode inside;
// Dummy base level
levels ((10000 0));
// If cells
// - have level 4..9
// - and are in a gap < 3 cell sizes across
// - with the gap on the inside ('inside'), outside ('outside')
// or both ('mixed') of the surface
// refine them
gapLevel (100 100 100);
gapMode inside;
}
}
// 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.5 -0.6 2.1);
// 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 false;
}
// 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 2.0;
//- Number of mesh displacement relaxation iterations.
nSolveIter 30;
//- Maximum number of snapping relaxation iterations. Should stop
// before upon reaching a correct mesh.
nRelaxIter 5;
// Feature snapping
//- Number of feature edge snapping iterations.
// Leave out altogether to disable.
nFeatureSnapIter 10;
//- Detect (geometric) features by sampling the surface (default=false)
//implicitFeatureSnap true;
//- Use castellatedMeshControls::features (default = true)
explicitFeatureSnap true;
}
// 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 true;
// Per final patch (so not geometry!) the layer information
layers
{
}
// Expansion factor for layer mesh
expansionRatio 1.0;
// 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.5;
// 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.
// See relativeSizes parameter.
minThickness 0.25;
// 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 1.7.x! (didn't do anything in 1.7.x)
nGrow 0;
// Advanced settings
// When not to extrude surface. 0 is flat surface, 90 is when two faces
// are perpendicular
featureAngle 60;
// Maximum number of snapping relaxation iterations. Should stop
// before upon reaching a correct mesh.
nRelaxIter 5;
// 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 0.5;
// 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 16x! 90 degrees corresponds to 130 in 16x.
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
// Merge tolerance. Is fraction of overall bounding box of initial mesh.
// Note: the write tolerance needs to be higher than this.
mergeTolerance 1e-6;
//// Debug flags
//debugFlags
//(
// mesh // write intermediate meshes
// attraction // write attraction as .obj files
//);
//
//// Write flags
//writeFlags
//(
// scalarLevels // write volScalarField with cellLevel for postprocessing
//);
// ************************************************************************* //