問題タブ [abaqus]
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.
c++ - Win32 DLL インポートの問題 (DllMain)
別のアプリケーション (基本的にまったく制御できないアプリケーション) へのプラグインであるネイティブ DLL があります。追加の .lib ファイルとリンクするまで、すべてがうまく機能します (私の DLL を という名前の別の DLL にリンクしますABQSMABasCoreUtils.dll
)。このファイルには、利用したい親アプリケーションからの追加の API が含まれています。エクスポートされた関数を使用するためのコードを書いていませんが、この新しい DLL にリンクするだけで問題が発生します。具体的には、プログラムを実行しようとすると、次のエラーが発生します。
アプリケーションを正しく初期化できませんでした (0xc0000025)。[OK] をクリックして、アプリケーションを終了します。
これは通常、DllMain 関数が FALSE を返すことが原因であるとどこかで読んだことがあると思います。また、次のメッセージが標準出力に書き込まれます。
エラー: コンポーネントの初期化前にメモリ割り当てが試行されました
このエラー メッセージはアプリケーションからのものであり、何らかの Windows エラーではないとほぼ 100% 確信しています。
これをもう少し詳しく調べます (別名、私が知っているすべてのスイッチを振り回して反転させます) /MAP をオンにしてリンクし、結果の .map ファイルでこれを見つけました。
「undname」を使用してこれらの名前の装飾を解除すると、次のようになります(同じ順序):
この .map ファイル内に何かがどのようにABQSMABasCoreUtils.dll
存在するのか、またはこの DLL を参照するコードがない場合に DLL が ABQSMABasCoreUtils.dll を読み込もうとする理由を理解できません。この情報をまとめて、これが機能しない理由を見つけるのを手伝ってくれる人はいますか? 親アプリケーションがインポートすることを「dumpbin」で確認したABQSMABasCoreUtils.dll
ので、何があってもロードされています。また、この DLL を DLL にロードするのを遅らせようとしましたが、結果は変わりませんでした。
編集
再確認しましたが、関連するすべてのファイルは 64 ビットです。
python - ジョブを送信し、その完了を待ってから、別のジョブを送信します
同じ abaqus .inp ファイル (実行内でわずかに変更) を複数回実行する必要があり、各実行が終了したら、結果を読み取る abaqus python スクリプトを送信する必要があります。
私は次のことをしました:
ただし、メインプログラムは、1 行目で開始されたプログラムが終了する前に 2 行目を実行します。その結果、エラーが発生します。どうすればこれを解決できますか?
abaqus - Abaqus サブルーチンのソリューション依存変数の定義
Abaqus ユーザー サブルーチンを作成するのは初めてです。Abaqus ユーザー サブルーチンでソリューション依存変数を定義できる方法があるかどうかを調べようとしています。凝集要素のリークオフを時間依存パラメータとして実装しようとしています。この機能を実装するために、UFLUIDLEAKOFF サブルーチンを使用する予定です。リークオフモデルは以下のとおりです。
Leakoff=C*f(t,τ)
where,C=constant
t=current time
τ=time at which the cohesive element was damaged
τ は、粘着要素が損傷していない場合、つまり SDEG = 0 の場合は定義されないソリューション依存のパラメータです。したがって、τ は要素ごとに異なり、このステップで損傷した要素については更新する必要があります。このステップの前に損傷を受けており、まだ無傷の要素に対しては定義しないでください。サブルーチンのリークオフは次のように計算されます。
τ が定義されていない場合、ユーザー定義の定数リークオフがあります。τ が定義されている場合、関数 f(t,τ) からリークオフの値を計算します。
凝集要素に関連付けられた状態変数を定義し、ユーザー サブルーチンで何らかの方法でそれを読み取り、それに基づいてリークオフ値を選択できると思います。
この件で何か助けていただければ幸いです。ありがとう。
python - itertools と付随するリストを使用して要素のパターンをスキップする
遅い (最後のカウントで 30 ~ 60 分) コードがあり、最適化する必要があります。これは、構造エンジニアリング モデル用の Abaqus のデータ抽出スクリプトです。スクリプトの最悪の部分は、オブジェクト モデル データベースを最初にフレーム (つまり、シミュレーションの時間履歴の時間) ごとに反復し、その下にネストして各ノードごとに反復するループです。ばかげたことは、約 100k の「ノード」がありますが、約 20k の有用なノードしかないということです。しかし幸いなことに、ノードは常に同じ順序になっています。つまり、ノードの uniqueLabel を検索する必要はありません。これを別のループで 1 回実行し、最後に取得したものをフィルタリングできます。そのため、すべてを 1 つのリストにまとめてから、繰り返しのノードをすべて削除しました。しかし、コードからわかるように:
value.data
約 80k 回、不必要に呼び出しを行う必要があります。誰かが Abaqus ODB (オブジェクト データベース) オブジェクトに精通している場合、それらは Python で非常に遅くなります。怪我に侮辱を加えるために、それらは、独自のpythonバージョン(2.6.x)とパッケージを持つAbaqusの下で、単一のスレッドでのみ実行されます(たとえば、numpyは利用できますが、pandasは利用できません)。面倒かもしれないもう1つのことは、オブジェクトを位置でアドレス指定できるという事実frames[-1]
ですfor frame in frames[0:10]: # iterate first 10 elements
.
itertools の経験はありませんが、setValues にマップする nodeIDs のリスト (または True/False のリスト) を提供したいと思います。スキップする setValues の長さとパターンは、760 フレームごとに常に同じです。たぶん次のようなもの:
他のヒントも高く評価されました。この後.append()
、ループから を削除して「ドットを回避」し、すべてを関数に入れて、それが役立つかどうかを確認したかったのです。スクリプト全体はすでに 1.5 時間未満 (6 時間から 21 時間に短縮) で実行されますが、最適化を開始すると停止する方法はありません。
メモリの考慮事項も高く評価されました。私はこれらをクラスターで実行しましたが、80 GB の RAM で一度はうまくいったと思います。スクリプトは間違いなく 160 GB で動作します。問題はリソースが割り当てられることです。
解決策を探しましたが、間違ったキーワードを使用している可能性があります。これはループでは珍しい問題ではないと確信しています。
編集1
これが私が最終的に使用したものです:
最大の改善は、compress(values, selectors)
メソッドの使用によるものです (odb 部分を含むスクリプト全体が 1:30 時間から 25 分になりappend = peeqValues.append
ましたdef iterateOdb(frames, selectors):
。
https://wiki.python.org/moin/PythonSpeed/PerformanceTipsのヒントを使用しました。
答えてくれて助けてくれてありがとう!
python - Abaqus および Numpy (Python のライブラリ) とのバージョンの非互換性を克服するには?
NLopt
Pythonを介して Abaqus 内で呼び出される Python の外部ライブラリを実行したいと考えています。問題は、私が見つけた NLopt が Numpy の最新リリース、つまり 1.9に対してコンパイルされているのに対し、Abaqus 6.13-2 は Numpy 1.4 に対してコンパイルされていることです。Abaqus インストール フォルダーの下の site-packages の下にある Numpy フォルダーを、Python 2.6 (Abaqus が使用するバージョン) に Numpy 1.9 をインストールして外部で作成したバージョン 1.9 のそれぞれのフォルダーに置き換えようとしました。
Abaqus も起動できなかったので、そのようなアプローチは間違っていると思います。
そのような問題を克服する方法について何か提案はありますか?
みんなありがとう
abaqus - Abaqus での統合点の定義
abaqus サブルーチンの「積分点」の定義を知る必要があります。私は abaqus ソフトウェアに不慣れで、あなたの助けを待っています