問題タブ [petsc]
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.
haskell - Haskell での PETSc FFI のライブラリ設計
メモリとエラー管理をユーザーから隠すために、FFI インターフェイスを介して Haskell から PETScライブラリ(のサブセット) を利用できるようにしたいと考えています。
- 以下に示すコマンドで共有ライブラリを使用して PETSc 3.5.3 をビルドすると、テスト スイートが正常に実行されます。
- ヘッダーのインポート、タイプ、および 2 つの外部関数インターフェイスの例を含む .hsc ファイル #2 を準備しました
- ビルドを自動化する Makefile #3 を準備しました。
make test1
ロードされたモジュールで GHCi を渡し、起動します。
ライブラリは、MPI と完全に分散されたデータ構造によって有効化された並列操作に優れているため、ほとんどの操作 (すべてのデータ アセンブリ、計算、および割り当て解除はライブラリ プリミティブによって行われる必要があります) の間、Haskell で大量のデータ トラフィックを期待する必要はありませんが、"データ準備完了」。PETSc 関連の Haskell 関数は、純粋性を保証できないため、主に IO モナドに値を持ちます (たとえば、返される C エラー コードは、プログラムの外部の理由により異なる場合があります)。
悪いアイデアunsafePerformIO
alloca
メモリとエラー管理をラップする必要があります。この考え方は正しいでしょうか?GHC でコンパイルされたバイナリは で実行できますはいmpirun
か?
私はすべての提案と発言を受け入れます。前もって感謝します
-- 注記: GHC に実行可能なバイナリを生成してもらいたい: mpirun
GHC コマンド ラインからリンカーにオプションを-optl
フラグ (参照here ) で渡すことができるため、次のような組み合わせが提案されていghc -optl-static -lmpich
ます。これについては、試してみることができ次第、追加します。
1) 構成コマンド:
2) PETSC.hsc
3) メイクファイル
c - mpicc の PETSc エラー
放射伝達を伴う水力シミュレーションに C のコードを使用しています。ローカル マシンでコンパイルした PETSc が必要です。しかし、コードをコンパイルすると、エラーメッセージが表示されます: error: ’__SDIR__’ undeclared
(この関数で最初に使用)。メイクファイルには次のものがあります。
誰でも解決策を提案できますか?
python - petsc4py: csc_matrix から AIJ マトリックスを作成すると TypeError が発生する
既存のcsc-matrixからpetsc-matrixフォームを作成しようとしています。これを念頭に置いて、次のサンプルコードを作成しました。
これは、行列が実数値のみで構成されている限り、完全に機能します。マトリックスが複雑な場合、このコードを実行すると
TypeError: Cannot cast array data from dtype('complex128') to dtype('float64') according to the rule 'safe'
. エラーが発生した場所を正確に把握しようとしましたが、トレースバックをあまり理解できませんでした。
複雑なscipy cscマトリックスからpetscマトリックス(後でいくつかの固有ペアを取得したい)を作成する効率的な方法はありますか?
私の(できればあまり明白ではない)間違いを見つけるのを手伝ってくれたら、本当にうれしいです。
c - 構造体内の PETSc C マクロ
PETSc では、以下の 4 つのスニペットのように、Vec、Mat、IS などの多くの一般的な構造が同様に定義されています。質問:
- PETSCHEADER はいつ、どのように拡張されますか? 私は別の言語から外国語インターフェースを書いていますが、関数でマクロをラップする必要があるかどうか疑問に思っていました。
hdr
とのスコープは何ops
ですか?
前もって感謝します
petscvec.h
vecimpl.h
petscimpl.h
vecimpl.h