[German Workshop] Step-by-Step (Session 1) - CFD Analyse einer Kanalströmung


#1

\underline{\textbf{Aufzeichnung des Webinars}}

\underline{\textbf{Einreichen der Hausaufgaben}}

Bitte reichen Sie die Hausaufgaben unter folgendem Link ein

\underline{\textbf{Einführung}}

Einer der Hauptgründe Lüftungskanäle zu designen bzw. zu optimieren besteht darin den Druckverlust zwischen Einlass und Auslass zu minimieren. Des Weiteren muss das Geschwindigkeitsprofil spezielle Charakteristiken aufweisen, wie beispielsweise einer homogenen Luftverteilung am Auslass. Der begrenzt zur Verfügung stehende Bauraum in modernen Fahrzeugen zum Beispiel stellen eine Restriktion dar und führen zu komplexen Geometrien solcher Kanäle was den Optimierungsprozess zusätzlich erschwert.

Mit dem enormen Fortschritt der Computertechnologien in den letzten Jahren wurde CFD (Computational Fluid Dynamics) ein immer nützlicheres, sowie kostengünstiges Tool zur Optimierung für Innenströmungen in Kanälen und Leitungsnetzen. Mit Hilfe von CFD können der Druck, die Geschwindigkeit, die Temperatur und viele weitere auslegungsrelevante Parameter bei verschiedenen Betriebsbedingungen visualisiert und analysiert werden ohne sukzessiv einen Prototypen abändern zu müssen. Beispielsweise können bei abrupten Geometrieänderungen wie einer scharfen Kante oder einer abrupten Erweiterung/Kontraktion des Querschnittes problematische Bereiche wie Rezirkulationszonen und ungleichmäßige Geschwindigkeitsverteilungen identifiziert werden. Diese Probleme der Geometrieeinflüsse tragen wesentlich zu dem exzessiven Druckverlust in Kanalströmungen bei und können die Strömungsverteilung signifikant beeinflussen.

Um diese Problematik zu umgehen und stromlinienartige Verläufe zu erzeugen werden spezielle geometrische Modifikationen vorgenommen. Dies können Abweisbleche oder Leitschaufeln sein. Möglichkeiten werden im Rahmen dieses Workshops vorgestellt.

Es werden mehrere Optimierungszyklen durchlaufen, um ein finales Design zu erhalten, welches den geringsten Druckverlust, sowie eine uniforme Geschwindigkeitsverteilung aufweist. Designer sind mit SimScale in der Lage ihre Modelle mit Hilfe des CFD Moduls zu validieren, indem Strömungsverläufe schon vor dem ersten Prototypen analysiert werden, um frühzeitig starke Rückflüsse als auch Rezirkulationszonen zu detektieren.

\underline{\textbf{Übung}}

Das Ziel dieser Übung wird es sein eine Innenströmung durch einen Kanal mit Hilfe des CFD Moduls von SimScale zu untersuchen. Druckverluste innerhalb des Kanals sollen durch Leitschaufeln minimiert werden. Ihre Aufgabe wird es sein eine CFD Simulation aufzusetzen, um das Strömungsverhalten und den Druckverlust zu analysieren bzw. zu simulieren. Folgende Parameter dürfen variiert werden (Grenzen der Werte ebenfalls angegeben).

  • Schaufellänge: 0.05 - 0.25

  • Anzahl der Schaufeln: 0-5

  • Anstellwinkel der Schaufeln: 320-360°

\underline{\textbf{Step-by-Step Anleitung:}}

Hinweis: Die nachfolgenden Schritte beziehen sich auf ein Simulationssetup mit 3 Leitschaufeln und dem Schaufelwinkel von 360°.

\underline{\textbf{Vorbereitung der Geometrie:}}

Ihnen wird ein OnShape Modell zur Verfügung gestellt, welches einfach zu modifizieren sein wird.
Wenn Sie bereits Nutzer von OnShape sind, so können Sie einfach den folgenden Link benutzen, um das CAD Modell in Ihren Workspace zu importieren:

Import CAD Modell

Erstellen Sie wie folgt eine Kopie:

Wenn Sie ein neuer User auf Onshape sind, so besuchen Sie bitte die folgende Seite: www.onshape.com
Erstellen Sie sich einen neuen Account wie im Bild beschrieben:

Im nächsten Schritt wählen Sie nach belieben einen Accounttyp aus, welcher Ihren Anforderungen entspricht und füllen Sie das Anmeldeformular aus:

Nun können Sie sich in Ihren neuen OnShape Account einloggen und wie oben beschrieben den Link nutzen, um das CAD Modell für diese Übung in Ihren Workspace zu laden:

Import CAD Modell

Sobald das CAD Modell in Ihren Workspace kopiert wurde, können Sie die erforderlichen Änderungen an den Leitschaufeln vornehmen. Wenn Sie mit Ihrem Design zufrieden sind, so klicken Sie bitte auf das grüne Häkchen in der oberen linken Ecke:

Als nächstes gehen Sie auf Ihr [SimScale Dashboard] (https://www.simscale.com/dashboard/) und erstellen ein neues Projekt, indem Sie auf New klicken.

Öffnen Sie nun das Projekt, welches Sie soeben erstellt haben:

Sie können nun direkt die von Ihnen erstellte Geometrie in OnShape in den Workspace importieren, indem Sie auf Import klicken.

Wählen Sie Ihre Geometrie aus dem Pop-Up Fenster aus. Es liegt nahe zuerst einmal das Modell mit einem Schaufelwinkel von 0° zu importieren und im späteren Verlauf ein zweites Modell mit einem modifizierten Schaufelwinkel hochzuladen. Dabei ist darauf zu achten, dass Sie aussagekräftige Namen für Ihre Modelle wählen, um Fehler im Setup zu vermeiden und das Leben für den Support bei auftretenden Problem im Laufe der Simulation zu vereinfachen.

\underline{\textbf{Meshing}}

Das Meshing oder die sogenannte Grid Generation ist eine diskrete Zerlegung der Geometrie, welche das fluiddynamische Problem und die Domäne beschreibt, in welcher die Zellen liegen, welche später benutzt werden, um das Strömungsproblem zu lösen. Das Mesh hat einen maßgeblichen Einfluss auf folgende Punkte:

  • Konvergenzrate (oder sogar fehlende Konvergenz)

  • Genauigkeit der Lösung

  • Benötigte Rechenzeit (CPU time)

Sobald Ihre Geometrie importiert wurde, ist sie bereit für das Meshing. Navigieren Sie hierzu zu dem Tab Mesh Creator, welcher unterhalb des SimScale Emblems zu finden ist. Wählen Sie Ihre Geometrie mit einem Klick aus und drücken Sie auf New.

Wie schon erwähnt sollte nun ein adäquater Name für Ihr Mesh gewählt werden. Selektieren Sie die Base Geometry.

Erstellen Sie eine neue Operation, indem Sie auf New klicken.

Wählen Sie die Hex-dominant parametric (only CFD) Option aus der Liste und drücken Sie Save, um Ihre Auswahl zu speichern.

Diese Methode erlaubt es Ihnen die Base Domain Größe und Diskretisierung der Domäne anzugeben. Des Weiteren können verschiedene Mesh Refinements und dazugehörige Einstellungen vorgenommen werden. Das Mesh Refinement hilft uns Regionen dort feiner aufzulösen, wo Strömungsgradienten einen signifikanten Einfluss haben. Für weitere Informationen zu Hex-dominant parametric, besuchen Sie bitte folgende Seite:

SnappyHexMesh - Settings

Nach dem Speichern erscheinen neue Unterbäume auf der linken Seite namens Geometry Primitives und Mesh Refinements. Klicken Sie auf Mesh Refinements in dem Baum und dann auf New in der Konsole, um ein neues Refinement Item zu definieren:

Passen Sie die Einstellungen an. Wählen Sie alle Flächen des Kanals ausser den Einlass, den Auslass, sowie die Flächen der Leitschaufeln.

Im nächsten Step werden wir ein neues Surface Refinement Item erstellen.

Passen Sie auch hier die Einstellungen an. Verbergen Sie die Flächen der Kanalwände, indem Sie solid_3 im rechten, oberen Panel abwählen, danach Rechtsklicken und Select All wählen. Dies wird alle Flächen der Leitschaufeln auswählen. Nach diesem Schritt klicken Sie bitte auf Add Selection from viewer.

Im nächsten Schritt wird das sogenannte Boundary Layer Refinement definiert:

Der Boundary Layer (deutsch: Grenzschicht) ist ein komplexes Phänomen, welches eine sehr “schmale” Ausprägung hat und die Gradienten der Lösung sehr hoch sind. Die Zellen nahe der Wand sollten fein genug sein, um diesen Boundary Layer auflösen zu können. Um dieses Phänomen richtig einfangen zu können, werden sogenannte prism layers nahe der Wand hinzugefügt. Dies ist nicht nur zeit- und kosteneffizient, sondern erzeugt auch recht akkurate Ergebnisse mit einer guten Konvergenzrate.

Passen Sie erneut Einstellungen an. Wählen Sie den Einlass und Auslass mit der linken Maustaste. Mit der rechten Maustaste und einem Klick auf Invert Selection wird Ihre Auswahl invertiert, indem alle anderen Flächen ausser der Einlass und Auslass ausgewählt werden. Dies ist nötig, da wir nur dort Layer möchten.

Klicken Sie nun Add selection from viewer, um alle Flächen für das Refinement zu registrieren.

Im nächsten Schritt werden wir ein Refinement definieren um die Darstellung der Kanten zu verbessern.

  • Name: featRefine
  • Type: Feature refinement
  • Edge feature extraction method: extractFromSurface
  • Include angle: 150
  • Distance: 0.001
  • Level: 3

Im nächsten Schritt werden wir eine sogenannte Region refinement in der Umlenkung mit folgenden Eigenschaften definieren.

  • Name: regRefine
  • Type: Region refinement
  • Region Refinement mode: inside
  • Level: 3

Die Region Refinement erlaubt eine Steigerung der Netzdichte in einer begrenzten Region vorzunehmen. In diesem Fall erhöhen wir die Netzdichte im Bereich der Krümmung, da dort große Strömungsgradienten erwartet werden.

Klicken Sie auf New bei Geometry Primitive, um eine Cartesian Box für die Verfeinerung zu erstellen.

Geben Sie die Koordinaten für die Box entsprechend des Bildes ein und übernehmen Sie die Einstellungen mit einem Klick auf Save.

Erstellen Sie eine zweite Cartesian Box für ein Region Refinement (Rechtsklick auf Geometry Primitives).

Auch hier die Koordinaten der Box entsprechend des Bildes angeben und mit einem Klick auf Save sichern.

Klicken Sie nun auf den RegRefine Tab, welchen wir soeben erstellt haben und wählen Sie beide Cartesian Boxes. Drücken Sie auf Save.

Achtung! Verfeinern Sie die Region nicht allzu sehr. Andernfalls wird die Rechenzeit in die Höhe schießen. Bedenken Sie, dass bei jeder Verfeinerung die Rechenmaschine das Strömungsfeld an mehreren Punkten auswerten muss und somit länger für eine Iteration braucht.

Nun sind wir soweit unser Mesh zu generieren. Gehen Sie auf Operation 1 und setzen Sie die Number of Computing cores auf 8. Klicken Sie auf Save und danach auf Start.

Warum Sie nicht mit 32 Kernen rechnen sollten ist in dem folgenden Video von uns sehr gut dargestellt:

Sobald die Mesh Operation gestartet wurde, wird ein neuer Job erstellt. Dessen Status kann in der linken unteren Ecke beobachtet werden. Das Meshing dauert in etwa 15-20 Minuten.

Die finale Version des Meshes kann im Viewport betrachtet werden, sobald es fertig ist.

\underline{\textbf{Simulation}}

Klicken Sie auf New Simulation, um eine neue Simulation zu erzeugen. Geben Sie der Simulation einen Namen. Dies wird eine weitere Spalte in der Mitte erzeugen. Hier können Sie aussuchen, welche Art von Simulation Sie durchführen möchten.

In unserem Fall werden wir eine Strömungssimulation eines inkompressiblen Fluids betrachten. Dazu klicken Sie auf Fluid Dynamics und auf Incompressible.

Im nächsten Schritt können weitere Einstellungen vorgenommen werden. Zuerst wählen wir ein Turbulenzmodell für unsere Strömungssimulation. In unserem Fall wird das k-omega SST Turbulenzmodell gewählt. Wählen Sie als weitere Option Steady-State aus dem Drop-Down Menü. Dies bedeutet, dass wir ein stationäres Strömungsfeld betrachten. Nun speichern Sie Ihre Auswahl, indem Sie auf den Button unten drücken. Dies wird weitere Items im Projektbaum auf der linken Seite erzeugen.

Die Hierarchie des Baumes ist so strukturiert, dass man alle Schritte von oben nach unten durcharbeiten kann. Beachten Sie, dass manche Items nicht benötigt werden bzw. optional sind.

Im nächsten Schritt müssen Sie Ihre Domäne wählen. Wählen Sie duct-0degree-mesh aus dem Menü aus. Vergessen Sie nicht Ihre Einstellungen zu speichern.

Im nächsten Schritt erstellen Sie Topological Entity Sets, in welchen wir Flächen gruppieren können. Dies stellt eine erhebliche Vereinfachung des Workflows zu einem späteren Zeitpunkt dar, da wir Randbedingungen (englisch: Boundary Conditions) sehr einfach und komfortabel ohne viel Interaktion erstellen können.

Nun müssen wir unsere Materialien definieren, indem wir auf Materials klicken. Dabei muss die kinematische Viskosität angegeben werden. Klicken Sie hierzu auf das Untermenü und auf den New Button.

Dies wird eine neue Spalte erzeugen, in welcher Sie Ihrem Fluid bestimmte Eigenschaften geben können. Glücklicherweise ist SimScale mit einer Materialbibliothek ausgestattet, welche wir in diesem Kontext nutzen werden. Drücken Sie auf Import from material library. Wählen Sie hier Air aus der Liste und speichern Sie Ihre Einstellungen.

Ändern Sie die Defaultwerte der Viskosität und Dichte der Luft. Im letzten Schritt müssen wir noch bestimmen, welche Komponenten von diesem Material betroffen sein sollen. Wählen Sie dazu region0 aus und drücken Sie auf Save

\underline{\textbf{Initial Conditions}}

Im nächsten Schritt werden die Anfangsbedingungen (englisch: Initial Conditions) angepasst. Klicken Sie auf das Initial Conditions Untermenü. Die Anfangsbedingungen definieren die initialen Werte für physikalische Quantitäten wie dem Druck, der Geschwindigkeit etc. Mathematische Gleichungen beschreiben die Bewegung des Fluids und können (in vielen Fällen) nur numerisch gelöst werden. Der Solver (der Gleichungslöser) braucht dazu Anfangsbedingungen, damit eine Iteration ablaufen kann. In Spezialfällen kann eine Adaption dieser vonnöten sein, um die Simulation stabiler zu machen.

Die Parameter k und omega für das Turbulenzmodell können mit folgender Anleitung kalkuliert werden:

Turbulence Properties, Conversions & Boundary Estimations oder TURBULENCE CALCULATOR

Stellen Sie folgende Werte ein:
k = 0.00375 & omega = 3.375

\underline{\textbf{Boundary Conditions}}

Im Anschluss daran können sie die Randbedingungen (englisch: Boundary Conditions) für alle Flächen des Netzes definieren. Klicken Sie dazu auf den Reiter Boundary Condition in dem Projektbaum. Hier haben Sie eine Übersicht über alle Randbedingungstypen, welche auf das Netz angewandt werden können. Um eine neue Randbedingung hinzuzufügen, klicken Sie bitte auf den entsprechenden Button am unteren Ende der Spalte.

Dies wird ein zusätzliches Untermenü in dem Projektbaum hinzufügen und ein weiteres Fenster öffnen, in welchem Sie die Randbedingung definieren können. Sie können für die Randbedingung einen adäquaten Namen auswählen. Wählen Sie im Anschluss den Typ der Randbedingung und selektieren Sie die dazugehörigen Flächen.

Anstatt Topological Entity Sets (wie früher erläutert) zu verwenden ist es auch möglich die Flächen einfach durch klicken auszuwählen und diesen über das Interface einfach eine Randbedingung zuzuweisen. Dabei müssen Sie die Flächen im 3D Modell Fenster auf der linken Seite des Fensters mit der linken Maustaste auswählen. Um die jeweiligen Flächen zu Ihrer Auswahl hinzuzufügen, klicken Sie einfach die Komponenten an und drücken Add selection from Viewer in der mittleren Spalte.

Da das komplette Mesh angezeigt wird ist es wichtig die nicht benötigten Flächen für die Zuweisung erst einmal auszublenden, um die inneren Flächen auswählen zu können. Wählen Sie dazu die Flächen aus, welche Sie ausblenden möchten und klicken bei dem Dropdown Menü auf Hide Selection. Beachten Sie, dass Sie Flächen deselektieren können indem Sie erneut auf die Flächen klicken. Das folgende Bild soll diesen Prozess verdeutlichen.

\underline{\textbf{Inlet}}

Die Inlet Randbedingung ist nötig, um zu definieren wo das Fluid in die Domäne hineintreten soll. Wählen Sie Velocity Inlet mit einem Fixed Value und Value or Function als Eingabetyp und geben Sie eine Geschwindigkeit von 4 \frac{m}{s} in die x-Richtung an.

Selektieren Sie nun das inlet_face Flächen Set.

\underline{\textbf{Outlet}}

Die Outlet Randbedingung ist wichtig, um zu definieren wo das Fluid die Domäne verlassen soll. Wählen Sie Pressure Outlet mit Fixed Value und Mean Value als Eingabetyp mit einem Gauge Pressure von 0 Pa.

\underline{\textbf{Wall}}

Wählen Sie bitte Wall als Randbedingungstyp und No-Slip als Bedingung für die Velocity und Wall function für das Wall Treatment. Weisen Sie diese Randbedingung allen Flächen der Leitschaufeln und dem Kanal zu.

Das Numerics Menü können Sie ignorieren. Hier muss nichts für diese Simulation geändert werden. Sie können sich dennoch gerne durch dieses Menü klicken und bei Fragen zu Einstellungen bzw. Parametern gerne auf uns zukommen.

Die Simulation Control gibt uns die Möglichkeit über den Umfang der Simulation zu bestimmen. Sie können den End Time Value auf 2000 Iterationen setzen. Die Anzahl der Kerne kann auf 32 erhöht werden. Die Maximum Runtime wird auf 9000s (ca. 2,5 Stunden) gesetzt.

Beachten Sie Folgendes: Der End Time Value repräsentiert die Computation Time und die Maximum Runtime die “echte” Zeit (Uhrzeit).

Für eine akkurate Verifikation der Ergebnisse müssen sogenannte Solution Fields zusätzlich für das Post-Processing kalkuliert werden. Die SimScale Plattform bietet hierzu ein dediziertes Result Control Panel an, um weitere relevante Ausgabeparameter für den User sichtbar zu machen. Diese zusätzlichen Result Control Items können wie folgt erzeugt und exportiert werden.

Navigieren Sie zu dem Punkt Result Control und klicken Sie auf New, um ein neues Field Calculation Item oder Surface Data zu erzeugen. Damit werden strömungsrelevante Variablen für eine festgelegte Fläche ausgewertet.

Wählen Sie zuerst Surface Data, um strömungsrelevante Variablen an der Einlass- und Auslassfläche des Kanals berechnen zu lassen und dann Field Calculation um den yPlus Wert berechnen zu lassen.

Sie sind nun soweit die Simulation laufen zu lassen. Navigieren Sie hierzu zu dem Punkt Simulation Runs in dem Navigationsfenster und checken Sie das Simulationssetup. Wenn es keinen Error gibt, erzeugen Sie bitte einen neuen Simulationslauf, indem Sie auf New klicken.

Geben Sie den Namen Ihrer Simulation ein.

Klicken Sie Start, um mit der Simulation zu starten.

\underline{\textbf{Post-Processing}}

Sie werden benachrichtigt, wenn Ihre Simulation durchgelaufen ist. Wechseln Sie für die Auswertung dazu in den Post-Processing Tab in der Leiste.

\underline{\textbf{Konvergenzplot}}

\underline{\textbf{Result Controls und Area Averages}}

\underline{\textbf{Solution Fields und Results Analysis}}

Nun können alle Strömungsvariablen an gewünschten Punkten oder Ebenen analysiert werden.

Klicken Sie auf Add Filter, um eine Filter hinzuzufügen.

Wählen Sie Slice, um eine Ebene zu erzeugen.

Wählen Sie die letzte Iteration Ihrer Lösung, da wir die konvergierte Lösung betrachten wollen.

Verändern Sie die Normale (“Normal”) zu (1,0,0). Wählen Sie oben bei Field das Feld U [point-data], deselektieren Sie Show Plane, klicken Sie auf Show/Hide Colour Bar und zum Abschluss auf Apply.

Um die automatisch skalierte Geschwindigkeit zu betrachten, klicken Sie auf Scale und benutzen Sie die Auto-Range Option.

Unter der View Option können wir die Ansicht einer bestimmten Achse reorientieren und aus dieser Position einen Screenshot erzeugen.

Es gibt Optionen die Achsen auszublenden.

Der erzeugte Screenshot wird in der Result Evaluation angezeigt, welcher heruntergeladen werden kann.

In gleicher Weise können Sie eine weitere Schnittebene erzeugen, indem Sie einen neuen Filter erzeugen und p [point-data] für den Druck auswählen.

\underline{\textbf{Streamline Visualisierung}}

Eine Stromlinie (englisch: Streamlinie) kann als ein Pfad eines masselosen Partikels gedacht werden, welcher durch das Strömungsfeld “getragen” wird (damit ist das Vektorfeld gemeint). Stromlinien werden oft dazu benutzt um die Struktur eines Vektorfeldes zu vermitteln, indem ein instantanter Schnappschuss der Strömung zu einem bestimmten Zeitpunkt erzeugt wird. Ein Ensemble von Stromlinien kann benutzt werden um interessante Bereiche in der Strömung zu identifizieren.

Der primäre ParaView Filter, um Stromlinien zu erzeugen ist der sogenannte Stream Tracer. Der Stream Tracer Filter generiert Stromlinien in dem Vektorfeld aus einer Kollektion von Punkten. Die Produktion von Stromlinien stoppt, falls eine Stromline die äußere Grenze eines Datensatzes überschreitet.

Reduzieren Sie die Opazität (Opacity) des Modells auf 0.2.

Fügen Sie einen neuen Stream Tracer hinzu.

Setzen Sie die Number of Points auf 4000 und den Radius auf 0.2.

Fügen Sie ebenfalls den Druckverlust in Form einer Tabelle und ein Säulendiagramm des Druckverlustes Ihrer Dokumentation bei.

\underline{\textbf{Beispiel}}


Experimentieren Sie selbst ein wenig mit dem Post-Processor, um sich mit dessen Möglichkeiten vertraut zu machen.


\underline{\textbf{Besuchen Sie unsere SimWiki mit einem Klick auf das Bild}}


#2

#3