問題タブ [nastran]
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.
matlab - matlab で f06 ファイル (Nastran) を読み取る最速の方法
MATLAB を使用して Nastran から結果のファイルをいくつか読み取る必要があります。ファイルの中央にある変位ベクトルに関する情報をインポートする必要があります (ただし、変位に関するセクションが開始および終了する行はわかっています)。
これらのファイルは次のようにフォーマットされています。
- それらは「ページ」に分割され、ページごとの行数が固定されています
- 各ページにはヘッダーがあり、インポートする必要はありません
- データ列は固定幅です (以下はファイルの「ページ」の例です)。
関数を matlab で作成しましたが、非常に遅く、このプロセスがコードのボトルネックになっています。(これらのファイルは非常に大きく、多くのファイルを処理する必要があります): それらを読むための最速の方法を探しています。
アイデアはありますか?
ありがとう編集:コードを追加しました
python - numpy を使用して Python で Nastran ノード デッキをインポートする
Nastran Deck を Python Array にインポートしたい場合は、numpy を使用して一気に。どうすればそれについて行くことができますか?どこが間違っていますか?
グリッドのみを含むファイルがあります。Nastran のショート トランスレータ (8 文字) を使用すると、グリッドはすべて等間隔に配置されます。
Numpy の dtype コマンドを使用することは、正しく理解できれば素晴らしいことです。これが私のコードです:
私が得るエラーはフロートエラーですが、dtypeが文字列から一度に8文字を抽出することを期待していました。エラーは次のとおりです。
助けていただければ幸いです。
PS nastran タグを作成してください。膨大な量のデータ処理が nastran で行われるため、スマートなプログラミングが必要です。それは役に立ちます。
python - 指数座標で Nastran グリッドを読み取る
NASTRAN.bdf ファイルからいくつかの負の指数値を読み取るのに問題があります。たとえば、このリストには z 座標が含まれています。
-5.75-3 を -5.75e-3 に変換するには?
nastran - Patran と Virtual Lab の bdf 形式の違い
これが私の問題です。bdf 形式のホワイトボディを受け取りました。ファイルを読み取ると、Patran 2013 で作成されたようで、ホワイトボディに変更を加える必要があります。変更を加えるために LMS Virtual Lab を使用していますが、残念ながら Virtual Lab では bdf ファイルしかインポートできず、変更後に作業を新しい bdf ファイルにエクスポートする必要があります。顕著な違いの 1 つは、bdf ファイルのサイズが 128MB から 92MB に短縮されたことです。
私の次のステップは、MD Nastran を介して通常のモーダル解析を計算することです。これは、元の bdf ファイルで正常に機能し、OP2 結果ファイルを提供します。ただし、変更されたbdfファイルを実行すると、元のファイルと同様にexit(0)(異常終了がないことを意味します)が返され、結果のOP2ファイル(Nastran NXで)を見ようとすると、できることがわかります' t は結果を見つけません (元の場合はそうです)。
何かご意見は ?
python - PythonでNastranジオメトリファイルを読み取る
私がしたいこと
Python を使用して Nastran ファイルのジオメトリ情報を解析しようとしています。私の現在の試みでは、NumPy と正規表現を使用しています。データを高速に読み取り、結果が NumPy 配列になることが重要です。
Nastran ファイル形式
Nastran ファイルは次のようになります。
ファイルの右側の部分だけに興味があります。そこには、x、y、z 座標のそれぞれについて、8 文字のチャンクで情報が存在します。上記の座標の一般的な表現は次のようになります。
これまでに試したこと
これまで、正規表現と NumPy を使用して、あらゆる種類の python for ループを回避し、データの処理を可能な限り高速化しようとしました。完全なファイルをメモリに読み込み、fContent
変数に保存した後、試しました:
-3.-14
しかし、これでは表現が不十分です。解決策は、正規表現と置換の結果の文字列タプルをすべてループし、文字列タプル.-
の.e-
リストから NumPy 配列を作成することです。(上記のコードには表示されていません)。ただし、このアプローチは、正規表現の見つかったすべてのタプルをループして置換を実行するため、時間がかかると思います。
私が探しているもの
データをすばやく読み取る方法を探しています。-3.-14
私の現在の希望は、「 」の問題をうまく処理するスマートな正規表現です。.-
正規表現では、すべての文字を で置き換える必要があります.e-
が、8 文字ブロックの末尾にない場合に限ります。.
今まで、このような正規表現を作成できませんでした。しかし、私が言ったように、データを読み取る他の高速な方法も大歓迎です。
python - バイナリ ファイルの読み取りとデコードによる結果の取得
値を取得するために、バイナリ ファイルを読み取ってデコードしたいと考えています。
ファイルの読み取りに使用するコードの下:
そして、ここに私が出力したものの一部があります:
b'\xaf\xc9Dq\xdd\xa8\xc44\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9e\xdd\x1f\x004\x08\x00\x00\x00\xb0 \x97EHq\xccD{\xdc\xc3\xc44\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9f\xdd\x1f\x004\x08\x00\x00\x00\ xb0\x97E3S\xc1D{4\xbf\xc44\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\xdd\x1f\x004\x08\x00\x00\x00\ xb0\x97E\xe1\xc2\xc2D\xc3\xed\xd7\xc44\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa9\xdd\x1f\x004\x08\ x00\x00\x00\xb0\x97Ef\xb6\xb7D\xa4\xd8\xd1\xc44\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb2\xdd\x1f\ x004\x08\x00\x00\x00\xb0\x97ER\x10\xb7DR\xc8\xea\xc44\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb5\xdd\ x1f\x004\x08\x00\x00\x00\xb0\x97E\xa40\xacD\xec1\xe3\xc44\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbc\ xdd\x1f\x004\x08\x00\x00\x00\xb0\x97E\xcd|\xa9D\x00@\xfc\xc44\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\ x00\xbd\xdd\x1f\x004\x08\x00\x00\x00\xb0\x97E\x1f\xed\x9eD\x1f\x15\xf3\xc44\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xec\x01\ x00\x00\x04\x00\x00\x00\xfb\xff\xff\xff\x04\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x04\x00\x00\ x00\x04\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\ x0c\x00\x00\x00\xff\xff\x00\x00\xff\xff\x00\x00\xff\xff\x00\x00\x0c\x00\x00\x00\x04\x00\x00\x00\xfa\ xff\xff\xff\x04\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x00\x00\ x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x02\x00\x00\ x00\x04\x00\x00\x00\x08\x00\x00\x00GEOM3x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x0c\x00\x00\x00\ xff\xff\x00\x00\xff\xff\x00\x00\xff\xff\x00\x00\x0c\x00\x00\x00\x04\x00\x00\x00\xfa\xff\xff\xff\x04\ x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x04\x00\ x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x02\x00\x00\x00\x04\x00\x00\ x00\x08\x00\x00\x00GEOM3x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x0c\x00\x00\x00\ xff\xff\x00\x00\xff\xff\x00\x00\xff\xff\x00\x00\x0c\x00\x00\x00\x04\x00\x00\x00\xfa\xff\xff\xff\x04\ x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x04\x00\ x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x02\x00\x00\x00\x04\x00\x00\ x00\x08\x00\x00\x00GEOM3
ouptut をデコードするにはどうすればよいですか?
バイナリ ファイルはこちらからダウンロードできます: https://www.dropbox.com/s/uimba2xojc55uii/modele_petite_zone.op2?dl=0
python - PyTables と Matlab HDF5 の読み取り時間
モード形状データを含む NASTRAN からの HDF5 出力ファイルがあります。それらをMatlabとPythonに読み込んで、さまざまな後処理手法を確認しようとしています。問題のファイルは、これらの両方のテストのローカル ディレクトリにあります。ファイルは 1.2 GB とセミラージですが、私が以前に読んだ HDF5 ファイルに関してはそれほど大きくありません。アクセスしたいテーブルには 17567342 行と 8 列があります。最初と最後の列は整数で、中間の 6 列は浮動小数点数です。
マトラブ:
この最後の操作は非常に低速です (時間単位で測定できます)。
パイソン:
この最後の操作は基本的に瞬時です。data
その後、numpy 配列であるかのようにアクセスできます。これらのコマンドが何をしているのかについて、非常に基本的なことが明らかに欠けています。データ変換と関係があるのではないかと考えていますが、よくわかりません。もしそうなら、私はtype(data)
戻っnumpy.ndarray
てtype(data[0])
戻ってきますnumpy.void
。
必要なデータセットを Matlab に読み込む正しい (つまり、迅速な) 方法は何ですか?
python - Python Nastran サブプロセスのポーリング
Python を使用して Nastran シミュレーションを実行しています。
これらのシミュレーションは、フィードバックなしでかなりの時間実行される傾向があるため、関連データの出力ファイルの読み取りと印刷を自動化しようとしています。
そのためには、サブプロセスの実行時にいくつかのコードを実行する必要があります。ただし、これは機能しないようです。subprocess
簡単なテストとして、コマンドの下に次のコードを書きました。
残念ながら、コードはコマンドでスタックしているようで、subprocess
コマンドが終了するまで待機します。その時点でクラスにnastran
なりCompletedProcess
、ポーリングできなくなります。これがエラーです。
Python で Nastran サブプロセスを適切にポーリングする方法について何か考えはありますか?