Hot News:

Unser Angebot:

  Foren auf CAD.de
  OpenFOAM
  AddLayers SnappyHexMesh

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Online-Kurs: Grundlagen des 3D-Druck-Designs für Industrieingenieure , ein Kurs
Autor Thema:  AddLayers SnappyHexMesh (3048 / mal gelesen)
Studentenmensch
Mitglied
Student


Sehen Sie sich das Profil von Studentenmensch an!   Senden Sie eine Private Message an Studentenmensch  Schreiben Sie einen Gästebucheintrag für Studentenmensch

Beiträge: 47
Registriert: 12.05.2016

erstellt am: 22. Jun. 2016 12:22    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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.
End

Finalising 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





Sehen Sie sich das Profil von Shor-ty an!   Senden Sie eine Private Message an Shor-ty  Schreiben Sie einen Gästebucheintrag für Shor-ty

Beiträge: 2466
Registriert: 27.08.2010

ESI-OpenCFD OpenFOAM v2312

erstellt am: 22. Jun. 2016 12:31    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Studentenmensch 10 Unities + Antwort hilfreich

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


Sehen Sie sich das Profil von Studentenmensch an!   Senden Sie eine Private Message an Studentenmensch  Schreiben Sie einen Gästebucheintrag für Studentenmensch

Beiträge: 47
Registriert: 12.05.2016

erstellt am: 22. Jun. 2016 12:36    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Danke für deine Schnelle Antwort:

Das ist mein AllrunScrip

Code:
#!/bin/sh
cd ${0%/*} | | exit 1    # run from this directory

runApplication 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





Sehen Sie sich das Profil von Shor-ty an!   Senden Sie eine Private Message an Shor-ty  Schreiben Sie einen Gästebucheintrag für Shor-ty

Beiträge: 2466
Registriert: 27.08.2010

ESI-OpenCFD OpenFOAM v2312

erstellt am: 22. Jun. 2016 13:30    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Studentenmensch 10 Unities + Antwort hilfreich

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


Sehen Sie sich das Profil von Studentenmensch an!   Senden Sie eine Private Message an Studentenmensch  Schreiben Sie einen Gästebucheintrag für Studentenmensch

Beiträge: 47
Registriert: 12.05.2016

erstellt am: 22. Jun. 2016 15:53    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von Studentenmensch an!   Senden Sie eine Private Message an Studentenmensch  Schreiben Sie einen Gästebucheintrag für Studentenmensch

Beiträge: 47
Registriert: 12.05.2016

erstellt am: 22. Jun. 2016 16:08    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von Studentenmensch an!   Senden Sie eine Private Message an Studentenmensch  Schreiben Sie einen Gästebucheintrag für Studentenmensch

Beiträge: 47
Registriert: 12.05.2016

erstellt am: 22. Jun. 2016 16:14    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von Studentenmensch an!   Senden Sie eine Private Message an Studentenmensch  Schreiben Sie einen Gästebucheintrag für Studentenmensch

Beiträge: 47
Registriert: 12.05.2016

erstellt am: 22. Jun. 2016 17:38    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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





Sehen Sie sich das Profil von Shor-ty an!   Senden Sie eine Private Message an Shor-ty  Schreiben Sie einen Gästebucheintrag für Shor-ty

Beiträge: 2466
Registriert: 27.08.2010

ESI-OpenCFD OpenFOAM v2312

erstellt am: 23. Jun. 2016 15:46    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Studentenmensch 10 Unities + Antwort hilfreich

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


Sehen Sie sich das Profil von Studentenmensch an!   Senden Sie eine Private Message an Studentenmensch  Schreiben Sie einen Gästebucheintrag für Studentenmensch

Beiträge: 47
Registriert: 12.05.2016

erstellt am: 28. Jun. 2016 14:17    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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





Sehen Sie sich das Profil von Shor-ty an!   Senden Sie eine Private Message an Shor-ty  Schreiben Sie einen Gästebucheintrag für Shor-ty

Beiträge: 2466
Registriert: 27.08.2010

ESI-OpenCFD OpenFOAM v2312

erstellt am: 30. Jun. 2016 00:02    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Studentenmensch 10 Unities + Antwort hilfreich

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


Sehen Sie sich das Profil von Studentenmensch an!   Senden Sie eine Private Message an Studentenmensch  Schreiben Sie einen Gästebucheintrag für Studentenmensch

Beiträge: 47
Registriert: 12.05.2016

erstellt am: 30. Jun. 2016 17:22    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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





Sehen Sie sich das Profil von Shor-ty an!   Senden Sie eine Private Message an Shor-ty  Schreiben Sie einen Gästebucheintrag für Shor-ty

Beiträge: 2466
Registriert: 27.08.2010

ESI-OpenCFD OpenFOAM v2312

erstellt am: 30. Jun. 2016 18:32    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Studentenmensch 10 Unities + Antwort hilfreich

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


Sehen Sie sich das Profil von Studentenmensch an!   Senden Sie eine Private Message an Studentenmensch  Schreiben Sie einen Gästebucheintrag für Studentenmensch

Beiträge: 47
Registriert: 12.05.2016

erstellt am: 30. Jun. 2016 21:51    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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





Sehen Sie sich das Profil von Shor-ty an!   Senden Sie eine Private Message an Shor-ty  Schreiben Sie einen Gästebucheintrag für Shor-ty

Beiträge: 2466
Registriert: 27.08.2010

ESI-OpenCFD OpenFOAM v2312

erstellt am: 30. Jun. 2016 22:17    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Studentenmensch 10 Unities + Antwort hilfreich

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


Sehen Sie sich das Profil von Studentenmensch an!   Senden Sie eine Private Message an Studentenmensch  Schreiben Sie einen Gästebucheintrag für Studentenmensch

Beiträge: 47
Registriert: 12.05.2016

erstellt am: 01. Jul. 2016 08:38    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von Studentenmensch an!   Senden Sie eine Private Message an Studentenmensch  Schreiben Sie einen Gästebucheintrag für Studentenmensch

Beiträge: 47
Registriert: 12.05.2016

erstellt am: 01. Jul. 2016 09:33    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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





Sehen Sie sich das Profil von Shor-ty an!   Senden Sie eine Private Message an Shor-ty  Schreiben Sie einen Gästebucheintrag für Shor-ty

Beiträge: 2466
Registriert: 27.08.2010

ESI-OpenCFD OpenFOAM v2312

erstellt am: 01. Jul. 2016 09:38    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Studentenmensch 10 Unities + Antwort hilfreich

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


Sehen Sie sich das Profil von Studentenmensch an!   Senden Sie eine Private Message an Studentenmensch  Schreiben Sie einen Gästebucheintrag für Studentenmensch

Beiträge: 47
Registriert: 12.05.2016

erstellt am: 01. Jul. 2016 10:11    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Ja da sitzt eine Klappe. Womöglich muss ich diese dann vergröbern?

Hier das Bild nur mit castellated und snap :

------------------
Moritz Franke

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Shor-ty
Moderator





Sehen Sie sich das Profil von Shor-ty an!   Senden Sie eine Private Message an Shor-ty  Schreiben Sie einen Gästebucheintrag für Shor-ty

Beiträge: 2466
Registriert: 27.08.2010

ESI-OpenCFD OpenFOAM v2312

erstellt am: 01. Jul. 2016 10:57    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Studentenmensch 10 Unities + Antwort hilfreich


26062964ns.jpg

 
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


Sehen Sie sich das Profil von Studentenmensch an!   Senden Sie eine Private Message an Studentenmensch  Schreiben Sie einen Gästebucheintrag für Studentenmensch

Beiträge: 47
Registriert: 12.05.2016

erstellt am: 01. Jul. 2016 13:52    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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





Sehen Sie sich das Profil von Shor-ty an!   Senden Sie eine Private Message an Shor-ty  Schreiben Sie einen Gästebucheintrag für Shor-ty

Beiträge: 2466
Registriert: 27.08.2010

ESI-OpenCFD OpenFOAM v2312

erstellt am: 01. Jul. 2016 14:05    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Studentenmensch 10 Unities + Antwort hilfreich

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


Sehen Sie sich das Profil von Studentenmensch an!   Senden Sie eine Private Message an Studentenmensch  Schreiben Sie einen Gästebucheintrag für Studentenmensch

Beiträge: 47
Registriert: 12.05.2016

erstellt am: 06. Jul. 2016 08:10    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2025 CAD.de | Impressum | Datenschutz