Autor
|
Thema: simpleFoam-turbulente Umströmung (3215 mal gelesen)
|
akif61 Mitglied
Beiträge: 4 Registriert: 02.04.2014
|
erstellt am: 03. Apr. 2014 16:11 <-- editieren / zitieren --> Unities abgeben:
Hallo liebe OpenFOAMler, im Moment beschäftigt mich seit Wochen ein Problem in OpenFOAM, der Bereich CFD und OpenFOAM sind auch ein Neuland, muss ich vielleicht hinzufügen. Z.Zt. schreibe ich eine Hausarbeit zum Thema "Ermittlung der aerodynamischen Beiwerte eines Kreuzleitwerkes bei turbulenter Umströmung", in der ich das aufgelöste Polardiagramm über die ermittelten Beiwerte nach der Simulation in OpenFOAM darstellen möchte. Es handelt sich um ein achsensymmetrisches Leitwerk. So nun einiges zu den Simualtionsproblemen: -- ich möchte zuerst eine laminare Strömung simulieren, wobei die Output-Dateien (Geschwindigkeit und Druck) spätestens ab etwa dem 150. Iterationsschritt in extrem hohen Bereichen sich bewegt. Infolgedessen bricht die Simualation noch vor dem vorgegebenen Rechenschritt ab, also kann ich nicht einmal eine "simple" laminare Strömung simulieren. Frage: Was muss ich tun, damit diese Werte noch im brauchbaren, normalen Bereich sich bewegen? In den Foren findet man den Hinweis, dass man in fvSolution-Datei die relaxationFactors, residualControl und den Zeitschritt anpassen sollte. Selbst diese Maßnahmen haben mir nicht richtig geholfen. Leider rennt mir die Zeit davon, sodass ich auf eure Hilfe angewiesen bin. Kann sich bitte jemand meine Dateien anschauen und evtl. innerhalb der nächstmöglichen Zeit eine Hilfestellung geben. Ich wäre euch sehr dankbar für diese Hilfe. Grüße R. Kilic Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
slint Mitglied M.Sc. Schiffs- und Meerestechnik
Beiträge: 48 Registriert: 02.09.2012 OpenFOAM 2.3.x
|
erstellt am: 09. Apr. 2014 23:57 <-- editieren / zitieren --> Unities abgeben: Nur für akif61
Hallo akif61, habe mir dein Setup angeschaut. Ich fürchte, dass du einiges (Randbedingungen, Schemen,...) durcheinander gebraucht hast Dein Case läuft jetzt und konvergiert vernünftig! Brauchst du noch Hilfe? Gruß, Robert
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
akif61 Mitglied
Beiträge: 4 Registriert: 02.04.2014
|
erstellt am: 10. Apr. 2014 13:56 <-- editieren / zitieren --> Unities abgeben:
Hallo slint, vielen Dank für die Antwort. Genau das habe ich auch befürchtet Dein Zitat: "Dein Case läuft jetzt und konvergiert vernünftig!" Was genau meinst du damit? Hast du evtl. Korrekturvorschläge? ICh kann mir leider immer noch nicht damit weiterhelfen. Gruß akif61 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
slint Mitglied M.Sc. Schiffs- und Meerestechnik
Beiträge: 48 Registriert: 02.09.2012 OpenFOAM 2.3.x
|
erstellt am: 10. Apr. 2014 18:52 <-- editieren / zitieren --> Unities abgeben: Nur für akif61
Hallo akif61, ich meine damit, dass deine Simulation mit meinen Änderungen läuft und gegen eine Lösung (hoffentliche die richtige) konvergiert Leider muss ich gestehen, dass die Änderungen relativ umfangreich sind. Aus diesem Grund schlage ich vor, dass ich dir die geänderten Dateien schicke. Du solltest versuchen diese Änderungen nachzuvollziehen und fragst mich einfach, wenn etwas unklar ist. Ein paar allgemeine Hinweise an dieser Stelle: 1) Du möchtest mit simpleFoam rechnen. Das ist ein Solver für stationäre (steadyState) RANS-Simulationen, weshalb der Zeitschritt keinerlei Einfluss hat (standardmäßig 1). Bitte aus diesem Grund kein Verfahren für die Zeitintegration festlegen. Du hattest das Rückwärts-Euler-Verfahren (backward) gewählt, obwohl es steadyState sein muss! 2) Die Residual-Kontrolle regelt nur, ab welchem Residuum deine Rechnung beendet wird. Je kleiner die vorgegebenen Residuen, desto länger brauchst du für eine Simulation -> du erhöhst damit aber die Genauigkeit! 3) Die Wahl der Relaxationsfaktoren bitte mit Vorsicht durchführen. Je niedriger deine Relaxationsfaktoren sind, desto mehr stabilisierst du deine Rechnung künstlich. Im schlimmsten Fall bekommst du eine "konvergierte" Rechnung mit falschen Ergebnissen 4) Deine Randbedigungen sind leider völlig falsch. Wenn du eine Null-Gradienten-Randbedingung (zeroGradient) definierst, dann bitte keinen zusätzlichen fixen Wert setzen. Gleiches gilt für Symmetrie-Randbedingungen. Bei Simulationen, wie du sie durchführen möchtest bieten sich Einlass-Auslass-Randbedingungen an... 5) Bei der Auswahl der Diskretisierungsschemen und Gleichungslösern kannst du dich gut an dem Motorbike-Tutorial orientieren! 6) Wenn du eine Initialisierungslösung für eine turbulente Simulation benötigst, dann benutze einfach potentialFoam. Eine laminare Lösung im Voraus zu ermitteln ist nicht nötig und in vielen Fällen unsinnig. 7) Guck dir bitte noch einmal dein Netz an. Das geht noch deutlich besser ... Ich hoffe, ich konnte dir damit etwas weiterhelfen! Beste Grüße, Robert 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. Apr. 2014 21:27 <-- editieren / zitieren --> Unities abgeben: Nur für akif61
Zitat: Original erstellt von slint:
3) Die Wahl der Relaxationsfaktoren bitte mit Vorsicht durchführen. Je niedriger deine Relaxationsfaktoren sind, desto mehr stabilisierst du deine Rechnung künstlich. Im schlimmsten Fall bekommst du eine "konvergierte" Rechnung mit falschen Ergebnissen
Das ist mir neu. Bitte erläutere deine Hypothese (ich bin gespannt).
------------------ Grüße Tobias Holzmann Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
slint Mitglied M.Sc. Schiffs- und Meerestechnik
Beiträge: 48 Registriert: 02.09.2012 OpenFOAM 2.3.x
|
erstellt am: 10. Apr. 2014 22:30 <-- editieren / zitieren --> Unities abgeben: Nur für akif61
Generell habe ich das Ganze für das Gauss-Seidel-Verfahren wie folgt im Gedächtnis (alpha ist der Relaxationsparameter): 0 < alpha < 1 : Unterrelaxation (Vermeidung von Divergenz bei nichtlinearen Problemen, Dämpfung von Oszillationen) alpha = 1 : Standard-Gauss-Seidel-Verfahren 1 < alpha < 2 : Überrelaxation (Beschleunigung der Konvergenz bei stabilen/konvergierten Systemen) Bitte schau doch parallel ins FVM-Skript (S.33, Gl. 4.50) von Baumann und Bunge. http://www.cfd.tu-berlin.de/Lehre/CFD2/skript/fvm-skript.pdf Je kleiner alpha, desto kleiner ist die Änderung einer beliebigen Größe der aktuellen Iteration im Vergleich zur vorherigen Iteration. Dadurch, dass du die Änderungsrate zwischen zwei aufeinanderfolgenden Iterationen verringerst, stabilisierst du deine Lösung und dämpfst Oszillationen! Zumindest dachte ich bis heute, dass es so funktionert. Ich lasse mich da aber auch gerne eines besseren belehren wenn ich hier auf dem Schlauch stehe... Gruß, Robert 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: 11. Apr. 2014 00:10 <-- editieren / zitieren --> Unities abgeben: Nur für akif61
Naja deine Aussage stimmt nicht. Du kannst auch mit einem Relaxaktionsfaktor von 0,000000001 rechnen und wirst auch damit die Lösung erhalten, die du mit Faktor 0,3 erhältst. ------------------ Grüße Tobias Holzmann Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
slint Mitglied M.Sc. Schiffs- und Meerestechnik
Beiträge: 48 Registriert: 02.09.2012 OpenFOAM 2.3.x
|
erstellt am: 11. Apr. 2014 00:28 <-- editieren / zitieren --> Unities abgeben: Nur für akif61
Das habe ich nicht bestritten. Natürlich führt auch ein kleiner Relaxationsfaktor zur gleichen Lösung, nur eben viel langsamer! Was ich meinte ist, dass die Residuen bei niedrigen Relaxationsfaktoren so klein werden können, dass ein für die Simulation festgelegtes Konvergenzkriterium verfrüht erfüllt wird. In diesem Fall liegt doch keine echte Konvergenz vor!? Gruß, Robert [Diese Nachricht wurde von slint am 11. Apr. 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: 11. Apr. 2014 00:30 <-- editieren / zitieren --> Unities abgeben: Nur für akif61
|
slint Mitglied M.Sc. Schiffs- und Meerestechnik
Beiträge: 48 Registriert: 02.09.2012 OpenFOAM 2.3.x
|
erstellt am: 11. Apr. 2014 00:32 <-- editieren / zitieren --> Unities abgeben: Nur für akif61
|
akif61 Mitglied
Beiträge: 4 Registriert: 02.04.2014
|
erstellt am: 11. Apr. 2014 14:04 <-- editieren / zitieren --> Unities abgeben:
Hallo Robert, vielen Dank für deine Unterstützung. Deine hilfreichen Tipps haben mich echt super vorangebracht. Aber so ganz fertig bin ich leider noch nicht mit meinen Problemen. Lasse ich das Programm laufen, bekomme ich einen einzigen konstanten Geschwindigkeitswert für alle Timesteps, nämlich der Wert, den ich in die U-Datei eingegeben habe. Nur der Druck ist variabel, in der Force-log-Datei erhalte ich sogar gar keine Kräfte, also (0,0,0). In deiner runlog-Datei scheinen die Werte doch plausibel zu sein. Woran könnte das deiner Meinung nach liegen? Mit welchem Allrun-Skript hast du das Programm angeschmissen? Hast du evtl. dafür ein eigenes Skript geschrieben? in der komprimierten Datei lag diese nicht vor. Vielen Dank im Voraus. Gruß akif61 [Diese Nachricht wurde von akif61 am 13. Apr. 2014 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
slint Mitglied M.Sc. Schiffs- und Meerestechnik
Beiträge: 48 Registriert: 02.09.2012 OpenFOAM 2.3.x
|
erstellt am: 12. Apr. 2014 13:15 <-- editieren / zitieren --> Unities abgeben: Nur für akif61
Hallo Recep, ich kann dir nicht genau sagen, was bei dir schief gelaufen ist. Im Anhang findest du den Case mit meiner Allrun-Datei. Wenn du sie ausführst, dann sollte es funktionieren... du musst sie dann noch anpassen Bitte sag mir Bescheid, ob es funktionert! Beste Grüße, Robert Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
akif61 Mitglied
Beiträge: 4 Registriert: 02.04.2014
|
erstellt am: 15. Apr. 2014 15:39 <-- editieren / zitieren --> Unities abgeben:
|