Scripted Mesh Generation Software

17

Ich bin auf der Suche nach einer Maschengenerierungssoftware, die

  • ist kostenlos und Open Source,
  • bietet eine vernünftige Scripting-Oberfläche für die Domain-Spezifikation,
  • arbeitet für komplexe Geometrien,
  • kann 2D- und 3D-Netze erzeugen,

Welche Möglichkeiten habe ich?

Nico Schlömer
quelle

Antworten:

10

Ich würde dir empfehlen gmsh anzuschauen . Es hat sowohl eine Text- als auch eine CAD-ähnliche Eingabe und kann 2D- und 3D-Netze höherer Ordnung verarbeiten. Es ist unter der GPL lizenziert, daher gibt es einige Einschränkungen bei der Integration in Closed-Source-Software, ansonsten ist es komplett kostenlos / Open-Source.

Godric Seher
quelle
Leider ist die Skriptsprache verrückt. ;)
Nico Schlömer
Inwiefern? Beziehen Sie sich auf die Eingaben in der Textdatei oder auf eine andere Schnittstelle?
Godric Seer
2
Ich habe gmsh nur in einfachen Geometrien verwendet, da meine Probleme fast immer durch andere Faktoren als Geometrie kompliziert werden. Während ich nur an diesen einfacheren Geometrien gearbeitet habe, fand ich gmsh definitiv am intuitivsten und am einfachsten zu erlernen. Ich werde mich jedoch nicht mit Ihnen darüber streiten, kompliziertere Prozeduren durchzuführen, da ich keine Erfahrung mit ihnen habe.
Godric Seer
5
Sie können Ihre Skripte immer in einer beliebigen Sprache schreiben und einfach Dateien als Ergebnis Ihres Skripts erstellen, die dann als Eingaben an gmsh übergeben werden.
Wolfgang Bangerth
1
@WolfgangBangerth Ich habe tatsächlich ein kleines Spielzeugprojekt in Python auf github.com/nschloe/python4gmsh gestartet .
Nico Schlömer
4

Normalerweise verwende ich Tetgen für 3D (MIT-Lizenz für Forschung / nichtkommerziell) und Triangle für 2D (benutzerdefinierte Lizenz kostenlos für nichtkommerziell). Um sie zu skripten, schreiben Sie eine Eingabedatei und rufen die Befehlszeile auf.

aterrel
quelle
2
"Bitte beachten Sie, dass TetGen für Forschungszwecke und nichtkommerzielle Zwecke kostenlos ist. Für jede kommerzielle Nutzung ist auf Anfrage eine kommerzielle Lizenz erhältlich." - Dies ist keine freie oder Open-Source-Softwarelizenz (gemäß OSI- oder FSF-Definition), geschweige denn eine MIT-Lizenz.
Jed Brown
Ja, ich habe gerade das erste Bit der Lizenzdatei gelesen. Die meisten Leute sind in ihrer Bedeutung von Free nicht so streng wie OSI oder FSF.
Aterrel
Ich wollte gerade eine ähnliche Frage stellen. Ist tetgen mit FEniCS kompatibel?
5.
@aterrel Lesen Sie die LIZENZ-Datei: "Dies bedeutet, dass TetGen keine kostenlose Software ist, sondern für private, Forschungs- und Bildungszwecke absolut kostenlos und ohne weitere Vorkehrungen verwendet werden kann."
Jed Brown
1
Ja, @JedBrown, ich habe dir zugestimmt und die Antwort bearbeitet. Aber für die Laien bedeutet kostenlos normalerweise "Ich muss nicht dafür bezahlen", nicht die RMS-Legalisierung. Ich würde auch argumentieren, dass GPL nicht "frei" ist, aber das ist wahrscheinlich keine angemessene Diskussion für dieses Forum.
Aterrel
3

Mit MeshPy können dreieckige und tetraedrische Maschen erhalten werden. Es bietet ein einfaches Mittel zur Erzeugung von geskripteten Netzen.

MeshPy bietet Python-Schnittstellen zu Triangle und TetGen, die von aterrel erwähnt werden.

Subodh
quelle
1

Ich habe festgestellt, dass Salome sehr flexibel ist und eine viel bessere Umgebung hat als gmsh. Es hat meiner Meinung nach ein viel professionelleres Gefühl. Darüber hinaus kann es auch hexaedrische Maschen erzeugen. Es ist wirklich einen Versuch wert!

FlatronL1917
quelle
Mir gefällt die Tatsache nicht, dass nichts im Geometriemodell über die Benutzeroberfläche oder die Python-Konsole bearbeitet werden kann. Grundsätzlich müssen Sie Änderungen löschen und neu erstellen, wenn Sie Änderungen vornehmen möchten. Das
erhöht den
Dies gilt zum Beispiel, wenn Sie eine Geometrie importieren, die Sie in einer STEP-Datei erhalten haben. Aber wenn ich mich nicht irre, gilt dies auch für die anderen hier genannten Programme! Wenn Sie über die HDF-Datei oder das Python-Dump-Skript verfügen, können Sie außerdem mit Sicherheit alles ändern.
FlatronL1917
1

OpenSCAD passt alle Punkte mit Ausnahme der Volumenvernetzung an. Es basiert auf Eingabeskripten und generiert AWL-Oberflächennetze.

Dohn Joe
quelle
1

In der Zwischenzeit habe ich erstellt

  • pygmsh als Python-Frontend für gmsh und
  • pygalmesh als Python-Frontend für die 3D-Vernetzungsfunktionen von CGAL.

Beide kommen ziemlich gut an, daher schätze ich, dass sie auch für andere hilfreich sind.

Nico Schlömer
quelle
1

Warum nicht Mixer ? Es ist eine leistungsstarke, kostenlose und Open-Source-Software mit Unterstützung für Python-Skripte.

In Blender 2.79 müssen Sie Scriptingals auswählen Screen layout.

Text EditorDrücken Sie oben links +, um einen neuen Textdatenblock zu erstellen. Starten Sie es mit import bpyund fügen Sie dann die Python-Befehle relativ zu jeder Operation ein, die Sie über die GUI ausführen können. Lesen Sie den entsprechenden Befehl, während Sie mit der Maus über das GUI-Element fahren.

Im angehängten Screenshot sind die Befehle zum Triangulieren eines Kreises dargestellt, beginnend mit der Standardszene mit einem Würfel:

Bildbeschreibung hier eingeben

Auf diese Weise können Sie Blender im Skriptmodus ohne grafische Benutzeroberfläche verwenden, um beispielsweise eine Ausgabedatei zu exportieren und Ihr Python-Skript in einem Terminal auszuführen:

blender --background --python myscript.py

Hier ein Videotutorial auf YouTube.

Prost

Riccardo Volpe
quelle
Blender kann das? Nie gewusst. Wie würde ich zum Beispiel einen Kreis triangulieren?
Nico Schlömer
@ ChristianClason: Wie ist das keine Antwort? Es befasst sich mit der Frage. Sie können sich darüber beklagen, dass es an Details mangelt oder dass es sogar falsch ist, aber dafür sind Abwertungen gedacht. Es ist sicherlich kein Kommentar.
Wrzlprmft
@Wrzlprmft Vielen Dank. Ich denke, das könnte gut sein, wenn ich Nico Schlömer ein detailliertes Video-Tutorial zur Verfügung stelle, in dem ich den wesentlichen Code hier schreibe. In der Zwischenzeit kann ich ein Thema, das ich vor einiger Zeit selbst geschrieben habe, in italienischer Sprache verlinken und um Hilfe beim Exportieren eines Netzes mithilfe von Blenders Skript bitten (diese Website wurde aktualisiert, für die einige Ressourcen nicht mehr verfügbar sind): Blender. it / foren / thema / difetto-textur-datei-obj-da-wrl Hier ein Beispiel für ein Videotutorial auf YouTube: youtube.com/watch?v=K0yb4sZ7B4g
Riccardo Volpe
Wenn Sie etwas zu Ihrer Frage hinzufügen
möchten