Autor
|
Thema: Druckprofil als Einlassrandbedingung (1024 mal gelesen)
|
Simultant Mitglied
Beiträge: 9 Registriert: 26.05.2014
|
erstellt am: 06. Jun. 2014 12:09 <-- editieren / zitieren --> Unities abgeben:
Hallo ich möchte am Inlet meiner Strömungsberandung einen Druck vorgeben, der über die Breite des Inlets nicht konstant ist. Bisher hab ich das Inlet in mehrere patches aufgeteilt und ihnen unterschiedliche Drücke vorgegeben. Leider bricht die Rechnung immer ab, da sich an den Zellen wo die Inletpatches aufeinander treffen unglaublich hohe Geschwindigkeitsgradienten einstellen. Nun war meine Idee den Inlet als ein Patch zu definieren, und ihm einen Druckprofil zuzuordnen. Bisher konnte ich keine passende BC finden. Habt ihr mit ähnlichen Fragestellungen zu tun gehabt? Gibt es Ideen wie ich dieses Problem lösen könnte? Gruß 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 12:38 <-- editieren / zitieren --> Unities abgeben: Nur für Simultant
|
Simultant Mitglied
Beiträge: 9 Registriert: 26.05.2014
|
erstellt am: 06. Jun. 2014 13:11 <-- editieren / zitieren --> Unities abgeben:
|
Simultant Mitglied
Beiträge: 9 Registriert: 26.05.2014
|
erstellt am: 06. Jun. 2014 14:46 <-- editieren / zitieren --> Unities abgeben:
Hallo habe nun die groovyBC installiert. Im Netz fand ich dazu auch unglaublich viele Beispiele umd eine Geschwindigkeitsverteilung als BC zu definieren (Grenzschicht etc.). Jedoch fand ich nix für mein Problem mit dem Druckprofil auf der Inlet BC. 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:38 <-- editieren / zitieren --> Unities abgeben: Nur für Simultant
|
Simultant Mitglied
Beiträge: 9 Registriert: 26.05.2014
|
erstellt am: 10. Jun. 2014 10:30 <-- editieren / zitieren --> Unities abgeben:
Hallo das Druckprofil am inlet kann durch folgende Funktion beschrieben werden: w = 0,001x^2 + 0,029 x - 0,068 somit gilt für p Inlet
Code:
type groovyBC; variables w = 0,001x^2 + 0,029 x - 0,068; valueExpression w; value 0;
wenn ich die Rechnung starten möchte bricht er ab mit folgender Fehlermedlung: unknown patchField type groovyBC for patch type patch; im ControlDicht wurde "libgroovyBC.so" eingetragen Frage: - kann der Druckverlauf in "p" so beschrieben werden? - Warum kennt OF die BC groovyBC nicht? Admin: Code-Tags eingefügt 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 13:01 <-- editieren / zitieren --> Unities abgeben: Nur für Simultant
Hallo, groovyBC Link zum OpenFOAM WIKI Scheint so als würde bei dir das nicht funktioniert haben. Randbedingung
- Syntax beachten!
- deine Variable w kann nicht funktionieren weil es in Groovy die Variable "x" nicht gibt
- In deinem Fall müsste es dann wie folgt aussehen:
Code:
variables "w=0.001*pow(pos().x,2)+0.029*pos().x-0.068";
- es dürfte auch möglich sein es mit der allgemeinen Gleichung durchzuführen aber dann musst du eben deine Variable "x" vorher definieren
- je nach Koordinatensystem halt x, y oder z
------------------ Best regards, Tobias Holzmann Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Simultant Mitglied
Beiträge: 9 Registriert: 26.05.2014
|
erstellt am: 11. Jun. 2014 11:16 <-- editieren / zitieren --> Unities abgeben:
Hallo herzlichen Dank für Ihre schnelle Hilfe. Das Problem lag wie Sie richtig vermutet haben, an der fehlerhaften Installation bzw. Version von grovvyBC. Wenn ich jetzt eine Simulation mit folgender Einlass Druckrandbedinung starte:
Code:
type groovyBC; variables "w=0.001*pow(pos().y,2)+0.029*pos().y-0.068"; value uniform 0; valueExpression w;
kommt folgende Fehlermeldung:
Code:
-->FOAM FATAL IO ERROR wrong token type -expected string, found on line 28 the word "w"
handelt es sich hierbei um einen syntaxfehler? muss value uniform 0 überhaupt defineirt werden? Gruß Tobias NACHTRAG: in line 28 befindet sich der Ausdruck "valueExpression w;" Admin: Code-Tags eingefügt Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Simultant Mitglied
Beiträge: 9 Registriert: 26.05.2014
|
erstellt am: 11. Jun. 2014 11:25 <-- editieren / zitieren --> Unities abgeben:
war ein syntaxfehler! habe die "" vergessen. so sollte es aussehen Code:
type groovyBC; variables "w=0.001*pow(pos().y,2)+0.029*pos().y-0.068"; value uniform 0; valueExpression "w";
Admin: Code-Tags eingefügt
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Simultant Mitglied
Beiträge: 9 Registriert: 26.05.2014
|
erstellt am: 11. Jun. 2014 13:11 <-- editieren / zitieren --> Unities abgeben:
zur Vollständigkeit: eine weiterer Syntakfehler wurde endeckt
Code:
variables "w=0.001*pow(pos().y,2)+0.029*pos().y-0.068"; // Zuvor variables "w=0.001*pow(pos().y,2)+0.029*pos().y-0.068;"; // Korrigiert
Admin: Code-Tags eingefügt und Verdeutlichung der Korrektur
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 16:17 <-- editieren / zitieren --> Unities abgeben: Nur für Simultant
|
Simultant Mitglied
Beiträge: 9 Registriert: 26.05.2014
|
erstellt am: 12. Jun. 2014 08:02 <-- editieren / zitieren --> Unities abgeben:
Hallo ich habe noch eine weitere Frage bzgl. des Druckprofils als Randbedingung mit groovyBC. nun möchte ich nicht wie oben eine Funktion über das ganze Inlet hinterlegen, sondern Bereiche auf der Inlet verschiedene Funktionen zuordnen. Beispiel: von x=0 bis x=5 -> x^2+1; von x=5 bis x=10 -> ...... usw. Meine bisherigen Versuche scheiterten an der Syntax. Danke
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: 12. Jun. 2014 08:14 <-- editieren / zitieren --> Unities abgeben: Nur für Simultant
|