Autor
|
Thema: Salome und OpenFoam (22042 mal gelesen)
|
Marc Aurel Mitglied
Beiträge: 51 Registriert: 04.11.2009 Ubuntu 10.04 LTD Salome_6.3.0 Openfoam_2.0.x
|
erstellt am: 16. Nov. 2009 22:02 <-- editieren / zitieren --> Unities abgeben: Nur für druckgott
Hallo zusammen, ich möchte eine Diffusorströmung (Konus in z-Richtung) mit einem zylindischen Rohr (z-Richtung) simulieren. Der durchströmte Raum ergibt sich mathematisch wenn vom Konus der Zylinder abgezogen wird. Wie kann man dies elegant mit Salome erzeugen, um anschliessend ein geeignetes Netz in den durchströmten Ringraum zu generieren? Der innenliegende Zylinder ist damit nur ein Dummy, der im Innern nicht vernetzt werden muss. Oder? Ist es möglich auch ein O-Grid zu verwenden? (Sicherlich sinnvoll für kreisrunde Querschnitte!) Für eine Hilfestellung bin ich sehr dankbar. Bis bald und viele Grüße Marc Aurel Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
blacy Mitglied Student
Beiträge: 11 Registriert: 02.11.2009
|
erstellt am: 17. Nov. 2009 10:35 <-- editieren / zitieren --> Unities abgeben: Nur für druckgott
Hallo, ich hab auch noch ne Frage zur Vernetzung: Habe in Salome einen Rohrkrümmer gezeichnet und will den jetzt Vernetzen. Eigentlich klappt das auch ganz gut aber wie bekomme ich es hin, dass Salome die Übergänge zwischen Rohr und Krümmer zusammen vernetzt? Bei mir sieht das so aus als würde Salome drei einzelne Teile vernetzen. Habe mal ein Bild dazu angehängt. Danke schon mal für die Hilfe. Gruß
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: 17. Nov. 2009 17:37 <-- editieren / zitieren --> Unities abgeben: Nur für druckgott
Hallo Marc, schaue doch mal auf dieser Seite nach:
Code: http://salome-platform.org/user-section/salome-tutorials/copy_of_salome-tutorial
Übung 3 und 4 scheint optimal für dein Problem zu sein. Auch alle andere Übungen sind es wert, mal nachzumachen. hallo blacy, auf dem Foto sehe ich jetzt kein Problem. Hast du mal in OpenFOAM exportiert und mal in OpenFOAM gerechnet? Vielleicht gibt es ja keine interne Wände... Bis dann Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Marc Aurel Mitglied
Beiträge: 51 Registriert: 04.11.2009 Ubuntu 10.04 LTD Salome_6.3.0 Openfoam_2.0.x
|
erstellt am: 18. Nov. 2009 13:21 <-- editieren / zitieren --> Unities abgeben: Nur für druckgott
Hallo Thomas, danke für den Hinweis. Sicherlich ist es sinnvoll diese Übungen nachzuvollziehen. Ich wollte gestern mit Übung 1 beginnen, stolpere aber über den Punkt „New Entity/ Sketch“. Mir wird kein „wire_1“ erstellt. Mir ist es einfach nicht möglich einen „arc (perpendicular)“ bzw. „arc (tangente)“ zu erstellen. Benötige ich noch bestimmtes Zubehör oder fehlt noch ein Programm-Modul? Bin momentan ratlos. Für Hilfestellung bin ich sehr dankbar. Bis bald und Grüße Marc Aurel
[Diese Nachricht wurde von Marc Aurel am 18. Nov. 2009 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Marc Aurel Mitglied
Beiträge: 51 Registriert: 04.11.2009 Ubuntu 10.04 LTD Salome_6.3.0 Openfoam_2.0.x
|
erstellt am: 18. Nov. 2009 13:22 <-- editieren / zitieren --> Unities abgeben: Nur für druckgott
Hallo Thomas, danke für den Hinweis. Sicherlich ist es sinnvoll diese Übungen nachzuvollziehen. Ich wollte gestern mit Übung 1 beginnen, stolpere aber über den Punkt „New Entity/ Sketch“. Mir wird kein „wire_1“ erstellt. Mir ist es einfach nicht möglich einen „arc (perpendicular)“ bzw. „arc (tangente)“ zu erstellen. Einzelne Punkte, Linien und Kurven kann ich erstellen. Nur Segmente und Arc's als Wire werden nicht erstellt. Wenn ich Sketch wähle, dann erschein kein Fenster. Benötige ich noch bestimmtes Zubehör oder fehlt noch ein Programm-Modul? Bin momentan ratlos. Folgende Fehlermeldung erscheint auch im Hintergrund: "SIGSEGV 'segmentation violation' detected" Für Hilfestellung bin ich sehr dankbar. Bis bald und Grüße Marc Aurel
[Diese Nachricht wurde von Marc Aurel am 18. Nov. 2009 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
blacy Mitglied Student
Beiträge: 11 Registriert: 02.11.2009
|
erstellt am: 18. Nov. 2009 14:47 <-- editieren / zitieren --> Unities abgeben: Nur für druckgott
Hallo Thomas, habe noch nicht gerechnet, bin aber gerade dabei. Gibts eigentlich irgendwo ne Beschreibung zu simpleFoam? Ich blick da bei den ganzen Einstellungen nicht richtig durch und im User Guide ist auch nix beschrieben. Für mich sieht das aber beim Netz so aus, als würde Salome die beiden Flächen einzeln vernetzen. Dachte immer dass es besser ist wenn man die Flächen gruppiert und zusammen vernetzt... Danke für die Hilfe! Gruß Michael 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. Nov. 2009 09:18 <-- editieren / zitieren --> Unities abgeben: Nur für druckgott
Hallo blacy, eine deutsche beschreibung über OpenFOAM ist mir nicht bekannt und wenn nur in vielen Diplom-, Studien, Doktorarbeiten, etc... Die Einstellungen für "simpleFoam" würde ersteinmal so lassen wie in einem Tutorial eingestellt. Später kannst du diese immer noch einstellen. Aber die Randbedingung im Zeitordner Null muss du schon an deiner Boundarydatei im Polymeshordner anpassen. Denn du wirst bestimmt andere Namen und Eigenschaften verwenden wollen Wie würde ich rangehen? Ich würde mir einen Case aus einem Tutorial kopieren. Ich glaube sogar zu wissen, dass es ein Skript in PyFoam gibt, welches dir bei einem neuen Case hilft: http://openfoamwiki.net/index.php/Contrib_PyFoam]http://openfoamwiki.net/index.php/Contrib_PyFoam]http://openfoamwiki.net/inde x.php/Contrib_PyFoam Als nächstes würde ich in Salome dein Mesh als UNV exportieren und in OpenFOAM einlesen. Dann erstellt dir OpenFOAM im Polymeshordner die Netzgitterinformation. Wenn du jetzt einfach mal den Nullordner ohne Dateien so läst, kannst du ja mal in ParaView dein Netz anschauen und sehen ob es interne Wände gibt: Befehl: "foamToVTK". In Paraview die VTK einlesen, wenn dein paraFoam nicht funktionieren sollte... Bei all den anderen Einstellungen kann dir nur deine Erfahrungen helfen, die du im laufe der Zeit machst. Ich finde, dass es für einen Anfänger nicht so einfach bedienbar ist, aber die kurzen Wörter in all den Dictionaries stehen immer für Sachen, die auch so in der numerischen Mathemtik bezeichnet werden. Ich kann dir auch ein hübsches Buch empfehlen. Man könnte meinen, OpenFOAM wurde mit dieser Grundlage programmiert Numerische Strömungsmechanik, J.H. Ferziger, M. Peric In Salome würde ich immer versuchen, alle Objekte vorher in der Geometrie zu verschmelzen, so dass du nur ein einziges Objekt vernetzen musst. Das sah auch so in deinem Bild richtig aus (Fuse Befehl). Bis dann Thomas P.S. Solltes du große Schwierigkeiten bekommen, so lade deine UNV hier hoch und ich bastel dir einen Vorlagencase.
[Diese Nachricht wurde von TTB am 19. Nov. 2009 editiert.] 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. Nov. 2009 09:38 <-- editieren / zitieren --> Unities abgeben: Nur für druckgott
Hallo Marc, ich glaube nicht, dass dir ein Modul fehlt, aber du kannst ja mal die Windows-Version ausprobieren. Diese beinhaltet alle Module: http://files.salome-platform.org/cea/adam/salomewindows/download/ Ich denke aber, dass es ein Anwendungsfehler ist. Bei mir ging das OCC Tutorial. Tipp: Du musst ja "Sketch" nicht verwenden. Ist halt leichter, da dieser Befehl aus Punkteingaben gleich Linien und wenn am Ende deines Objektes geschlossen wird, auch gleich eine "wire" erzeugt. Du kannst auch ganz klassik zu erst alle Punkte eingeben. Aus diesen Punkten deine Linien erzeugen und am Ende mit all den Linien eine "wire" erzeugen... Ist halt umständlicher... Die anderen Befehle werden wohl nicht funktionieren, da die vom vorherigen Befehl abhängig sind. Sorry, dass ich dir nicht in Salome so helfen kann... Bis dann Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
blacy Mitglied Student
Beiträge: 11 Registriert: 02.11.2009
|
erstellt am: 19. Nov. 2009 17:04 <-- editieren / zitieren --> Unities abgeben: Nur für druckgott
Hi Thomas, die Berechnung hat jetzt geklappt. Habe erst mal ein einfaches Rohr berechnet. Werde morgen mal mein Netz in ParaView anschauen. Aber es muss doch irgendwie eine Möglichkeit geben die Faces in Salome zu verbinden. So wie Salome jetzt vernetzt bekomm ich ja irgendwann Probleme wenn die Geometrie mal komplizierter wird. Die inneren Wände verschwinden durch das Verschmelzen, das hab ich in der Berechnung gesehen. Aber außen kann ich die Flächen nicht zusammenfassen. Ich kann auch ein Solid machen und das vernetzen aber die Flächen außen werden trotzdem getrennt vernetzt. Habe in dem Bild mal die Bereiche rot gemacht die ich meine. Kann das evtl. an meiner Salomeversion liegen? Ich arbeite mit CAELinux 2008 und da gibts ein Tutorial wie man einen Krümmer an einem Pfad entlang extrudiert aber das geht bei mir nicht (ist wohl ein Bug in der Version). Grüße und Danke für die Hilfe Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Marc Aurel Mitglied
Beiträge: 51 Registriert: 04.11.2009 Ubuntu 10.04 LTD Salome_6.3.0 Openfoam_2.0.x
|
erstellt am: 22. Nov. 2009 19:56 <-- editieren / zitieren --> Unities abgeben: Nur für druckgott
Hallo Thomas, mit Salome komme ich jetzt prima zurecht. Habe einen Diffusor mit innenliegendem zylindrischen Teil erstellt und mit OpenFoam gerechnet. Um Luft zu simulieren habe ich simpleFoam verwendet. Die Geschwindigkeit am Inflow-Patch ist vorgegeben mit "fixedValue uniform (0 0 100) //100m/s". Am Outflow: "zeroGradient" Beim Druck habe ich am Inflow-Patch "zeroGradient" vorgegeben. Am Outflow: "fixedValue" uniform 0 Bin mir nicht sicher, ob die Einstellung so in Ordnung ist. Müßte am Outflow nicht auch der "zeroGradient" eingegeben werden? Die Rechnung läuft aber ohne Fehler durch. In paraForm ist die graphische Darstellung plausibel. Wie ist es möglich nun auch noch den Druckverlust des durchströmten Bauteils zu berechnen? Bis bald und Grüße Marc 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: 23. Nov. 2009 13:45 <-- editieren / zitieren --> Unities abgeben: Nur für druckgott
Hallo Marc, wunderbar, es funktioniert jetzt bei dir Hmmm, zu deiner Frage muss ich mich an die Theorie zurück denken. So weit ich mich noch gut erinnere bedeutet "zeroGradient" am Austrittsrand, dass die Randwerte gleich den Werten in den Kontollvolumen-Mittelpunkt sind. Wenn du jetzt überall keine Druckdifferenz vorgibst, müsstest du wenigsten einen Refernzdruck vorgeben. Da du aber eine Druckdifferenz von 0 pa am Ausgang defniest, gleicht OpenFOAM diesen Druck an. Du kannst ja mal den Druck am Ausgang anzeigen lassen, der wird nicht mehr Null sein.... Hallo Blacy, jetzt weiß ich, was du meinst. Diesen Effekt habe ich auch. Mein Zylinder habe ich mit "Extrusion" erzeugt und trotzdem das Gleiche wie bei dir. Ich denke, dass man an den Einstellungen vom Mesher herumspielen muss. Wenn ich heute abend noch die Zeit finde, schaue ich mal nach... Bis dann Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Marc Aurel Mitglied
Beiträge: 51 Registriert: 04.11.2009 Ubuntu 10.04 LTD Salome_6.3.0 Openfoam_2.0.x
|
erstellt am: 23. Nov. 2009 17:34 <-- editieren / zitieren --> Unities abgeben: Nur für druckgott
Hallo Thomas, ich denke meine Frage war nicht klar gestellt. 1) Wie kann ich die statische bzw. totale Druckdifferenz des Bauteils ermitteln? Mir ist weiterhin unklar, wie an einer Schnittstelle (Ein-und Austritt) die Druckwerte ausgelesen werden können. 2) Ist es erforderlich hinter dem Diffusor noch ein Rohrstück anzufügen, quasi als Ausgleichstrecke? Wenn man dann am Diffusoraustritt im Querschnitt den Druck ermitteln könnte, dann hätte man den Differenzdruck. Bin mir aber nicht sicher, ob das so geht. Bis bald und viele Grüße Marc 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: 24. Nov. 2009 11:03 <-- editieren / zitieren --> Unities abgeben: Nur für druckgott
Hallo Marc, habs verstanden :-) 1) Also, die Drücke am Patch kannst du wie folgt auslesen: Code: patchAverage pd ab3
Time = 2000 Readin volScalarField pd Avergae of pd over patch ab3[5] = 101.89 pa In diesem Beispiel habe ich am Patchname "ab3" den gemittelten "pd"-Wert ausgeben lassen. Wegen der Aufteilung: pTotal = pStatisch + pDynamisch muss ich noch etwas nachdenken, denn du arbeitest ja mit Druckdifferenzen. Vielleicht kannst du ja mal den totalen Druck am Auslass definieren ("totalPressure;"). Aber lass mich mal darüber noch nachdenken... komme gerade nicht auf einer Lösung :-( Es gibt noch viele weitere kleine Tools. Schaue einfach mal im Sourcecode unter "postProcessinig" nach. 2) Ich kann mir gut vorstellen, wenn dein Diffusor einen starken Öffnungswinkel (über 10°) besitzt, so dass es zu hohen Turbulenzen direkt nach dem Diffusor kommt, das du dann eine Ausgleichstrecke (6*Durchmesser) brauchst. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Marc Aurel Mitglied
Beiträge: 51 Registriert: 04.11.2009 Ubuntu 10.04 LTD Salome_6.3.0 Openfoam_2.0.x
|
erstellt am: 24. Nov. 2009 16:03 <-- editieren / zitieren --> Unities abgeben: Nur für druckgott
Hallo Thomas, mir wäre sehr geholfen, wenn ich weiß wie die strömungstechnischen Randbedingungen am Ein- und Austritt zu definieren sind. Im Prinzip wird die Eintrittsgeschwindigkeit am Inflow-Patch (nehmen wir eine homogene axparallele Geschwindigkeitsverteilung in z-Richtung an) als "fixedValue uniform (0 0 100)“ vorgegeben. Die Geschwindigkeit am Austritt muss errechnet werden. Sicherlich treten Turbulenzen auf, da der zylindrische Teil im Diffusor nur ca. halb so lang wie der Diffusor ist. Der im Diffusor befindliche Zylinder beginnt am Diffusoreintritt (Kreisringfläche!) und endet in der Mitte des Bauteils. Der Diffusoraustritt ist eine Kreisfläche! Macht „zeroGradient“ dann wirklich Sinn? Vielleicht ist eine Ausgleichsstrecke oder ein fiktives Kontrollvolumen die Lösung!? Wie werden die Drücke (total oder statisch?) am Ein- und Austritt des Diffusors am besten definiert, um einen Druckverlust zu bestimmen? Würde es Sinn machen, am Austritt als Referenz den Umgebungsdruck (wie definieren?) und am Eintritts-Patch den Druck als "zeroGradient" vorzugeben? Bedeutet beim Befehl „patchAverage pd“ der Wert „pd“ den dynamischen Druck? Was bedeutet numerisch „zeroGradient“ und wie kann man sich dies strömungstechnisch vorstellen? Sorry, lieber Thomas. Ich muss mich entschuldigen, dass ich Dich mit so vielen Fragen bombardiere. Vielleicht fällt Dir bei einer guten Tasse Glühwein (wäre bei diesem verregneten Tag keine schlechte Idee) eine gute Lösung für mich ein. Bis bald und viele Grüße Marc
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: 25. Nov. 2009 10:35 <-- editieren / zitieren --> Unities abgeben: Nur für druckgott
Hallo Marc, so, hab wieder einen klaren Kopf... Mein Beispiel für "patchAverage pd" war für einen anderen Solver gedacht, der den dynamischen Druck einzeln berechnet. Für deinen Solver gibt es ja nur den gesamten Druck. Sollte deswegen auch nur als Beispiel dienen. Du kannst nur „U“ und „p“ ausgeben lassen. Etwas Theorie. „zeroGradient“ ist eine Neumann-Bedingung. Hierbei ist der Wert für die Ableitung einer Bilanzgröße in die Richtung der Normalen zum Rand gegeben. Bei einem „zeroGradient“ sind die Randwerte also gleich den Werten in den Kontollvolumen-Mittelpunkten. Dann gibt es noch eine Dirichlet-Bedingung („fixedValue“ . Hierbei wird ein fester Wert für die Bilanzgröße am Rand vorgegeben. Bei einer Wand gilt als Beispiel die Haftbedingung und somit sind die Geschwindigkeiten dort gleich Null. In den meisten Simulationsfällen weiß man eigentlich vieles über die Randbedingungen am Einlass. Entweder ist die Geschwindigkeit oder der Druck vorhanden, sodass in der Regel immer eine Dirchilet-Bedingung vorgegeben werden kann. In deinem Case würde ich jetzt „fixedValue“ für den Einlass als Geschwindigkeit vorgeben. Denke auch daran, dass es eine kleine Strecke braucht, bis sich ein Strömungsprofil durch die Wand-Haftbedingung einstellt. Jetzt könnte man ja auf die Idee kommen und gleich ein parabelförmiges Profil vorgeben. Genau das kannst auch mit der Randbedingung „parabolicVelocity“ definieren. Am Auslass würde ich jetzt mal nur mit „zeroGradient“ für Druck und Geschwindigkeit definieren und ausprobieren. Als Referenzdruck, den du in der „fvSolution“-Datei einstellst, gibst du den Umgebungsdruck ein, als Beispiel: „101325 Pa“. Wie kommst du nun zu all deinem Drücken? Nun, der Gesamtdruck entspricht gleich dem dynamischen Druck plus den statischen Druck. Am Ende deiner Berechnung kannst du dir ja den Gesamtdruck über das vorher genannte Tool anzeigen lassen. Jetzt würde ich einfach noch den dynamischen Druck abziehen (die geschwindigkeit am Auslass hast du ja auch“ und schon hättest du den statischen Druck, richtig? Hoffe, soweit war alles richtig? Falls nicht, hier gibt es bestimmt noch andere gute Leute, die die Theorie im schlaf drauf haben. Bei mir schon lange zurück Bis dann Thomas
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
blacy Mitglied Student
Beiträge: 11 Registriert: 02.11.2009
|
erstellt am: 26. Nov. 2009 09:59 <-- editieren / zitieren --> Unities abgeben: Nur für druckgott
Hi Thomas, ich hab das Vernetzen jetzt hinbekommen. Allerdings nicht in Salome sondern mit Netgen. Da hat das gleich beim ersten mal funktioniert. Jetzt habe ich eine Blende gezeichnet und will damit mal ein bisschen "rumspielen". Was ich noch nicht ganz verstehe ist warum simplefoam immer bis zur angegebenen endTime rechnet obwohl ich für alle Variablen ein Konvergenzkriterium angebe? In den simpleFoam Tutorials ist als timeStep immer der Wert "1" angegeben. Muss man den nicht an der Netzgröße anpassen? Also immer etwa so groß, dass in einem timeStep das Fluid durch ein Netzelement strömt und die endTime dann so wählen, dass das Fluid einmal durch die Geometrie strömt? Bis dann Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ocelot Mitglied Dipl-Ing. (BA) Maschinenbau
Beiträge: 171 Registriert: 29.04.2006 OpenSUSE Leap 42.2 x64 OpenFOAM-plus OpenFOAM-4.x
|
erstellt am: 26. Nov. 2009 18:03 <-- editieren / zitieren --> Unities abgeben: Nur für druckgott
Um Thomas ein bisschen zu unterstützen, erlaube ich mir mal den Versuch, die ein oder andere Frage zu beantworten... Zitat: Original erstellt von Marc Aurel: Wie werden die Drücke (total oder statisch?) am Ein- und Austritt des Diffusors am besten definiert, um einen Druckverlust zu bestimmen? Würde es Sinn machen, am Austritt als Referenz den Umgebungsdruck (wie definieren?) und am Eintritts-Patch den Druck als "zeroGradient" vorzugeben?
Ja, genau so würde ich vorgehen. Am Einlass U auf fixedValue, p auf zeroGradient und am Auslass U auf zeroGradient und p auf fixedValue. Da simpleFoam ein inkompressibler Solver ist, kannst du mit relativen Drücken arbeiten und brauchst den Umgebungsdruck nicht explizit anzugeben. Du solltest lediglich wissen (bzw. weißt es sicher auch schon), dass simpleFoam wie andere inkompressible OpenFOAM-Solver den normalisierten Druck Pnorm = p / rho verwendet. Dabei steht p für nur den statischen Druckanteil. Deinen gesuchten Druckverlust bekommst du dann, in dem du den Durchschnittsdruck, der sich am Eingang einstellt, von deinem (konstanten) Ausgangsdruck abziehst. Fertig! :-) Zitat: Original erstellt von blacy: Jetzt habe ich eine Blende gezeichnet und will damit mal ein bisschen "rumspielen". Was ich noch nicht ganz verstehe ist warum simplefoam immer bis zur angegebenen endTime rechnet obwohl ich für alle Variablen ein Konvergenzkriterium angebe?
Der originale simpleFoam-Solver besitzt diese Funktionalität nicht, sondern rechnet auch bei Erreichen der Konvergenzkriterien weiter. Falls du aber einen modifizierten simpleFoam-Solver einsetzt (wie den, den Thomas vor einiger Zeit hier im Forum gepostet hat), kann dir Thomas sicher besser weiterhelfen. Zitat: Original erstellt von blacy: In den simpleFoam Tutorials ist als timeStep immer der Wert "1" angegeben. Muss man den nicht an der Netzgröße anpassen? Also immer etwa so groß, dass in einem timeStep das Fluid durch ein Netzelement strömt und die endTime dann so wählen, dass das Fluid einmal durch die Geometrie strömt?
Da simpleFoam von einer stationären Strömungssituation ausgeht, ist die Zeitschrittgröße unrelevant und kann auf einen beliebigen Wert gesetzt werden. Viele Grüße Johannes Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Marc Aurel Mitglied
Beiträge: 51 Registriert: 04.11.2009 Ubuntu 10.04 LTD Salome_6.3.0 Openfoam_2.0.x
|
erstellt am: 27. Nov. 2009 08:32 <-- editieren / zitieren --> Unities abgeben: Nur für druckgott
Hallo Johannes, vielen Dank für Deine Unterstützung. Nach deiner Empfehlung sollte der Austrittsdruck "fixedValue" gewählt werden. Sollte dann dieser stat. Druck mit 0 definiert werden, auch wenn simpleFoam mit relativen Drücken arbeitet? Mit anderen Worten: statischer Eintrittsdruck (zeroGradient) wird berechnet, statischer Austrittsdruck wird zu Null definiert. -> Druckverlust = Austrittsdruck(total)-Eintrittsdruck(total) Viele Grüße
Marc
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ocelot Mitglied Dipl-Ing. (BA) Maschinenbau
Beiträge: 171 Registriert: 29.04.2006 OpenSUSE Leap 42.2 x64 OpenFOAM-plus OpenFOAM-4.x
|
erstellt am: 27. Nov. 2009 12:22 <-- editieren / zitieren --> Unities abgeben: Nur für druckgott
Hallo Marc, keine Ursache... Zitat: Original erstellt von Marc Aurel: Nach deiner Empfehlung sollte der Austrittsdruck "fixedValue" gewählt werden. Sollte dann dieser stat. Druck mit 0 definiert werden, auch wenn simpleFoam mit relativen Drücken arbeitet?
Relative Drücke (die sich auf einen Basis-, bzw. hier Umgebungsdruck beziehen) kannst du verwenden, weil simpleFoam ein inkompressibler Solver ist und sich die Strömungsverhältnisse in deinem Fall durch die feste Strömungsgeschwindigkeit ergeben. Die sich aufgrund dieser Situation einstellende Druckdifferenz sollte unabhängig vom Ausgangsdruck gleich sein. Du kannst es ja trotzdem einmal mit Absolutdrücken ausprobieren, es dürfte am Ergebnis nicht wirklich etwas ändern. Achte aber in diesem Fall darauf, dass du die Simulationsgeometrie mit dem Ausgangsdruck initalisierst, in dem du die Variable "internalField" in der p-Datei gleich dem Ausgangsdruck setzt, ansonsten benötigst du unnötig viele Iterationen um das System zu stabilisieren. Zitat: Original erstellt von Marc Aurel: Mit anderen Worten: statischer Eintrittsdruck (zeroGradient) wird berechnet, statischer Austrittsdruck wird zu Null definiert. -> Druckverlust = Austrittsdruck(total)-Eintrittsdruck(total)
Exakt! Viele Grüße Johannes Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
blacy Mitglied Student
Beiträge: 11 Registriert: 02.11.2009
|
erstellt am: 27. Nov. 2009 15:41 <-- editieren / zitieren --> Unities abgeben: Nur für druckgott
Hi Johannes, ok jetzt hab ichs auch kapiert. Bisschen auf dem Schlauch gestanden Das mit dem modifizierten Solver werd ich mir mal anschauen aber im Moment hab ich noch keine Ahnung wie das funktioniert... Danke für die Hilfe! Gruß Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Marc Aurel Mitglied
Beiträge: 51 Registriert: 04.11.2009 Ubuntu 10.04 LTD Salome_6.3.0 Openfoam_2.0.x
|
erstellt am: 27. Nov. 2009 19:28 <-- editieren / zitieren --> Unities abgeben: Nur für druckgott
Hallo zusammen, Zitat: Du kannst es ja trotzdem einmal mit Absolutdrücken ausprobieren, es dürfte am Ergebnis nicht wirklich etwas ändern. Achte aber in diesem Fall darauf, dass du die Simulationsgeometrie mit dem Ausgangsdruck initalisierst, in dem du die Variable "internalField" in der p-Datei gleich dem Ausgangsdruck setzt, ansonsten benötigst du unnötig viele Iterationen um das System zu stabilisieren.
Muss das "internalField" für die Geschwindigkeit auch definiert werden? Und wenn ja, wie? Wie kann man sich das "internalField" numerisch/phyikalisch für die Geschwindigkeit vorstellen? Thomas: Zitat: so, hab wieder einen klaren Kopf... Mein Beispiel für "patchAverage pd" war für einen anderen Solver gedacht, der den dynamischen Druck einzeln berechnet. Für deinen Solver gibt es ja nur den gesamten Druck. Sollte deswegen auch nur als Beispiel dienen. Du kannst nur „U“ und „p“ ausgeben lassen.
Die Geschwindigkeit kann ich nicht über patchAverage ausgeben lassen, da U als volVectorField definiert ist. Muss ich das Feld als ScalarField definiert werden oder gibt es eine Möglichkeit die Geschwindigkeit anders zu bestimmen? Zur Not kann man nur den den dynamischen Druck bestimmen. Danke und viele Grüße Marc [Diese Nachricht wurde von Marc Aurel am 27. Nov. 2009 editiert.] 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: 27. Nov. 2009 20:46 <-- editieren / zitieren --> Unities abgeben: Nur für druckgott
Hallo Marc, langsam aber sicher kommen wir gemeinsam zum Ziel. Du hast recht, das Tool geht nicht bei Vektorfelder. Ich habe mal kurz das Tool erweitert. Ich hoffe, dass das Tool jetzt keine Fehler macht. Die Mittelgeschwindigkeit bei meinem Case sah plausibel aus. Die Installation ist ziemlich einfach. Achtung, ich benutze die OF 1.5-dev Version. Du brauchst die Datei nur an der gleichen Stelle im Quellcode entpacken und in diesem Ordner den Befehl: "wmake" ausführen. Danach steht die der Befehl: "patchAverage1" zur Verfügung. Du kannst das "internalField" für die Geschwindigkeit mit der Potential-Theorie berechnen. Schaue dir mal das Tutorial "potentialFoam/Cylinder" an. Das Ergebnis kannst du dann als Startbedingung für deine Simulation benutzen. Hinweis: Die Endung zip zu tgz umbenennen. Anders konnte ich die Datei nicht hochladen. Bis dann Thomas [Diese Nachricht wurde von TTB am 27. Nov. 2009 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ocelot Mitglied Dipl-Ing. (BA) Maschinenbau
Beiträge: 171 Registriert: 29.04.2006 OpenSUSE Leap 42.2 x64 OpenFOAM-plus OpenFOAM-4.x
|
erstellt am: 27. Nov. 2009 23:52 <-- editieren / zitieren --> Unities abgeben: Nur für druckgott
Zitat: Original erstellt von Marc Aurel: Muss das "internalField" für die Geschwindigkeit auch definiert werden? Und wenn ja, wie? Wie kann man sich das "internalField" numerisch/phyikalisch für die Geschwindigkeit vorstellen?
Grundsätzlich ist eine Initialisierung, egal bei welchem Feldtyp, allein aus unmerischen Gründen erforderlich, da für jedes Volumenelement für alle verwendeten Variablen ein Startwert vorliegen muss. Der Wert von "internalField" wird also an alle Elemente der Simulationsgeometrie übergeben, die nicht schon anderweitig definiert wurden (z.B. als Teil einer Randbedingung). Je nachdem, um welche Variable es sich handelt und welche Werte initialisiert werden sollen, kann der Simulationsverlauf (Konvergenz, etc..) positiv oder negativ beeinflusst werden. Die Geschwindigkeit wird verktoriell angeben; ist der Wert des internalField für U ein einzelner Vektor, so wird damit ein homogenes Vektorfeld mit der Geschwindigkeit des Betrags des Vektors erzeugt. Abgesehen von gradlinigen, rohrähnlichen Simulationsräumen ist es nicht sinnvoll, einen einzelnen Geschwindigkeitsvektor zu definieren, da bei komplizierteren Geometrien die initalisierte Strömungsrichtung nur in Teilbereichen korrekt ist und ansonst große Drehungen ausführen muss. Zur Initialisierung solcher Geometrien enthält OpenFOAM einen speziellen Solver (potentialFoam), mit dem, wie der Name es schon vermuten lässt, eine Potentialströmung als Startbedingung für einen "vollwertigen", meist transienten Solver ermittelt werden kann. Um es kurz zu machen, bei stationären Solvern kann darauf oft verzichtet werden, hier würde ich das internalField auf (0 0 0) setzen und daran nur etwas ändern, wenn ein unbefriedigender Konvergenzverlauf es erforderlich machen sollte. Viele Grüße Johannes Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Marc Aurel Mitglied
Beiträge: 51 Registriert: 04.11.2009 Ubuntu 10.04 LTD Salome_6.3.0 Openfoam_2.0.x
|
erstellt am: 28. Nov. 2009 18:14 <-- editieren / zitieren --> Unities abgeben: Nur für druckgott
Hallo Thomas, vielen Dank für Deine Mühe. Habe die Datei entpackt und werde anschliessend weiter üben. Schönes Wochenende und bis bald Marc [Diese Nachricht wurde von Marc Aurel am 28. Nov. 2009 editiert.] [Diese Nachricht wurde von Marc Aurel am 28. Nov. 2009 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Marc Aurel Mitglied
Beiträge: 51 Registriert: 04.11.2009 Ubuntu 10.04 LTD Salome_6.3.0 Openfoam_2.0.x
|
erstellt am: 29. Nov. 2009 20:19 <-- editieren / zitieren --> Unities abgeben: Nur für druckgott
Hallo zusammen, wenn ich das internalField auf (0 0 0) verwende dauert die Konvergenz deutlich länger als internalField auf (0 0 0.1). Ist aber soweit in Ordnung. Aber ein anderes Problem beschäftigt mich momentan: Wenn ich den Diffusor (wie im Vorfeld schon beschrieben) mit einer Eintrittsgeschwindigkeit U=100m/s rechne, dann erhalte ich eineń irrsinnig hohen stat. Druck am Eintritt von 3.247E7 m²/s² (patchAverage). Bei U=10m/s erhalte ich einen stat. Druck am Eintritt von -19.83 m²/s² (deutlich plausibler!). Auch bei U=30m/s ist der Druckwert viel zu hoch. Die Geschwindigkeit am Austritt ist in allen Fällen korrekt (patchAverage1); kann auch leicht mit Hand nachgerechnet werden. Als Vorlage dient mir im wesentlichen der Case von Druckgott "Blende". Für Hilfe bin ich sehr dankbar.
Viele Grüße und bis bald Marc 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: 30. Nov. 2009 18:39 <-- editieren / zitieren --> Unities abgeben: Nur für druckgott
Hallo Marc, kannst du dein Case hier hochladen? Ich möchte das gerne bei mir zu Hause mal nachrechnen. Wie sieht denn jetzt dein Referenzdruck aus? Hast du da was vorgegeben? Ich würde auch nicht ausschließen, dass es auch ein Bug im patchAverage Tool gibt. Bis dann Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Marc Aurel Mitglied
Beiträge: 51 Registriert: 04.11.2009 Ubuntu 10.04 LTD Salome_6.3.0 Openfoam_2.0.x
|
erstellt am: 30. Nov. 2009 19:13 <-- editieren / zitieren --> Unities abgeben: Nur für druckgott
|
TTB Mitglied CFD Engineer
Beiträge: 353 Registriert: 02.10.2008 BIM HVACTool für Windows OpenFOAM-2.2.x
|
erstellt am: 30. Nov. 2009 21:31 <-- editieren / zitieren --> Unities abgeben: Nur für druckgott
|
Marc Aurel Mitglied
Beiträge: 51 Registriert: 04.11.2009 Ubuntu 10.04 LTD Salome_6.3.0 Openfoam_2.0.x
|
erstellt am: 01. Dez. 2009 19:06 <-- editieren / zitieren --> Unities abgeben: Nur für druckgott
|
TTB Mitglied CFD Engineer
Beiträge: 353 Registriert: 02.10.2008 BIM HVACTool für Windows OpenFOAM-2.2.x
|
erstellt am: 01. Dez. 2009 20:00 <-- editieren / zitieren --> Unities abgeben: Nur für druckgott
Hi, eigentlich muss du kein Mitglied sein. Es kann aber sein, dass zu viele Leute gerade herunterladen und du ein paar Minuten warten musst, außer du wirst Premiummitglied. Hast du eine Email? Bis dann Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Marc Aurel Mitglied
Beiträge: 51 Registriert: 04.11.2009 Ubuntu 10.04 LTD Salome_6.3.0 Openfoam_2.0.x
|
erstellt am: 01. Dez. 2009 20:33 <-- editieren / zitieren --> Unities abgeben: Nur für druckgott
|