Autor
|
Thema: Numerische Schemen (6307 mal gelesen)
|
Shor-ty Moderator
Beiträge: 2463 Registriert: 27.08.2010 OpenFOAM-dev (Foundation) OpenFOAM-xxxx (ESI)
|
erstellt am: 13. Aug. 2012 11:41 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, beschäftige mich gerade mit den numerischen Schemen näher. Kurze Frage bezüglich folgender Definition:
Code:
div(phi,csi) Gauss limitedLinear01;
bedeutet, dass ich die Berechnung mit einem:Gauss Verfahren 2ter-Ordnung durch eine lineare Interpolation bestimme, dabei jedoch die Variable csi zwischen 0 und 1 eingrenze? Seh ich das richtig? Wenn ja könnte ich (laut UserGuide) dies etwas anders beschreiben:
Code:
div(phi,csi) Gauss limitedLinear 0 1;
Stimmt das? Wenn ich richtig liege, versteh ich folgende Beschreibungsform nicht ganz:
Code:
div(phi,csi) Gauss limitedLinear01 0.25;
Prinzipiell würde ich hier ja zwischen 0 und 1 bounden, jedoch mit dem Parameter 0.25 die obere Grenze wieder auf 0.25 beschränke. Warum schreibt man dies dann nicht wie folgt:
Code:
div(phi,csi) Gauss limitedLinear 0 0.25;
Oder bedeutet dieses 01 0.25 etwas anderes? Weiter steht im UserGuide, dass in den gradSchemes Gauss ein Interpolationsverfahren 2ter Ordnung ist. Bei Verwendung von
Code:
div(phi,csi) Gauss upwind;
dürfte ich allerdings nur einer Genauigkeit 1.Ordnung besitzen. Und bei linearUpwind wiede 2ter Ordnung als Upwindverfahren. Bin hier leider noch nicht so fit, deswegen muss das geändert werden. Für Anregungen wäre ich dankbar. Grüße & ein guten Start in die Woche. Tobi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ulrich Heck Mitglied OpenFOAM Tool Entwicklung
Beiträge: 291 Registriert: 08.09.2003 CastNet (DHCAE Tools) OpenFOAM CalculiX
|
erstellt am: 13. Aug. 2012 17:53 <-- editieren / zitieren --> Unities abgeben: Nur für Shor-ty
Hallo Tobi, wenn Du beim limitedLinear-Scheme die Variable für das Scheme bounden willst, heißt meines Wissens das entsprechende Scheme limitedLimitedLinear. Generell bedeutet der erste Parameter hinter dem limitedLinear ob der Limiter voll angewendet werden soll. Erst dann kommen die Bounds d.h. z.B. mit limitedLimitedLinear 1 0 100 heisst, dass der Limiter im LimitedScheme voll verwendet wird (sonst wird des wohl in ein zentrales Differenzenverfahren (linear) überblenden). D.h. dieser Parameter ist auch im "einfachen" limitedLinear erforderlich. Beim limitedLimitedLinear kommen dann die Bounds 0 und 100 Deiner Variable in diesem Scheme hinzu. LinearUpwind wird als Verfahren 2. Ordnung angesehen (zumindest in der Fluent Terminologie ist ein "Upwind 2 Ordnung" das LinearUpwind), da in Bestimmung der Größen an den Zellgrenzen nicht nur ein stromauf (upwind) liegender Wert eingeht sondern die Linearkombination aus 2 stromauf liegenden Zellen genommen wird. Das Upwind nimmt nur den direkt stromauf liegenden Wert ist dadurch besonders stabil aber auch reichlich diffusiv, d.h verschmiert den Gradienten. Gruß Ulrich
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: 13. Aug. 2012 18:36 <-- editieren / zitieren --> Unities abgeben:
Hi Ulrich, danke für deine erste Antwort. Entsprechend deiner Aussage fasse ich auf, dass limitedLimitedLinear 0.5 0 100 den Limiter zu 50% anspricht ? Oder gibt es sowas überhaupt? *unwissenheit-schützt-nicht* Und sehe ich das richtig, dass ich über die Bounds bestimmen kann, dass die Variable in dem Variablenwert sein MUSS. Es ist nämlich so, dass ich eine Fluktuationsvariable habe, welche mit folgender Definition in OF eingepflegt wurde:
Code:
div(phi,csiv2) Gauss limitedLinear01 0.25;
Heißt das dann das der Wert dieser Variablen max. 0.25 sein darf? Mathematisch betrachtet, darf diese nämlich diesen Wert nicht überschreiten und muss im Wert von 0 - 0.25 liegen. Entsprechend wäre meine nächste Frage, was passiert wenn der Wert über 0.25 geht. Erhalte ich dann eine Bounded-Meldung? Grüße und vielen Dank. Tobi
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ulrich Heck Mitglied OpenFOAM Tool Entwicklung
Beiträge: 291 Registriert: 08.09.2003 CastNet (DHCAE Tools) OpenFOAM CalculiX
|
erstellt am: 13. Aug. 2012 19:05 <-- editieren / zitieren --> Unities abgeben: Nur für Shor-ty
Hallo Tobi, wenn Du einschränken willst, das für dieses Schemes die Variable csiv2 zwischen 0 0.25 liegt, solltest Du meines Wissens limitedLimitedLinear 1 0 0.25; verwenden. Ich bin mir nicht absolut sicher, es gab in letzten Versionen ein paar Änderungen bei den div-Schemes, aber meines Wissen betrafen die nur das linearUpwind. Das limitedLinear01 schränkt eine Variable im Konvektionsterm immer zwischen 0 und 1 ein, ist z.B. geeignet für alpha bei VOF, oder Volumenanteile bei Reaktionen. D.h. dies ist eine Sonderform des limitedLimitedSchemes mit vorgegebenen Bounds (0 und 1) für bestimmte Felder. Das Limitieren hier betrifft aber nur das div-Schemes. D.h. in anderen Schemes kann es je nach Verfahren zu höheren Werten für die entsprechende Variable kommen. Es ist also nicht vergleichbar mit z.B. einem rhoMin/rhoMax bei den kompressiblen Solvern. Gruß Ulrich 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: 13. Aug. 2012 21:55 <-- editieren / zitieren --> Unities abgeben:
Hallo Ulrich, danke nochmals für deine Antwort. Bringt mich auf jedenfall zu Beginn weiter. Im Ferziger & Peric habe ich gerade gelesen, das die Upwind-Interpolation die einzige ist, die bedingungslos die Beschränktheitsanforderung erfüllt und dadurch nie oszillierende Lösungen ergeben wird, dafür aber, wie du bereits erwähntest, sehr diffusiv ist. Ich hab hier jedoch einen Fall, der nicht konvergieren will. Verwende ich ein grobes Gitter, geht alles ohne Probleme - auch 2nd Order konvergiert - werde ich feiner, erhalte ich Stagnation mit Oszillationen über diesem Wert. Irgendeine Idee auch bezüglich Netz? Es ist merkwürdig, dass ich durch ein feiner werdendes Netz diese Oszillation und Stagnation erhalte. Es handelt sich um eine 2D - Geometrie (Zylinder| | type wedge) Morgen könnt ich ggf. mal ein Screenshot hochladen. Deswegen auch die einarbeitung in die Schemes. 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: 14. Aug. 2012 08:11 <-- editieren / zitieren --> Unities abgeben:
Ich bring dennoch irgendwas durcheinander. Habe mir heute meine Schemes nochmals angeschaut und gemerkt, dass ich in den grad Schemes Gauss linear habe und nur die Gauss upwind bei den div - Schemes eingestellt habe. Nachdem ich in den Grad-Schemes, Gauss upwind, verwenden wollte erhalte ich folgende Fehlermeldung: Code:
attempt to read beyond EOFfile: /home/.../case/system/fvSchemes::gradSchemes::grad(U) at line 25. From function ITstream::read(token& t) in file db/IOstreams/Tstreams/ITstream.C at line 84. FOAM exiting
Ich glaube ich bring da irgendwas durcheinander?! Tobi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ulrich Heck Mitglied OpenFOAM Tool Entwicklung
Beiträge: 291 Registriert: 08.09.2003 CastNet (DHCAE Tools) OpenFOAM CalculiX
|
erstellt am: 14. Aug. 2012 09:05 <-- editieren / zitieren --> Unities abgeben: Nur für Shor-ty
Hallo Tobi, bei den Grad-Schemes kann man meines Wissens kein Upwind verwenden. Würde auch wenig Sinn machen für einen Gradienten nur den stromauf liegenden Wert zu nehmen und den auf die Zellfläche zu übertragen. Schließlich gibt es bei grad-Scheme keinen konvektiven Transport wie in den Konvektions-Schemes. Etwas mehr Stabilität als als Gauss linear bringen die cellLimited-Schemes wie z.B. grad(U) cellLimited Gauss linear 1; Ich vermute aber bei liegt das Problem nicht an den Schemes. Wenn Dein Fall stationär, Du mit einem RANS-Turbulenzmodell arbeitest und die Gitterqualität okay ist (gehe ich mal von aus bei einem 2d Fall) denke ich, Du fängst mit dem feineren Gitter an turbulente Strukturen örtlich auflösen, die vereinfacht gesagt mit dem groben Gitter übergebügelt wurden. Prinzipiell hat man dann mindestens 2 Möglichkeiten: Sich das ganze mal mit LES anzusehen, wie die grossen Wirbel denn aussehen und ob diese dominant sind (man muss dann aber ein 3d-Modell erstellen) Oder (zumindest kenne ich Leute die das tun) mehrere quasi-stationäre Ergebnisse mitteln... Wäre aber sich nicht die sauberste Lösung. Andere Möglichkeit, die das Probelm verursachen könnte wären noch die RBs (z.B. Rückströmung am Outlet dann -> inletOutlet verwenden). Gruß Ulrich
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: 14. Aug. 2012 10:35 <-- editieren / zitieren --> Unities abgeben:
Hallo Ulrich, 1000 Dank für deine Hilfestellung. Du hattest recht. Mit dem feineren Netz erhalte ich die Oszillationen deshalb, weil ich die Turbulenzen örtlich auflöse. Das erkennt man gut in den Timesteps von 10000-11000, die jeweils alle 50 Schritte gespeichert werden. Dabei habe ich eine Startlösung des gröberen Netzes genommen und man sieht deutlich, dass die Turbulenz aufgelöst wird Sehr schön Und danke für deine Antworten. 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: 20. Aug. 2012 14:33 <-- editieren / zitieren --> Unities abgeben:
Hallo Ulrich, ich hätte noch eine Frage. kannst du mir irgendwelche Referenzen, Literatur etc. nennen, in denen ich so etwas nachlesen kann? Bzw. generell für OF? Sind die Angaben im UG alles was vorliegt oder gibts auch irgendwo eine Präsentation, in der man da nochmals etwas genauer drauf eingeht? Grüße Tobi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ulrich Heck Mitglied OpenFOAM Tool Entwicklung
Beiträge: 291 Registriert: 08.09.2003 CastNet (DHCAE Tools) OpenFOAM CalculiX
|
erstellt am: 20. Aug. 2012 15:01 <-- 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: 20. Aug. 2012 16:04 <-- editieren / zitieren --> Unities abgeben:
|
Shor-ty Moderator
Beiträge: 2463 Registriert: 27.08.2010 OpenFOAM-dev (Foundation) OpenFOAM-xxxx (ESI)
|
erstellt am: 09. Okt. 2012 12:58 <-- editieren / zitieren --> Unities abgeben:
Hallo Ulrich, ich hab mir unsere Konversation nochmals durchgelesen und mir ist heute nochmals einiges klarer geworden. Manchmal sollte man einfach etwas Abstand gewinnen um es dann nochmals zu lesen. Bezüglich Bounding hätte ich jedoch nochmals eine Frage. Ich Löse eine Enthalpiegleichung für die Bestimmung eines Defekts. Dabei stellt diese Gleichung eine einfache Transportgleichung dar mit den RB inletAir = WertAir; inletFuel = WertFuel; Diese Werte werden dann quasi "vermischt" und es sollte sich dann in der Zelle ein Wert zwischen diesen beiden Initialisierungswerten einstellen. Wie bei Alpha im VOF (0-1) liegt H zwischen -1e-6 und -1e-5. Leider erhalte ich via
Code:
Gauss linear Gauss linearUpwind Gauss limitedLinear1
einen Zuwachs der Werte. Ich habe gerade mit
Code:
Gauss upwind
getestet und hier sind die Werte im angenommen Bereich (somit in Ordnung).Leider ist diese Lösung ja sehr diffusiv. Gäbe es den noch mehrere Möglichkeiten? Zweiter Ordnung wäre schon sehr schön. Ich werde jetzt noch mit
Code:
Gauss limitedLimitedLinear
einen Testlauf durchführen, nur die Frage ist wie ich das dann bounde?
Code:
Gauss limitedLimitedLinear 1 -1e6 -1e5
Wenn dies so wäre, müsste ich quasi für jede Berechnung meine Boundingwerte neu eintragen, da diese von der Brennstoffzusammensetzung abhänigig ist. Oder reicht es folgendes zu verwenden:
Code:
Gauss limitedLimtedLinear 1
------------------ Grüße Tobias H.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bando Mitglied Wissenschaftlicher Mitarbeiter
Beiträge: 1 Registriert: 13.12.2012
|
erstellt am: 13. Dez. 2012 10:16 <-- 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: 13. Dez. 2012 13:02 <-- editieren / zitieren --> Unities abgeben:
Hallo und Willkommen im OpenFOAM Forum, dein Tipp für das Buch ist sehr interessant und ich werde es mir sofort bestellten
Der Ferziger ist sehr mathematisch bezogen, dass ich sehr schätze Trotzdem werde ich mir die Literatur von dir gerne durchlesen. Danke für den Hinweis. ------------------ Grüße Tobias H. 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: 17. Dez. 2012 13:24 <-- editieren / zitieren --> Unities abgeben:
Hallo, also ich hab das Buch jetzt halb durchgearbeitet, d.h. ich habe die Theorie und das erste Beispiel durchgemacht (ist ja echt nen sehr simpler aber anschaulicher Fall). Interessant. Ich werde die Schemen noch erweitern und das Ergebnis auf meiner HP veröffentlichen. Interessanterweise bezieht sich Herr Schwarze vor allem im Bereich der Theorie oft auf den Ferziger . Hierbei habe ich allerdings bei den Aussagen des Schemas "linearUpwind grad(phi)" doch einige andere Aussagen bemerkt. Stellt Herr Schwarze dieses Schema als Vorteil von Upwind + Linear um die Nachteile beider zu beseitigen wird im Ferziger eher eine Aussage vertreten, dass dieses Schema nicht unbedingt verwendet werden sollte, da unphysikalische Lösungen etc. Trotzdem ein gut gelungenes Werk. Ich werde das Buch und die Beispiele demnächst durcharbeiten und hier nochmals ein Feedback für die Öffentlichkeit geben.
------------------ Grüße Tobias H. 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: 19. Dez. 2012 00:11 <-- editieren / zitieren --> Unities abgeben:
Das Buch ist durchgearbeitet und ich muss sagen: Empfehlenswert. Zwar war mir alles in der Theorie bekannt aber die Auflistung der Turbulenzmodelle finde ich sehr gut. Auch die Darstellung der "numerischen Diffusion" ist sehr gelungen. Auch das Beispiel zur Abschätzung des numerischen Fehlers ist prima. Vor allem zum Nachschlagen bestimmter Themen wunderbar geeignet. Lässt sich schön lesen und durcharbeiten. Auch für OpenFOAM Anfänger sind sicherlich einige interessante Darstellungen und Informationen enthalten. Das ist mein Eindruck vom Buch. Verschaft aufjedenfall nochmals einen guten Überblick, auch im Hinblick von Druck-Korrekturgleichungen und einen kleinen Ausschnitt von der Numerik. Ein paar Fehler sind mir aufgefallen aber nicht weiter schlimm. Grüße und ein frohes Fest 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: 22. Dez. 2012 20:38 <-- editieren / zitieren --> Unities abgeben:
|