Autor
|
Thema: STL - snappyHexMesh (9565 mal gelesen)
|
Shor-ty Moderator
Beiträge: 2463 Registriert: 27.08.2010 OpenFOAM-dev (Foundation) OpenFOAM-xxxx (ESI)
|
erstellt am: 05. Okt. 2010 23:20 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, wie das Thema so das Problem. Ich versuche gerade vergebens ein STL mit snappyHexMesh zu vernetzen. Stoße hier allerdings auf große Probleme. Hab mir das Tutorial von "heatTransfer / chtMultiRegionFoam / snappyHexMesh" angeschaut. Teils verstehe ichs Teils auch nicht. Das Tutorial "incompressible / simpleFoam / motorBike" hab ich mir auch angeschaut. Hab mir mal das komplette Verzeichnis snappyHexMesh vom Tutorial mal kopiert um herumzuspielen. Allerdings bring ich nichts auf dir Reihe. So hier die Fragen: Das Netz das ich zuerst mit blockMesh anlege muss genau mit der Geometriegröße der zu vernetzenden STL Datei sein oder nicht? Hab die STL-Datei in constant / triSurface und mir dort auch noch ein Ordner Namens "rohr" angelegt.
In der snappyHexMeshDict hab ich dann anstatt des heaters mein rohr angegeben und dementsprechend angepasst. Die anderen STL - Dateien hab ich mit /* */ auser betracht gelassen. (wohl ist hier auch schon ein Fehler dabei). Hab die "Runall" Datei dann auch noch angepasst. Es läuft durch allerdings wenn ich dann paraview öffne und mir mein erstelltes File "rohr" ansehe kommt eine Fehlermeldung. Sorry wenn die Frage für viele wohl sehr einfach klingen mag, aber ich bin erst seit 3 Wochen an CFD dran. Hoff mir kann einer helfen.
------------------ -- Grüße Tobi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
t.schumacher Mitglied CFD Engineer
Beiträge: 184 Registriert: 03.05.2010
|
erstellt am: 06. Okt. 2010 12:10 <-- editieren / zitieren --> Unities abgeben: Nur für Shor-ty
Dann poste doch bitte mal die Fehlermeldung. Ansonsten kann man schlecht helfen. Wenn aber snappy durchläuft und der Fehler bei paraview auftritt, ist doch schon mal was. Hast du mal checkMesh laufen lassen um das Gitter zu überprüfen. Thomas S 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: 06. Okt. 2010 12:20 <-- editieren / zitieren --> Unities abgeben:
|
Shor-ty Moderator
Beiträge: 2463 Registriert: 27.08.2010 OpenFOAM-dev (Foundation) OpenFOAM-xxxx (ESI)
|
erstellt am: 06. Okt. 2010 16:09 <-- editieren / zitieren --> Unities abgeben:
(Bezogen auf Tutorial / heatTransfer/chtMultiRegionFoam/snappyHexMesh) Hab ein einfaches Beispiel. Via Catia habe ich einen Stab gemacht (x y) = Radius 10mm (z) Länge 100 mm Via blockMesh habe ich dann dementsprechend ein Block generiert mit den gleichen Abmessungen (10 x 10 x 100) und ein Gitter mit (10 10 10) entwickeln lassen. Im "Runall" habe ich dann nachgeschaut was dort alles ausgeführt wird. - blockMesh - snappyHexMesh Habe unter constant ein Ordner Namens "stab" angelegt und die STL Datei in triSurface eingefügt. Die anderen Ordner des Tutorials habe ich aus Übersichtlichkeit gelöscht. Im Ordner system/snappyHexMeshDict habe ich nicht viel geändert. Nur den heater unbenannt in stab und die anderen Files rausgeworfen: Code: /*---------------------------------------------------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 1.7.1 | | \\ / A nd | Web: www.OpenFOAM.com | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/FoamFile { version 2.0; format ascii; //root "/home/penfold/mattijs/foam/mattijs2.1/run/icoFoam"; // case "cavity"; instance "system"; local ""; class dictionary; object autoHexMeshDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // 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 { /* bottomAir.stl { type triSurfaceMesh; name bottomAir; }
... gekürzt ... // ************************************************************************* //
und hab danach snappyHexMesh laufen lassen. Hier die Logfile von snappyHexMesh: Code: /*---------------------------------------------------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 1.7.1 | | \\ / A nd | Web: www.OpenFOAM.com | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ Build : 1.7.1-320803922ee1 Exec : snappyHexMesh -overwrite Date : Oct 06 2010 Time : 15:47:56 Host : shorty-desktop PID : 2776 Case : /home/shorty/OpenFOAM/shorty-1.7.1/run/snappyHexMesh nProcs : 1 SigFpe : Enabling floating point exception trapping (FOAM_SIGFPE).// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Create time Create mesh for time = 0.002 Read mesh in = 0.01 s Overall mesh bounding box : (0 0 0) (0.01 0.01 0.1) Relative tolerance : 1e-06 Absolute matching distance : 1.0099505e-07 ... gekürzt ...
Edge intersection testing: Number of edges : 3300 Number of edges to retest : 1956 Number of intersected edges : 0 Snapped mesh : cells:1000 faces:3300 points:1331 Cells per refinement level: 0 1000 Writing mesh to time 0.002 Written mesh in = 0.02 s. Mesh snapped in = 0.07 s. Finished meshing in = 0.17 s. End
Mittels checkMesh wurden auch keine Fehler ausgegeben. Ich glaube der nimmt mein STL File nicht oder? Hab leider noch überhaupt keine Erfahrung mit snappy gemacht.
Über einen Rat wäre ich sehr angetan. Grüße Tobi [Diese Nachricht wurde von Shor-ty am 07. Okt. 2010 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
t.schumacher Mitglied CFD Engineer
Beiträge: 184 Registriert: 03.05.2010
|
erstellt am: 07. Okt. 2010 08:24 <-- editieren / zitieren --> Unities abgeben: Nur für Shor-ty
Hi, soweit scheint alle richtig zu sein. Deine STL Datei wird von snappy erkannt. Bin mir nicht ganz klar warum du einen Ordner "stab" erstellt hast. Deine stab.stl sollte unter /constant/triSurface liegen. Das "Problem" ist wohl, dass dein Gitter zu grob ist. Soll heissen snappy macht nix weil einfach zu wenig Zellen da sind. Versuch mal dein blockMesh mit 20x20x20 zu erzeugen oder noch feiner. Viel Erfolg Thomas S 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: 07. Okt. 2010 11:26 <-- editieren / zitieren --> Unities abgeben:
Hey, werd`s später nochmals Versuchen und mein Gitter verfeinern. Den "stab" Ordner habe ich erstellt, da im Tutorial (heatTransfer) auch für jede STL - Datei ein Ordner erstellt wurde. Bei dem Tutorial befindet sich dann das Netz in den entsprechenden Ordner`n so weit ich das jetz mitbekommen habe. Glaub das liegt auch daran, dass dort mehrere STL Dateien integriert sind und via splitMesh die expliziten Surfaces in die Ordner geschrieben werden. (bin mir aber nicht 100% sicher). Werd jedenfalls mein Netz verfeinern und Snappy nochmals laufen lassen. Zudem habe ich noch nen sehr tolles Tutorials gefunden und werd das nachher noch durcharbeiten und natürlich Bericht erstatten. Danke für die schnelle Antwort Thomas. Beste Grüße Tobi 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: 07. Okt. 2010 15:34 <-- editieren / zitieren --> Unities abgeben:
Hallo Thomas, hab meine blockMeshDict geändert. Hab den Block an und für sich vergrößert und verfeinert. Hier mal was interessantes: Nach erfolgreichem Durchlauf von blockMesh + snappyHexMesh --> paraFoam. Hab mal im Anhang die Bilder vom Timestep 0 und dem Timestep 0.001 angehängt. Irgendwelche Vermutungen? Grüße Tobi 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: 07. Okt. 2010 16:51 <-- editieren / zitieren --> Unities abgeben:
Hey,... also ich komm jetzt mit snappyHexMesh klar. Funktioniert alles. Benötige nur noch Hilfe, die einzelnen Dateien der zu vernetzenden Geometrie zu separieren. Mein blockMesh - Geometrie war zu klein. Hab den Skalierungsfaktor immer aus den Augen gelassen. [Diese Nachricht wurde von Shor-ty am 08. Okt. 2010 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: 10. Okt. 2010 00:10 <-- editieren / zitieren --> Unities abgeben:
Hey Leute, ich hab noch n !Problem! mit der Vernetzung mithilfe von snappyHexMesh. Hab meine STL welche die Abmessung: 550mm x 13mm x 2,5mm besitzt. Wenn ich in blockMeshDict folgendes stehen hab: convertToMeters 1;
Code:
vertices ( (0 -0.007 -0.0015) (0.550 -0.007 -0.0015) (0.550 0.007 -0.0015) (0 0.007 -0.0015) (0 -0.007 0.0015) (0.550 -0.007 0.0015) (0.550 0.007 0.0015) (0 0.007 0.0015) );
läuft snappy zwar erfolgreich durch aber es wird nichts vernetzt. Im Gegenzug hierzu wird bei dieser blockMeshDict meine STL vernetzt: convertToMeters 1; Code: vertices ( (0 -7 -1.5) (550 -7 -1.5) (550 7 -1.5) (0 7 -1.5) (0 -7 1.5) (550 -7 1.5) (550 7 1.5) (0 7 1.5) );
Aber des sind ja 550 Meter in x - Richtung - des kann ja nicht stimmen :/ Und ich hab noch nicht verstanden was in snappyHexMeshDict der Punkt "locatedinMesh" besagen soll.Ich bin langsam am verzweifeln :/ Bitte um Rat/Hilfe Grüße Tobi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
TTB Mitglied CFD Engineer
Beiträge: 353 Registriert: 02.10.2008 BIM HVACTool für Windows OpenFOAM-2.2.x
|
erstellt am: 10. Okt. 2010 09:04 <-- editieren / zitieren --> Unities abgeben: Nur für Shor-ty
Hallo Tobi, ich gebe dir mal ein Beispiel: Stelle dir vor, du hast eine Kugel (als STL-Format vorliegend) mit einem Durchmesser von 2m die du vernetzen möchtest. Damit snappyHexMesh arbeiten kann brauchst du ein Hintergrundnetz, was du mit blockMesh erzeugst. Das Hintergrundnetz muss jetzt mind. so groß sein wie deine Kugel, sprich du hast eine Box von ca. 2,5m x 2,5m x 2,5m. Das Hintergrundnetz wie auch deine STL hat den Mittelpunkt bei X=0,Y=0,Z=0. Jetzt bietet dir snappyHexMesh 2 Möglichkeiten an: 1) Du kannst die Kugel innerhalb vernetzen oder 2) außenherum. Das gibst du jetzt mit einem Punkt vor: "locateInMesh", verstanden? Bei x=0, y=0, z=0 wäre es innhalb, bei x=2,1 y=2,1 z=2,1 wäre es außerhalb deiner Kugel. Du solltest auch vorher immer kontrollieren, ob deine Dimensionen passen: - Erzeuge dir das Netz (blockMesh) - Zeige es dir in ParaView an - Lade in ParaView alle deine STLs rein - Liegen deine STLs innerhalb deines Netzes? Das zeigt dir jetzt ParaView :-) So, hoffe, dir etwas geholfen zu haben. Gruß Thomas 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: 10. Okt. 2010 13:33 <-- editieren / zitieren --> Unities abgeben:
Hey Thomas, joa das mit dem locateInMesh (x y z) hast du sehr gut erklärt und das man in paraview die STL's laden kann wusst ich noch nicht (auch sehr hilfreich). Ansonsten weiß ich, dass das Hintergrundnetz größer sein muss, aber sehr gut um den Punkt zu erklären. Ich werde es testen und wird sicherlich funktionieren - ich bin mal zuversichtlich Dank dir. Beste Grüße Tobi 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: 10. Okt. 2010 23:30 <-- editieren / zitieren --> Unities abgeben:
Hey ho zusammen, ich habe des Rätsels Problem erkannt und gelöst.
Catia arbeitet im "mm" Bereich, somit wird ein Punkt in der STL - Datei mit Koordinaten 500 20 10 eben in Millimeter wiedergegeben. Anderst bei OpenFoam, da sind das 500 20 und 10 Meter. Lösung:
Ich hab mir ein Skript geschrieben, dass mir die STL - Datei von Catia von "mm" auf "m" konvertiert. Wer interesse hat und das gleiche Problem hat kann sich bei mir melden und ich schicks ihm zu. Somit wieder ein Problem von vielen weniger Grüße Tobi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
t.schumacher Mitglied CFD Engineer
Beiträge: 184 Registriert: 03.05.2010
|
erstellt am: 11. Okt. 2010 10:08 <-- editieren / zitieren --> Unities abgeben: Nur für Shor-ty
|
Shor-ty Moderator
Beiträge: 2463 Registriert: 27.08.2010 OpenFOAM-dev (Foundation) OpenFOAM-xxxx (ESI)
|
erstellt am: 11. Okt. 2010 12:30 <-- editieren / zitieren --> Unities abgeben:
|