Die Vernetzung eines Volumen-Bauteils kann einen erheblichen Arbeits-Anteil an der Durchführung einer Analyse in Anspruch nehmen. Vor der Erstellung des Berechnungsmodells steht meist die Entscheidung, welcher Elementtyp und welche Netzdichte Verwendung finden sollen. Generell liefern Solid-Elemente höherer Ordnung (C3D20, C3D20R, C3D10) bei geringerer Netzdichte genauere Ergebnisse, jedoch immer auf Kosten der Rechengeschwindigkeit. Ein grobes Netz aus Hexaedern (C3D8, C3D8R) liefert in der Regel schnelle Ergebnisse, die nachfolgend mithilfe eines Submodells mit geringem Aufwand und hoher Netzauflösung näher untersucht werden können. Oft ist jedoch zur Erstellung einer mit Hexaedern vernetzbarer Geometrie ein erheblicher Aufwand erforderlich, während ein Tetraedernetz in hoher Qualität deutlich weniger Arbeitsaufwand benötigt. Wendet man die Methode der Unterteilung ( des Partitionierens) eines komplexen Volumen-Bauteils an, so ergibt sich oft die Möglichkeit der Erstellung von Hexaeder-Netzen.
Für den Fall, dass das zu vernetzende Bauteil mit mehreren Instanzen in einer Baugruppe auftritt, rechtfertigt sich dieser Aufwand in den meisten Fällen zugunsten der Rechenzeit. Es obliegt daher dem Anwender im Vorfeld abzuschätzen, welche Strategie im vorliegenden Fall die wirtschaftlichste darstellt.
In diesem Beitrag erläutern wir zwei mögliche Verfahren für einen effizienten Aufbau eines Hexaeder-Netzes für Volumenmodelle bei gleichzeitiger Reduzierung der notwendigen Element- und Knotenanzahl. Hierbei bleiben wir im ersten Ansatz im Punkt 2.1 auf der Part-Ebene [1] und im zweiten Ansatz auf der Assembly-Ebene von Abaqus/CAE [2]. Die Arbeiten wurden mit Abaqus/CAE v2022 HF6 durchgeführt.
In dem folgenden Beispiel wird die Methode des Partitionierens, siehe auch [3], eingesetzt, um eine Vernetzung mit Hexaeder-Elementen zu ermöglichen. Im ersten Teil verwenden wir eine homogene Partitionierung. Im zweiten Teil trennen wir Bereiche mit feiner Diskretisierung von den Bereichen mit grober Diskretisierung.
Das Rohr mit Stutzen weist Symmetrien auf. So können wir das Modell zuerst für die Partitionierung verkleinern und anschließend wieder mittels der Funktion „Transform – Mirror“ in den ursprünglichen Stand versetzen.
Schritt 1:
Wir erzeugen eine Partition, welche den unteren Rohrabschnitt von dem Abschnitt mit Stutzen trennt.
Schritt 2:
Zur Vorbereitung einer Volumen-Partitionierung partitionieren wir die Schnittflächen in den Symmetrieebenen. Hierbei trennen wir jeweils die Bereiche mit geraden Linien von denen mit einem Radius.
Schritt 3:
Da in diesem Fall alle Kanten vorhanden sind, können wir nun das Volumen partitionieren. Hierbei verwenden wir die Methode ’n-sided Patch‘ für Zellen. Im Bild links wählen wir 4 Eckpunkte und im Bild rechts einen Edge_Loop.
Schritt 4:
Das Bauteil lässt sich nun mit Hexaedern vernetzen und kann abschließend über die Funktion “Transform -> Mirror” im Partmodul zum Vollmodell überführt werden. Letztlich muss es noch mit 2 Datumsebenen geschnitten werden.
Im Bild unten werden nun Hexaeder- und Tetraedernetz gegenüber gestellt. Bei Verwendung einer gleichen globalen Elementgröße (Seed/Part) ergibt sich ein numerisch deutlich effizienteres Hexaeder-Modell.
Ein elegantes Mittel, um den Rechenaufwand ohne Verlust der Ergebnisqualität zu reduzieren, ist das “Verkleben” unterschiedlicher Netzdichten mithilfe des *TIE-Constraints. Hierzu muss das Bauteil in mehrere Teile geschnitten oder in Einzelteile (cells) zerlegt werden, damit für die Volumina unterschiedliche Mesh Seeds zugewiesen werden können. Die Position der Schnittstellen sollte in Bereichen mit einem niedrigen, zu erwartenden Spannungsgradienten gelegt werden. Durch geschickte Anwendung dieser Strategie kann so ein sehr feines Netz, das kein weiteres Submodell erforderlich macht, mit der Umgebung verbunden werden.
Nachteile einer homogenen Paritionierung, wie im Abschnitt 2.1 beschrieben, wie feine Netzdichten in Bereichen geringer Spannungsgradienten oder Elemente mit einem sehr ungünstigen Kantenverhältnis, treten bei der hier beschriebenen Vorgehensweise kaum auf.
Auch hier lohnt sich der Aufwand der Partitionierung besonders dann, wenn das Bauteil mehrfach in der Baugruppe vorhanden ist oder viele Berechnungen durchgeführt werden. Das nachfolgende Beispiel verwendet das zuvor gezeigte Rohr mit Stutzen.
Wir führen hier die Zerlegung auf 2 unterschiedliche Weisen durch. Einmal trennen wir das PART selbst auf. In dem anderen Fall kopieren wir das ursprüngliche PART und bearbeiten beide Teile unabhängig voneinander. Letztlich ist es Geschmacksache, wie man vorgehen will.
EIN PART: Das Part wird mittels Cut-Extrude (Rechteck) getrennt. Hierbei erzeugen wir einen Spalt mit einer Dicke von 2e-06 mm.
Nun können wir die einzelnen Volumina (cells) mit unterschiedlichen Elementgrößen vernetzen, siehe folgendes Bild. Die Flächen in den aufgetrennten Bereichen verbinden wir mit einem Constraint vom Typ TIE.
ZWEI PARTS: Alternativ kopieren wir das ursprüngliche Part. Die beiden Parts werden wiederum über einen Constraint vom Typ TIE miteinander verbunden. Wir haben keine Lücke zwischen den Bauteilen, müssen eventuell aber viele Definitionen doppelt durchführen.
Nach dem Kopieren des Parts werden im Originalpart die inneren Flächen (folgendes Bild oben) und in der Kopie die äußeren Flächen (folgendes Bild unten) gelöscht. Sofern nicht bereits erfolgt sollten die Parts aber zuvor partitioniert werden.
Es ergibt sich das folgende Bauteil mit einem TIE in den jeweiligen Schnittflächen.
Schon mit recht einfachen Mitteln lassen sich kompliziertere Volumen-Bauteile so partitionieren, dass eine Vernetzung mit Hexaeder-Elementen möglich ist. Ein Auftrennen der Struktur bringt weitere Vorteile, hat aber den Nachteil, daß bei Bauteiländerungen das Vorgehen eventuell wiederholt werden muss. Im folgenden Bild sind die unterschiedlichen Lösungen aus den Abschnitten 2.1 und 2.2 noch einmal gegenüber gestellt.
Ohne Partitionieren gibt es manchmal (oft) keine Möglichkeit, ein Hexaeder Netz zu erzeugen. Manchmal erscheint der Aufwand für die Partitionierung sehr hoch und wird zu Ungunsten der Rechenzeit nicht durchgeführt. Hier kann die nun vorgestellte Partitionierung mit Cut Instances hilfreich sein, siehe auch [4]. Im Wesentlichen partitionieren wir eine Volumen-Instanz durch das Mergen mit Schalen-Instanzen. Diese Funktion bietet eine sehr leistungsstarke Möglichkeit zur Partitionierung auch von komplexen Bauteilen mit geringen Aufwand.
Das Prinzip ist einfach : Zum Partitionieren eines Volumenkörpers, Bild unten links, wird zunächst die Kontur des Bauteils als Skizze erzeugt, diese dient als Basis für einen Schnitt mit einem Schalenmodell. Das folgende Beispiel zeigt eine Platte mit Kanälen und Schraubenbohrungen, die mit dieser Technik partitioniert wird. Das partionierte Volumen kann dann so aussehen wie im Bild unten rechts.
Schritt 1: Erstellen einer Skizze (Sketch) für die Frontfläche. Hierzu wird die Frontfläche selektiert und eine Pseudo-Partition erzeugt. Die Linien werden in die Zeichnungsebene projiziert und dann zum Typ “Construction” umgewandelt. Anschließend wird die Skizze abgespeichert (!!!) und der Dialog ohne weitere Aktion verlassen.
Schritt 2: Erstellen der Skizze für die Oberfläche. Das gleiche Vorgehen folgt nun für die obere Fläche. Dann wird die Skizze gespeichert und der Dialog ohne weitere Aktion verlassen.
Schritt 3: Erstellung eines Shell Parts für die Frontfläche. Das Shell Part wird über CREATE PART -> SHELL-> erstellt. Im Sketches wird die Skizze der Frontfläche geladen. Die Skizze der Frontfläche ist im folgende Bild rechts oben zu sehen, die Skizze der Schalen rechts unten.
Schritt 4: Erstellung eines Shell Parts für die Oberfläche. Hierbei wird genauso vorgegangen wir im Schritt 3. Die Skizze der Oberfläche ist im folgenden Bild links zu sehen, rechts im Bild die Skizze der Schalen.
Schritt 5: Instanzen für die Shell Parts anlegen. Nun sind die Schalenmodelle für die Schnitte erstellt und können in die Assembly eingelesen werden. Unter Umständen ist noch eine Ausrichtung am zu schneidenden Bauteil erforderlich.
Schritt 6: Erzeugen einer neuen Instanz/eines neuen Parts mittels eines Schnittes mit der Frontfläche. Das Volumen-Bauteil wird über Assembly/Instance/Merge-Cutt mit dem Shell Part geschnitten, siehe folgendes Bild. Dabei wird ein neues Part erzeugt. Der Name des neuen Volumen-Bauteils ist frei wählbar. Es empfiehlt sich, die ursprünglichen Parts zu unterdrücken.
Schritt 7: Erzeugen einer weiteren neuen Instanz/eines neuen Parts mittels eines Schnittes mit der Oberfläche. Das zuvor neu erzeugte Volumen-Bauteil wird über Assembly/Instance/Merge-Cutt mit dem Shell Part der Oberfläche geschnitten, siehe folgendes Bild. Es wird wiederum ein neues Part erzeugt. Die Partitionierung ist hiermit mit sehr geringem Zeitaufwand abgeschlossen
Das neue, vollständig partitionierte, Volumen-Bauteil kann nun mit Hexaeder-Elementen vernetzt werden. Hierbei hat man verschiedene Möglichkeiten der Vernetzung. Im folgenden wollen wir zwei Varianten darstellen-
Vernetzung mit globalem Seed, Vernetzungstechnick : Structured/Sweep
Vernetzung mit globalem Seed, Vernetzungstechnick : Sweep
Wird beim Schnitt von der Frontseite bereits ein geschlossenes Schalenmuster erzeugt, dann wird der zweite Schnitt theoretisch überflüssig. Auch bewirkt ein solches Muster, dass durch die Partitionen der Vernetzer “gezwungen” wird, an die Schnittkanten und –flächen Elemente zu legen. Das Erzeugen von Seeds an den Linien wird somit weitestgehend überflüssig und ein globales Seed ist ausreichend.
Vernetzungstechnik : Nur frontaler Schnitt, Sweep/Structured gemischt, Globales Seed
Vernetzungstechnik : Nur frontaler Schnitt , Sweep, Globales Seed: Geringster Aufwand, Bestes Netz !!!
Übersichtlichkeit. Aus Gründen der Übersichtlichkeit sollten die Symbole der Constraints im Skizziermodus ausgeschaltet werden
Sehr kurz Linien/Edges. Hier wurde in der Skizze eine sehr kleine Linie übersehen. Mit der Geometrie-Diagnose kann dieser Fehler schnell identifiziert werden. Zur Behebung des Fehlers kann das Shell Part editiert und die kleine Linie der Skizze gelöscht werden. Danach muss die Geometrie regeneriert werden.
Schneiden von Bohrungen. Schnitte, die z.B. bei Bohrungen nicht durch den Mittelpunkt verlaufen, sollten vermieden werden! Im schlimmsten Fall entstehen hierduch extrem kurze Linien, die die Netzqualität erheblich herabsetzen. Oft schafft hier schon die Entfernung redundanter Linien Abhilfe. Dies erfolgt über GEOMETRY EDIT -> EDGES -> REMOVE REDUNDANT ENTITIES im Part-Modul. Die Virtual Topology sollte bei partitionierten Flächen bitte nicht angewendet werden.
Sollte der Schnitt nicht zufriedenstellend ausgefallen sein, so kann die Skizze des Shell Parts erneut editiert und modifiziert werden. Das geschnittene Part wird dann aber NICHT in der Assembly aktualisiert und erfordert einen neuen Schnitt und somit auch ein neues Part.
Die Schnittechnik mit Schalen ist eine extrem leistungsfähige Methode um auch komplexe Bauteile mit geringem Aufwand schnell in mit Hexaedern vernetzbare Teilgeometrien aufzuteilen.
Das Partitionieren von Volumen-Bauteilen ist etwas aus der Mode gekommen. Mehr Power auf der Hardware-Seite und verbesserte Element-Techniken haben den Einsatz des Partitionierens deutlich reduziert. Wir denken, daß sich der Einsatz trotzdem lohnt – vielleicht sogar im Sinne einer höheren Prognosegüte notwendig ist (vergleiche hierzu auch Elementauswahl und Diskretisierung). Vorgestellt haben wir einfache Methoden der Partitionierung und die Technik des Partitionierens komplexer Strukturen mittels Cut Instanzen.
Bei der Entscheidung, ob eine Partitionierung notwendig ist und wie diese durchgeführt werden soll, unterstützen wir gerne. Kontaktieren Sie uns!
Zum Teil basiert der vorliegende Text und gezeigter Abbildungen auf der Recherche ausgewerteter Literatur. Ist dies der Fall, so werden die Quellen im Text durch eine Zahl, z.B. [2], gekennzeichnet und die Quelle hier aufgeführt.
Zum Teil sollen die hier aufgeführten Quellen aber auch einfach nur als Empfehlung weiterführender Literatur verstanden werden.