N次元Delaunayテッセレーションソフトウェアライブラリ


10

N次元空間(N> = 2)に不規則に配置された既知のポイント/ノードのセットがあり、これらのポイントのDelaunay三角形分割を生成し、対応する要素を返す方法が必要です。

ND Delaunay三角形分割を行う既存のメッシュライブラリはありますか?

(空間内の任意の点で線形補間の基礎としてメッシュ要素を使用したいので、これを行っています。現在、ディメンションは、ディメンションにテンプレート化されたC ++クラスによって処理されます。


こんにちはmiramsさん、scicompへようこそ!:この質問に興味ができる scicomp.stackexchange.com/questions/770/...
ポール

リンクをありがとう、私は自分のメッシャーを書くことを避けたいと思っていました。Tetgen(3D用)は多くのコード行で実行されます。何回も解決しなければならない問題のようです。
mirams 2013年


Delaunay三角形分割は通常、高次元空間の凸包から導出されます。以下のqhullの備考を参照してください。
meawoppl 2013年

3Dはそれほど難しいことではありませんが、4Dの場合、洗練するのは非常に難しいため、MathOverflowに質問しましたが、まだ回答はありません。mathoverflow.net
Shuhao Cao

回答:


4

リフティングアルゴリズムを介して凸包ソフトウェア(QHullなど)を使用してこれを行うことができると思います。少なくとも、matlabの「delaunayn」コマンドのドキュメントには、それと同じくらい多くのことが示されているようです。


2
4Dをテストしましたが、QHullで正常に動作するようです(Pythonのscipy.spatialを介して使用しています)。
Ethan Coon

1
あなたはqhullを倒すことはありません。私はScipyを介して6次元まで使用しました。
meawoppl 2013年

うーん-qhull.org/news/qhull-news.htmlからのこれは理想的ではありません:「すべてのユーザー3次元以上では、オプション 'Qt'は隣接する非単純なファセットに適合する三角形分割を生成しません。たとえば、入力サイトの通常の3次元配列がある場合、それらのDelaunay三角形分割はキューブで構成されます。オプション 'Qt'は各キューブを四面体に三角形分割します。各キューブ内で、三角形分割は一貫していますが、隣接するキューブ間で必ずしも一貫していません。 [C. Bertoglio; C. de Visser]。この問題の修正方法は不明です。」試してみる価値はありますが、私はどのように乗るかを見ていきます。
mirams 2013年


0

私はこれを行うことができるように見えるMatlabでdistmeshも見つけました:

Distmeshホームページ

(QHullを介して)有限要素メッシュのテッセレーションを行いますが、距離関数に基づいてエリア/サーフェスを定義するための優れたインターフェースを備えています。数学的に表面を定義し、内部ノードの場所を気にしない場合に適しています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.