Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  OpenFOAM
  Randbedingungen OpenFOAM Simulation

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  Randbedingungen OpenFOAM Simulation (1355 mal gelesen)
Evocs
Mitglied


Sehen Sie sich das Profil von Evocs an!   Senden Sie eine Private Message an Evocs  Schreiben Sie einen Gästebucheintrag für Evocs

Beiträge: 3
Registriert: 27.07.2020

erstellt am: 27. Jul. 2020 20:38    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


Kammer_3D-Modell.png


Kammer_2D-Modell.png

 
Hallo zusammen,
ich habe eine Fragestellung, an der ich schon eine Weile arbeite und einfach keine Lösung finde.
Es geht um folgendes, ich möchte mit OpenFOAM eine Vakuumkammer evakuieren und diesen Prozess simulieren. Mir geht es dabei um den Druckverlauf über die Zeit, sprich ein Optimierungsproblem.
Diesen Anwendungsfall möchte ich, vorausgesetzt man kann es Umsetzten, in meiner Abschlussarbeit für die Untersuchung von verschiedenen Geometrien der Kammer anwenden.

Kurz zur Erklärung wie der Aufbau ist:

Es geht im einfachen Fall um eine geschlossene Kammer (Volumen ist fix), die nur einen Auslass hat.

In der Kammer herrscht als Initialbedingung Umgebungsdruck (p_U = 1000 mbar / v_U = 0)
Den Auslass kann man sich als Ventil vorstellen, an dem annähernd Vakuum anliegt (p_A=1-10mbar). Zusätzlich wird hier mit einem Volumenstrom von v_A = 240m³/h (=1/15 L/s) gesaugt. (Vakuumpumpe angschlossen).
Den Prozess kann man sich so vorstellen: Vakuumkammer wird geschlossen > Ventil macht auf (bis zum Ventil liegt p_A / v_A an) > ab dem Moment in dem geöffnet wird die Kammer evakuiert.
Den Druck p_A lege ich dabei so das ich keinesfalls in den Bereich von zu großen Knudsen-Zahl komme. Es soll nur die Strömung bis dahin untersucht werden.

Meine Annahmen bis dahin sind:

- instationärer Prozess
- kompressibel (inkompressibel habe ich auch schon versuchsweise ausprobiert)
- ideales Gas (p*V=m*R*T)
- T_Umgebung = 293K
- im einfachen Fall laminare Strömung / turbulente soll im weiteren Verlauf folgen, wenn das Szenario lauffähig ist
- als Referenz für das evakuieren des Volumens meines Modells habe ich den Druckverlauf vom Herstelle der Vakuumpumpe
- verwendeter Solver rhoPimpleFoam / versuchsweise rhoSimpleFoam führt zu > continuity error

Meine Simulation läuft jetzt bis zum Druck von ca. 750-800 mbar relativ gleichmäßig und zeitlich gesehen zügig durch, ab diesem Druck habe ich dann zuerst Probleme gehabt mit der Temperatur (wurde negativ > Abbruch mit Fehler).
Dies habe ich in den Griff bekommen in dem ich zuerst den Zeitschritt verfeinert habe und im weiteren in den fvOptions ein Temperaturlimit (limitTemperature min 100K max 400K) gesetzt habe.
Den Zeitschritt lasse ich dabei mit adjustTimeStep  true; maxCo 0.9; laufen.
Zusätzlich ist mir aufgefallen das ich bei einigen Kombinationen an Randbedingungen rho Werte von gut und böse bekomme 100kg/m³ usw.

Problem ist hierbei, dass ab beschriebenen Druckbereich die Zeitschritte im 10^-11er Bereich liegen. Lasse ich diese größer werden (manuell) bricht die Simulation mit Fehlern ab (negativer Druck / viel zu hoher Druck).

Meine Frage ist nun erst mal ganz allgemein:
Ist es Möglich eine Simulation in OpenFoam nur mit einem Auslass (outlet) der Rest sind Wände (staticwall) wie folgt beschrieben erfolgreich zu simulieren:

Als Randbedingungen habe ich folgende:
staticwall: p/T: zeroGradient / U: noSlip

outlet: p: internalField   uniform 100000; zeroGradient / fixedFluxPressure / totalPressure und schon einige andere
outlet: T: zeroGradient  / totalTemperature und schon einige andere
outlet: U: flowRateOutletVelocity / fixedValue usw.

Ich habe da schon einige Varianten durchprobiert, aber komme zu keinen sinnvollen Ergebnissen.
Das Ganze habe ich mittlerweile schon auf einen einfachen 2D Fall beschränkt, aber auch hier läuft die Simulation mit Zeitschritten 10^-11 und hat nach mehreren Stunden auch nicht mal annähernd 0,5 Sek durchlaufen.

Ich würde mich freuen, wenn ihr mir auf die Sprünge helfen könnt. Ich bin für jegliche Vorschläge offen.
Vielen Dank schon mal im Voraus.

Gruß Flo

PS.: Als Anhang habe ich ein Bild vom 3D- und einfachen 2D-Modell(Es ist nur eine Zelle dick) reingepackt

[Diese Nachricht wurde von Evocs am 27. Jul. 2020 editiert.]

[Diese Nachricht wurde von Evocs am 27. Jul. 2020 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Shor-ty
Moderator





Sehen Sie sich das Profil von Shor-ty an!   Senden Sie eine Private Message an Shor-ty  Schreiben Sie einen Gästebucheintrag für Shor-ty

Beiträge: 2463
Registriert: 27.08.2010

OpenFOAM-dev (Foundation)
OpenFOAM-xxxx (ESI)

erstellt am: 29. Jul. 2020 10:40    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Evocs 10 Unities + Antwort hilfreich

Hallo Flo und Willkommen im Forum,

schön das Du die Knudsen-Zahl kennst. Wahrscheinlich wissen die meisten überhaupt nicht was das für eine Zahl ist und das die Kontinuumsmechanik überall Gültigkeit besitzt. Ich machs kurz:


  • Kann man sicher machen, auch wenn ich solche Berechnungen noch nicht durchgeführt habe; die Numerik sollte aber stimmen
  • Deine Randbedingungen wie totalPressure und totalTemperature machen bei Dir keinen Sinn. Wenn Du diese verwendest, kannst auch gleich fixedValue verwenden, da es das gleiche ist (Du hast nur »outflow«).
  • Stationär kannst Du hier meines Erachtens nicht rechnen
  • Laminar kannst Du rechnen, dazu sollte Dein Netz aber fein genug sein; ich würde da gleich mal das sehr diffuse »kEpsilon« verwenden, um numerisch gleich mal was Gutes zu tun
  • Ich schätze du machst das meiste in einem 2D Modell derzeit (diese Annahme ist natürlich sinnfrei aber zum testen okay); entsprechend brauchst du keine nonOrthogonality Schemen
  • Transient mit <0.9 ist hart. Ich würde eher 10 oder 50 machen und den PIMPLE Algorithmus verwenden. Alternativ kannst Du natürlich auch bei < 1 bleiben und mit dem PIMPLE eine Stabilisierung erreichen
  • Entweder Druck oder Geschwindigkeit am Outlet angeben, beide zu nennen ergibt ein überbestimmtes System.

Tobi

------------------
Glück Auf,
Tobi

OpenFOAM® Community - Knowledge Base

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Duke711
Mitglied



Sehen Sie sich das Profil von Duke711 an!   Senden Sie eine Private Message an Duke711  Schreiben Sie einen Gästebucheintrag für Duke711

Beiträge: 826
Registriert: 14.11.2016

erstellt am: 29. Jul. 2020 11:46    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Evocs 10 Unities + Antwort hilfreich

Etwas Offtopic, bezüglich Knudsen:

Warum gibt es eigentlich kein kommerzielles Programm mit dem man Molekularströmungen über den Monte Carlo Algo. lösen kann? Das einzige was mir bekannt ist, ist Comsol, das verwendet aber auch kein Monte Carlo und somit können nur laminare Molekularströmungen modelliert werden.

[Diese Nachricht wurde von Duke711 am 29. Jul. 2020 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Evocs
Mitglied


Sehen Sie sich das Profil von Evocs an!   Senden Sie eine Private Message an Evocs  Schreiben Sie einen Gästebucheintrag für Evocs

Beiträge: 3
Registriert: 27.07.2020

erstellt am: 29. Jul. 2020 11:58    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Tobi,

erstmal vielen Dank für deine Antwort und die Erläuterungen dazu.
Deine Annahme das ich einen 2D Testfall simuliere stimmt. Das hat den einfachen Grund das dieses Gleichungssystem meiner Meinung nach schneller gelöst werden kann.

Ich hatte schon die Befürchtung das die OpenFOAM Solver ausschließlich mit Massenerhaltung und Impulserhaltung rechnen, d.h. kurz gesagt: Alles, was reingeht, muss auch wieder raus entsprechend der Kontinuitätsgleichung.

In meinem Fall habe ich zwar einen Massenabfluss aber keinen Zufluss. Die einzige Änderung, die ich habe, ist eine durch die Druckänderung hervorgerufene Dichteänderung / bzw. ein durch Massenstromabfluss hervorgerufenen Druckabfall (Wenn ich die Gaskonstante und die Temperatur als konstant betrachte, p*V=m*R*T).
Den extrem schnellen Abfall der Temperatur auf negative Werte kann ich anhand der Gleichung auch nachvollziehen, wenn ich die Temperatur nicht begrenze.
Meine thermophysicalProperties sind wie folgt:

    type            hePsiThermo;
    mixture         pureMixture;
    transport       sutherland;
    //transport       const;
    thermo          hConst;
    equationOfState perfectGas;
    specie          specie;
    energy          sensibleInternalEnergy;
    //energy          sensibleEnthalpy;

Mit energy und transport habe ich ein wenig herumgespielt um zu schauen wie sich das System verhält. (Als thermodynamische Werte verwende ich die von trockener Luft)


Deinen Tipp mit den Randbedingungen habe ich ehrlich gesagt gar nicht auf dem Schirm, überbestimmt ist nicht gut (Ist auch in der Mechanik ein nicht sehr einfach zu lösendes Problem, analytisch nur in wenigen und vor allem einfachen Fällen).

Stationär zu rechnen war ein Versuch aus der Überlegung heraus, da sich irgendwann ein System im Gleichgewicht ergeben sollte. Im Nachhinein eine falsche Annahme, wie du angemerkt hast.

Der Ansatz gleich mit einem diffusen Turbulenzmodell zu rechnen ist wirklich gut (ich muss Energie loswerden), den werde ich heute im Laufe des Tages gleich versuchen umzusetzen.

Eine Frage hätte ich noch zum Solver?
Wenn ich transient, und kompressibel simuliere bleiben nur zwei Solver übrig: rhoPimpleFoam und rhoCentralFoam. Die fvOptions werden jedoch nur von rhoPimpleFoam unterstützt. Und wie du geschrieben hast, bietet sich der Pimple Algorithmus für meinen Fall an. Wo genau liegt denn der Unterschied der beiden Solver kannst du das evtl. kurz und knapp beschreiben?

(Ich würde die Solver ja, falls notwendig selber modifizieren, aber da sind meine Kenntnisse im Moment sehr eingeschränkt, die Mathematik dahinter verstehe jedenfalls)


Bis dahin erstmal ein großes Danke an dich Tobi.

Gruß Flo

PS.: Deine Community Arbeit zusammen mit dem Foamer aus Österreich haben mich erst dazu gebracht dieses Thema anzugehen und als Option für meine Abschlussarbeit anzusehen.   

Eine Spende für deine Arbeit ist mir das auf alle Fälle Wert und dein Buch werde ich mir auch zulegen, da es sehr interessante Erläuterungen enthält was die Mathematik und die Herleitungen angeht.

 


 

[Diese Nachricht wurde von Evocs am 29. Jul. 2020 editiert.]

[Diese Nachricht wurde von Evocs am 29. Jul. 2020 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz