計算科学

科学的問題を解決するためにコンピュータを使用する科学者のためのQ&A

1
陰的時間離散化を用いたcudaおよび数値解法
(時間の離散化のために)IMPLICIT形式の有限体積法によって偏微分方程式(PDE)のセットを解決するコードを移植したいと考えています。 その結果、ADI / TDMAスキームで処理されるx、y、z方向の3重対角方程式系があります。 CUDAを使用したPDEの暗黙的な解決策については、何も見つからないようです。 ADI / TDMAスキームはCUDAで実装できますか?2D熱拡散方程式のような例はどこかにありますか? 私が見つけることができるのは、有限差分であるがEXPLICIT形式(ケンブリッジ大学)の2D熱拡散方程式のCUDAサンプルコードだけです。 ヒント/リファレンスをいただければ幸いです。

5
非圧縮性流れの定義
非圧縮性流れが実際には存在しないことは誰もが知っているように、その仮定は、支配方程式を簡略化するために導入されました。この仮定を単純に適用することはできません。一般にマッハ数(非圧縮性流れのM <0.3)、密度変化(ゼロ密度変化)、および速度の発散(非圧縮性流れのゼロに等しい)は、非圧縮性流れとして流れを定義するための一般的な基準です。熱伝達の問題(自然対流など)の場合、密度が変化し、最後の2つの基準に違反することがわかります。伝熱過程も含む非圧縮性流れの仮定を定義することは可能ですか(密度変化を意味します)?

1
科学計算のコンテキストでC ++ 11移動セマンティクスの影響は何ですか?
C ++ 11は移動セマンティクスを導入しています。たとえば、C ++ 03がコピー構築またはコピー割り当てを実行する必要がある状況でコードのパフォーマンスを向上させることができます。この記事では、C + 11でコンパイルすると、次のコードで5倍の速度が得られると報告しています。 vector<vector<int> > V; for(int k = 0; k < 100000; ++k) { vector<int> x(1000); V.push_back(x); } 科学計算のコンテキストでC ++ 11移動セマンティクスの影響は何ですか? この質問は一般的な質問に興味がありますが、具体的には、Boostライブラリを使用して記述された有限要素コードの移動セマンティクスにも興味があります。ブーストバージョン1.47.0(ブーストリリースノートには移動のセマンティクスが1.48.0で導入されていると記載されているため)とブーストバージョン1.53.0 を使用して、独自のC ++ 03コードの一部をテストしましたが、あまり改善されていません。システムマトリックスの解決はワークロードの大部分を構成するため、boost::numeric::ublas::vector/のコピー構築を行わなくても済むことによる節約は目立たないmatrixと思いますboost::function。 編集:実際には、移動のセマンティクスが実装されているように見えますboost::function(バージョン1.52.0リリースノートを参照)。には移動のセマンティクスについての言及はありません。boost::numericソースを確認して確認し、右辺値の参照がないようです。

4
Matlab:コード実行をプログラムで安全に停止する方法はありますか(FORTRANの停止など)?[閉まっている]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? 質問を更新して、計算科学スタック交換のトピックになるようにします。 2年前休業。 タイトルが言うように、特定の場所でコードを停止して安全に停止できるようにしたいと考えています。たとえば、FORTRANに停止コマンドがあるように、それを行うコマンドが見つかりません。
10 matlab 

3
非圧縮性ナビエ・ストークスの製造ソリューション—発散のない速度場を見つける方法は?
製造されたソリューション(MMS)の方法では、正確なソリューションを仮定し、それを方程式に代入して、対応するソース項を計算します。その後、ソリューションはコード検証に使用されます。 非圧縮性ナビエ・ストークス方程式の場合、MMSは連続方程式で(ゼロ以外の)ソース項を簡単に導きます。ただし、すべてのコードが連続方程式のソース項を許可するわけではないため、これらのコードの場合、発散のない速度場を備えた製造されたソリューションのみが実行します。ドメインのこの例を見つけました 一般的な3Dの場合、発散のない速度場をどのように作成するのですか?Ω = [ 0 、1 ]2Ω=[0、1]2\Omega=[0,1]^2 あなた1あなた2= − cos(πx )罪(πy)= 罪(πx )cos(πy)あなた1=−cos⁡(πバツ)罪⁡(πy)あなた2=罪⁡(πバツ)cos⁡(πy)\begin{align} u_1 &= -\cos(\pi x) \sin(\pi y) \\ u_2 &= \sin(\pi x) \cos(\pi y) \end{align}

2
熱方程式の最大/最小原理は、クランクニコルソン離散化によって維持されますか?
クランクニコルソン有限差分スキームを使用して、1D熱方程式を解いています。熱方程式の最大/最小原理(つまり、最大/最小が初期条件または境界で発生する)も離散化された解に当てはまるかどうか疑問に思っています。 これはおそらく、クランクニコルソンが安定した収束型スキームであることによって暗示されています。しかし、Crank-Nicolsonステンシルから作成された行列を使用して、線形代数引数を介してこれを直接証明できる可能性があるようです。 これに関する文献へのポインタをいただければ幸いです。ありがとう。

2
行列引数を持つ線形システムを解く
私たちは、標準の線形システムを解くための多くの計算方法に精通しています Ax=b.Ax=b. Ax=b. ただし、次の形式のより一般的な(有限次元)線形システムを解くための「標準的な」計算方法があるかどうか知りたいです。 LA=B,LA=B, LA=B, ここで、AAAはm1×n1m1×n1m_1\times n_1行列、BBBはm2×n2m2×n2m_2\times n_2行列、LLLはm1×n1m1×n1m_1\times n_1行列からm2×n2m2×n2m_2\times n_2行列を取る線形演算子、これは、行列のベクトル化、つまりすべてを標準のAx=bAx=bAx=b形式に変換することを含みません。 私が尋ねる理由は、について次の方程式を解く必要があるためですuuu。 (R∗R+λI)u=f(R∗R+λI)u=f (R^*R+\lambda I)u=f ここでRRR 2Dラドン変換であり、R∗R∗R^*の随伴、両uuu及びfff、2D配列(画像)です。この方程式をベクトル化することは可能ですが、特に3Dに移行する場合は面倒です。 より一般的には、nDnDnD配列はどうですか?たとえば、AとBが3D配列である解く(ある時点でラドン変換を使用してこれを行う必要があります)。LA=BLA=BLA=BAAABBB 今後ともよろしくお願いいたします。必要に応じて、別のStackExchangeにお送りください。

1
MATLABで、linsolveとmldivideの違いは何ですか?
MATLABでは、linsolveとmldivideの両方が、決定、過決定、過小決定のすべてのケースで線形方程式系を解くために使用されます。 彼らの文書を読んで、私はそれらの間にどんな違いがあるのだろうと思っていましたか?3つのケースで、行列分解と三角化のアルゴリズムとほとんど同じですか? Aにoptsのプロパティがある場合、linsolveはmldivideより高速です。これは、linsolveがAが指定されたプロパティを持っていることを確認するテストを実行しないためです。 mldivideは、Aに特別なプロパティがあるかどうかを確認するために同じテストを実行しますか?またはmldivideは、特別なプロパティなしでそれらを一般的なケースとして扱うだけですか? ありがとう!

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つの異なるソリューションは、私が使用している連立方程式の制約が低すぎることを意味していると思います。追加のサンプルポイントを追加すると、役立つ場合とそうでない場合があります。 私が求めている結果を得るために追加できる他の境界条件はありますか?直感的には、ボックスから特定の距離で流体がどれだけ強く妨害されているかを説明するために何もしていません。境界層の制限の条件を追加できると思います。しかし、私はそれがどのように見えるか正確にはわかりません。 あるいは、渦粒子ベースの流体シミュレーションがこれらの種類の境界条件をどのように処理するかについて、私が見ることができる関連文献はありますか?

4
行列制約付きの線形計画法
次のような最適化の問題があります minJ,Bs.t.∑ij|Jij|MJ+BY=XminJ,B∑ij|Jij|s.t.MJ+BY=X \begin{array}{rl} \min_{J,B} & \sum_{ij} |J_{ij}|\\ \textrm{s.t.} & MJ + BY =X \end{array} ここでは、変数は行列 JJJおよびBBBですが、問題全体は依然として線形プログラムです。残りの変数は固定されています。 このプログラムをお気に入りの線形プログラミングツールに入力しようとすると、いくつかの問題が発生します。つまり、これを「標準」線形プログラム形式で記述した場合、パラメーター行列MMMとYYYは(Xの各列に対して1回)何回も繰り返されることになりますXXX。 上記のフォームの最適化を処理できるアルゴリズムやパッケージはありますか?MMMとYYYは何度もコピーする必要があるため、現在メモリが不足しています!

2
微分形式と二次有限体積法の間の関係
今日、微分形式の理論について読んだとき、それが二次有限体積法(FVM)をどれほど思い出させてくれるかに感銘を受けました。 私はこの方法をほんのささいに考えているのか、それとも深いつながりがあるのか​​を理解するのに苦労しています。 さて、微分形式は、表面を通る流体のフラックスのような、2次FVMに深く根ざしたいくつかの概念を一般化するのに役立ちます。次に、(ストークスの)積分定理は微分形式の理論における中心的なオブジェクトの1つです。証明には、多様体上の微分形式の統合が含まれます-シンプレックス(三角形、四面体など)が出現します。マニホールドは実際には、直線エッジのセルを使用して流体が通過する滑らかな形状を表すのと同じ方法でテッセレーションされます。 これらは類似したもののほんの一部です。実際、微分形式について読むと、FVMについて考えるのをやめられなくなったのです。 2次の有限体積法は、実際には微分形式理論の計算による表現を表していますか?

4
固定小数点と任意精度の計算の関連性
浮動小数点演算のライブラリ/パッケージはほとんどありません。浮動小数点表現のさまざまな不正確さを考えると、この増加した精度が固定小数点での作業の複雑さの価値があるかもしれないフィールドが少なくともいくつかない理由が問題になります。 たとえば、固定小数点固有値ソルバーを使用する上で大きな問題はありますか?彼らはどのくらい遅く/速く、不正確/正確でしょうか? 関連:これとこれ

1
PETScと並行して単純なAx = bシステムを解く
PETScパッケージは初めてです。 マトリックスマーケット形式の〜4000x4000マトリックスAを持っています。複数のプロセッサを使用してこれを解決するためにPETScを取得したいと考えています。 単一のプロセッサでシステムを解く方法は知っていますが、異なるプロセッサ間で行列とベクトルを分散する方法はわかりません。 これを行うための簡単な手順はありますか?
10 petsc  matrix 

3
浮動小数点演算とデータ転送の現在および将来のエネルギーコストをモデル化するための参考資料
CPU、メモリ、ネットワーク、ストレージ全体にわたる浮動小数点演算とデータ転送の現在および将来のエネルギーコストをモデル化するための最も重要な文献とスライドのリファレンスを探しています。この質問をコミュニティウィキとしてマークしました。各回答を次の形式に制限することをお勧めします。 タイトル、著者、場所/会議/ジャーナル、年、DOI / URL、論文またはプレゼンテーションが私の要求に関連して提供する情報の要約。

4
線形制約による凸関数の最大化(凹関数の最小化)
問題は 最大f(x)A x = bの 対象 maxf(x) subject to Ax=b\max f(\mathbf{x}) \text{ subject to } \mathbf{Ax} = \mathbf{b} ここで、f(x)= ∑Ni = 11 + x4私(ΣNi = 1バツ2私)2−−−−−−−−−−√f(x)=∑i=1N1+xi4(∑i=1Nxi2)2f(\mathbf{x}) = \sum_{i=1}^N\sqrt{1+\frac{x_i^4}{(\sum_{i=1}^{N}x_i^2)^2}}、 x =[ x1、x2、。。。、xN]T∈ RN× 1x=[x1,x2,...,xN]T∈RN×1\mathbf{x} = [x_1,x_2,...,x_N]^T \in \mathbb{R}^{N\times 1}、および A ∈ RM× NA∈RM×N\mathbf{A} \in \mathbb{R}^{M\times N} f(。)f(.)f(.)は\ sqrt {1 + y …

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