| |
 | Online-Kurs: Grundlagen des 3D-Druck-Designs für Industrieingenieure , ein Kurs
|
Autor
|
Thema: Geometrie/Netzerstellung, Parametrisierung und Skripten mit dem Solver chtMultiRegion (2110 mal gelesen)
|
T89time Mitglied Student
 Beiträge: 5 Registriert: 07.05.2015
|
erstellt am: 18. Mai. 2015 22:04 <-- editieren / zitieren --> Unities abgeben:         
Moin moin zusammen, ich bin ein Neuling hier im Forum und auch ein Neuling was OpenFoam betrifft, hoffe ihr könnt mir weiterhelfen. Für ein Projekt soll ich mittels BlockMesh eine Geometrie erstellen und parametrisieren. Bei der Geometrie handelt es sich um eine Wärmequelle (solid1) und einen generischen Kühlkörper (solid2) mit mehren Rippen variabler Anzahl. Die Wärme wird vom Kühlkörper per Luft (Fluid) über die große Oberfläche abgeführt. Um verschiedene Cases für unterschiedliche Lastfälle leicht zu erstellen und die Anzahl der Rippen automatisch zu varrieren (also mit wiederholender Netzstruktur) soll das ganze noch geskriptet werden. Ich bin bislang soweit in der Thematik, dass ich als Solver chtMultiRegionFoam oder chtMultiRegionSimpleFoam verwenden werde, denke einer von diesen wäre am besten. Was denkt ihr? Nun zu meinen eigentlichen Fragen: 1) Muss ich bei der Parametrisierung das Format BlockMeshdict.m4 verwenden oder kann ich das normale Format BlockMeshDict aus dem Solver verwenden? 2) Wie wird bei dem Solver die Geometrie erstellt bzw. wie kann ich dort eine Geometrie erstellen? Wenn ich mir die BlockMeshDict im PolyMesh-Ordner anschaue sehe ich nur einen Block, der dann später, sowie ich es verstanden habe, gesplittet wird. Woher weiß der OF wie der Block gesplittet werden soll? 3) Muss ich für Solid1 und 2 sowie Fluid jeweils eine eigene BlockMeshDict erstellen? Obwohl bei den Solvern nur eine BlockMeshDict datei vorhanden ist. Ich habe von viele weitere Fragen, aber zunächst nur erstmal zum Anfang, vielleicht klärt sich der Rest dann schon. Wenn ich das Netz und somit die Geometrie in ParaView anzeigen lassen kann bin ich schon begeistert. Viele Grüße und vielen, vielen Dank T'time 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: 19. Mai. 2015 08:54 <-- editieren / zitieren --> Unities abgeben:          Nur für T89time
Hallo T'time, Deine Fragen wurden hier im Forum schon des öfteren diskutiert und mithilfe der Suchfunktion kannst Du Dir deine Fragen zum größten Teil selbst beantworten. Sollten dann noch Fragen offen sein, so bekommst du hier sicherlich ausreichend Hilfestellungen. ------------------ Viele Grüße Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
T89time Mitglied Student
 Beiträge: 5 Registriert: 07.05.2015
|
erstellt am: 20. Mai. 2015 16:24 <-- editieren / zitieren --> Unities abgeben:         
ich konnte mit dem Forum nun eigene Fragen beantworten, dennoch weiß ich noch nicht wie ich vorgehen sollte. Finde OF sich selbst beizubringen ist keine einfache Sache  Habe mir den chtMultiRegionHeater-Ordner kopiert, die Regionen im constant-Ordner gelöscht und 3 neue Regionen (solid/solid umgeben von Luft mit polyMeshOrdner erstellt, in denen ich dann jeweils eine blockMeshDict erzeugt habe. Im constant-Ordner gibt es dann noch den polyMesh-Ordner, der soweit ich weiß das ganze Rechengebiet abdeckt. Um nur alleine die Geometrie bzw das Netz in paraview anzeigen zu lassen gebe ich in die Konsole blockMesh ein. paraview zeigt mir dann jedoch nur das Netz für das gesamte Rechengebiet. Vielleicht gibt es diesbezüglich auch nen Eintrag oder vllt ne step by step Anleitung für multiRegions, die mir jmd posten könnte. Oder einfach nur einen Hinweis wie man beginnt. 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: 20. Mai. 2015 17:12 <-- editieren / zitieren --> Unities abgeben:          Nur für T89time
Hallo T'time, da muss ich dir recht gebeb, es ist sehr schwierig sich alleine in OpenFOAM einzuabeiten. Wenn du bei google "cht multi region openfoam" eingibst, kommen schon ein paar Informationen, wie die zum Beispiel: http://www.personal.psu.edu/dab143/OFW6/Training/craven_slides.pdf Weiterhin kannst du es mal bei google mit: "openfoam ppt" versuchen. Tutorials findest du unter anderem auf der HP von Tobias unserem Moderator hier. http://www.holzmann-cfd.de/index.php/en/ Wenn du deine Regions in Blockmesh erstellen kannst, dann kannst du jedes eigene hex als eine Region bennenen und dann mit Code: splitMeshRegions
teilen. OpenFOAM erstellt dann die einzelnen Region-Ordner. Die einzelnen Regions kannst du mit:
Code: paraFoam -region ...
anschauen. Um alle gleichzeitig hereinzuladen musst du erst die einzlnen Files erzeugen:
Code: paraFoam -touchAll
Dann kannst du sie im geöffneten ParaFOAM einlesen. ------------------ Viele Grüße Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
T89time Mitglied Student
 Beiträge: 5 Registriert: 07.05.2015
|
erstellt am: 28. Mai. 2015 11:21 <-- editieren / zitieren --> Unities abgeben:         
Danke dir Micha, das hat mir schonmal sehr weitergeholfen! Ich konnte bislang mit dem topoSetDict-File mir ein Mesh erstellen und rechnen lassen. Da man mit topoSet soweit ich weiß keine Parametriesierung durchführen kann und es nur eine mir bekannte einfache Variante gibt, versuche ich es nun erstmal mit blockMeshDict.m4. 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: 29. Mai. 2015 15:17 <-- editieren / zitieren --> Unities abgeben:          Nur für T89time
Hallo, blockMesh lässt sich sehr wohl parametrisieren:
Code: x1 5; y1 2; z1 0;($x1 $y1 $z1) // Punkt 1 bzw. 0
Weiterhin lässt sich in blockMesh auch rechnen:
Code: radHalfAngle #calc "degToRad($halfAngle)"; y #calc "$radius*sin($radHalfAngle)"; minY #calc "-1.0*$y"; z #calc "$radius*cos($radHalfAngle)"; minZ #calc "-1.0*$z";
Zu finden in: incompressible/simpleFoam/pipeCyclic/constant/polyMesh/blockMeshDict Viele Grüße Michael
------------------ Viele Grüße Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |