Autor
|
Thema: Randbedingungen bei chtMultiRegionSimpleFoam (3948 mal gelesen)
|
svengineer Mitglied Student / Ingenieur
Beiträge: 28 Registriert: 13.11.2013
|
erstellt am: 03. Jun. 2014 16:11 <-- editieren / zitieren --> Unities abgeben:
Hallo, nach einer längeren Pause versuche ich wieder etwas mit freier konvektion zu lösen. Dazu habe ich mit meinem bisherigen Wissen aus dem chtMultiRegionHeater (Tutorial für chtMultiRegionFoam) einen chtMultiRegionSimpleHeater gemacht. Der Case-Ordner ist hier: chtMultiRegionSimpleHeater.zip Ich habe damit aber noch ein paar Probleme, die ich alleine nicht lösen kann. 1. Die Luft strömt nicht entgegengesetzt der Gravitation in positive Z-Richtung, sondern viel zu schnell in negative Z-Richtung. Ich kann mir nicht erklären, warum. Evtl. ist in den Randbedingungen ein Fehler. 2. Die Wärme scheint sich nur langsam zu verteilen und an den Grenzen zu anderen Geometrien funktioniert der Wärmeübergang nicht richtig. 3. Ich bin mir nicht sicher, ob ich für den Wärmeübergang Solid <-> Fluid die richtigen Randbedingungen gesetzt habe. Es sieht nicht so aus, als würde Wärme an die Luft abegegeben werden. 4. Was kann ich hier besser machen? Ich würde diesen case gerne als Vorlage für weitere Simulationen nehmen, die alle sehr Ähnlich sind und nur die Solid-Geometrien ausgetauscht werden. Wäre super, wenn sich das mal jemand mit mehr Ahnung angucken könnte.
Grüße Sven 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: 03. Jun. 2014 16:26 <-- editieren / zitieren --> Unities abgeben: Nur für svengineer
Hallo Sven, dein Beispiel ist leider nicht im Anhang zu sehen (lediglich das Bild). Sieht aus als hättest du das Tutorial nur um 90Grad gedreht? - Randbedingungen richtig gesetzt
- Gravitation angepasst bzw. richtig gesetzt?
------------------ Best regards, Tobias Holzmann Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
svengineer Mitglied Student / Ingenieur
Beiträge: 28 Registriert: 13.11.2013
|
erstellt am: 03. Jun. 2014 16:45 <-- editieren / zitieren --> Unities abgeben:
Hallo Tobias, mir ist auch aufgefallen, dass die Datei nicht hochgeladen wurde. Sie befindet sich jetzt hinter dem Link im Beitrag oben. Ja, ich habe die Gravitation von Y-Richtung nach Z-Richtung verändert. Ich kann aber nicht erkennen, wo da ein Fehler sein soll. Ich denke es sind eher die Randbedingungen minZ, maxZ (inputOutput). Aber da ist auch alles positiv... 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: 03. Jun. 2014 17:08 <-- editieren / zitieren --> Unities abgeben: Nur für svengineer
Kurze Zwischenfrage, also deine Randbedingungen für U in deiner domain0 müsstest mir mal erklären (:
Code:
U { internalField uniform (0 0 0.1); boundaryField { ".*" { type fixedValue; value uniform ( 0 0 0 ); } minZ { type inletOutlet; inletValue uniform ( 0 0 0 ); value uniform ( 0 0 0 ); } maxZ { type inletOutlet; inletValue uniform ( 0 0 0.1 ); value uniform ( 0 0 0.1 ); } minY { type fixedValue; value uniform ( 0 0 0 ); } maxX { type fixedValue; value uniform ( 0 0 0 ); } minX { type fixedValue; value uniform ( 0 0 0 ); } maxY { type fixedValue; value uniform ( 0 0 0 ); } } }
Zuerst sagst du das alle Oberflächen eine "fixedValue (0 0 0)" bekommen und danach definierst du die einzelnen Bedingungen.
- minZ --> da kann nichts einströmen, da du die Einströmung auf 0 setzt.
- maxZ --> Sollte der Druck so sein, dass etwas hineinströmt, dann stellst du das auf den Wert 0.1 m/s
- Turbulenzmodell ausstellen -> Laminar rechnen -> Freie Konvektion
- Deine Randbedingungen für Ein- und Auslass für T nochmals prüfen - bezogen auf deine "inletOutlet" Patches?
Damit wäre wohl vorerst einiges geklärt oder Verwende doch druckabhängige Inlets/Outlets und dein p_rgh würde ich mit ggf. staticPressure definieren - obwohl das wesentlich größeren Einfluss auf 2Phasen-Strömungen hat. ------------------ Best regards, Tobias Holzmann
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
svengineer Mitglied Student / Ingenieur
Beiträge: 28 Registriert: 13.11.2013
|
erstellt am: 03. Jun. 2014 17:20 <-- editieren / zitieren --> Unities abgeben:
Das leuchtet mir zwar ein, aber mir ist noch nicht klar, wie die die Werte sinnvoll einstelle. Da es sich um freie Konvektion handelt, soll sich die Luft nur aufgrund der Erwärmung -> Dichteänderung bewegen. Wie setze ich also die Randbedingungen, damit sich das System so verhält? EDIT: Nicht gesehen, dass du deinen Beitrag erweitert hast.
Das Turbulenzmodell sollte doch schon ausgestellt sein. Oder reicht es nicht das in den turbulenceProperties zu tun? Die Einlass- und Auslasstemperatur soll wie alles andere Umgebungstemperatur haben. Was ist daran falsch? Und wie erstelle ich die Druckabhängigen inletOutlets? [Diese Nachricht wurde von svengineer am 03. Jun. 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: 03. Jun. 2014 21:51 <-- editieren / zitieren --> Unities abgeben: Nur für svengineer
Hallo Sven, am "inlet" unten würde ich die Temperatur auf einen festen Wert setzen. Für die Randbedingungen der Geschwindigkeit würde ich folgendes Vorschlagen:
- pressureInletVelocity am Inlet
- pressureInletOutletVelocity am Outlet
Für die Randbedingungen der Temperatur würde ich folgendes Vorschlagen:
- fixedValue am Inlet
- zeroGradient am Outlet
- solltest du Rückströmungen am Outlet haben, kannst du dann ja immer noch dein "inletOutlet" als RB setzen
Turbulenzmodell:
- Sorry - da ich nur im Windows war und deine Files für k und epsilon gesehen habe, dachte ich das du das noch nicht gemacht hast mein Fehler. Natürlich musst du das in den turbulenceProperties umstellen. Da hatte ich aber noch keinen Blick drauf geworfen.
Druckbedingungen:
- für p_rgh kannst ggf am Outlet ein "staticPressure" setzen oder totalPressure
- Konsultiere mal die buoyancy tutorials. Da dürfte bestimmt was dabei sein (gilt für alle Randbedingungen)
Zitat: Original erstellt von svengineer:
Da es sich um freie Konvektion handelt, soll sich die Luft nur aufgrund der Erwärmung -> Dichteänderung bewegen. Wie setze ich also die Randbedingungen, damit sich das System so verhält?
Das ist durchaus klar. Als Hinweis für dich:
- Bei freier Konvektion sind die Auftriebskräfte relativ klein, sodass es oftmals sinnvoll ist, die Genauigkeit der berechneten Werte auf 8 Nachkommastellen etc. zu erhöhen. Thomas hat hier im Forum auch schon mal sowas erwähnt
- Die Einstellung nimmst du im controlDict vor
------------------ Best regards, Tobias Holzmann
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Micha6982 Mitglied Akademischer Mitarbeiter
Beiträge: 130 Registriert: 20.01.2014 ubuntu 16.04 Salome 7.7.1 & 7.8.0 OpenFOAM 3.x & 4.x
|
erstellt am: 04. Jun. 2014 09:27 <-- editieren / zitieren --> Unities abgeben: Nur für svengineer
Hallo zusammen, hier sind die Randbedingungen für freie Konvektion zu finden: http://ww3.cad.de/foren/ubb/Forum527/HTML/000539.shtml Vielleicht nochmal kurz zur Erklärung:
U: pressureInletOutletVelocity für die Ein- und Ausströmbedingung --> da heißt soviel wie zeroGradient rein und raus fixedValue - für Wände P: alles auf calculated p_rgh: an Wänden fixedFluxPressure unten an der Atmosphäre totalPressure oben an der Atmosphäre inletOutlet T: Atmosphäre inletOutlet Wände fixedValue oder zeroGradient Für die Kontaktzone von fluid zu solid compressible::turbulentTemperatureCoupledBaffleMixed Und noch ein Hinweis: Es dauert einige Iterationen, bis sich ein gutes Ergebnis einstellt (qualitativ) und noch mehr, bis es konvergiert ist.
------------------ Viele Grüße Michael [Diese Nachricht wurde von Micha6982 am 04. Jun. 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: 04. Jun. 2014 10:07 <-- editieren / zitieren --> Unities abgeben: Nur für svengineer
Zitat: Original erstellt von Micha6982:
Vielleicht nochmal kurz zur Erklärung:U: pressureInletOutletVelocity für die Ein- und Ausströmbedingung --> da heißt soviel wie zeroGradient rein und raus
Da stimm ich dir nicht ganz überein. PressureInletOutletVelocity setzt beim Ausströmen zeroGradient für den Tangentialen und Normalenanteil und beim Einströmen zeroGradient für den Normalenanteil allerdings ein fixedValue für den Tangentialanteil. Sonst könntest ja auch gleich "zeroGradient" verwenden Zitat:
p_rgh: an Wänden fixedFluxPressure unten an der Atmosphäre totalPressure oben an der Atmosphäre inletOutlet
p =! p_rgh ... darüber sollte man sich stets im klaren sein. inletOutlet habe ich persönlich noch nie für p oder p_rgh verwendet weil beim einströmen der Wert wieder auf den eingestellten Wert gesetzt wird (inletValue) und das nicht wirklich einen physikalischen Aspekt hat, der ggf. bei freier Konvektion dann wieder vernachlässigt werden kann. Würde ich aber trotzdem nicht setzen. Zitat:
Und noch ein Hinweis: Es dauert einige Iterationen, bis sich ein gutes Ergebnis einstellt (qualitativ) und noch mehr, bis es konvergiert ist.
Kommt immer drauf an was du betrachtest und welchen Löserungsalgorithmus du verwendest. Pauschal kann man das aber so nicht sagen. PS: Dein Link ist wieder falsch eingebettet (bereits behoben)
------------------ Best regards, Tobias Holzmann Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
svengineer Mitglied Student / Ingenieur
Beiträge: 28 Registriert: 13.11.2013
|
erstellt am: 04. Jun. 2014 12:22 <-- editieren / zitieren --> Unities abgeben:
Hallo, danke für die Hilfestellung! Ich habe heute Morgen etwas rumprobiert und finde das Ergebnis schon deutlich besser. Nur sehen die Geschwindigkeitsvektoren am Outlet noch nicht ganz richtig aus. Ich habe bei den Randbedingungen nun folgende Einstellungen gemacht: U:
Code:
inlet { type pressureInletVelocity; value uniform ( 0 0 0 ); } outlet { type pressureInletOutletVelocity; inletValue uniform ( 0 0 0 ); value uniform ( 0 0 0 ); }
T:Code:
inlet { type fixedValue; value uniform 295.15; } outlet { type inletOutlet; inletValue uniform 295.15; value uniform 295.15; }
p_rgh:Code:
inlet { type totalPressure; value uniform 100000; U U; gamma 1; p0 uniform 100000; phi phi; psi none; rho rho; } outlet { type totalPressure; value uniform 100000; U U; gamma 1; p0 uniform 100000; phi phi; psi none; rho rho; }
Die Wärmeverteilung in den Solids stimmt noch nicht. Wo liegt da der Fehler? Ich habe bereits die thermophysicalProperties gecheckt und nichts gefunden. Die Stoffwerte sind für alle Geometrien gleich.
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: 04. Jun. 2014 13:04 <-- editieren / zitieren --> Unities abgeben: Nur für svengineer
Zitat: Original erstellt von svengineer: Hallo, p_rgh:
Code:
inlet { type totalPressure; value uniform 100000; U U; gamma 1; p0 uniform 100000; phi phi; psi none; rho rho; } outlet { type totalPressure; value uniform 100000; U U; gamma 1; p0 uniform 100000; phi phi; psi none; rho rho; }
2x Totalpressure als p_rgh Bedingung? p_rgh ist nicht der statische oder hydrostatische Druck! Ich verweise mal hierauf: cfd-online.com
Setze doch dein outlet auf "zeroGradient" und schau was dann passiert. Bzw. fixedFluxPressure. Ggf kannst du auch dein Inlet auf fixedValue setzen und dein Outlet auf zeroGradient/fixedFluxPressure/buoyantPressure.
Code:
outlet { type pressureInletOutletVelocity; inletValue uniform ( 0 0 0 ); value uniform ( 0 0 0 ); }
inletValue benötigst du nicht. ------------------ Best regards, Tobias Holzmann Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
svengineer Mitglied Student / Ingenieur
Beiträge: 28 Registriert: 13.11.2013
|
erstellt am: 04. Jun. 2014 13:41 <-- editieren / zitieren --> Unities abgeben:
|
Shor-ty Moderator
Beiträge: 2463 Registriert: 27.08.2010 OpenFOAM-dev (Foundation) OpenFOAM-xxxx (ESI)
|
erstellt am: 04. Jun. 2014 15:00 <-- editieren / zitieren --> Unities abgeben: Nur für svengineer
|
svengineer Mitglied Student / Ingenieur
Beiträge: 28 Registriert: 13.11.2013
|
erstellt am: 04. Jun. 2014 15:26 <-- editieren / zitieren --> Unities abgeben:
|
svengineer Mitglied Student / Ingenieur
Beiträge: 28 Registriert: 13.11.2013
|
erstellt am: 04. Jun. 2014 16:15 <-- editieren / zitieren --> Unities abgeben:
Die Wärmeübertragung zwischen des Solids funktioniert jetzt. Ich musste in den Temperaturrandbedingungen für jeden Bauteilkontakt noch eine Kopplung einfügen: T:
Code:
solid1_to_solid2 { type compressible::turbulentTemperatureCoupledBaffleMixed; Tnbr T; kappa solidThermo; kappaName none; value uniform 295.15; }
Es dauert aber lange, bis sich die Wärme verteilt. Eigentlich sollte das am schnellsten gelöst sein.
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: 04. Jun. 2014 23:30 <-- editieren / zitieren --> Unities abgeben: Nur für svengineer
Hallo Sven, Michael hat das doch in seinem Thread erwähnt (die Kopplung). Zu deinem Outlet noch. Du kannst auch nochmals totalPressure unten und oben setzen und oben bei "U" dann zeroGradient, oder eben mal mit inletOutlet wobei das inletValue auf null gesetzt wird. Zudem kannst du noch mit staticPressure testen etc. Es gibt ja genügend Möglichkeiten. Ggf. mit fixedValue in p_rgh beim inlet und outlet = buoyantPressure oder sowas. Hab mir soeben die Tutorials angeschaut und die machen es sich immer sehr einfach, indem se eine Strömung vorgeben. D.h. irgendwo strömt immer etwas ins Rechengebiet. Das ist natürlich numerisch gesehen wesentlich besser verglichen mit einem Start in deinem Setting.
------------------ Best regards, Tobias Holzmann Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
svengineer Mitglied Student / Ingenieur
Beiträge: 28 Registriert: 13.11.2013
|
erstellt am: 05. Jun. 2014 09:15 <-- editieren / zitieren --> Unities abgeben:
Hallo Tobias, Michael hat in seinem verlinkten Thread keine Solids, die gekoppelt werden müssen. In seinem Beitrag oben erwähnte er nur die "Kontaktzone von fluid zu solid". Bei mir ging es um solid zu solid und ich wusste nicht, dass es dafür die gleiche Kontaktbedingung ist. Ich lese mir schon ordentlich durch, was ihr schreibt Mit den Randbedingungen überlege ich mir noch etwas, damit das numerisch einfacher zu lösen wird. Vielleicht an den Seitenwänden eine kleine Geschwindigkeit? Für p_rgh scheint es nicht die Möglichkeit zu geben staticPressure oder buoyantPressure einzustellen. Es kommt die Fehlermeldung mit den möglichen Typen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
svengineer Mitglied Student / Ingenieur
Beiträge: 28 Registriert: 13.11.2013
|
erstellt am: 05. Jun. 2014 10:50 <-- editieren / zitieren --> Unities abgeben:
Das ist mein bisheriges Ergebnis (Bilder). Es fällt auf, dass die Luft am outlet nicht mehr umgelenkt wird. U:
Code:
inlet { type pressureInletVelocity; value uniform ( 0 0 0 ); } outlet { type inletOutlet; inletValue uniform ( 0 0 0 ); }
T:Code:
inlet { type fixedValue; value uniform 295.15; } outlet { type inletOutlet; inletValue uniform 295.15; value uniform 295.15; }
p_rgh:Code:
inlet { type totalPressure; value uniform 100000; U U; gamma 1; p0 uniform 100000; phi phi; psi none; rho rho; } outlet { type inletOutlet; inletValue uniform 100000; }
Um ein schnelleres Ergebnis für die Strömung zu bekommen, habe ich die Starttemperatur der Solids erhöht. Bei der Wärmeverteilung sieht sieht man, dass die Kühlung nicht richtig funktioniert. Es sollte unten kälter sein als oben. Stattdessen ist die Wärme noch gleichmäßig verteilt. 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: 05. Jun. 2014 11:05 <-- editieren / zitieren --> Unities abgeben: Nur für svengineer
Was ist wenn du am Outlet - zeroGradient für p_rgh setzt, bzw. fixedFluxPressure?
- Bitte geb mal das T-File von einem deiner seitlichen Solids + die Boundary Datei
- Zusätzlich mal das T-File der Luft + Boundary Datei
------------------ Best regards, Tobias Holzmann Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
svengineer Mitglied Student / Ingenieur
Beiträge: 28 Registriert: 13.11.2013
|
erstellt am: 05. Jun. 2014 11:28 <-- editieren / zitieren --> Unities abgeben:
Ich habe mal den gesamten Case-Ordner hochgeladen. Die Änderung des outlets auf zeroGradient hat keine ersichtliche Änderung gebracht. Bei fixedFluxPressure hat den Ausgang wieder geschlossen. Die Luft wird also abgelenkt. 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: 05. Jun. 2014 13:00 <-- editieren / zitieren --> Unities abgeben: Nur für svengineer
Ich hab leider grad kein Linux zur Hand. Hab aber glaub schon nen großen Fehler gefunden. Kannst du bitte die "Boundary" von domain0, heater, und einer seitlichen Domain hochladen ------------------ Best regards, Tobias Holzmann Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
svengineer Mitglied Student / Ingenieur
Beiträge: 28 Registriert: 13.11.2013
|
erstellt am: 05. Jun. 2014 13:30 <-- editieren / zitieren --> Unities abgeben:
|
Shor-ty Moderator
Beiträge: 2463 Registriert: 27.08.2010 OpenFOAM-dev (Foundation) OpenFOAM-xxxx (ESI)
|
erstellt am: 05. Jun. 2014 16:34 <-- editieren / zitieren --> Unities abgeben: Nur für svengineer
Hmmm ... danke. Ist soweit alles in Ordnung. Ich werde es mir heut Abend ggf. mal kurz anschauen. Was sagt die Simulation wenn du ohne Fluid rechnest? Schon versucht? Hast du dann eine Wärmeausbreitung im Solid? Vllt auch einfach ein Anzeigefehler in Paraview, bzw. ein Darstellungsfehler Werden für die Solids denn hin und wieder Iterationen durchgeführt (siehe Ausgabe Solver) ------------------ Best regards, Tobias Holzmann Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Micha6982 Mitglied Akademischer Mitarbeiter
Beiträge: 130 Registriert: 20.01.2014 ubuntu 16.04 Salome 7.7.1 & 7.8.0 OpenFOAM 3.x & 4.x
|
erstellt am: 06. Jun. 2014 06:10 <-- editieren / zitieren --> Unities abgeben: Nur für svengineer
Guten Morgen, ich habe mir gestern Abend den Case mal angeschaut. Zuerst einmal möchte ich dich bitten, dass du dir die Sache mit dem Parallelrechnen nochmal anschaust - Stichwort decomposePar und -parallel. Es sieht zwar so aus, als ob dein Computer auf 4 Cpus rechnet, aber im Endeffekt tut er es doch nicht Weiterhin sieht es so aus, als ob der Case mit einem Cpu schon sehr schnell rechnet, dass du hier mit 4 cpus wirklich besser fährst, mag ich zu bezweifeln - nutze lieber nur einen. Ich habe mich in letzter Zeit auch viel mit freier Konvektion beschäftigt. Ich habe zwar kleinere Temperaturdifferenzen was die Sache noch einmal schwieriger macht, aber meine Erfahrungen hierzu sind, dass 3.000 Iterationen nicht ausreichen. Prüfe doch mal, ob deine Strömung da schon konvergiert ist. Nicht das du voreilig Schlüsse ziehst - ist mir leider passiert. Bei mir (mein Fall) sieht die Strömung so ab 15.000 bis 20.000 Iterationen sehr gut aus, aber der Wärmestrom konvergiert teilweise erst bei 100.000 oder 200.000. Vergleiche ich meine Ergebnisse mir den entsprechenden Korrelation, so liege ich ca 10 % darüber - was schon sehr gut ist. Zu Messwerten schaffe ich es noch genauer Ich rechne heute Abend deinen Case, mit meinen Einstellungen, mal weiter. ------------------ Viele Grüße Michael 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. Jun. 2014 08:05 <-- editieren / zitieren --> Unities abgeben: Nur für svengineer
Auch von mir ein guten Morgen, Zitat: Original erstellt von Micha6982: Guten Morgen,ich habe mir gestern Abend den Case mal angeschaut.
Da haben wir gestern wohl beide das gleiche gemacht
Zitat:
Zuerst einmal möchte ich dich bitten, dass du dir die Sache mit dem Parallelrechnen nochmal anschaust - Stichwort decomposePar und -parallel. Es sieht zwar so aus, als ob dein Computer auf 4 Cpus rechnet, aber im Endeffekt tut er es doch nicht Weiterhin sieht es so aus, als ob der Case mit einem Cpu schon sehr schnell rechnet, dass du hier mit 4 cpus wirklich besser fährst, mag ich zu bezweifeln - nutze lieber nur einen.
Kann ich dir nur zustimmen. Die Berechnung in seinem Fall ist quasi 4x einzeln gestartet.
Zitat:
Ich habe mich in letzter Zeit auch viel mit freier Konvektion beschäftigt. Ich habe zwar kleinere Temperaturdifferenzen was die Sache noch einmal schwieriger macht, aber meine Erfahrungen hierzu sind, dass 3.000 Iterationen nicht ausreichen. Prüfe doch mal, ob deine Strömung da schon konvergiert ist. Nicht das du voreilig Schlüsse ziehst - ist mir leider passiert.
Stimm ich auch zu wobei die Iterationen immer Abhängig vom Fall, den Schemen, den Relaxationsfaktoren und anderen Faktoren abhängig ist. Zwecks Konvergenz ergänze ich hier und empfehle das Tool pyFoam oder ein eigenes Skript via gnuplot (einfach mal suchen). Zitat:
Ich rechne heute Abend deinen Case, mit meinen Einstellungen, mal weiter.
Hab ich gestern bis 2700 Iterationen. Konvergenze sieht gut aus aber noch nicht wirklich tief (e-3 bis e-4). Der Case scheint aber nen Fehler bei den Kopplungen zu haben, da
- Bei reiner Wärmeleitung (domain0 ausgeschaltet) sollte der Wärmeaustausch der Solids eigentlich sehr sehr schnell gehen (h 0.85)
- Die Interfaces scheinen zu funktionieren aber irgendwas ist im Argen hab aber gestern keine Zeit mehr gehabt das näher zu betrachten
- Wahrscheinlich findet Michael dein Problem eher als ich, da meine Konvektionsberechnungen bereits 4 Jahre zurückliegen. Muss hier noch erwähnen, dass ich einen Fehler << 5 % hatte (bei freier und << 10% bei erzwungener).
Vielleicht noch eine Anmerkung:
- In deinem Fallbeispiel finde ich das Netz schon zu fein um tests durchzuführen
- doppelte Zellengröße würde hier auch ausreichen um herumzuspielen damit hast du dann auch die Möglichkeit in kurzer Zeit deine Ergebnisse zu analysieren
- Vielleicht solltest du einmal von diesem Allrun Skript weggehen und die Einstellungen alle selber machen (ohne changeDictionaryDict etc.) um ein besseres Gefühl zu bekommen. Da gehen die Meinungen aber auseinander.
------------------ Best regards, Tobias Holzmann Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
svengineer Mitglied Student / Ingenieur
Beiträge: 28 Registriert: 13.11.2013
|
erstellt am: 06. Jun. 2014 15:28 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, vielen Dank für eure Beiträge! Ich hatte heute genug damit zu tun. Von der Parallelrechnung habe ich mich heute erstmal getrennt. Das hat weder eine Verbesserung noch eine Verschlechterung gebracht. Ich habe bei mir noch einen älteren Fall gefunden, bei dem die Wärmeübertragung in den Solids gut aussah. Den habe ich dann mit den neuen Randbedingungen Umgebaut. Das Ergebnis sieht zumindest augenscheinlich nicht schlecht aus. Mit pyFoam habe ich mich auch kurz beschäftigt. Ich fände es wirklich praktisch, einen Konvergenzplot zu sehen. Ich vermute, dass es immernoch nicht gut konvergiert. Ich finde es komisch, dass es solange dauert, bis es konvergiert. Im Vergleich zu einem kommerziellen Programm das ich für ähnliche Fälle verwende benötigt dieser Case mit 3000 Iterationen das 10-Fache. Da lässt sich bestimmt noch was rausholen. Die Berechnung der Wärmeübertragung in den Solids ist wohl noch zu langsam. Eine Simulation ohne Fluid konnte ich bisher noch nicht machen. Ich versuche am WE mal herauszufinden, was den Unterschied gebracht hat.
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. Jun. 2014 08:31 <-- editieren / zitieren --> Unities abgeben: Nur für svengineer
Hallo Sven, dein Case konvergiert allerdings habe ich den Verdacht das etwas mit den RB nicht passt, da die Wärmeübertragung der Solids schon wesentlich schneller gehen sollte als in meiner Rechnung zu sehen (SIMPLE-Algo). Hab aber auch keine Zeit den Fall derzeit genauer zu betrachten. Desweiteren möchte ich dich darauf hinweisen, dass du eine - salop gesagt - Gegenüberstellung von Kommerziellen Programmen mit OpenFOAM nur schwer tätigen kannst, da du nicht weißt:
- welches Lösungsverfahren diese Verwenden (bspw. SIMPLE, SIMPLER, SIMPLEC) >> bei manchen im User-Guide einzusehen aber wie es tatsächlich umgesetzt wird ist oftmals offen <<
- welche Relaxationsfaktoren verwendet werden (bspw. in OpenFOAM normalerweise fest vorgegeben, bei kommerziellen Toolboxen ggf. variabel um den bestmöglichsten Wert zu erzielen)
- welche Gleichungen wirklich gelöst werden
- Was für Zusatzgleichungen (Dämpfungsfunktionen etc.) berechnet werden
Es gibt natürlich noch eine Vielzahl anderer Variablen wie - Netz, Diskretisierung, Schemen, Löser, Randbedingungen ... Du kannst nur einen Vergleich ziehen wenn du wirklich in OpenFOAM und im kommerziellen Programm identische Einstellungen verwendest. Es kann durchaus sein das du mit einem kommerziellen Programm nur 700 Iterationen benötigst, jeder davon aber 10s dauert. Verglichen mit OpenFOAM kann es dann sein das du 7345 Iterationen benötigst, aber hier jede Iteration nur 1s dauert. Dann wäre die Berechnungszeit wieder einigermaßen gleich. (war jetzt nur ein fiktives Beispiel). Es ist also Vorsicht geboten mit solchen Aussagen. pyFoam Mit pyFoam braucht man sich zwecks Residuenverläufen nicht beschäftigen. Man kompiliert das Tool und verwendet folgendes Kommando:
Code:
pyFoamPlotWatcher.py log
------------------ Best regards, Tobias Holzmann Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
svengineer Mitglied Student / Ingenieur
Beiträge: 28 Registriert: 13.11.2013
|
erstellt am: 10. Jun. 2014 09:05 <-- editieren / zitieren --> Unities abgeben:
Guten Morgen, am Wochenende habe ich viel Zeit damit verbracht herauszufinden, was die Unterschiede in der Wärmeübertragung macht. Zum besseren Vergleich habe ich mir die Konvergenzplots angesehen. Dazu bin ich der Anleitung in diesem Tutotial gefolgt. Außerdem habe ich das Modell durch die Symmetrie in der X-Ebene verkleinert und mit der Netzqualität sowie der Wärmequelle gespielt. Zu besonders großen Erfolgen hat das leider nicht geführt. Es hat sich nur gezeigt, dass die Netzfeinheit der Solids starken Einfluss auf das Konvergenzverhalten (Ux, Uy, Uz) der Luft hat. Vermutlich aufgrund des feineren Netzes am Übergang... Es bleibt aber in Bereichen zwischen 10E-4 und 10E-5. Kann das daran liegen, dass die Solid-Temperaturen nicht besser konvergieren? Sollte ich mich evtl. auf die Solvereinstellungen für die Solids konzentrieren? Wo fange ich da an? EDIT: Wir haben unsere Antworten gleichzeitig verfasst. Danke für die Erläuterung. Ich wollte damit nicht das Programm kritisieren. Ich hatte wegen der langsamen Wärmeübertragung nur die Vermutung, dass es auch schneller gehen könnte. [Diese Nachricht wurde von svengineer am 10. Jun. 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: 10. Jun. 2014 09:33 <-- editieren / zitieren --> Unities abgeben: Nur für svengineer
Zitat: Original erstellt von svengineer: EDIT: Wir haben unsere Antworten gleichzeitig verfasst. Danke für die Erläuterung. Ich wollte damit nicht das Programm kritisieren. Ich hatte wegen der langsamen Wärmeübertragung nur die Vermutung, dass es auch schneller gehen könnte.
Hallo Sven,
ich sehe das von dir auch nicht als Kritik sondern als guten Hinweis für andere. Ich wollte nur aufzeigen das es viele Einflussfaktoren zu berücksichtigen gibt, wenn Vergleiche der Simulationen unterschiedlicher Herkunft gegenübergestellt werden. :) Außerdem ist dieses Forum ja zum diskutieren da. In deinem Fall würde ich einfach das Tutorial vom chtMultiRegionSimpleFoam Löser nochmals kopieren und dann einfach die Gewichtskraft ändern und zwar so, dass du den gleichen Case hast wie du bereits berechnest. Danach die RB der Luft abändern und die Ergebnisse vergleichen. Es gibt übrigens gute Linuxbefehle für den Vergleich von Dateien:
Code:
diff file1 file2
------------------ Best regards, Tobias Holzmann
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. Jun. 2014 17:09 <-- editieren / zitieren --> Unities abgeben: Nur für svengineer
Zitat: EDIT: Wir haben unsere Antworten gleichzeitig verfasst. Danke für die Erläuterung. Ich wollte damit nicht das Programm kritisieren. Ich hatte wegen der langsamen Wärmeübertragung nur die Vermutung, dass es auch schneller gehen könnte.
Apropos... es muss auch definitiv schneller gehen ... (:
------------------ Best regards, Tobias Holzmann Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
svengineer Mitglied Student / Ingenieur
Beiträge: 28 Registriert: 13.11.2013
|
erstellt am: 17. Jun. 2014 14:17 <-- editieren / zitieren --> Unities abgeben:
So langsam habe ich die Vermutung, dass es so lange dauert, weil pro Iteration mit einer Zeitschrittweite von einer Sekunde gerechnet wird. Das ist zwar Quatsch bei einem Steady-State-Solver, passt aber recht gut mit Messungen in einem anderen Modell zusammen. 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. Jun. 2014 15:57 <-- editieren / zitieren --> Unities abgeben: Nur für svengineer
|
svengineer Mitglied Student / Ingenieur
Beiträge: 28 Registriert: 13.11.2013
|
erstellt am: 18. Jun. 2014 08:44 <-- editieren / zitieren --> Unities abgeben:
|
Shor-ty Moderator
Beiträge: 2463 Registriert: 27.08.2010 OpenFOAM-dev (Foundation) OpenFOAM-xxxx (ESI)
|
erstellt am: 02. Jul. 2014 12:49 <-- editieren / zitieren --> Unities abgeben: Nur für svengineer
Hallo, normal nicht. Bei den Solids gibt es sowieso fast keine Möglichkeiten falsche Eingaben zu tätigen. Läuft dein Case nun bzw. ist der Fehler gefunden worden? Das ist definitiv misteriös. Bin leider noch nicht dazu gekommen das weiter nachzuvollziehen. Aber irgendwo muss ein Fehler sein, da das Tutorial des chtMultiRegionSimpleFoam deinen Case ja wiederspiegelt, nur eben um 90° versetzt und keine Strömung gesetzt ist. Das scheint mir ein Kopplungsproblem der Regionen zu sein. Sieht ja so aus als wäre da ein Wärmewiderstand/Übergangskoeffizient zwischen deinen Solidregionen der sehr klein ist. Vielleicht komm ich diese Woche dazu mir das nochmals anzusehen. ------------------ Best regards, Tobias Holzmann Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Micha6982 Mitglied Akademischer Mitarbeiter
Beiträge: 130 Registriert: 20.01.2014 ubuntu 16.04 Salome 7.7.1 & 7.8.0 OpenFOAM 3.x & 4.x
|
erstellt am: 13. Jul. 2014 18:31 <-- editieren / zitieren --> Unities abgeben: Nur für svengineer
Hallo zusammen, habe nun meine Abschlussarbeit abgegeben und habe wieder ein bisschen mehr Zeit. Wie ist denn hier der aktuelle Stand? Sind alle Probleme gelöst?
------------------ Viele Grüße Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |