タグ付けされた質問 「simulation」

シミュレーションは、代表的なモデルを使用して実際の物理プロセスまたはシステムの動作を模倣するプロセスです。

7
量子力学の法則はシミュレーションでどこで壊れますか?
物理学の学士号を取得している人として、分子シミュレーションを始めたとき、私はややスキャンダルに見舞われました。最も詳細で計算コストの高いシミュレーションでさえ、第一原理から水の完全な挙動を定量的に再現できないことを発見したのは、ちょっとしたショックでした。 以前は、量子力学の基本法則は解決された問題であるという印象を受けていました(重力は別として、通常、分子スケールでは無関係であると想定されています)。ただし、これらの法則を拡大して、水素原子よりも大きいまたは複雑なものに適用しようとすると、予測力が低​​下し始めます。 数学の観点から、波動関数はすぐに複雑になりすぎて解決できず、波動関数をより扱いやすくするには近似(Born-Oppenheimerなど)が必要であることを理解しています。また、研究中のシステムの時間および空間スケールが増加するにつれて、これらの近似により誤差がさらに伝播することも理解しています。 これらの近似誤差の最大かつ最も重要な性質は何ですか?これらのエラーを直感的に理解するにはどうすればよいですか?最も重要なことは、分子全体および分子の集団を正確にシミュレートできるab-initioメソッドにどのように移行できるかということです。人々がこの種のシミュレーションを開発するのを妨げている最大の未解決の問題は何ですか?

5
並列科学計算ソフトウェア開発言語?
ゼロから並列科学計算ソフトウェアを開発したいです。どの言語から始めるべきかを考えてみたい。このプログラムは、txtファイルへのデータの読み取り/書き込みと、多くのLU分解およびスパース線形ソルバーの使用を伴う大量の計算を並行して実行します。私が考えていたソリューションの候補は、OpenMPまたはco-arrayを備えたFortran 2003/2008、openmp cilk +またはTBB、pythonを備えたC ++です。その他の文書化された提案は大歓迎です!私はC、Fortran、Javaを(この順序で)よく知っています。私はPythonでいくつかのスクリプトを作成しましたが、基本的なものです。 fortranは非常に高速ですが、保守や並列化が難しいことは知っています。私が好きなPythonなどの外部ライブラリを使用しない限り、C ++は遅いと言われていますが、フルスケールの産業レベルのソフトウェアを書くことは現実的ですか? ソフトウェアは、大量のデータを処理でき、科学計算で効果的である必要があります。パフォーマンスが重要です。 背景については、Fortranで書かれた動作するソフトウェアが既にあります。多くの人々が長年にわたって開発に関わっており、コードは本当に汚れています。コードの維持と並列化は悪夢であることが証明されており、代替案を考えています。 ペトロス

3
粒子分解およびドメイン分解の並列化アルゴリズムの長所と短所は何ですか?
GromacsやDL_POLYなどのいくつかのソフトウェアパッケージを使用して、分子動力学(MD)シミュレーションを実行しています。 Gromacsは、粒子分解アルゴリズムとドメイン分解アルゴリズムの両方をサポートするようになりました。デフォルトでは、Gromacsシミュレーションはドメイン分解を使用しますが、長年、最近まで、粒子分解はGromacsで実装された唯一の方法でした。Gromacsの論文の1つ(DOI 10.1002 / jcc.20291)で、著者は粒子分解の最初の選択の理由を示しています。 「初期の設計決定は、プロセッサに作業を分散するためにドメイン分解ではなく粒子分解を使用する選択でした。後者の場合、空間ドメインはプロセッサに割り当てられます。ドメイン分解は、線形システムのサイズが相互作用の範囲を大幅に超える場合にのみ適切な選択です(分子動力学ではほとんどありません)。粒子分解では、各プロセッサが力と座標/速度の更新を計算しますプロセッサに均等に分散された事前計算されたネイバーリストを使用して、割り当てられたパーティクルの一部に対して。F私はjF私jF_{ij}粒子 と間のペア相互作用から生じるは、粒子と 両方の速度更新に必要です。私私ijjj私私ijjj、一度だけ計算され、他のプロセッサに伝達されます。すべてのプロセッサは、ストレージを必要な座標に制限するのではなく、システムの完全な座標セットをローカルメモリに保持します。これはより単純で通信のオーバーヘッドを節約しますが、メモリクレームは通常、何百万ものパーティクルであっても制限要因ではありません。一方、近隣リストは、最大1000倍の数のパーティクルを含むことができ、プロセッサに分散されます。通信は本質的に、座標の送信とプロセッサリングの周りのタイムステップごとに1回の強制に制限されます。これらの選択肢は、長期にわたって堅牢であり、最新のプロセッサクラスタに簡単に適用できることが実証されています。」 「ドメイン分解は、線形システムのサイズが相互作用の範囲を大幅に超える場合にのみより良い選択です。これは分子動力学ではめったにありません」という文の「線形システムのサイズ」とはどういう意味ですか?上記の段落から、粒子の分解には、ドメインの境界を越えて移動する粒子を処理する必要がないという利点があります。むしろ、システム構成全体を保存するのに十分なメモリが各プロセッサに必要です。したがって、ドメイン分解は非常に好ましくないように見えますが、粒子分解は非常に好ましいように見えます。 これは非常に複雑な質問(そしておそらく多くの本の主題)であると確信していますが、基本的に、粒子の分解が非常に好ましいと思われる場合、ドメイン分解を使用する必要があるのはなぜですか? システムのサイズが非常に大きい場合(各プロセッサに構成全体を保存するのが困難または不可能になる場合)、ドメインの分解は適切ですか?上記の引用された段落に基づいて、ドメイン分解が最近、Gromacsのデフォルトの並列化アルゴリズムである理由がわかりません。 DL_POLY(バージョン4)もドメイン分解を使用しているようです。バージョン4のマニュアルから: 「この方法での構成データの分割は、シミュレーションセル内の原子の位置に基づいています。このようなシステムデータの幾何学的割り当ては、DDアルゴリズムの特徴です。この戦略が効率的に機能するために、システムは合理的に均一な密度を持たなければならないので、各プロセッサには原子データのほぼ等しい部分が割り当てられます(可能な限り)。この方法は概念的には簡単ですが、プログラミングは難しく、効率が最も高い大規模なシミュレーションに特に適しています。 ... DD戦略の場合、SHAKE(RATTLE)アルゴリズムはDL_POLY ClassicのReplicated Dataメソッドよりも単純です。この場合、原子位置のグローバルな更新(マージとスプライシング)が必要です。 これにより、実装が困難になる可能性がありますが、より効率的になる可能性があるため、ドメイン分解が良好であるかのように聞こえます。 一方、以前のバージョン(DL_POLY Classic)は複製されたデータの並列化を使用していました。これは、パーティクル分解の別名と思われます。そのバージョンのマニュアルから: レプリケートデータ(RD)戦略は、MDで並列化を実現するいくつかの方法の1つです。その名前は、並列コンピューターの各ノード上の構成データの複製に由来します(すなわち、原子座標、速度 定義する配列、およびを強制しますすべてr私r私\textbf{r}_iv私v私\textbf{v}_if私f私\textbf{f}_iNNNシミュレートされたシステム内の原子は、すべての処理ノードで再現されます)。この戦略では、力の計算と運動方程式の統合のほとんどは、ノード間で簡単かつ均等に共有でき、大部分は各ノードで独立して処理できます。この方法は、プログラムが比較的簡単であり、かなり効率的です。さらに、単一のプロセッサで非常に簡単に実行できるように「折りたたみ」できます。ただし、この戦略はメモリを大量に消費し、通信のオーバーヘッドが高くなる可能性がありますが、全体的に見て、幅広いアプリケーションで成功することが実証されています。 この段落は一般に、この質問の最初の段落と一致しているように見えますが、複製されたデータ/粒子の分解には「高い通信オーバーヘッド」があると書かれています。Gromacsの論文のパラグラフは、その逆を言っているようです。つまり、粒子分解は、ドメイン分解よりも通信のオーバーヘッドが少ないため、好ましいと言えます。 何か考えはありますか?

4
任意精度のスケーラブルロープシミュレーション
ロープオブジェクトをシミュレートしようとしています。私が理解している定式化は、スプリングで接続された粒子の配列です。これらのスプリングのk値は非常に大きいため、線は変形しますが、伸びはほとんどありません。ロープは振り子の一般化であるため、これを時間の関数として解決することは閉じた形式では不可能であると結論付けました(閉じた形式ではありません)。 それから、近似解に落ち着きます。拡張性の高いアルゴリズムが必要です。例では、明示的または暗黙的なオイラー積分を使用して粒子を移動しています。これはスケーリングしません。 これを確認するには、n個のノードを持つロープを考えてください。一端に大きな力を加えます。ロープはあまり伸びてはならないので、もう一方の端の加速はすぐに行わなければなりません。 しかし、オイラーの統合で、取得する任意のもう一方の端は、n個のステップを必要とする力を。指数関数的な減衰に気付きます。最初のノードが特定の量を加速する場合、隣接ノードの加速は小さくなります(同じ速度で加速する場合、アルゴリズムは安定しません)。その結果、隣接するノードにそのノードがさらに遅く加速します! したがって、nノード離れている場合、加速はほとんど無視できます。これは、大幅に伸びるロープにつながります。シミュレーションの解像度を2倍にしたいだけの場合、同様の動作を得るには、突然数十または数百倍の時間ステップを踏む必要があります。 この問題を解決する簡単な方法を探しています。つまり、高解像度のシミュレーションは、多項式時間の余分な計算のみで解に収束します。マトリックスと線形代数のテクニックの完全なライブラリが利用可能です。古典力学の私の知識は非常に優れており、数値解析を知っています。
12 simulation 

2
なぜ有限要素の形状が重要なのですか?
私はFEAをここ数年使用していますが、それを使用することと正しく使用することは2つの異なるものであり、安全率はすべてに対する解決策ではありません。その質問に明確な答えがない限り、私はそれを正しく使用しないだろうと感じています。 正確な結果を得るためには、要素がそれらの理想的な形状(ヤコビアンのみに基づいているか?)に近い必要があることを認識しています。しかし、なぜですか?私はそれが座標変換から来ることを理解しているので、要素の2つのベクトルが同一線上にならない限り、その形状に関係なく結果は正確ではありませんか? 図解された例(任意の応力分布)に基づく段階的な答えは、特に比較的一般的な質問であることを考えると理想的です(しかし、私が見たものからはよく答えられません)。

1
流体シミュレーションの境界条件
ビデオゲームの流体シミュレーションで説明されているように、渦粒子/「ボルトン」を使用して2D流体シミュレーションに取り組んでいます。これは「離散渦法」と同じだと思います。基本的には、渦度が定義された粒子のコレクションで流体を表し、Biot–Savartの法則(たとえば、、ここではサンプルポイントと渦の間の位置の差、は渦度(3Dのベクトル量)、は次の間のユークリッド距離ボルトンとサンプル点)。v=ω×(p2−p1)4πr3v=ω×(p2−p1)4πr3v = \frac{\omega \times (p_2-p_1)}{4\pi r^3}p2−p1p2−p1p_2-p_1wwwrrr 私は流体にボックスを導入して、それを前後に動かして流体に影響を与えようとしています。つまり、ボックスのスリップなしおよびスルーなしの境界条件を考慮する必要があります。(つまり、相対流体速度がボックスの境界で0になるようにします)。 現在、ボックスの周囲の80ポイントでボックスと流体の相対速度をサンプリングしています。また、ボックスの周囲近くに80のボルトを配置していますが、少し外側にオフセットしています。大きな行列を形成し、渦点の値を解決します。渦は、サンプルポイントでの流体の速度を打ち消すために必要です(線形最小二乗を使用)。 これはほとんど機能しますが、返されるソリューションはサンプルポイントとボルトの正確なレイアウトに大きく依存していることに気づきました。 時々、異なる方向に回転するボルトンの交互のパターンが表示されます(青い点は反時計回りに回転するボルトンで、赤い点は時計回りに回転するボルトンです)。 他の場合、この写真のように、ボックスの左側にあるすべてのボルトを一方の方向に回転させ、もう一方のすべてのボルトを反対方向に回転させます。 2枚目の写真は私が実際に欲しいものだと思います。また、2つの異なるソリューションは、私が使用している連立方程式の制約が低すぎることを意味していると思います。追加のサンプルポイントを追加すると、役立つ場合とそうでない場合があります。 私が求めている結果を得るために追加できる他の境界条件はありますか?直感的には、ボックスから特定の距離で流体がどれだけ強く妨害されているかを説明するために何もしていません。境界層の制限の条件を追加できると思います。しかし、私はそれがどのように見えるか正確にはわかりません。 あるいは、渦粒子ベースの流体シミュレーションがこれらの種類の境界条件をどのように処理するかについて、私が見ることができる関連文献はありますか?

3
未知のノイズの多い関数を最大化する
関数を最大化することに興味があります。ここで、です。θ ∈ R Pf(θ)f(θ)f(\mathbf \theta)θ ∈ Rpθ∈Rp\theta \in \mathbb R^p 問題は、関数またはその導関数の分析形式がわからないことです。私ができる唯一のことは、値をプラグインして関数をポイントごとに評価し、そのポイントでNOISY推定を取得することです。必要に応じて、これらの推定値の変動性を減らすことができますが、計算コストを増やす必要があります。 θ∗θ∗\theta_*f^(θ∗)f^(θ∗)\hat{f}(\theta_*) これが私がこれまでに試したことです: 有限差分の確率的急降下:機能しますが、多くの調整(ゲインシーケンス、スケーリング係数など)を必要とし、多くの場合非常に不安定です。 シミュレーテッドアニーリング:機能し、信頼できますが、多くの関数評価が必要なため、かなり遅いことがわかりました。 したがって、私はこれらの条件下で機能する可能性のある代替の最適化方法についての提案/アイデアを求めています。私とは別の研究分野からの提案を奨励するために、問題をできるだけ一般的にしている。収束時のヘッセ行列を推定できる方法に非常に興味があることも付け加えておきます。これは、パラメーター不確実性を推定するために使用できるためです。それ以外の場合は、推定値を取得するために最大値の周りの有限差分を使用する必要があります。θθ\theta

3
CFDシミュレーションと現実的な海洋/大気モデルシミュレーションの違いは何ですか?
計算流体力学(CFD)の分野は、ナビエストークス方程式(またはそれらのいくつかの簡略化)を解くことに専念しています。CFD、海洋および大気モデルのサブセットは、現実的なアプリケーションのために同じ方程式を数値的に解きます。一般的なCFDアプローチと適用された現実的なケースの違いとトレードオフは何ですか?

4
フーリエ疑似スペクトル法と数値散逸
FFTを使用したフーリエ疑似スペクトル法(Orzag&Patterson、PRL、1972)による等方性乱流の直接数値シミュレーションの実行。乱流コミュニティで広く使用されている方法の背景については、次のコースをご覧ください。http://www.math.ualberta.ca/~bowman/m655/lab3d.pdf いわゆる用いことから成るdealiasingための規則 ここで、は時間、は波数、は最大波数、は速度のスペクトル振幅です。2/32/32/3u^(k,t)=0 if k>23kMAXu^(k,t)=0 if k>23kMAX\begin{equation} \hat{u}(\mathbf{k},t)=0~~~~~~~~~~~~~~if~~~k > \frac{2}{3} k_{MAX} \end{equation}tttkk\mathbf{k}kMAXkMAXk_{MAX}u^u^\hat{u} 脱エリア化は数値散逸として機能しますか?つまり、デアリアリングによるエネルギー漏れはありますか?

1
結合システムのリアプノフ指数を見つける方法
回答 は、カオス同期における結合発振器の条件付きリアプノフ指数(CLE)を計算するためのソフトウェアです。ただし、従うのは難しく、プロットのグラフィカルな出力はありません(Cではより複雑です)。結合されていないシステムに最適なLETツールボックスを変更する方法を知っている人はいますか?しかし、CLEに対応するために同期システムを操作する方法はわかりません。 CLEの応答システムに対してCLEが見つかると理論で示されているため、CLEのヤコビ行列を計算するときにドライバー信号を含める方法について混乱があります。同様の発振器(駆動と応答)。または、ソフトウェアの駆動システムと応答システムの両方を考慮して、それが単一のシステムであるかのように進める必要がありますか? CLEにある場合、ランダムなプロセスのような外部強制を状態方程式に適応させる方法。 CLEの他の実装はありますか? ありがとうございました

1
10年前にはシミュレートできなかった、どのような科学的問題をシミュレートできますか?
10年前にシミュレートできなかったコンピューターでシミュレートできる科学的問題は何ですか? 私は特に、10年前には(計算上の制約や知識の欠如のために)不可能だった最先端の科学シミュレーションに興味があります。 可能であれば、ソフトウェアへのリンクを提供してください。

1
効率的な重力場の実装
私はphysics.stackexchangeについて同様の質問をしましたが、このウェブサイトについては無知でした。 私は基本的に重力場を実装する効率的な方法を探しています。 何千ものオブジェクトが入った巨大な2Dスペースがあります。次に、これらのオブジェクトが互いの重力によってどのように影響を受けるかをシミュレートする必要があります。 オブジェクトをコレクションにソートし、コレクション内の個々のオブジェクトではなく、コレクション外のすべてのオブジェクトをそのコレクションと照合することは可能だと思いました。私はすぐにこれが単に不可能であることに気づきました。複数のオブジェクトの重力場は、1つの質量と距離だけで計算される1つの均一場として表すことはできません。 シミュレーション内のすべてのオブジェクトは、球と見なすことができます。それが合理的に現実的に見える限り、私は近似で大丈夫です。


4
CFDはアニメーション/映画/アートで使用されますか?
これは技術的な質問ではなく、単に好奇心から質問されます。 アニメーション映画で計算流体力学(CFD)シミュレーションは使用されますか?(浅水方程式、爆発問題など) 言い換えれば、現実世界の問題の計算シミュレーションをアートで使用できますか? (質問にシミュレーションのタグを付けましたが、適切なタグが見つからないため、自由にタグを付け直してください)

2
この制限付き三体問題のスティッフな方程式を数値的に解く方法は?
円形の制限された3体問題を解決する際に、困難な方程式に遭遇しました。[オブジェクトは、2Dスペースに固定された2つの重力ソースによって引き起こされる重力の影響を考慮して移動しています。] 方程式は次のとおりです。 バツ」= − G M1(x − x1)(x − x1)2+ y2√3− − G M2(x − x2)(x − x2)2+ y2√3バツ″=−GM1(バツ−バツ1)(バツ−バツ1)2+y23−−GM2(バツ−バツ2)(バツ−バツ2)2+y23x''=-\frac{GM_1 (x-x_1)}{\sqrt{(x-x_1)^2+y^2}^3}--\frac{GM_2 (x-x_2)}{\sqrt{(x-x_2)^2+y^2}^3} y」= − G M1y(x − x1)2+ y2√3− − G M2y(x − x2)2+ y2√3y″=−GM1y(バツ−バツ1)2+y23−−GM2y(バツ−バツ2)2+y23y''=-\frac{GM_1 y}{\sqrt{(x-x_1)^2+y^2}^3}--\frac{GM_2 y}{\sqrt{(x-x_2)^2+y^2}^3} オイラー法もルンゲクッタもまたは付近のプロパティが適切でないため機能しません。デリバティブの変化が速すぎます。シミュレーションは正しく解決できません。オブジェクトが重力ソースにぶつかるのは簡単すぎます。(x1、0 )(バツ1、0)(x_1, 0)(x1、0 )(バツ1、0)(x_1, 0) どうすれば修正できますか? ありがとうございました!
8 ode  simulation 

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