| | | Leitfaden für die Materialauswahl im Spritzguss, ein Fachartikel
|
Autor
|
Thema: Temperaturprofile übertragen (1116 / mal gelesen)
|
tauby Mitglied Verfahrenstechniker
Beiträge: 16 Registriert: 25.10.2016 Ubuntu 16.04 OpenFoam-4.1 Salome 8.4.0 Helyx-OS 2.4.0
|
erstellt am: 25. Okt. 2016 12:40 <-- editieren / zitieren --> Unities abgeben:
Hallo! Mit Hilfe von chtMultiRegionFoam möchte ich folgende Berechnungen im 2D-Modell durchführen: In der betrachteten Region "air" (siehe Skizze im Anhang) soll an der rechten Seite "inlet" kalte Luft einströmen und auf der linken Seite "outlet" wieder ausströmen. Im diesen Bereich befinden sich drei Stäbe (bar1, bar2, bar3) mit gleichem Durchmesser und einer vorgegebenen Anfangstemperatur. Nach einer vorgegebenen Zeit wird die Berechnung unterbrochen. Es bildet sich in dieser Zeit in allen Stäben ein Temperaturprofil aus. Diese Temperaturprofile sollen nun von einem Stab auf den anderen Stab übertragen werden. D.h. das Temperaturprofil von bar1 wird auf bar2 übertragen und das Temperaturprofil von bar2 wird auf bar3 übertragen und bar1 bekommt eine neue Starttemperatur. Danach wird die Berechnung mit den neuen Temperaturprofilen weitergeführt. Dies soll sich in bestimmten Intervallen wiederholen. Der Sinn und Zweck dieser Vorgangsweise ist der, dass damit eine Bewegung von Stäben von links nach rechts gegen den Luftstrom simuliert werden soll. Im linken Bereich von "air" wird ein neuer Stab mit der Anfangstemperatur aufgegeben und im rechten Bereich wieder weggenommen. Da ich annehme, dass dieses Problem mit chtMultiRegionFoam nicht direkt simuliert werden kann, habe ich mich für oben beschriebene Vorgangsweise entschieden. Das Problem bei der Übertragung der Temperaturprofile liegt jedoch darin, dass man die Temperaturwerte in den T-Dateien nicht direkt kopieren und wieder einfügen kann, auch wenn die Zellenzahl in den jeweiligen Stäben die gleiche ist, da die Zellennummerierung bei den jeweiligen regions (bar1, bar2 und bar3) unterschiedlich sind, d.h. dass der Temperaturwert der n-ten Zelle in bar1 nicht unbedingt an der gleichen Position in bar2 liegt. Würde mich auf eure Hilfestellung freuen. Vielen Dank und liebe Grüße Herbert Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Shor-ty Moderator
Beiträge: 2466 Registriert: 27.08.2010
|
erstellt am: 25. Okt. 2016 19:26 <-- editieren / zitieren --> Unities abgeben: Nur für tauby
Grüß dich Herbert und willkommen im Forum, ich entdecke die Sinnhaftigkeit in deinem Vorhaben zwar nicht aber das steht ja erstmal außen vor. Bezüglich deiner Fragestellung hätte ich derzeit zwei Möglichkeiten im Kopf. Idee 1 Nachdem die Rechnung steht, eine Kopie von bar1 (mesh + values des letzten Zeitschritts) erzeugen (am besten einen neuen OF case erstellen), dann eine Kopie von bar2 erzeugen (anderer OF case). Danach, bar1 über transformPoints auf die Position von bar2 setzen und dann via mapFields die Felder mappen. Dann kannst du das gemappte T-File wieder verwenden. Analog dann zu bar2 - bar3. Das alles natürlich mit nem Bash Skript. Idee 2 Du versetzt via transformPoints einfach bar1 auf bar2, bar2 auf bar3 und bar3 auf bar1. Reinitialisierst bar3 und änderst die Kopplungsbeziehung in der boundary Datei. Fertig. Gutes Gelingen ------------------ Viele Grüße, Tobias Holzmann Diverse OpenFOAM Tutorials gibt es auf www.Holzmann-cfd.de Veröffentlichungen und ein Buch gibt es auf www.Holzmann-cfd.de Für Anfänger empfiehlt es sich die neue OpenFOAM Wiki Seite zu betrachten: wiki.openfoam.com Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tauby Mitglied Verfahrenstechniker
Beiträge: 16 Registriert: 25.10.2016 Ubuntu 16.04 OpenFoam-4.1 Salome 8.4.0 Helyx-OS 2.4.0
|
erstellt am: 27. Okt. 2016 11:00 <-- editieren / zitieren --> Unities abgeben:
Hallo Tobias, danke für die freundliche Aufnahme ins Forum und die prompte Antwort auf mein Problem. Ich habe deine zweite Idee umgesetzt und es hat wunderbar funktioniert. Der einzige Schönheitsfehler liegt darin, dass sich beim Betrachten in paraFoam die Temperaturfelder der regions (bar1, bar2 und bar3) an der Position befinden, wo sie sich im letzten berechneten Zeitabschnitt befunden haben. D.h. in den anderen Zeitabschnitten werden sie in paraFoam nicht an der richtigen Position gezeigt. Damit könnte ich aber leben, denn die Temperaturen werden in den jeweiligen regions zu jedem Zeitpunkt richtig gerechnet. Ein merkwürdiges Verhalten ist mir bei der Berechnung bzgl. Wandstrahlung noch aufgefallen. Da dies aber nicht direkt mit diesem Problem zu tun hat, ist die Frage, ob es in einem eigenen Beitrag gepostet werden soll ? Nochmals herzlichen Dank für deine Lösungsvorschläge und viele Grüße Herbert
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Shor-ty Moderator
Beiträge: 2466 Registriert: 27.08.2010
|
erstellt am: 30. Okt. 2016 20:53 <-- editieren / zitieren --> Unities abgeben: Nur für tauby
Hi, wunderbar das es gleich geklappt hat. Zu dem Problem mit den Regionen und der Visualisierung gibt es ggf. Abhilfe, wenn du die alten und neuen Netze in deine Zeitordner rein kopierst. Das macht man bei dynamischen Netzen und könnte ggf. auch bei dem CHT funktionieren (habs aber noch nie probiert). Eine neue Frage die keinen Bezug zum Thema hat, bitte in ein neuen Thread.
------------------ Viele Grüße, Tobias Holzmann Diverse OpenFOAM Tutorials gibt es auf www.Holzmann-cfd.de Veröffentlichungen und ein Buch gibt es auf www.Holzmann-cfd.de Für Anfänger empfiehlt es sich die neue OpenFOAM Wiki Seite zu betrachten: wiki.openfoam.com Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tauby Mitglied Verfahrenstechniker
Beiträge: 16 Registriert: 25.10.2016 Ubuntu 16.04 OpenFoam-4.1 Salome 8.4.0 Helyx-OS 2.4.0
|
erstellt am: 02. Nov. 2016 15:47 <-- editieren / zitieren --> Unities abgeben:
Hallo Tobias, habe nun laut deinem Vorschlag die polyMesh-Dateien der entsprechendenn regions in die letzten Zeitordner der jeweiligen regions hineinkopiert. Mit dem Befehl: $transformPoints -translate '(dx dy dz)' -region regionName habe ich die Positionen der regions verändert und auch die Kopplungsbeziehung angepasst. Danach habe ich das Programm ab latestTime weiterrechnen lassen. Das Programm lief fehlerfrei und auch in paraFoam werden jetzt die richtigen Positionen der bewegten regions angezeigt. Vielen Dank nochmals für deine Hilfe Grüße, Herbert Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|