Casper123 |
January 14, 2024 11:58 |
non manifold points [answered]
Hey OpenFoamers,
For my simulation of a rotating wheel (which currently is only a simple cylinder), I have created a mesh using snappyHexMesh. However, when running my case the velocity always explodes and I do not think it is due to the boundary conditions as it usually starts somewhere within the mesh. I could not find any logic behind where the issue starts based on looking at each timestep. My simulation will be an MRF approach and using the pimpleFoam solver. For now, I have set the rotation to zero for simplicity.
However, after running checkMesh -writeSets vtk, it outputs a file called nonManifoldPoints.vtk. When loading it in ParaView it looks something like the attached images, where the red dots are the output. I cannot find which setting triggers these nonManifoldPoints or see why these points are non manifold using paraview.
I will provide my snappyHexMeshDict below, in that file I refer to the wheel surface as 'wiel'. Hope someone can help me out!
Edit:
I found the issue. The refinementSurfaces in the snappyHexMeshDict wants to refine both the MRF and the wiel surfaces. This caused an issue, therefore I disabled the refinementSurfaces MRF. This did remove the creation of the MRF cellzone, so for this I used topoSet.
Regards,
Casper
Code:
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: 7
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object snappyHexMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
castellatedMesh true;
snap true;
addLayers true;
geometry
{
wiel
{
type triSurfaceMesh;
file "wiel.stl";
}
MRF
{
type searchableCylinder;
point1 (0 -150 0);
point2 (0 150 0);
radius 300;
}
}
castellatedMeshControls
{
maxLocalCells 100000;
maxGlobalCells 2000000;
minRefinementCells 0;
nCellsBetweenLevels 2;
maxLoadUnbalance 0.10;
features
(
{
file "wiel.eMesh";
level 0;
}
);
resolveFeatureAngle 30;
refinementSurfaces
{
MRF
{
level (0 0);
cellZone cellMRFzone;
faceZone faceMRFzone;
cellZoneInside inside;
}
wiel
{
level (0 0);
}
}
refinementRegions
{
MRF
{
mode inside;
levels ((1E15 1));
}
}
locationInMesh (1000.0001 0 0); // Inside point
allowFreeStandingZoneFaces true;
}
// Settings for the snapping.
snapControls
{
nSmoothPatch 3;
tolerance 0.1;
nSolveIter 300;
nRelaxIter 10;
nFeatureSnapIter 10;
implicitFeatureSnap true;
explicitFeatureSnap false;
multiRegionFeatureSnap true;
}
// Settings for the layer addition.
addLayersControls
{
relativeSizes true;
layers
{
wiel
{
nSurfaceLayers 3;
}
}
expansionRatio 1.0;
finalLayerThickness 0.3;
minThickness 0.25;
nGrow 0;
featureAngle 30;
nRelaxIter 5;
nSmoothSurfaceNormals 1;
nSmoothNormals 3;
nSmoothThickness 10;
maxFaceThicknessRatio 0.5;
maxThicknessToMedialRatio 0.3;
minMedianAxisAngle 90;
nBufferCellsNoExtrude 0;
nLayerIter 50;
nRelaxedIter 20;
}
meshQualityControls
{
#include "meshQualityDict"
relaxed
{
maxNonOrtho 75;
}
}
writeFlags
(
);
mergeTolerance 1E-6;
// ************************************************************************* //
|