問題タブ [finite-element-analysis]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
3d - 構成立体形状 (CSG) のメッシュ化
立方体をカットする多くの幾何学的プリミティブ (100) があります。これは、CSG を使用してモデル化できます。ここで、有限要素シミュレーション用の比較的粗い四面体メッシュが必要です。メッシュを生成するために、netgen に遭遇しました (画像を参照)。しかし、netgen は、私が使用している FE プログラムでは処理できない 200 万以上の要素を持つメッシュを提供します。この仕事を行うことができる信頼できるプログラムはありますか? 私はすでに表面のみをメッシュ化し、何らかの形で粗くしようとしましたが、成功しませんでした.
c++ - 配列の要素を保護していますか?
現在、C++ で作成したプログラムを最適化しようとしています。これは、ユーザー定義の境界条件を使用した、任意の静電システムの有限要素法シミュレーションです。
それは機能しますが、境界条件 (任意の形状にすることができます) を一定に保つために、各ループの開始時にこれらの要素を書き換えています。
おそらく計算時間とコードの簡潔さを改善するために、これらの要素を一度設定して保護したいと思います。これまでに見つけたのは、個々の保護された要素ではなく、const 配列全体を初期化する方法だけです。
これは C++ で可能ですか、またはこれを可能にするライブラリはありますか?
matlab - 3Dの三角形の面積が与えられたボロノイセルからの二乗面積の変化を合計しますか?
サーフェスを形成する 3D の三角形のリストがあります (つまり、三角形分割)。構造は変形した三角格子です。変形されていない格子セルの残りの領域に対する格子のボロノイ分割の変形された六角形の面積の変化を知りたい (すなわち、正六角形に関して)。実際、これらの三角形に関連付けられている六角形の単位セルの面積の変化の 2 乗の合計が本当に必要です。
背景/数学の詳細: 湾曲した弾性シートを三角格子で近似しています。シートのポアソン比 (弾性定数) を調整する 1 つの方法は、エネルギーに「体積」ひずみエネルギー項を追加することです。U_volumetric = 1/2 T (e_v)^2、e_v=deltaV/V は、既知の定数である参照領域に関するボロノイ セル。
欲しい:
Sum[ (DeltaA/ A).^2 ]
すべての六角形セルにわたって。
私のデータは変数に保存されます:
xyz = [ x1,y1,z1; x2,y2,z2; etc] %
3D の頂点/パーティクル
TRI = [ vertex0, vertex1, vertex2; etc] %
は、最初の三角形の位置
にある粒子vertex0
の行です。xyz
vertex 0
NeighborList = [ p1n1, p1n2, p1n3, p1n4, p1n5,p1n6 ; p2n1...]
% ここで、p1n1 は xyz の行インデックスとしてのパーティクル 1 の最初の最近傍です。たとえば、パーティクル 1 の最初の近傍の位置をxyz(NL(1,1),:)
返します。xyz
AreaTRI = [ areaTRI1; areaTRI2; etc]
私はこれをMATLABで書いています。
現時点では、各頂点に起因する面積の量を三角形の面積の 1/3 として概算し、次に 6 つの最も近い三角形を合計しています。しかし、ボロノイ セルの面積は、Sum_(i=0,1,...5) 1/3* areaTRI_i と正確に等しくならないため、これは悪い近似です。上記のリンクの画像を参照してください。これにより、これがより明確になると思います。
matlab - 陰的差分法を使用して熱方程式を解く
陰解法を使用して熱方程式の離散解をプロットする Matlab コードを作成しようとしています。
熱方程式について私に与えられた情報は次のとおりです。
d^2u/d^2x=デュ/dt
初期条件 (t=0):
x>0 の場合 u=0
それ以外の場合 u=1 (t=0 の場合)
離散陰解法は、次のように記述できます。
(I+delta t*A)[v(m+1)]=v(m)
ここで、I は単位行列、デルタ t は時間空間、m は時間ステップ番号、v(m+1) は次の時間ステップでの v 値です。A は行列です。A は対角線で値 2 を持ち、この対角線の真下と真上の両方で -1 を持ちます。他のすべての数値はゼロです。
値を挿入せずに、代わりに記号が書き込まれます。
私が得るエラーメッセージは次のとおりです。
v(2) にアクセスしようとしました。numel(v)=1 であるため、インデックスが範囲外です。
Implicit のエラー (37 行目) c(k)=v(k)-(m(k)*c(k-1));
エラーメッセージが消えるように、代わりに何を書くべきか知っている人はいますか? Matlab コードは問題ないように見えますか、それとも何か変更する必要がありますか? デビッド
matlab - 有限差分 - 波動方程式 - 境界条件と設定
私は、次の境界条件で MATLAB の中心差分近似を使用して、2D (x, y, t) 数値で波動方程式を解くことに関係するプロジェクトに取り組んでいます。
一般的な組み立て式は次のとおりです。
次のようないくつかの境界条件 (BC) を理解しています。
j=mでdu/dy=0、
、
しかし、MATLAB でこれらの境界条件を実装する方法がわかりません。
友人が私にこれらの方程式を教えてくれました:
これが MATLAB コードでの私の試みですが、
これ以上先に進むことができません。
algorithm - 制約下でノードの最適な位置を見つける - アルゴリズム
すべての三角形の角度が 60 度に近づくように、中心のノードをある位置に移動したいと考えています。
各三角形の角度の標準偏差を計算し、それを最小化しようと考えています。他に方法はありますか?
matlab - Abaqus 複合材プライひずみ抽出
Abaqus で複合シェル モデルから層ひずみを抽出しようとしています。すべての要素のすべての層ひずみを (.dat (できれば) または任意の種類のテキスト ファイルに) エクスポートできるようにしたいと考えています。
これまでのところ、各要素の最大ひずみを持つ層を .rpt ファイルに抽出する方法を見つけることができましたが、すべての要素のすべての層を .dat にエクスポートしたいと考えています。
私はパラメトリック研究の一環としてこれを行っており、後でMatlabでプロセスを後処理する必要があります。.inp ファイルに含めるキーワード/オプションに関する知識があれば大歓迎です。前もって感謝します!
matlab - 次のコードでの assempde の使用について
私はこのコードを理解しようとしていました。それで、私の理解を簡単に書き留めました。誰かが私の疑問を明確にしてくれたらありがたいです。
これにより、「L」形状の 2D 三角形メッシュが返されます。しかし、L 字の境界を変更するにはどうすればよいでしょうか。つまり、デフォルトの L 字型は、x 軸と y 軸で -1 から 1 の間に制限されています。'lshapeg'
また、正方形のような...のような他の形状はありますか?
ここで、L 字型の膜によって定義されたジオメトリ上でポアソン方程式 –Δu = 1 を解きます。∂Ω でディリクレ境界条件 u = 0 を使用し、結果をプロットします。
ここで、1、0、1 の意味を理解できませんでした。それらを変更してグラフの結果を観察しましたが、境界条件がどのように適用されているかを理解できませんでした。また、lshapeb と lshapeg の違いは何ですか?