Autor
|
Thema: Fluss mit snappyHexMesh vernetzen (1601 mal gelesen)
|
Klauza Mitglied
Beiträge: 44 Registriert: 14.07.2011
|
erstellt am: 14. Jul. 2011 15:12 <-- editieren / zitieren --> Unities abgeben:
Hallo erst mal hier im Forum! Ich bin neu im Umgang mit OpenFOAM und habe so meine lieben Probleme. Aktuell geht es darum, einen Fluss mit snappy HexMesh zu vernetzen. Mein Problem dabei ist, dass ich das Beispiel im UserGuide von OpenFOAM (das Beispiel mit dem Auto) nicht auf mein Problem transferieren kann. Ich habe ein Flussufer als STL Datei erzeugt und möchte jetzt den Fluss vernetzen. Kann ich nun mit blockMesh im Inneren des Flusses eine grobe Vernetzung machen, die ich dann mit snappy verfeinern kann? Oder kann ich auch einen kompletten Block um meine Geometrie legen und nachher alles außerhalb der STL Datei "löschen" und nur das Netz innerhalb weiter verwenden? Ich hoffe irgendjemand kann mir hier ein bisschen weiterhelfen, ich komm nicht wirklich weiter. Vielen Dank schon mal! 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: 14. Jul. 2011 16:34 <-- editieren / zitieren --> Unities abgeben: Nur für Klauza
Willkommen. Du hast das Flussbett + Ufer als STl. Allerdings nicht die Wasseroberfläche nehm ich an? Möglichkeit 1: Du erzeugst dir ein grobes blockMesh und definierst über den oberen Rand des blockmeshes deine Wasseroberfläche. Dann mit snappy das eigentliche Gitter erzeugen. Möglichkeit 2: Du erzeugst dir deinen Wasserspiegel in einem CAD Tool. Dann reicht es wenn deine blockMesh alles grob umfasst. Gleiches gilt natürlich auch für inlet & outlet. Diese müssen als Flächen vorliegen oder über blockMesh definiert werden. Gruß Thomas S
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Klauza Mitglied
Beiträge: 44 Registriert: 14.07.2011
|
erstellt am: 15. Jul. 2011 09:29 <-- editieren / zitieren --> Unities abgeben:
Danke dir für deine schnelle Antwort. Du hast recht, ich habe nur mein Ufer als STL File, will aber zuerst eine reine 2 D Simulation der Strömung machen, also "ohne" Wasserspiegel. Da ein STL File aber immer 3 D ist, hat mein File auch eine ganz minimale Dicke. Meine Frage ist jetzt: 1. soll ich mit blockMesh ein Grundnetz innerhalb des Flussufers erzeugen, welches ich mit Snappy verfeiner oder 2. mit blockMesh ein Grundnetzt "außen herum". Könnte ich dann sagen ich will nur den Teil des Gitters innerhalb der STL? Gruß Klauza Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Klauza Mitglied
Beiträge: 44 Registriert: 14.07.2011
|
erstellt am: 17. Jul. 2011 15:19 <-- editieren / zitieren --> Unities abgeben:
|
TTB Mitglied CFD Engineer
Beiträge: 353 Registriert: 02.10.2008 BIM HVACTool für Windows OpenFOAM-2.2.x
|
erstellt am: 17. Jul. 2011 18:12 <-- editieren / zitieren --> Unities abgeben: Nur für Klauza
Hallo Klauza, ich würde mit blockMesh ein äußeres Mesh bauen, dass so groß ist wie deine STL. Dann mit snappyHexMesh nur die Wasserfläche vernetzen, sprich alles was Ufer ist, wird herausgeschnitten. Das macht Snappy automatisch. Ist nur Abhängig, wo du dein locationPoint setzt und diesen setzt du unterhalb des Wasserspiegels und außerhalb des Ufers. Ist dein BlockMesh in der Höhe größer als die Wasseroberfläche, hättest du ja rein theoretisch eine Mehrphasenströmung. Daher achte auch, wie hoch dein BlockMesh wird... Gruß Thomas 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: 18. Jul. 2011 10:54 <-- editieren / zitieren --> Unities abgeben: Nur für Klauza
Was ist eine 2D Simulation des Flusses? Simulierst du nur die Wasseroberfläche? 2D bei OF rechnet man auf 3D gittern, die in die dritte Dimension nur eine Zelle haben. Sowas ist mit snappy immer ein wenig tricky. Thomas S Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Klauza Mitglied
Beiträge: 44 Registriert: 14.07.2011
|
erstellt am: 18. Jul. 2011 11:20 <-- editieren / zitieren --> Unities abgeben:
Ja genau,das mit der 2D Simulation habe ich schon bemerkt. Ich soll praktisch nur die Strömungsverhältnisse, also Ablösungen am Uferrand betrachten und nicht zwischen Flussgrund und Wasseeroberfläche unterscheiden. Was meinst du mit tricky, auf was sollte ich achten? 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: 18. Jul. 2011 12:32 <-- editieren / zitieren --> Unities abgeben: Nur für Klauza
Snappy ist nicht für 2D ausgelegt. Da jedes Benutzen von Refinements ja in allen drei Raumrichtungen stattfindet, ist es eigentlich nicht möglich ein vernünftiges Gitter für 2D zu erstellen. Der Aufwand der betrieben werden müsste um von snappy auf eine gutes 2D gitter zu gelangen (3D vergittern, wasseroberflächen 2D elemente isloieren, 2D elemente extrudieren bei gleichzeitiger erstellung der notwendigen patches (inlet, outlet, wall) ist zum Teil erheblich. Du solltest ernsthaft in Erwägung ziehen, eventuell doch in 3D zu rechnen. Selbst ein grobes Gitter in 3D sollte wahrscheinlich bessere Ergebnisse liefern als ein 2D Gitter, gerade wenn du es mit Ablösungen zu tun hast. Die Zeit die du beim Fummeln mit 2D Gitter sparst kann besser in 3D Rechenzeit angelegt werden. Thomas
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Klauza Mitglied
Beiträge: 44 Registriert: 14.07.2011
|
erstellt am: 19. Jul. 2011 19:36 <-- editieren / zitieren --> Unities abgeben:
Oke, vielen Dank für deine ausführliche Antwort. Liege ich mit dem Plan meines Vorgehens richtig: a) Zuerst erstelle ich "innerhalb" (also an der Stelle, an der sich das Wasser befindet) der STL Geometrie ein ganz grobes Netz mit blockMesh, welches ich dann mit snappy verfeiner, so dass es sich von innen an meine STL Geometrie "anschmiegt". Oder: b) Erstell ich ein ganz grobes blockMesh weit über die STL Geometrie hinaus (Also auch an Stellen, an denen sich eigentlich kein Wasser befindet) und verfeiner dieses dann mit snappy und wähle dann mit speziellen Layern den benötigten Teil des Meshs. Ist jetzt wohl CFD-technisch nicht 1A formuliert, aber ich hoffe du weißt was ich meine. 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: 19. Jul. 2011 20:53 <-- editieren / zitieren --> Unities abgeben: Nur für Klauza
Hallo Klauza, Zizat: "und wähle dann mit speziellen Layern den benötigten Teil des Meshs" Das kommt mir wie AutoCAD denken vor Wenn du dir diesen Teil wegdenkst, sind beide Varianten irgendwie gleich, nur das du beim letzteren wohl sehr schnell den Speicher deines PCs sprengen wirst. Deswegen denke daran, Zellenanzahl so wenig wie nötig... -> überprüfe die Bounding-Box deiner STL und benutze die Werte für dein BlockMesh Gruß Thomas 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: 20. Jul. 2011 09:32 <-- editieren / zitieren --> Unities abgeben: Nur für Klauza
Das snappy Netz schmiegt sich nicht an, also es kan nicht über die durch das blockMesh definierten Grenzen hinaus gehen. Das blockMesh muss also die gewünschte STL Geometrie umhüllen. Allerdings kann das auch serh eng sein. Für deinen Fluss würde ich mal von einem "normalen" Fluss ausgehen. Starte mal mit 1m cell size fürs blockMesh. Besteht die Möglichkeit dass du mal eine BBild hochlädst? Thomas S. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Klauza Mitglied
Beiträge: 44 Registriert: 14.07.2011
|
erstellt am: 20. Jul. 2011 11:18 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von TTB: -> überprüfe die Bounding-Box deiner STL und benutze die Werte für dein BlockMesh
Oke, ich kann ja aber für das blockMesh nicht eine komplette Box außen herum legen, die dann in mehrere Blöcke unterteilt wird. Zitat: Original erstellt von t.schumacher: Das snappy Netz schmiegt sich nicht an, also es kan nicht über die durch das blockMesh definierten Grenzen hinaus gehen.
Muss ich dann jedes einzelne Element im blockMeshDict "von Hand angeben" (damit meine ich die Koordinaten), damit die Elemente überall nur ein bisschen über die STL Geometrie herausstehen? Ich hoffe du verstehst was ich meine. Und ja, bei dem Fluss handelt es sich um einen "normalen" großen Fluss, der nicht schnurgerade verläuft. 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: 20. Jul. 2011 11:58 <-- editieren / zitieren --> Unities abgeben: Nur für Klauza
Lade mal den Fluss in Paraview. Aktiviere den "Statistic View". Dort zeigt er dir die geometrischen Grenzen der STL Datei an. In blockMeshDict passt du die 8 vertices so an, dass du einen Quader erzeugst, der über die geometrischen Grenzen hinausgeht. Sagen wir bei jeweils 1m in alle Richtungen. Daran denken die anzahl der Zellen pro Richtung festzulegen. Es empfiehlt sich ffür snappy möglichst aspect ratio 1 Zellen zu verwenden. Dann blockMesh erzeugen. Das blockMesh zusätzlich zum STL in PAraview einladen um zu checken ob alles passt. snappy laufen lassen. Thomas S
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |