Autor
|
Thema: eMesh visualisieren für multiRegionSnapping (2721 mal gelesen)
|
bacengeugn Mitglied Konstrukteur
Beiträge: 181 Registriert: 10.11.2011
|
erstellt am: 16. Sep. 2014 10:02 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, gibt es eine Methode sich die Kanten einer eMesh-Datei im 3D anzeigen zu lassen? Vielleicht sogar mit paraView? Ich hab schon versucht sie zu laden aber ich wüsste nicht welchen Konverter ich nehmen soll, falls es einen passenden in paraFoam gibt. ich bekam mit snappyHexMesh folgende Meldung Code: --> FOAM Warning : From function autoSnapDriver::nobiggrin Snap(..) in file autoHexMesh/autoHexMeshDriver/autoSnapDriver.C at line 3117 Did not succesfully snap mesh. Continuing to snap to resolve easy surfaces but the resulting mesh will not satisfy your quality constraints
Darum möchte ich die Features überprüfen. da ich zwei STL-Dateien habe, deren Körper sich berühren sollen (Rohrstück und das Fluidvolumen) hab ich multiRegionFeatureSnap true; verwendet. Edit: wieso parst das Forum Zeichen innerhalb eines Codeblocks in Smileys um welchen Sinn hätte der Codeblock sonst als das eben nicht zu tun [Diese Nachricht wurde von bacengeugn am 16. Sep. 2014 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Shor-ty Moderator
Beiträge: 2463 Registriert: 27.08.2010 OpenFOAM-dev (Foundation) OpenFOAM-xxxx (ESI)
|
erstellt am: 16. Sep. 2014 10:18 <-- editieren / zitieren --> Unities abgeben: Nur für bacengeugn
|
bacengeugn Mitglied Konstrukteur
Beiträge: 181 Registriert: 10.11.2011
|
erstellt am: 16. Sep. 2014 10:27 <-- editieren / zitieren --> Unities abgeben:
|
bacengeugn Mitglied Konstrukteur
Beiträge: 181 Registriert: 10.11.2011
|
erstellt am: 16. Sep. 2014 10:45 <-- editieren / zitieren --> Unities abgeben:
Also die Features sind in Ordnung aber sHM erstellt nur das Mesh für das Fluidvolumen. Code: castellatedMesh true; snap true; addLayers false; geometry { Fluid.stl { type triSurfaceMesh; name Fluid; } Rohr.stl { type triSurfaceMesh; name Rohr; } };
castellatedMeshControls { maxLocalCells 1000000; maxGlobalCells 2000000; minRefinementCells 10; nCellsBetweenLevels 1; features ( { file "Fluid.eMesh"; level 1; } { file "Rohr.eMesh"; level 1; } ); refinementSurfaces // Surface-wise min and max refinement level { Fluid { level (1 1); } } resolveFeatureAngle 30; refinementRegions { } locationInMesh (0.001 0.001 0.01); allowFreeStandingZoneFaces false; } // Settings for the snapping. snapControls { nSmoothPatch 3; tolerance 4.0; nSolveIter 30; nRelaxIter 5; nFeatureSnapIter 15;
implicitFeatureSnap false; explicitFeatureSnap true; multiRegionFeatureSnap true; } addLayersControls { relativeSizes true; layers { } expansionRatio 1.2; finalLayerThickness 0.3; minThickness 0.1; nGrow 1; featureAngle 90;. nRelaxIter 3; nSmoothSurfaceNormals 1; nSmoothNormals 3; nSmoothThickness 10; maxFaceThicknessRatio 0.5; maxThicknessToMedialRatio 1; minMedianAxisAngle 90; nBufferCellsNoExtrude 0; nLayerIter 50; } meshQualityControls { maxNonOrtho 65; maxBoundarySkewness 20; maxInternalSkewness 4; maxConcave 80; minFlatness 0.5; minVol 1e-13; minTetQuality 1e-9; minArea -1; minTwist 0.02; minDeterminant 0.001; minFaceWeight 0.02; minVolRatio 0.01; minTriangleTwist -1; nSmoothScale 4; errorReduction 0.75; } debug 0; mergeTolerance 1E-6;
In der Ausgabe bekomm die in dem Eingangspost erwähnte Warnung. Soll ich hier mit den Toleranzen spielen? [Diese Nachricht wurde von bacengeugn am 16. Sep. 2014 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Shor-ty Moderator
Beiträge: 2463 Registriert: 27.08.2010 OpenFOAM-dev (Foundation) OpenFOAM-xxxx (ESI)
|
erstellt am: 16. Sep. 2014 11:02 <-- editieren / zitieren --> Unities abgeben: Nur für bacengeugn
Hallo, Unitis gibt man im Post selber an ... da kann man dann auch gleich noch den Thread als gelöst markieren. SnappyHexMesh macht alles richtig. Wenn du das Rohr auch noch als Mesh haben willst und damit quasi ein zwei Domain-Problem erstellst, musst du dich mit dem chtMultiRegion...Foam auseinandersetzen, sofern du Wärmeübertragungsprobleme berechnen willst. Solltest du hingegen nur eine Fluidströmung in dem Rohr untersuchen, dann hast du bereits deine Diskretisierung abgeschlossen.
------------------ Best regards, Tobias Holzmann Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bacengeugn Mitglied Konstrukteur
Beiträge: 181 Registriert: 10.11.2011
|
erstellt am: 16. Sep. 2014 11:24 <-- editieren / zitieren --> Unities abgeben:
Ja ich möchte die Temperaturverteilung im Rohr darstellen. Mein konkretes Problem ist komplexer aber zur Einarbeitung hab ich mir dieses Beispiel ausgesucht. Ich hatte bereits mittels Salome einen gleichartigen Fall erstellt und erfolgreich mit chtMultiRegionFoam mit einer solid und einer fluid region gerechnet. Bei Salome konnte ich aber nur mit Netgen ein Netz erstellen, was - so glaube ich - zumindest bei der groben Einstellung für Instabilitäten verantwortlich war. Ob es das Netz war oder nicht, ich wollte den Case auch mal mit snappyHexMesh erstellen und dachte das es mir beide Modelle vernetzt. Es sind ja beide geladen und nur eines vernetzt worden. Das ist mein Problem und mir fällt der entscheidente Unterschied zu den Tutorials z.B. snappyMultiRegionHeater nicht auf. Ich hab jetzt eben noch in die refinementSurfaces noch cellZones eingetragen, aber splitMeshRegions sieht nur eine Region. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Shor-ty Moderator
Beiträge: 2463 Registriert: 27.08.2010 OpenFOAM-dev (Foundation) OpenFOAM-xxxx (ESI)
|
erstellt am: 16. Sep. 2014 11:43 <-- editieren / zitieren --> Unities abgeben: Nur für bacengeugn
Hallo, dein Fehler ist:
- Du definierst nur Fluid in surfaceRefinement
- Du definierst keine Face, und CellZones in surfaceRefinement
Wie du schon erwähnt hast, ist der snappyMultiRegionHeater die passende Referenz. Ansonsten habe ich letzte Woche auch noch ein neues multi-Region Problem auf meiner Homepage als Tutorial veröffentlicht. Tutorials ------------------ Best regards, Tobias Holzmann Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bacengeugn Mitglied Konstrukteur
Beiträge: 181 Registriert: 10.11.2011
|
erstellt am: 16. Sep. 2014 12:06 <-- editieren / zitieren --> Unities abgeben:
Hallo Tobias, ich hab beides ausgebessert und sHM hat immer noch nur das Fluidvolumen erkannt. Ich habe aber noch folgendes entdeckt. Während ideasToUnvFoam unter constant die jeweiligen Ordner für die Regionen erstellt, müssen diese Ordner VOR dem Aufruf von snappyHexMesh erstellt worden sein. Ganz sicher bin ich mir mit dieser Behauptung nicht, da ich jetzt einen anderen Fehler in sHM bekomme aber den finde ich hoffentlich noch. Ich hab im Tutorial noch mal ./Allclean gemacht und eben gesehen dass die Ordnerstruktur bereits vor dem Aufruf von sHM besteht. Wenn es einem keiner sagt, kommt man nunmal einfach nicht drauf, dass die Regionen von sHM nicht anhand der Dict sondern anhand der Casestruktur erkannt werden. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Shor-ty Moderator
Beiträge: 2463 Registriert: 27.08.2010 OpenFOAM-dev (Foundation) OpenFOAM-xxxx (ESI)
|
erstellt am: 16. Sep. 2014 12:10 <-- editieren / zitieren --> Unities abgeben: Nur für bacengeugn
Nein du liegst falsch, die Regionen werden erst erstellt, wenn du
Code:
splitMeshRegions -cellZones
eingibst. Poste mal deine Log-Datei von sHM + dein derzeitiges sHMDict. ------------------ Best regards, Tobias Holzmann Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bacengeugn Mitglied Konstrukteur
Beiträge: 181 Registriert: 10.11.2011
|
erstellt am: 16. Sep. 2014 16:00 <-- editieren / zitieren --> Unities abgeben:
ich Blick mit meinen Änderungen und den Auswirkungen nicht mehr so ganz durch, da manche Dateien von sHM nicht neu erstellt werden. Ich hab jetzt deine vorgeschlagenen Ausbesserungen drin und in der controlDict den Tippfehler chMultiRegionFoam gefunden. Außerdem hab ich alle Dateien gelöscht, die blockMesh, snappyHexMesh und splitMeshRegions ausgeben können. Code: . ├── 0 │ ├── alphat │ ├── epsilon │ ├── k │ ├── p │ ├── p_rgh │ ├── rho │ ├── T │ └── U ├── constant │ ├── polyMesh │ │ └── blockMeshDict │ ├── regionProperties │ └── triSurface │ ├── Fluid.stl │ └── Rohr.stl └── system ├── controlDict ├── Fluid │ ├── changeDictionaryDict │ ├── fvSchemes │ └── fvSolution ├── fvSchemes ├── fvSolution ├── Rohr │ ├── changeDictionaryDict │ ├── fvSchemes │ └── fvSolution ├── snappyHexMeshDict └── surfaceFeatureExtractDict
ich hab ausgeführt: blockMesh surfaceFeatureExtract snappyHexMesh -overwrite splitMeshRegions -cellZones -overwrite das snappyHexMeshDict und die Logdatei sind angehängt. nachfolgend das Ergebnis des splittens:
Code: /*---------------------------------------------------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 2.3.0 | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ Build : 2.3.0-f5222ca19ce6 Exec : splitMeshRegions -cellZones -overwrite Date : Sep 15 2014 Time : 14:38:35 Host : "ubuntu" PID : 17857 Case : /home/estang/OpenFOAM/estang-2.3.0/run/chMultiRegionFoamTest_Rohrströmung_snappy nProcs : 1 sigFpe : Enabling floating point exception trapping (FOAM_SIGFPE). fileModificationChecking : Monitoring run-time modified files using timeStampMaster allowSystemOperations : Disallowing user-supplied system call operations// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Create time Create mesh for time = 0 Creating single patch per inter-region interface. Trying to match regions to existing cell zones. Number of regions:1
Writing region per cell file (for manual decomposition) to "/home/estang/OpenFOAM/estang-2.3.0/run/chMultiRegionFoamTest_Rohrströmung_snappy/constant/cellToRegion" Writing region per cell as volScalarField to "/home/estang/OpenFOAM/estang-2.3.0/run/chMultiRegionFoamTest_Rohrströmung_snappy/0/cellToRegion" Region Cells ------ ----- 0 43936 Region Zone Name ------ ---- ---- 0 -1 domain0 Sizes of interfaces between regions: Interface Region Region Faces --------- ------ ------ ----- Reading volScalarField alphat Reading volScalarField p_rgh Reading volScalarField rho Reading volScalarField cellToRegion Reading volScalarField p Reading volScalarField T Reading volScalarField k Reading volScalarField epsilon Reading volVectorField U Only one region. Doing nothing. End
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Shor-ty Moderator
Beiträge: 2463 Registriert: 27.08.2010 OpenFOAM-dev (Foundation) OpenFOAM-xxxx (ESI)
|
erstellt am: 16. Sep. 2014 16:43 <-- editieren / zitieren --> Unities abgeben: Nur für bacengeugn
- Es fehlt bei dir folgende Ausgabe:
Code:
Introducing zones for interfaces --------------------------------Surface : bottomAir faceZone : bottomAir cellZone : bottomAir Surface : topAir faceZone : topAir cellZone : topAir Surface : leftSolid faceZone : leftSolid cellZone : leftSolid Surface : rightSolid faceZone : rightSolid cellZone : rightSolid Surface : heater faceZone : heater cellZone : heater Found 5 closed, named surfaces. Assigning cells in/outside these surfaces to the corresponding cellZone.
- Dies liegt daran, dass du meine Hinweise nicht ganz übernommen hast, da dir die FaceZones im sHMDict fehlen
Zitat: Original erstellt von Shor-ty: Hallo,dein Fehler ist:
- Du definierst keine Face, und CellZones in surfaceRefinement
PS: Schön das du mit tree arbeitest, das macht vieles schöner PPS: Die Ordner system/Rohr und syste/Fluid werden von splitMeshRegions auch erstellt jedoch muss man die fvSoltions und fvSchemes entwprechend solid/fluid anpassen. ------------------ Best regards, Tobias Holzmann Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Berglöwe Mitglied Student
Beiträge: 21 Registriert: 18.08.2014
|
erstellt am: 16. Sep. 2014 16:51 <-- editieren / zitieren --> Unities abgeben: Nur für bacengeugn
Hi, ich arbeite auch gerade an einem Multiregion snappyHexmesh Fall mit ganz ähnlichen problemen. Ich denke mal in deiner cellzones werden die entsprechenden Regionen auch nicht definiert. Irgendwie habe ich es hinbekommen das die Regionen korrekt erkannt werden , leider weis ich nich genau wie und habe dafür habe jetzt auch mit anderen problemen zu kämpfen. Im Anhang mal meine sHMDict Grüße Robert Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bacengeugn Mitglied Konstrukteur
Beiträge: 181 Registriert: 10.11.2011
|
erstellt am: 17. Sep. 2014 07:57 <-- editieren / zitieren --> Unities abgeben:
Ich hab nun auch die faceZones mit eingefügt. Dabei hatte ich Probleme mit der Bezeichnung. Wenn ich die Bezeichnung enstprechend dem Tutorial chtMultiRegionHeater aufgebaut habe also
Code:
geometry { Fluid.stl { type triSurfaceMesh; name Fluid; } refinementSurfaces { Fluid { level (0 0); faceZone Fluid; cellZone Fluid; cellZoneInside inside; } } }
Wurde in autoRefineDriver.doRefine eine Ausnahme ausgelöst. Ich hab das Code: name Fluid;
entfernt und in refinementSurfaces direkt auf die STL verwiesen. Anschließend lief es durch. Auch das splitten hat funktioniert allerdings hat es mir statt des Rohres die Region "domain1" erzeugt und ein leicht eingeschnürtes quaderförmiges Netz erstellt. Dank Robert weiß ich nun, wie ich meine STL Dateien überprüfen kann und voilà: Das Rohr hat kein geschlossenes Solid. Ich werds also neu erstellen. Danke soweit für die Hilfe euch beiden. [Diese Nachricht wurde von bacengeugn am 17. Sep. 2014 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |