Hr_kules |
July 20, 2022 08:17 |
Multi region spliting doesn't result in desired boundaries
Hey everyone,
i am still stuck with my mutliregion meshin problem. After i figured that closed stls are necessary for desired results. I am currently creating my stls with a python script. The first test worked like a charm, however if i make some changes to the geometry the same procedure doesn't work anymore and i got patches split between the regions. I have made a surfaceCheck for both stls describing the whole region. The first check of the working example delivers following:
Code:
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: 9
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
Build : 9-b456138dc4bc
Exec : surfaceCheck RegionP0.stl
Date : Jul 20 2022
Time : 15:49:26
Host : "nico-Tower"
PID : 102498
I/O : uncollated
Case : /home/nico/Spyder/toOpenfoam
nProcs : 1
sigFpe : Enabling floating point exception trapping (FOAM_SIGFPE).
fileModificationChecking : Monitoring run-time modified files using timeStampMaster (fileModificationSkew 10)
allowSystemOperations : Allowing user-supplied system call operations
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Reading surface from "RegionP0.stl" ...
Statistics:
Triangles : 84
Vertices : 44
Bounding Box : (-0.25 -0.3086 -0.055) (0.25 0.055 0.03)
Region Size
------ ----
wallplate.stl 24
wallfluidhot.stl 26
inlethot.stl 2
outlethot.stl 2
outletcold.stl 2
inletcold.stl 2
wallfluidcold.stl 26
Surface has no illegal triangles.
Triangle quality (equilateral=1, collapsed=0):
0 .. 0.05 : 0.0714286
0.05 .. 0.1 : 0.285714
0.1 .. 0.15 : 0.047619
0.15 .. 0.2 : 0
0.2 .. 0.25 : 0.047619
0.25 .. 0.3 : 0.190476
0.3 .. 0.35 : 0.047619
0.35 .. 0.4 : 0.047619
0.4 .. 0.45 : 0
0.45 .. 0.5 : 0
0.5 .. 0.55 : 0
0.55 .. 0.6 : 0
0.6 .. 0.65 : 0.0952381
0.65 .. 0.7 : 0
0.7 .. 0.75 : 0.0952381
0.75 .. 0.8 : 0.0238095
0.8 .. 0.85 : 0.0238095
0.85 .. 0.9 : 0
0.9 .. 0.95 : 0.0238095
0.95 .. 1 : 0
min 0.00155657 for triangle 61
max 0.932917 for triangle 59
Edges:
min 0.005 for edge 19 points (-0.25 -0.1443 -0.01)(-0.25 -0.1443 -0.015)
max 0.500899 for edge 85 points (-0.25 -0.3086 0.03)(0.25 -0.3086 0)
Checking for points less than 1e-6 of bounding box ((0.5 0.3636 0.085) metre) apart.
Found 0 nearby points.
Surface is closed. All edges connected to two faces.
Number of unconnected parts : 1
Number of zones (connected area with consistent normal) : 36
More than one normal orientation.
End
the second not working example:
Code:
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: 9
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
Build : 9-b456138dc4bc
Exec : surfaceCheck RegionP1.stl
Date : Jul 20 2022
Time : 15:49:33
Host : "nico-Tower"
PID : 102504
I/O : uncollated
Case : /home/nico/Spyder/toOpenfoam
nProcs : 1
sigFpe : Enabling floating point exception trapping (FOAM_SIGFPE).
fileModificationChecking : Monitoring run-time modified files using timeStampMaster (fileModificationSkew 10)
allowSystemOperations : Allowing user-supplied system call operations
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Reading surface from "RegionP1.stl" ...
Statistics:
Triangles : 140
Vertices : 72
Bounding Box : (-0.25 -0.3086 -0.055) (0.25 0.09 0.03)
Region Size
------ ----
wallplate.stl 40
wallfluidhot.stl 46
inlethot.stl 2
outlethot.stl 2
outletcold.stl 2
inletcold.stl 2
wallfluidcold.stl 46
Surface has no illegal triangles.
Triangle quality (equilateral=1, collapsed=0):
0 .. 0.05 : 0.0428571
0.05 .. 0.1 : 0.257143
0.1 .. 0.15 : 0.0571429
0.15 .. 0.2 : 0
0.2 .. 0.25 : 0.0285714
0.25 .. 0.3 : 0.114286
0.3 .. 0.35 : 0.0285714
0.35 .. 0.4 : 0.0571429
0.4 .. 0.45 : 0
0.45 .. 0.5 : 0.0285714
0.5 .. 0.55 : 0
0.55 .. 0.6 : 0
0.6 .. 0.65 : 0.171429
0.65 .. 0.7 : 0
0.7 .. 0.75 : 0.171429
0.75 .. 0.8 : 0
0.8 .. 0.85 : 0.0142857
0.85 .. 0.9 : 0.0142857
0.9 .. 0.95 : 0.0142857
0.95 .. 1 : 0
min 0.00155657 for triangle 106
max 0.932917 for triangle 96
Edges:
min 0.005 for edge 20 points (-0.25 -0.0893 -0.015)(-0.25 -0.0893 -0.01)
max 0.500899 for edge 143 points (-0.25 -0.3086 0.03)(0.25 -0.3086 0)
Checking for points less than 1e-6 of bounding box ((0.5 0.3986 0.085) metre) apart.
Found 0 nearby points.
Surface is closed. All edges connected to two faces.
Number of unconnected parts : 1
Number of zones (connected area with consistent normal) : 62
More than one normal orientation.
End
And this is the snappyhexmeshdict i am using:
Code:
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: 9
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class dictionary;
object snappyHexMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#includeEtc "caseDicts/mesh/generation/snappyHexMeshDict.cfg"
castellatedMesh true;
snap true;
addLayers false;
geometry
{
heatexchanger
{
type triSurfaceMesh;
file "Region.stl";
regions
{
wallfluidhot.stl {name wallfluidhot;}
inlethot.stl {name Inlethot;}
outlethot.stl {name Outlethot;}
wallplate.stl {name wallplate;}
wallfluidcold.stl {name wallfluidcold;}
inletcold.stl {name Inletcold;}
outletcold.stl {name Outletcold;}
}
}
fluidhotToPlate
{
type triSurfaceMesh;
file "upperInterface.stl";
}
fluidcoldToPlate
{
type triSurfaceMesh;
file "lowerInterface.stl";
}
};
castellatedMeshControls
{
features
(
{
file "Region.eMesh";
level 2;
file "upperInterface.eMesh";
level 2;
file "lowerInterface.eMesh";
level 2;
}
);
refinementSurfaces
{
heatexchanger
{
level (0 0);
regions
{
Inletcold { level (2 2); patchInfo { type patch;} }
Outletcold { level (2 2); patchInfo { type patch;} }
wallfluidcold { level (3 3); patchInfo { type wall; } }
Inlethot { level (2 2); patchInfo { type patch;} }
Outlethot { level (2 2); patchInfo { type patch;} }
wallfluidhot { level (3 3); patchInfo { type wall; } }
wallplate { level (3 3); patchInfo { type wall; } }
}
//cellZone plate;
//mode insidePoint;
//insidePoint (0 -0.305 -0.003);
}
fluidhotToPlate
{
level (2 2);
faceZone fluidhotToPlate;
cellZone fluidhot;
mode insidePoint;
insidePoint (0 -0.28 0.01);
}
fluidcoldToPlate
{
level (2 2);
faceZone fluidcoldToPlate;
cellZone fluidcold;
mode insidePoint;
insidePoint (0 -0.28 -0.03);
}
}
nCellsBetweenLevels 1;
locationInMesh (0 -0.28 -0.01);
}
snapControls
{
nSmoothPatch 5;
tolerance 2.0;
nSolveIter 100;
nRelaxIter 5;
nFeatureSnapIter 10;
explicitFeatureSnap true;
implicitFeatureSnap false;
multiRegionFeatureSnap false;
}
addLayersControls
{
relativeSizes true;
minThickness 1;
finalLayerThickness 1;
expansionRatio 1;
layers
{}
}
// ************************************************************************* //
Is there anything fundamentally wrong? I can't understand why the splitting of the meshing fails if the surface is closed. Additionally: I use the interfaces and the other parts of the stls to test each desired region before meshing wether they are closed or not and for every run, they were closed. I thought having closed stls would finally solve my problem, but i can't seem to solve it alone.
If any additional information is required, i will provide it.
Kind regards and stay safe.
|