タグ付けされた質問 「finite-element」

常微分および偏微分方程式を解く手段。問題のドメインは要素に分割され、各要素のソリューションは関数のベースで拡張されます。有限要素法は、適応的改良、不規則な形状、優れた誤差推定に適しています。

17
Python用の高品質な非線形プログラミングソルバーはありますか?
解決すべきいくつかの挑戦的な非凸のグローバル最適化問題があります。現在、MATLABのOptimization Toolbox(特にfmincon()algorithm ='sqp'を使用)を使用していますが、これは非常に効果的です。ただし、私のコードのほとんどはPythonで作成されているため、Pythonでも最適化を行いたいと考えています。競合できるPythonバインディングを備えたNLPソルバーはありfmincon()ますか?ちがいない 非線形等式および不等式の制約を処理できる ユーザーがヤコビアンを提供する必要はありません。 グローバルな最適化を保証していなくても構いません(保証fmincon()しません)。私は、困難な問題や、それよりもわずかに遅い場合でも、ローカル最適にロバストに収束するものを探していfmincon()ます。 OpenOptで利用できるソルバーをいくつか試しましたが、MATLABのソルバーより劣っていfmincon/sqpます。 強調するために、私はすでに扱いやすい定式化と優れたソルバーを持っています。私の目標は、ワークフローをより合理化するために、単に言語を変更することです。 Geoffは、問題のいくつかの特性が関連している可能性があると指摘しています。彼らです: 10-400の決定変数 4〜100の多項式等式制約(1〜8の範囲の多項式次数) 決定変数の数の約2倍に等しい合理的な不等式制約の数 目的関数は決定変数の1つです 不等式制約のヤコビアンと同様に、等式制約のヤコビアンは密です。

3
有限要素法と有限体積法の概念的な違いは何ですか?
有限差分法と有限体積法の間には明らかな違いがあります(方程式の点定義からセル全体の積分平均に移行します)。しかし、FEMとFVMは非常によく似ています。両方とも積分形式と平均セルを使用します。 FVMではないことを行うFEMメソッドは何ですか?FEMの背景を少し読みましたが、方程式は弱い形式で書かれていることを理解しています。これにより、このメソッドはFVMとは少し異なる状態になります。しかし、違いが何であるかを概念レベルで理解していません。FEMは、セル内で未知のものがどのように変化するかに関して何らかの仮定をしますが、これもFVMで行うことはできませんか? 私は主に1Dの観点から来ているので、FEMには複数の次元で利点があるのでしょうか? このトピックに関する情報は、ネット上であまり見つけていません。ウィキペディアにはFEMと有限差分法との違いに関するセクションがありますが、それについてはhttp://en.wikipedia.org/wiki/Finite_element_method#Comparison_to_the_finite_difference_methodを参照してください。

5
有限差分と有限要素の間で選択する基準は何ですか
私は、非常に制約のあるグリッド上で、有限要素の特殊なケースとして有限差分を考えることに慣れています。では、数値法として有限差分法(FDM)と有限要素法(FEM)を選択する条件は何ですか? 有限差分法(FDM)の側面では、有限要素法(FEM)よりも概念的にシンプルで実装しやすいと考えるかもしれません。FEMには非常に柔軟性があるという利点があります。たとえば、グリッドは非常に不均一であり、ドメインは任意の形状を持つことがあります。 FDMがFEMよりも優れていることがわかっている唯一の例は 、ZarbaのBouloutasのCeliaにあります。ここでは、時間微分の異なる離散化を使用するFDメソッドによる利点がありますが、有限要素法に固定することもできます。

9
FEMを学習するための最新のリソース
有限要素法の使用を開始する必要があります。私はClaes Johnsonによる有限要素法による偏微分方程式の数値解を読み始めようとしていますが、それは1987年のものです。 2つの質問: 1)このテーマに関する新しい優れたリソース/教科書/電子書籍/講義ノートは何ですか? 2)1987年の本を読んでどれだけ不足していますか? ありがとう。

9
C ++でパラメータースタディを実行する良い方法は何ですか
問題 現在、有限要素ナビエストークスシミュレーションに取り組んでおり、さまざまなパラメータの影響を調査したいと思います。一部のパラメーターは、入力ファイルまたはコマンドラインオプションで指定されます。他のパラメーターはMakefileでフラグとして提供されるため、これらのオプションを変更するたびにコードを再コンパイルする必要があります。パラメータ空間を体系的に探索するための良い方法についてアドバイスをもらいたいと思います。 この種のことを支援できる便利なC ++ / Pythonライブラリ/フレームワークはありますか?たとえば、コマンドライン引数で入力ファイルオプションをオーバーロードすることができるため、boost.Program_optionsを発見することは大きな助けになりました。また、一部の人々が各ケースを非常に効果的に説明するジョブファイルを使用しているのを見たことがあり、同僚はコメントブロックとしてパラメーターをvtuファイルに書き込むこともできると提案しました。 おそらく、これに多くの時間を投資する価値はまったくありませんか?それは単なる気晴らしと時間の浪費であり、テストプロセスのブルートフォースとアドホックを筋肉だけで行うのが最善ですか? いくつかの考え 私は現在ほとんど手作業で仕事をしており、次の問題に直面しています。 テストケースの命名。アンダースコアで区切られた実行パラメーターなどの名前のフォルダーに結果を保存しようとしましたRe100_dt02_BDF1...。これらは、省略しすぎるとすぐに長くなり、読みにくくなります。また、実数のパラメータにはa .が含まれていますが、これは厄介です。 実行データのロギング。時々、端末に書き込まれ、テキストファイルに保存された結果を確認したいことがあります。たとえば、StackOverflowからのこの回答は多少役立ちますが、解決策は少し煩わしいようです。 パラメータに従ってデータをプロットします。さまざまなログファイルから関連するデータを1つのファイルに収集し、それをプロットするのにかなり時間がかかります。より良いシステムであれば、おそらくこれがより簡単になります。 データに関するコメントの記録。結果を調べた後、テキストファイルにコメントを書き込みますが、これを結果フォルダーと同期させることは難しい場合があります。

3
FEM離散化の弱い形式を導出する際に、部品による統合を使用する目的は何ですか?
PDEの強力な形式からFEM形式に移行する場合、最初に変分形式を述べることで常にこれを行う必要があるようです。これを行うには、強力な形式に何らかの(ソボレフ)空間の要素を掛けて、地域全体に統合します。これは受け入れられます。私が理解していないのは、なぜグリーンの式を使用する必要があるのか​​(1回または数回)です。 私は主にポアソンの方程式を扱ってきたので、例として(同種のディリクレ境界条件で)それをとると、 −∇2uu=f,u∈Ω=0,u∈∂Ω−∇2u=f,u∈Ωu=0,u∈∂Ω \begin{align} -\nabla^2u &= f,\quad u\in\Omega \\ u &= 0, \quad u\in\partial\Omega \end{align} 変分形式を形成する正しい方法は ∫Ωfvdx⃗ =−∫Ω∇2uvdx⃗ =∫Ω∇u⋅∇vdx⃗ −∫∂Ωn⃗ ⋅∇uvds⃗ =∫Ω∇u⋅∇vdx⃗ .∫Ωfvdx→=−∫Ω∇2uvdx→=∫Ω∇u⋅∇vdx→−∫∂Ωn→⋅∇uvds→=∫Ω∇u⋅∇vdx→. \begin{align} \int_\Omega fv\,\mathrm{d}\vec{x} &= -\int_\Omega\nabla^2 uv\,\mathrm{d}\vec{x} \\ &=\int_\Omega\nabla u\cdot\nabla v\,\mathrm{d}\vec{x} - \int_{\partial\Omega}\vec{n}\cdot\nabla u v\,\mathrm{d}\vec{s} \\ &=\int_\Omega\nabla u\cdot\nabla v\,\mathrm{d}\vec{x}. \end{align} しかし、最初の行の式を使用できないのは、FEMフォームを取得するために使用できる変分形式ではないのですか?双線形および線形形式b(u,v)=(∇2u,v)b(u,v)=(∇2u,v)b(u,v)=(\nabla^2 u, v)およびl(v)=(f,v)l(v)=(f,v)l(v)=(f, v)ませんか?ここでの問題は、線形基底関数(形状関数)を使用すると、剛性マトリックスがヌルマトリックス(反転不可)になるため、問題が発生することですか?しかし、非線形形状関数を使用するとどうなりますか?まだグリーンの式を使用する必要がありますか?する必要がない場合:推奨されますか?そうでない場合、変則的ではあるが弱くない定式化がありますか? ここで、高階微分を持つPDEがあるとしましょう。これは、グリーンの公式の使用方法に応じて、多くの可能な変分形式があることを意味しますか そして、それらはすべて(異なる)FEM近似につながりますか?

4
Galerkin法で境界条件を組み込む方法
私はPDEを解くためのGalerkinの方法に関するウェブ上のいくつかのリソースを読んでいますが、何かについて明確ではありません。以下は、私が理解したことに関する私自身の説明です。 次の境界値問題(BVP)を検討してください。 L[u(x,y)]=0on(x,y)∈Ω,S[u]=0on(x,y)∈∂ΩL[u(x,y)]=0on(x,y)∈Ω,S[u]=0on(x,y)∈∂ΩL[u(x,y)]=0 \quad \text{on}\quad (x,y)\in\Omega, \qquad S[u]=0 \quad \text{on} \quad (x,y)\in\partial\Omega ここで、LLL微分演算子線形2次であり、Ω⊂R2Ω⊂R2\Omega\subset\mathbb{R}^2、BVPのドメインである∂Ω∂Ω\partial\Omegaドメインの境界であり、そしてSSS微分演算子線形1次です。次の形式の近似としてu(x,y)u(x,y)u(x,y)を期待します。 u(x,y)≈∑i=1Naigi(x,y)u(x,y)≈∑i=1Naigi(x,y)u(x,y)\approx \sum_{i=1}^N a_i g_i(x,y) ここで、はuを近似するために使用する関数のセットです。BVPに置き換える:gigig_iuuu ∑iaiL[gi(x,y)]=R(a1,...,aN,x,y)∑iaiL[gi(x,y)]=R(a1,...,aN,x,y)\sum_i a_i L[g_i(x,y)]=R(a_1,...,a_N,x,y) 近似は正確ではないため、残差は正確にゼロではありません。ガラーキン-リッツローリー法では、最小R必要とすることによって機能を近似のセットに対しての⟨ R 、G 、I ⟩ = 0。したがってRRRRRR⟨R,gi⟩=0⟨R,gi⟩=0\langle R,g_i \rangle = 0 ⟨R,gi⟩=∑j=1Naj⟨L[gj],gi⟩=0⟨R,gi⟩=∑j=1Naj⟨L[gj],gi⟩=0\langle R,g_i \rangle = \sum_{j=1}^N a_j \langle L[g_j],g_i \rangle = 0 したがって、係数を見つけるには、行列方程式を解く必要があります。aiaia_i ⎛⎝⎜⟨L[g1],g1⟩…⟨L[g1],gN⟩………⟨L[gN],g1⟩…⟨L[gN],gN⟩⎞⎠⎟⎛⎝⎜a1…aN⎞⎠⎟=0(⟨L[g1],g1⟩…⟨L[gN],g1⟩………⟨L[g1],gN⟩…⟨L[gN],gN⟩)(a1…aN)=0\left( \begin{array}{ccc} \left\langle L\left[g_1\right],g_1\right\rangle & \ldots ...

9
形状関数の基本的な説明
私は、学部課程で行っていた方法と比較して、より構造化された方法でFEMの研究を始めました。私がこれを行っているのは、商用(およびその他の非商用)ソフトウェアで「FEM」を使用できるという事実にもかかわらず、この方法をサポートするアンダーグラウンドテクニックを本当に理解したいからです。だからこそ、少なくともこのテクニックの経験豊富なユーザーにとっては、基本的な質問があります。 今、私はZienkwiczの「Finite element method- The basics」という非常に人気のある(エンジニアに優しい)本を読んでいます。私はこの本を最初のページから読んでいますが、Zienkwiczが説明するように形状関数の概念をまだ理解できません。 私が読んだことから私が知っていることは、「剛性」行列、未知数と結果( in:A k = b)を関連付ける行列は、「ノード間の関係」からの成分を持っているということです。 、およびその「関係」が変更された場合(つまり、高次の補間に変更した場合)、ノード間の関係が変更されるため、その剛性マトリックスが変更されます。AAAAk=bAk=bAk=b しかし、この本では、定義はかなり曖昧です。ある時点で、関数を恒等行列として任意に選択できると言っているからです。 私が見つけた唯一の説明はこのブログにありますが、それは私にとってまだ明確ではありません。だから、誰かが私にシェイプ関数とは何か、そしてそれがスティフネスマトリックスに「置く」ためにどのように行われるかについて簡単な説明をすることができますか?

1
数値解析におけるニッチェの方法の一般的な考え方は何ですか?
ニッチェの方法は、ラグランジュ乗数を使用せずにディリクレ型境界条件または摩擦境界条件との接触を弱い方法で考慮することができるため、非常に魅力的な方法であることを知っています。また、その利点は、ディリクレ境界条件をノイマン境界条件と同様に弱い項に変換することですが、実装がモデルに依存しているという事実によって支払われます。 しかし、私には一般的すぎるようです。この方法のより具体的なアイデアを教えていただけますか?簡単な例をいただければ幸いです。


3

3
どの三角形ポイントが含まれているかを見つける
重複しない三角形で構成される2Dメッシュと、点のセット。各ポイントがどの三角形にあるかを判断する最良の方法は何ですか? { P I } M iは= 1 ⊂ ∪ NのK = 1 T K{ Tk}Nk = 1{Tk}k=1N\{T_k\}_{k=1}^N{ p私}Mi = 1⊂ ∪Nk =1TK{p私}私=1M⊂∪k=1NTK\{p_i\}_{i=1}^M \subset \cup_{k=1}^N T_K たとえば、次の画像には、、があるため、リストを返す関数が。P 2 ∈ T 4 P 3 ∈ T 2 F F (P 1、P 2、P 3)= [ 2 、4 、2 ]p1∈ T2p1∈T2p_1 \in T_2p2∈ ...

1
不連続ガラーキン/有限要素データの視覚化
ParaView内で不連続ガラーキン(DG)アプローチを使用して得られたシミュレーション結果を視覚化したいと思います。有限体積法と同様に、問題領域は立方体のセル(「要素」)に分割されます。有限体積法とは異なり、各セル内には解ベクトル値が1つだけではありませんが、各セルには複数のガウス積分点で解が含まれます。あなたはあなたは\mathbf{u}あなたはあなたは\mathbf{u} 私の質問は、ParaView / VTKを使用してそのようなデータを効率的に視覚化した経験があるかどうか、およびVTKでデータを表すために選択したアプローチです。考えられるいくつかの方法が思い浮かびますが、どれが最も有望かはわかりません。 (1)ボクセルを 使用する各統合ポイントに1つのボクセルを使用します。 Pro:標準のVTK非構造化セルタイプで動作するすべてのプラグインは、何も変更せずに引き続き動作します。欠点 :統合ポイントが均等に分散されていないため、頂点の正しい位置を見つけるのが難しい場合があります。また、DGフレームワークでは不連続なソリューションが許可されるため、セル表面でソリューションを2回定義できます。また、階層情報(要素に分割されたドメイン、各要素に複数のポイントが含まれる)も失われます。 (2)多角形の 使用統合ポイントごとに1つの頂点を使用します。利点 :実装が最も簡単で、異なるソリューションを使用して同じ場所に複数のポイントを簡単に指定できます。欠点 :データを「セル」として視覚化する機能が失われ、さらに上記と同じ欠点があります。 (3)VTK直交方式を 使用する直交方式の組み込みサポートを使用します。 利点:むしろ簡単な実装で、元のソリューションのすべての関係とプロパティを保持します。 欠点:これは完全に新しいセルタイプであるため、既存のプラグインの多く(ほとんど)は機能しなくなり、おそらく書き直さなければならないでしょう。

1
有限要素法の偏微分方程式の弱い定式化を導き出す方法は?
私は、「弱い定式化」の洗練された理解を強調しなかった有限要素法の基本的な紹介をしました。ガラーキン法では、(楕円形の)PDEの両側にテスト関数を掛けてから、(部分または発散定理によって)積分することを理解しています。時々、適切な弱い定式化に到達する前に、パートごとに2回統合する必要がありました(本の裏にある答えに基づいて)。しかし、同じ概念を他のPDEに適用しようとすると(それらはまだ時間に依存していません)、離散化に適した定式化がいつ行われるかを認識できません。このフォームを線形方程式に離散化できることを教えてくれる「赤旗」はありますか? さらに、基底関数の適切なセットを選択するにはどうすればよいですか?

1
Adams-BashforthアルゴリズムよりもAdams-Moultonを使用する相対的な利点は何ですか?
私は、2つの空間次元と時間で2つの結合PDEのシステムを計算的に解いています。関数の評価には費用がかかるため、マルチステップメソッド(Runge-Kutta 4-5を使用して初期化)を使用したいと思います。 5つの以前の関数評価を使用するAdams-Bashforthメソッドは、グローバルエラー(これは、以下で参照するWikipedia記事場合です)で、ステップごとに1つの関数評価(PDEごと)が必要です。O (h5)O(h5)O(h^5)s = 5s=5s=5 一方、Adams-Moulton法では、ステップごとに2つの関数評価が必要です。1つは予測ステップ用で、もう1つは修正ステップ用です。繰り返しますが、5つの関数評価が使用される場合、グローバルエラーはです。(ウィキペディアの記事では)O (h5)O(h5)O(h^5)s = 4s=4s=4 では、Adams-BashforthよりAdams-Moultonを使用する理由は何ですか?関数の評価回数が2倍になると、同じ次数のエラーが発生します。直観的には、予測子修正子メソッドが好ましいはずですが、誰かがこれを定量的に説明できますか? 参照:http : //en.wikipedia.org/wiki/Linear_multistep_method#Adams.E2.80.93Bashforth_methods

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