Autor
|
Thema: Probleme mit porösem Medium (1697 mal gelesen)
|
samsi191 Mitglied
Beiträge: 19 Registriert: 10.04.2007
|
erstellt am: 19. Jan. 2016 13:34 <-- editieren / zitieren --> Unities abgeben:
Hallo Ich versuche gerade eine interne Strömung mit simpleFoam (OF 2.2-x) zu simulieren. Hierbei sind im Modell 2 poröse Medien enthalten. Das poröse Medium 1 dient als Ersatz für ein Gitter und Medium 2 für einen Filter. Zum Einstellen der Eigenschaften des porösen Mediums verwende ich die fvOptions Datei. Der Druckverlust der über die beiden porösen Bereiche abfällt passt soweit. Allerdings habe ich das Problem, das an der Grenzfläche / Grenzbereich nach dem porösen Medium 1 Zellen vorhanden sind, in denen unphysikalische Geschwindigkeiten vorhanden sind. Ich habe bereits in der Vergangenheit Simulationen mit porösem Medium durchgeführt, aber solche Effekte traten bisher bei mir nicht auf. Im Anhang habe ich die fvOptions, fvSolution und fvSchemes Datei angehängt. Zum anderen ist eine Skizze des Falls und eine Grafik mit einem "Bündel" solcher problematischen Zellen abgebildet. Hiervon sind weitere "Bündel" auf der Grenzfläche vorhanden. Die Skizze zeigt die Geometrie nur schematisch, da ich keine Details der Geometrie herausgeben darf. Kann mir jemand einen Tipp geben um das Problem in den Griff zu bekommen? 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. Jan. 2016 14:05 <-- editieren / zitieren --> Unities abgeben: Nur für samsi191
|
samsi191 Mitglied
Beiträge: 19 Registriert: 10.04.2007
|
erstellt am: 19. Jan. 2016 14:22 <-- editieren / zitieren --> Unities abgeben:
Hallo Shorty, Vielen Dank für Deine Antwort. Ich bin im Vorfeld bereits auf den Thread gestossen. Daraufhin habe ich meine urf's für p und u reduziert, aber nicht bis auf 0,0001. Hierbei hat sich allerdings keine Besserung ergeben. Ich habe jetzt nochmals in einer vorherigen Simulation nachgesehen. Dort ist nur das poröse Medium Nr1 aktiv und Nr2 ist hier deaktiviert. Die Simulation habe ich bisher nur 1000 iterationen anrechnen lassen, aber hier hat es den Anschein, dass (zumindest zur aktuell Iterationszahl) keine problematischen Elemente vorhanden sind. Kann es sein, dass ich durch die beiden porösen Medien das Problem "überbestimme" bzw. numerisch anspruchsvoller mache? Ich habe auch bereits versucht in der fvSchemes-Datei eine Einstellung zu finden, die das Problem beseitigt aber bisher ohne Erfolg 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: 21. Jan. 2016 21:58 <-- editieren / zitieren --> Unities abgeben: Nur für samsi191
Mit Porösen Medien kenn ich mich nicht so gut aus. Keine Erfahrung aber ein kurzer Blick in den Solver (porousSimple...) hast du eine Solvereinstellungen die du machen kannst und vllt noch nicht bekannt sind: Code:
// nUCorrectors for pressureImplicitPorosity nUCorr = simple.dict().lookupOrDefault<int>("nUCorrectors", 0);
Wird aber schon bekannt sein oder? Ansonsten sehen die Gleichungen identisch zu allen anderen Solvern aus - nur das eben das Porösemedium noch anders gehandhabt wird. Wird übrigens mit nUCorrectors > 0 auch alles anders berechnet. Ansonsten, Zeitschritt verkleinern, richtig relaxieren (wenn du PIMPLE bspw verwendest). Mehr fällt mir grad nicht ein. Überbestimmen wirst du dein System sicher nicht. Das kannst du höchstens mit Boundary's. ------------------ Viele Grüße, Tobias Holzmann Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
namali92 Mitglied Student
Beiträge: 38 Registriert: 23.11.2015 OpenFOAM, Version 2.4.0 Rechnungen auf Clustern
|
erstellt am: 27. Jan. 2016 10:06 <-- editieren / zitieren --> Unities abgeben: Nur für samsi191
Hallo samsi191, Ich bin absolute Anfängerin im Bereich poröse Medien in OpenFOAM und weiß nicht mehr weiter! Im Anhang ist ein Bild von meiner Geometrie abgebildet. Das Blaue in der Mitte soll einen porösen Zylinder darstellen. Ich denke, dass ich alle Einstellungen für meine Simulation soweit getroffen habe, jedoch scheint OF mein poröses Medium nicht zu beachten (im log-File des Solvers während der Berechnung wird es jedoch aufgerufen) und die Geschwindigkeit dort ist null. Ich arbeite mit porousSimpleFOAM. Meine porosityProperties sind: porosity1 { type DarcyForchheimer; active yes; cellZone porosity; DarcyForchheimerCoeffs { mu mu; d d [0 -2 0 0 0 0 0] (6e9 1 1); f f [0 -1 0 0 0 0 0] (0 0 0); coordinateSystem { type cartesian; origin (-1.5 0 0); coordinateRotation { type axesRotation; e1 (1 0 0); e2 (0 1 0); } } } } Vielleicht hast du ja einen Tipp, woran das liegen könnte!
Vielen Dank schonmal im Voraus! Viele Grüße, Lisa ------------------ Viele Grüße, Lisa Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
samsi191 Mitglied
Beiträge: 19 Registriert: 10.04.2007
|
erstellt am: 27. Jan. 2016 10:35 <-- editieren / zitieren --> Unities abgeben:
Hallo Lisa, du gibst bei deinen Einstellungen für das poröse Medium
Code:
DarcyForchheimerCoeffs { mu mu; d d [0 -2 0 0 0 0 0] (6e9 1 1); f f [0 -1 0 0 0 0 0] (0 0 0);
deinen "Widerstand" an, den die Strömung sieht. Du hast für die x-Komponente einen Wert von 6e9 angegeben, und für die anderen beiden Raumkomponenten quasi keinen Widerstand. Warum soll sich das strömende Medium durch das poröse Element "quälen" wenn es auch ungehindert daran vorbeiströmen kann. Für mich ist es für den ersten Blick somit nicht verwunderlich, dass du quasi keine Strömung durch den Zylinder hast. Ich kenne nicht deine genaue Aufgabe, aber versuche doch mal deinen "Widerstand" in x-Komponente deutlich zu reduzieren. Dann sollte auch etwas durch diesen Bereich strömen.
Viele Grüße Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
namali92 Mitglied Student
Beiträge: 38 Registriert: 23.11.2015 OpenFOAM, Version 2.4.0 Rechnungen auf Clustern
|
erstellt am: 27. Jan. 2016 11:54 <-- editieren / zitieren --> Unities abgeben: Nur für samsi191
Vielen Dank für deine schnelle Antwort! Ich habe die x- Komponente in meinen porosityProperties jetzt einmal extrem reduziert und auf DarcyForchheimerCoeffs { mu mu; d d [0 -2 0 0 0 0 0] (6 1 1); f f [0 -1 0 0 0 0 0] (0 0 0); gesetzt. Meine Geschwindigkeit in x- Richtung im porösen Medium (Bild) weißt aber komische Spitzen auf. Welche Größenordnung für Werte würdest du denn empfehlen? bzw. wie muss ich die Widerstandswerte in y- und z- Richtung wählen? Zu meiner Aufgabe: Ich soll später eine Kavität durchströmen, in der sich poröse Fasern befinden. Um das Vorgehen auszuprobieren habe ich einen TestCase aufgebaut, der aus einem Quader und einem Zylinder besteht. Der Zylinder schwebt sozusagen in meinem Quader und berührt diesen nicht. Den großen Wert habe ich gewählt, da ich später bestimmte Porositäten für mein poröses Medium setzen möchte. Kann ich das denn auch einfach so, indem ich beispielsweise in den porosityProperties { porosity 0.5; } setze? oder geht das nur indirekt über meine Darcy-Koeffizienten? Ist vielleicht mein TestCase einfach ungünstig aufgebaut, weil so viel am porösen Medium vorbeiströmen kann? ------------------ Viele Grüße, Lisa Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
samsi191 Mitglied
Beiträge: 19 Registriert: 10.04.2007
|
erstellt am: 27. Jan. 2016 12:46 <-- editieren / zitieren --> Unities abgeben:
Hallo, Wie hast du deine Geometrie erstellt? Überlappt sich bei dir der "normale" Bereich mit dem porösen Bereich? In deinem Bild sieht es so aus als würden die Geoemtrieen übereinander liegen. In dem Bereich, wo dein Zylinder ist, muss im "normalen" Bereich dann genau dieses Volumen fehlen ... Für den Anfang würde ich dir empfehlen eine einfache Rohrströmung zu betrachten, bei der im mittleren Bereich ein komplettes Stück poröses Medium enthalten ist. Hier kannst du dann auch relativ schnell ausprobieren was die Änderung eines Parameters an deiner Strömung ändert. Mit dem Parameter d bestimmt man den Druckverlust den das poröse Medium "erzeugt". Hier ist ein Link wo dir etwas weiterhelfen könnte: https://en.wikipedia.org/wiki/Darcy's_law Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
namali92 Mitglied Student
Beiträge: 38 Registriert: 23.11.2015 OpenFOAM, Version 2.4.0 Rechnungen auf Clustern
|
erstellt am: 27. Jan. 2016 13:32 <-- editieren / zitieren --> Unities abgeben: Nur für samsi191
Ah ja danke für den Hinweis!ch verstehe, was du meinst. Also ich habe einen Quader und den Zylinder separat mit snappyHexMesh vernetzt und dann über mergeMeshes zu einem Mesh zusammengeführt. Danach habe ich mit topoSet eine cellZone für den Zylinder erstellt, um das Netz vom Zylinder vom umliegenden Quader abzugrenzen. Überlappen sich meine Bereiche dann immer noch? Ich dachte es würde evtl. so funktionieren. Für die Rohrströmung müsste ich dann ja mit blockMesh 3 separate Rohrstücke generieren oder? Ist es generell nicht möglich einen porösen Teil, der in etwas anderem liegt zu betrachten?
------------------ Viele Grüße, Lisa Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
samsi191 Mitglied
Beiträge: 19 Registriert: 10.04.2007
|
erstellt am: 27. Jan. 2016 13:52 <-- editieren / zitieren --> Unities abgeben:
Hallo nochmal, mit SHM kann ich dir leider nicht weiterhelfen, da ich hiermit nur sehr wenig Erfahrung habe. Ich verwende eine andere Software zum vernetzen und importiere dann das Netz. Ob sich deine Bereiche immer noch überlappen kann ich somit auch nicht sagen, aber deinen Bildern nach kann dies schon der Fall sein. Zitat: Für die Rohrströmung müsste ich dann ja mit blockMesh 3 separate Rohrstücke generieren oder?
Stimmt Zitat: Ist es generell nicht möglich einen porösen Teil, der in etwas anderem liegt zu betrachten?
Das geht schon. Nur dürfen sich die beiden Körper nicht überschneiden. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
namali92 Mitglied Student
Beiträge: 38 Registriert: 23.11.2015 OpenFOAM, Version 2.4.0 Rechnungen auf Clustern
|
erstellt am: 27. Jan. 2016 16:06 <-- editieren / zitieren --> Unities abgeben: Nur für samsi191
Alles klar! Das mit den drei Rohrstücken hat funktioniert und ich habe jetzt verstanden wie OpenFOAM mit porösen Medium umgeht. Als nächstes werde ich meinen Quader in der Form meines Zylinders aushöhlen und dann beide zusammenführen. Aber was mir noch schleierhaft ist: ich habe verstanden, dass der Druckabfall aufgrund eines porösen Mediums mit Darcy's Gesetz beschrieben werden kann. Wenn ich aber die Permeabilität meines Mediums nicht kenne, jedoch verschiedene Porositäten in meiner Simulation ausprobieren möchte- wie setze ich die Porosität als Wert in den porosityProperties um? Sorry für die vielen Fragen, aber ich finde überhaupt nichts dazu in Foren, Internet etc.! ------------------ Viele Grüße, Lisa Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
samsi191 Mitglied
Beiträge: 19 Registriert: 10.04.2007
|
erstellt am: 27. Jan. 2016 17:00 <-- editieren / zitieren --> Unities abgeben:
Meiner Meinung nach muss man irgendwelche Angaben haben um die Simulation zu füttern. Wenn man verschiedene Porositäten simulieren möchte, dann braucht man jeweils eine Angabe für den d-Wert. Den Wert muss man entweder aus Messungen nehmen oder mit Hilfe von Literatur analytisch abschätzen. Ich bitte darum mich zu korrigieren wenn ich mich irre... Wenn ich mich nicht täusche, konnte man in älteren Versionen von OF noch einen Wert für “porosity“ angeben. Ich glaube hier wurde die Geschwindigkeit im porösen Medium aufgrund der, durch festes Medium versperrten Fläche erhöht. Aber wie gesagt, in diesem Punkt bin ich mir überhaupt nicht sicher .... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
namali92 Mitglied Student
Beiträge: 38 Registriert: 23.11.2015 OpenFOAM, Version 2.4.0 Rechnungen auf Clustern
|
erstellt am: 28. Jan. 2016 17:57 <-- editieren / zitieren --> Unities abgeben: Nur für samsi191
Vielen Dank, ich werde mich mal etwas einlesen. Ich habe für meinen Case mit Quader jedoch immer noch das Problem, dass mein poröses Medium nicht durchströmt wird. Ich habe meinen Zylinder mit snappyHexMesh außerhalb vernetzt, also dass nur das umliegende blockMesh (in meinem Fall der Quader) erhalten bleibt (Foto). In das leere Volumen habe ich meinen separat vernetzten Zylinder gemerged. Das sieht auch alles gut aus und samsi191 ich weiß du hast wenig Erfahrung mit Snappy aber damit könntest du mir eventuell weiterhelfen: Nachdem ich den Bereich um meinen Zylinder vernetzt habe erscheint in polyMesh/boundary folgender Eintrag für den Zylinder:
zylinder { type wall; inGroups 1(wall); nFaces 8880; startFace 870467; } Die Umrandung des leeren Volumens( also des Zylinders) scheint als undurchdringliche Wall definiert zu sein. Das heißt: Auch wenn ich nun das poröse Medium in das leere Volumen hineinlege kommt aufgrund der Wall niemals eine Geschwindigkeit an. Gibt es denn eine Möglichkeit, dass das nicht passiert? Danke schonmal!
------------------ Viele Grüße, Lisa Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
samsi191 Mitglied
Beiträge: 19 Registriert: 10.04.2007
|
erstellt am: 28. Jan. 2016 18:56 <-- editieren / zitieren --> Unities abgeben:
Ist überhaupt ein Rechengebiet für deinen Zylinder vorhanden? In der Abbildung kann man da nichts davon sehen. Wenn dort keine Elemente sind dann sind die Grenzflächen dort feste Wände, und werden somit logischerweise auch nicht durchströmt. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
namali92 Mitglied Student
Beiträge: 38 Registriert: 23.11.2015 OpenFOAM, Version 2.4.0 Rechnungen auf Clustern
|
erstellt am: 29. Jan. 2016 09:37 <-- editieren / zitieren --> Unities abgeben: Nur für samsi191
Ja also auf dem Bild vorher ist nur mein ausgehöhlter Quader zu sehen, aber eigentlich habe ich den vernetzten Zylinder hineingemerged (Bild). Damit habe ich dann auch gerechnet. Deswegen wundert mich das ja.. ------------------ Viele Grüße, Lisa Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
samsi191 Mitglied
Beiträge: 19 Registriert: 10.04.2007
|
erstellt am: 29. Jan. 2016 10:09 <-- editieren / zitieren --> Unities abgeben:
Hallo nochmal, so wie das für mich aussieht stimmt etwas nicht wie dein Quader und Zylinder miteinander in Kontakt sind. Der Eintrag:
Zitat: zylinder { type wall; inGroups 1(wall); nFaces 8880; startFace 870467; }
dürfte nicht vorhanden sein, sondern nur die cellZones für den Quader und das poröse Medium. Zudem sollte meiner Meinung nach, wenn alles glatt gegangen wäre die Netze von Quader und Zylinder auf der Grenzfläche identisch sein. Evtl. kann dir ein Tutorial für SHM auf Shorty's Homepage weiterhelfen... http://www.holzmann-cfd.de/tutorials/snappyMultiRegion.tar.gz Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
namali92 Mitglied Student
Beiträge: 38 Registriert: 23.11.2015 OpenFOAM, Version 2.4.0 Rechnungen auf Clustern
|
erstellt am: 29. Jan. 2016 10:30 <-- editieren / zitieren --> Unities abgeben: Nur für samsi191
Hallo und vielen Dank für die schnelle Antwort! Meine cellZones werden generell nicht unter "boundary" aufgeführt, sondern nur in polyMesh/cellZones. In meiner boundary Datei liegt nur die patch, die für die STL aus snappy erstellt wurde und eben meine blockMesh patches. Eine Frage: Zur Durchströmung des Zylinders benötige ich doch nur für diesen eine cellZone oder?( da diese cellZone ja in den porosityProperties eingetragen werden muss)oder verstehe ich etwas falsch? Das tutorial von shorty habe ich auch schon gesehen, danke! ------------------ Viele Grüße, Lisa Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
samsi191 Mitglied
Beiträge: 19 Registriert: 10.04.2007
|
erstellt am: 29. Jan. 2016 10:52 <-- editieren / zitieren --> Unities abgeben:
Das kann ich dir nicht genau beantworten. Wenn ich meine Netze importiere werden für alle Körper die cellZones erstellt. Dann suche ich mir meine poröse Zone heraus und trage die im dictionary ein. Bei mir tauchen die einzelnen cellZones dann unter dem Verzeichnis ../constant/polyMesh/sets auf. Z.B. eine Datei für Zyl_porous und eine weitere Datei für Wuerfel usw. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |