| |
 | Online-Kurs: Grundlagen des 3D-Druck-Designs für Industrieingenieure , ein Kurs
|
Autor
|
Thema: AddLayers SnappyHexMesh (3048 / mal gelesen)
|
Studentenmensch Mitglied Student

 Beiträge: 47 Registriert: 12.05.2016
|
erstellt am: 22. Jun. 2016 12:22 <-- editieren / zitieren --> Unities abgeben:         
Hallo, folgendes: Ich habe mehrere Geometrien über .stl reingeladen in mein snappyHexMeshDict. Anschließend habe ich wie von Herrn Holzmann empfohlen wurde: snappyHexMesh -overwrite (castellatedMesh und snap = true ; addlayers=false) laufen lassen. Die Geometrie wurde richtig vernetzt. Dann anschließend snappyHexMesh -overwrite (castellatedMesh und snap = false ; addlayers=true) laufen lassen mit folgenden Einstellungen: Code:
addLayersControls { // Are the thickness parameters below relative to the undistorted // size of the refined cell outside layer (true) or absolute sizes (false). relativeSizes true; //3 { Leitorgan {nSurfaceLayers 2;} Temperatursonde {nSurfaceLayers 2;} .... .... .... } expansionRatio 1.2; //1 finalLayerThickness 0.5; //2 minThickness 0.1; //4 nGrow 0; featureAngle 60; //5 slipFeatureAngle 30; nRelaxIter 3; nSmoothSurfaceNormals 1; //6 nSmoothNormals 3; //7 nSmoothThickness 10; //8 maxFaceThicknessRatio 0.5; //11 maxThicknessToMedialRatio 0.3; //10 minMedianAxisAngle 90; //9 nBufferCellsNoExtrude 0; nLayerIter 50; //12 }
Das Ergebnis ist in paraView ein großer Block, so, als wäre die Geometrie nicht dicht. Laut log File durchläuft er auch alle 50 Iterationen, ist das gewünscht, oder nur die maximale Anzahl "nLayerIter 50;" . Außerdem scheint mir meine LayerThickness doch sehr hoch zu sein. Liegt das an meinen falschen Einstellungen? Habe ja finalLayerThickness 0.5; gewählt. Wenn das Meter sind, dann wäre das schon recht hoch? Code:
patch faces layers avg thickness[m] near-wall overall ----- ----- ------ --------- ------- Leitorgan 115725 2 0.345 0.723 Temperatursonde 2755 2 0.352 0.676.... ....
Steht in meiner logFile. Am Ende noch Code: Layer mesh : cells:8009919 faces:25904407 points:9935945 Cells per refinement level: 0 0 1 5638 2 152556 3 1156480 4 6695245 Writing mesh to time constant Wrote mesh in = 19.05 s. Layers added in = 1507.75 s. Checking final mesh ... Checking faces in error : non-orthogonality > 65 degrees : 208 faces with face pyramid volume < 1e-13 : 0 faces with face-decomposition tet quality < 1e-15 : 2 faces with concavity > 80 degrees : 0 faces with skewness > 4 (internal) or 20 (boundary) : 0 faces with interpolation weights (0..1) < 0.05 : 16 faces with volume ratio of neighbour cells < 0.01 : 0 faces with face twist < 0.02 : 0 faces on cells with determinant < 0.001 : 0 Finished meshing with 226 illegal faces (concave, zero area or negative cell pyramid volume) Finished meshing in = 1563.04 s. EndFinalising parallel run
Hat jemand eine Idee woran es hapern könnte?
Danke ------------------ Moritz Franke Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Shor-ty Moderator
     

 Beiträge: 2466 Registriert: 27.08.2010 ESI-OpenCFD OpenFOAM v2312
|
erstellt am: 22. Jun. 2016 12:31 <-- editieren / zitieren --> Unities abgeben:          Nur für Studentenmensch
Hi Moritz, deine Einstellung 0.5 sind nicht in Meter sondern eine relative Größe zur zu evaluierenden Zellgröße. Wenn du in Paraview nur einen Block bekommst, dann würde ich sagen das schon der erste Schritt (castellated) auf Grund einer non-waterproofed STL den äußeren Teil nicht wegschneidet. Demnach ist natürlich auch das Erzeugen von zusätzlichen Netzzellen (im Layer-Schritt) recht problematisch. Persönlich würd ich vorschlagen castellated und snap mit overwrite zu verwenden und die Layergenerierung ohne. Dazu noch startTime 0 angeben (controlDict). Das erlaubt dir dann die Layergenerierung x-mal durchzuführen und demnach die Schritte castellated & snap zu sparen. Das du die 50zig Iterationen erreichst heißt letztlich, dass du keine konvergierte Lösung erhältst, danach werden alle (noch nicht umgesetzten) Layer zerstört und dein neues Netz geschrieben. Grundlage zur Layergenerierung ist ein gutes gesnappted Netz. Aber auch hier gibt es einiges zu beachten, sonst werden dir die Layer nur im Weg sein. ------------------ Viele Grüße, Tobias Holzmann Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Studentenmensch Mitglied Student

 Beiträge: 47 Registriert: 12.05.2016
|
erstellt am: 22. Jun. 2016 12:36 <-- editieren / zitieren --> Unities abgeben:         
Danke für deine Schnelle Antwort: Das ist mein AllrunScrip Code: #!/bin/sh cd ${0%/*} | | exit 1 # run from this directoryrunApplication blockMesh runApplication decomposePar runParallel snappyHexMesh 15 -overwrite cp ./system/0.SnappyHexMesh/0.snappyHexMeshDict ./system/snappyHexMeshDict #überschreibt das SnappyHexMesh (castellated und snap =true) mit AddLayers True (castellated und snap =false) rm log.snappyHexMesh runParallel snappyHexMesh 15 -overwrite runApplication reconstructParMesh -constant
Im Prinzip mach ich das ja?
Zitat: dann würde ich sagen das schon der erste Schritt (castellated) auf Grund einer non-waterproofed STL den äußeren Teil nicht wegschneidet
Wie gesagt, im ersten Teil erhalte ich die Geometrie sauber. Wenn ich dann die Layers draufpacke dann eben nur noch den Block :-/ ------------------ Moritz Franke [Diese Nachricht wurde von Studentenmensch am 22. Jun. 2016 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Shor-ty Moderator
     

 Beiträge: 2466 Registriert: 27.08.2010 ESI-OpenCFD OpenFOAM v2312
|
erstellt am: 22. Jun. 2016 13:30 <-- editieren / zitieren --> Unities abgeben:          Nur für Studentenmensch
Nimm mal die Layergenerierung raus und schau dir dann dein Netz an. Ist alles gut, mach es einfach mal händisch (single core) und !!! nicht overwrite verwenden. Ich meine das du einfach dein runParallel für die Layergenerierung rausnimmst und dann nach dem reconstruct ´n dein Netz anschaust um zu Prüfen ob alles gut ist. Dann sHM ohne MPI ------------------ Viele Grüße, Tobias Holzmann Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Studentenmensch Mitglied Student

 Beiträge: 47 Registriert: 12.05.2016
|
erstellt am: 22. Jun. 2016 15:53 <-- editieren / zitieren --> Unities abgeben:         
Ich lasse es gerade durchlaufen. Stand jetzt sind die Dicken schon mal deutlich plausibler: near wall layer avg thickness: zwischen 0.0098 und 0.01 Aber das wird ewig dauern. Gibt es denn keine schnellere Methode? Danke Tobi für deine Hilfe! ------------------ Moritz Franke Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Studentenmensch Mitglied Student

 Beiträge: 47 Registriert: 12.05.2016
|
erstellt am: 22. Jun. 2016 16:08 <-- editieren / zitieren --> Unities abgeben:         
So war nach einer Iteration schon durch. Die Geometrie stimmt noch (es wird kein Block ausgegeben in Paraview -- > folglich wasserdichte Geometrie) Nur weiß ich nicht, ob das jetzt wirklich nach Layern ausschaut in paraView oder ob das einfach eine Netzverfeinerung dort ist. Gibt es eine Möglichkeit, sich nur die Layer in paraView anzeigen zu lassen? Grüße mooritz ------------------ Moritz Franke [Diese Nachricht wurde von Studentenmensch am 22. Jun. 2016 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Studentenmensch Mitglied Student

 Beiträge: 47 Registriert: 12.05.2016
|
erstellt am: 22. Jun. 2016 16:14 <-- editieren / zitieren --> Unities abgeben:         
Scheint nicht geklappt zu haben: Code: Layer addition iteration 1 --------------------------Determining displacement for added points according to pointNormal ... Detected 0 points with point normal pointing through faces. Reset displacement at 0 points to average of surrounding points. displacementMedialAxis : Smoothing using Medial Axis ... displacementMedialAxis : Reducing layer thickness at 0 nodes where thickness to medial axis distance is large displacementMedialAxis : Removing isolated regions ... displacementMedialAxis : Number of isolated points extrusion stopped : 0 displacementMedialAxis : Smoothing field ... Iteration 0 residual 0 displacementMedialAxis : Moving mesh ... displacementMedialAxis : Iteration 0 Moving mesh using displacement scaling : min:1 max:1 Checking faces in error : non-orthogonality > 65 degrees : 8 faces with face pyramid volume < 1e-13 : 0 faces with face-decomposition tet quality < 1e-15 : 0 faces with concavity > 80 degrees : 0 faces with skewness > 4 (internal) or 20 (boundary) : 0 faces with interpolation weights (0..1) < 0.05 : 0 faces with volume ratio of neighbour cells < 0.01 : 0 faces with face twist < 0.02 : 0 faces on cells with determinant < 0.001 : 0 displacementMedialAxis : Successfully moved mesh displacementMedialAxis : Finished moving mesh ... truncateDisplacement : Unextruded 0 faces due to non-consecutive vertices being extruded. truncateDisplacement : Unextruded 0 faces due to stringed edges with inconsistent extrusion. Setting up information for layer truncation ... Checking mesh with layer ... Checking faces in error : non-orthogonality > 65 degrees : 8 faces with face pyramid volume < 1e-13 : 0 faces with face-decomposition tet quality < 1e-15 : 0 faces with concavity > 80 degrees : 0 faces with skewness > 4 (internal) or 20 (boundary) : 0 faces with interpolation weights (0..1) < 0.05 : 0 faces with volume ratio of neighbour cells < 0.01 : 0 faces with face twist < 0.02 : 0 faces on cells with determinant < 0.001 : 0 Detected 8 illegal faces (concave, zero area or negative cell pyramid volume) Extruding 0 out of 482650 faces (0%). Removed extrusion at 0 faces. Added 0 out of 965300 cells (0%). Edge intersection testing: Number of edges : 35971036 Number of edges to retest : 0 Number of intersected edges : 2565052 Converting 411954 baffles back into zoned faces ... Edge intersection testing: Number of edges : 35559082 Number of edges to retest : 411954 Number of intersected edges : 2153110 Converted baffles in = 693.45 s Writing 0 added cells to cellSet addedCells Writing 0 faces inside added layer to faceSet layerFaces
Writing fields with layer information: nSurfaceLayers : actual number of layers thickness : overall layer thickness thicknessFraction : overall layer thickness (fraction of desired thickness) patch faces layers overall thickness [m] [%] ----- ----- ------ --- --- Leitorgan 167103 0 0 0 Temperatursonde 3908 0 0 0
....
Layer mesh : cells:10927984 faces:35559082 points:13776934 Cells per refinement level: 0 10927984 Writing mesh to time 1 Wrote mesh in = 3.08 s. Layers added in = 1132.32 s. Checking final mesh ... Checking faces in error : non-orthogonality > 65 degrees : 8 faces with face pyramid volume < 1e-13 : 0 faces with face-decomposition tet quality < 1e-15 : 0 faces with concavity > 80 degrees : 0 faces with skewness > 4 (internal) or 20 (boundary) : 0 faces with interpolation weights (0..1) < 0.05 : 0 faces with volume ratio of neighbour cells < 0.01 : 0 faces with face twist < 0.02 : 0 faces on cells with determinant < 0.001 : 0 Finished meshing with 8 illegal faces (concave, zero area or negative cell pyramid volume) Finished meshing in = 1381.38 s. End
Habe jetzt ja gar keine LayerThickness mehr? ------------------ Moritz Franke Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Studentenmensch Mitglied Student

 Beiträge: 47 Registriert: 12.05.2016
|
erstellt am: 22. Jun. 2016 17:38 <-- editieren / zitieren --> Unities abgeben:         
Also in meinem Ordner habe ich zwei Ordner mit 1 und 2. Die stehen wohl für die Layer Addition Iteration. Muss ich jetzt noch was spezielles machen um vielleicht die Layers sichtbar zu machen in OpenFoam (irgendein Befehl wie -overwrite) oder so noch? Aaah ich komm nicht auf meinen Fehler ------------------ Moritz Franke Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Shor-ty Moderator
     

 Beiträge: 2466 Registriert: 27.08.2010 ESI-OpenCFD OpenFOAM v2312
|
erstellt am: 23. Jun. 2016 15:46 <-- editieren / zitieren --> Unities abgeben:          Nur für Studentenmensch
Hi, das einfachste ist erstmal zu verstehen was da passiert bevor du an einem Netz rumhantierst, dass mit (mehreren) Kernen erzeugt werden muss. Auch deine Aussagen bezüglich den Zeitordnern 1 und 2 lässt rückschließen, dass du nciht sehr bewandert mit Foam bist. Wenn du die Layererzeugung (das letztlich nur eine Verfeinerung der Wand darstellt und keine viskosen Grenzschichten, das viele denken; natürlich kann man mit der Verfeinerung die Grenzschicht auflösen aber allgemein ist das lediglich eine Netzverfeinerung an der Wand) an einem simplen Case im Griff hast, dann kannst du das auf deine komplexere Geometrie anwenden. Beispiele gibts ja genug im Netz (auch auf meiner Homepage). Die entscheidende Ausgabe ist am Schluss zu sehen. Da steht dann dran wie viele Layer erzeugt wurden und wie viel %. Die Layer werden glaub in ein Set geschrieben. Demnach kannst du das Set in eine cellZone umwandeln und dann in Paraview anschauen. ------------------ Viele Grüße, Tobias Holzmann Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Studentenmensch Mitglied Student

 Beiträge: 47 Registriert: 12.05.2016
|
erstellt am: 28. Jun. 2016 14:17 <-- editieren / zitieren --> Unities abgeben:         
Entschuldigung für die späte Antwort. Ich habe es geschafft eine Layer zu erstellen, nachdem ich bei der Layererzeugung alle Überprüfungen im QualityDict ausgeschaltet habe. Am Ende heißt es: faces: 166502 layers: 1.38 overal m : 0.010 und thickness: 54% Ich denke das hat hiermit funktioniert. Wenn ich in paraView nur nLayer visualisiere, wird mir auch genau an der entsprechenden Geometrie etwas angezeigt. Nur ob das jetzt eine Layer ist oder nicht - schwer zu beurteilen :-/ Ist es überhaupt sinnvoll das QualityDict auszuschalten? ------------------ Moritz Franke Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Shor-ty Moderator
     

 Beiträge: 2466 Registriert: 27.08.2010 ESI-OpenCFD OpenFOAM v2312
|
erstellt am: 30. Jun. 2016 00:02 <-- editieren / zitieren --> Unities abgeben:          Nur für Studentenmensch
Hi, das ist gängige Methode für einige (ich bezieh mich auf das QualityDict). Ich persönlich bin davon aber kein verfechter. Ich nehm lieber einen anderen Trick, den ich im Forum schon öfter erwähnt hab. Für die Vernetzung einfach alles um den Faktor 1000 größer machen. Heißt, STL um den Faktor 1000 skalieren und natürlich auch das Hintergrundnetz. Nach dem Vernetzen dann wieder zurückskalieren (: Die Befehle sind: transformPoints und surfaceTransformPoints Die Ausgabe die du erwähnst, ist die die ich meinte. Für das Igloo Tutorial wäre das wie folgt:
Code:
patch faces layers overall thickness [m] [%] ----- ----- ------ --- --- igloo 1276 1 0.125 100 twoFridgeFreezers_seal_0 800 1.96 0.0766 49 twoFridgeFreezers_herring_1 592 2.09 0.0988 52.7
Die Ausgabe gibt dir an wie viel % erfolgreich waren. Heißt also wenn du eine Oberfläche hast, dann werden erstmal auf diese Oberfläche die Hexaederzellen gelegt. d.h. deine Geometrie wird um n Layer vergößert. Die Layer werden dann nach Innen gepushed wobei sich das innere Netz verzerrt (Einstellungen im LayerControlDict). Wenn 100% erreicht werden heißt das das jedes Face mit den n Layern erfolgreich ergänzt wurde. Bei deinen 54 sind also 46% der Oberfläche immer noch ohne Layer. Gründe sind vielseitig... Persönlich verwende ich zuerst castellated + snap und hab dieses Netz dann. Danach schalte ich nur die Layergenerierung an und arbeite OHNE -overwrite. Demnach kann man sich die Layer anschauen und ggf. Werte ändern, damit es besser wird. Somit spart man sich die zwei Schritte (castellated und snappen). ------------------ Viele Grüße, Tobias Holzmann Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Studentenmensch Mitglied Student

 Beiträge: 47 Registriert: 12.05.2016
|
erstellt am: 30. Jun. 2016 17:22 <-- editieren / zitieren --> Unities abgeben:         
Ich bin mir nicht ganz sicher ob meine Befehlseingabe richtig ist: a. SnappyHexMesh mit Castellated und Snap =True , Decompose mit Hirachial Allrun mit: 1. runApplication surfaceFeature Extract 2. runApplication decomposePar 3. runParallel snappyHexMesh 30 -overwrite 4. runApplication reconstructParMesh -constant b. SnappyHexMesh mit Castellated und Snap =True ; Decompose mit Scotch Allrun mit: 1. runApplication decomposePar 2. runParallel snappyHexMesh 30 3. runApplication reconstructParMesh -constant leider habe ich das ganze mir nur zusammenkopiert. Wie wären denn die Befehle direkt in der Konsole und für was steht das "-constant" bei reconstructParMesh -constant
Überschreibt er da den Ordner "constant" ? Ist das sinnvoll wenn ich die Layergenerierung ausprobieren möchte? Danke Tobi :-) ------------------ Moritz Franke Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Shor-ty Moderator
     

 Beiträge: 2466 Registriert: 27.08.2010 ESI-OpenCFD OpenFOAM v2312
|
erstellt am: 30. Jun. 2016 18:32 <-- editieren / zitieren --> Unities abgeben:          Nur für Studentenmensch
Hi Moritz, deine Struktur ist plausibel aber du machst Fehler. Ich empfehle dir das so zu machen:
- mkdir 0 (sofern nicht vorhanden)
- surfaceFeatureExtract
- decomposePar
- mpirun -np x snappyHexMesh -parallel -overwrite
Dann wird das Netz in deinen processorX/constant geschrieben. Natürlich enthält jeder Prozessor ein kleines Stück davon. Danach änderst du in der sHMDict die Einträge castellated & snap zu false und addLayer zu true und machst dann folgendes:
- mpirun -np x snappyHexMesh -parallel
Das neue Netz wird dann in einen Zeitordner geschrieben (natürlich wieder gesplittet auf die processors). Es gibt keinen Grund das Netz zusammenzufügen und dann wieder zu splitten. Nun öffnest du paraview und lädst das decompsed mesh und siehst für t = 0 das castellated & gesnappte Netz und wenn du auf den nächsten Zeitschritt gehst, siehst du das Netz das Layer enthält. Sollten die Layer schlecht sein einfach den Schritt wiederholen:
- mpirun -np x snappyHexMesh -parallel
Wichtig dabei ist das in controlDict die "startTime 0" ist. Damit fängst du immer wieder mit dem Netz aus constant an. Ansonsten würde er das gelayerte Netz erneut Layern, dass natürlich im Chaos endet. Wenn du zufrieden mit den Layer bist, dann am Besten nochmals die Layergenerierung laufen lassen aber nun mit dem Keyword -overwrite (sodass dir das Netz in constant überschrieben wird). Danach
- mpirun -np x renumberMesh -overwrite
- Randbedingungen setzen
- decomposePar -fields
- mpirun -np x deinSolver -parallel
Du siehst, es ist nicht nötig das Netz wieder zusammenzubauen. Die Angabe in reconstructParMesh -constant sagt der Applikation das das Netz aus constant zusammengefügt werden soll. Ansonsten würde er bspw. den letzten Zeitordner nehmen. Ich hoff es ist klarer (: ------------------ Viele Grüße, Tobias Holzmann Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Studentenmensch Mitglied Student

 Beiträge: 47 Registriert: 12.05.2016
|
erstellt am: 30. Jun. 2016 21:51 <-- editieren / zitieren --> Unities abgeben:         
Lieber Tobi vielen Dank für deine ausführliche Antwort. Ich habe in meinem Ordner noch einen 0.org Ordner, für was dient der denn immer? Ich werde es morgen gleich versuchen. Schönen abend! ------------------ Moritz Franke Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Shor-ty Moderator
     

 Beiträge: 2466 Registriert: 27.08.2010 ESI-OpenCFD OpenFOAM v2312
|
erstellt am: 30. Jun. 2016 22:17 <-- editieren / zitieren --> Unities abgeben:          Nur für Studentenmensch
Der Ordner dient nicht Openfoam sondern eher dem User. Wenn nämlich (Grad bei Turbulenzgrosen, der Konstruktor über die Felder läuft), aktualisiert der die und wenn man die unberührten Files beibehalten werden sollen, dann kopiert man lediglich den Ordner 0 zu 0.org oder einen beliebigen anderen Namen, der von Foam nicht verwendet wird. ------------------ Viele Grüße, Tobias Holzmann Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Studentenmensch Mitglied Student

 Beiträge: 47 Registriert: 12.05.2016
|
erstellt am: 01. Jul. 2016 08:38 <-- editieren / zitieren --> Unities abgeben:         
Zitat: deine Struktur ist plausibel aber du machst Fehler. Ich empfehle dir das so zu machen: •mkdir 0 (sofern nicht vorhanden)
•surfaceFeatureExtract •decomposePar •mpirun -np x snappyHexMesh -parallel -overwrite
1.Nach surfaceFeatureExtract sollte ja noch ein blockMesh folgen :-) 2. Was macht der Ordner, den ich mit mkdir 0 erstellt habe? Dort schreibe ich doch nachfolgend gar nichts rein mit meinen Befehlen? ------------------ Moritz Franke Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Studentenmensch Mitglied Student

 Beiträge: 47 Registriert: 12.05.2016
|
erstellt am: 01. Jul. 2016 09:33 <-- editieren / zitieren --> Unities abgeben:         
Also die Layergenerierung (4 Stück) hat geklappt laut Bild. Nur sonderlich schön sieht es nicht aus. Wenn ich meine QualityDict Kriterien alle einschalte iteriert er sicht tot. Irgendwelche Ideen das zu verbessern?  
------------------ Moritz Franke Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Shor-ty Moderator
     

 Beiträge: 2466 Registriert: 27.08.2010 ESI-OpenCFD OpenFOAM v2312
|
erstellt am: 01. Jul. 2016 09:38 <-- editieren / zitieren --> Unities abgeben:          Nur für Studentenmensch
Hi, ist das ein filigraner Kanal der sich durch dein Rechengebiet windet? Wenn ja, dann zeig doch bitte mal das gesnappte Bild von der gleichen Stelle; dann kann ich dir mehr Auskunft geben. Schalte bitte dazu auch "decompose Polyhedrals" aus (links im Paraview Menü zu finden)... solch ein Netz würd ich niemals nehmen (du sicher auch nicht) und die Tatsache das er sich zu tode iteriert liegt daran, dass es durch deine Settings einfach nicht möglich ist ein numerisch passables Netz zu erstellen. ------------------ Viele Grüße, Tobias Holzmann Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Studentenmensch Mitglied Student

 Beiträge: 47 Registriert: 12.05.2016
|
erstellt am: 01. Jul. 2016 10:11 <-- editieren / zitieren --> Unities abgeben:         
|
Shor-ty Moderator
     

 Beiträge: 2466 Registriert: 27.08.2010 ESI-OpenCFD OpenFOAM v2312
|
erstellt am: 01. Jul. 2016 10:57 <-- editieren / zitieren --> Unities abgeben:          Nur für Studentenmensch
Hallo Moritz, im Anhang eine Darstellung der Problemstellen. Die 3 Roten Punkte (dieses Gap) ist schonmal sehr kritisch (numerisch gesehen). Du hast hier 2 Volumen zwischen drin. Der linke und rechte Rand ist bspw. für U = 0. Da bleibt nicht mehr viel über um ein Flux zu berechnen. Das geht natürlich schon aber das ist alles andere als Akkurat und wenn deine Zellen dann eh noch alles andere als hexaedrisch sind, dann wirds ganz dunkel. In Grün hab ich dir mal gezeigt wie das Layering funktioniert. Zuerst werden deine Layer auf das Netz nach Außen draufgesetzt und dann versucht die Zellen nach innen zu pushen. Daher verzerrt sich natürlich auch das ganze innere Netz. Je nach dem wie dein Netz beschaffen ist, kommts dann eben unweigerlich zu Problemen.
Diese Klappe kannst du so nicht approximieren. Da muss mindestens noch ein Level höher verfeinert werden. Ansonsten geht das mit den Layern sowieso nicht (denk nur mal an das Gap mit den 3 Roten Punkten. Du willst da noch 8 weitere Layer reindrücken? Ich würde die Oberfläche der Klappe vllt nochmals extrahieren (also eine eigene STL für die Klappe) und dann mittels refineRegions und Distance arbeiten. Persönlich würde ich mich nicht darauf verlassen das das hinhaut (: Wenn du die weitere Verfeinerung machst, dann kannst du auch noch 1 - 2 Layer einfügen. Normalerweise sollten das schon mehr sein aber das kommt halt dann immer drauf an was du auflösen willst/musst und so weiter. Wenn du keinen Wärme- oder Stoffübergang hast, dann würde ich das für den ersten Try sowieso ohne Layer machen (allerdings ist die Grenzschicht schon wichtig für Ablösungen etc). ------------------ Viele Grüße, Tobias Holzmann Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Studentenmensch Mitglied Student

 Beiträge: 47 Registriert: 12.05.2016
|
erstellt am: 01. Jul. 2016 13:52 <-- editieren / zitieren --> Unities abgeben:         
Danke für deine Tipps und Tricks. Dann probiere ich einfach mal Parameter aus und mache die Geometrie vielleicht gröber. Folgende Frage noch: 1.Was sollte der 0 Ordner den ich erstellt habe? Da speicherts ja keine Files rein? Hat das was mit dem ControlDict und startTime 0 zu tun? 2.Woher weiß snappyHexMesh das es auf Grundlage des constant Ordners immer beginnen soll die Layers draufzupacken und nicht zum Beispiel den Ordner 1 oder 2 oder 3 nimmt 3. Ich hatte nämlich gerade den Fall, das das Netz auf Grundlage der vorherigen Netze immer die Layers draufgepackt hat? startFrom = latestTime ist aber schon korrekt im Control Dict? Danke Tobi ------------------ Moritz Franke Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Shor-ty Moderator
     

 Beiträge: 2466 Registriert: 27.08.2010 ESI-OpenCFD OpenFOAM v2312
|
erstellt am: 01. Jul. 2016 14:05 <-- editieren / zitieren --> Unities abgeben:          Nur für Studentenmensch
Hi Moritz, wenn du deine Fragen durchliest, solltest du es dir selber beantworten (: 1. Korrekt 2. snappy weiß das nicht, das stellst du im controlDict ein 3. Genau das bezieht sich auf Frage 2. Wenn du start From = latestTime beginnst und die neuen Netze in 1, 2 oder 3 gespeichert werden, dann nimmst du das Netz von 3 und versuchst da dann weiter was zu drehen (falsch). Du möchtest das Grundnetz -> constant/polyMesh und daher der Ordner 0 + der Eingabe startFrom = startTime oder startFrom = 0.
------------------ Viele Grüße, Tobias Holzmann Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Studentenmensch Mitglied Student

 Beiträge: 47 Registriert: 12.05.2016
|
erstellt am: 06. Jul. 2016 08:10 <-- editieren / zitieren --> Unities abgeben:         
Ich glaube das mit "Distance" klappt ganz gut. Teilweise gibt es eben gewisse Darstellungsfehler auch in Paraview , daher wahrscheinlich komische Linien mit Kreuzungen im Netz ... ich bleibe dran :-) ------------------ Moritz Franke Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |