OpenRadioss を使ってみる2022年11月19日 | |
はじめにOpenRadioss とは、Altair 社の構造解析ソフト Radioss のオープンソース版である。 バージョン
インストールここ からバイナリパッケージを入手する。 展開。 $ unzip OpenRadioss_linux64.zip 適当な場所に設置する。ダウンロードしたビルドの日付を名前にしておいたほうがよさそう。 /opt/OpenRadioss/20221114 設定 ~/.bashrc export OPENRADIOSS_PATH=/opt/OpenRadioss/20221114 export RAD_CFG_PATH=$OPENRADIOSS_PATH/hm_cfg_files export OMP_STACKSIZE=400m export LD_LIBRARY_PATH=$OPENRADIOSS_PATH/extlib/hm_reader/linux64/:$OPENRADIOSS_PATH/extlib/h3d/lib/linux64/:$LD_LIBRARY_PATH export PATH=$OPENRADIOSS_PATH/exec:$PATH 並列計算用に Open MPI をインストールする。 $ sudo yum install openmpi ~/.bashrc export OPENMPI_PATH=/usr/lib64/openmpi export LD_LIBRARY_PATH=$OPENMPI_PATH/lib:$LD_LIBRARY_PATH export PATH=$OPENMPI_PATH/bin:$PATH 計算の実行実行Spring-back の例を実行してみる。 $ mkdir SpringBack $ cd SpringBack $ unzip ~/SpringBack.zip $ cp -r Explicit_spring-back Explicit_spring-back_serial $ cd Explicit_spring-back_serial $ starter_linux64_gf -i *_0000.rad $ engine_linux64_gf -i *_0001.rad $ engine_linux64_gf -i *_0002.rad $ engine_linux64_gf -i *_0003.rad 実行が面倒なので、スクリプトにしておくとよいかもしれない。 run_serial #!/bin/sh starter_linux64_gf -i *_0000.rad engine_linux64_gf -i *_0001.rad engine_linux64_gf -i *_0002.rad engine_linux64_gf -i *_0003.rad スレッド並列 run_thread #!/bin/sh N=2 export OMP_NUM_THREADS=$N starter_linux64_gf -i *_0000.rad engine_linux64_gf -i *_0001.rad engine_linux64_gf -i *_0002.rad engine_linux64_gf -i *_0003.rad あるいは #!/bin/sh N=2 starter_linux64_gf -i *_0000.rad -nt $N engine_linux64_gf -i *_0001.rad -nt $N engine_linux64_gf -i *_0002.rad -nt $N engine_linux64_gf -i *_0003.rad -nt $N MPI 並列 run_mpi #!/bin/sh N=2 starter_linux64_gf -i *_0000.rad -np $N mpirun -n $N engine_linux64_gf_ompi -i *_0001.rad mpirun -n $N engine_linux64_gf_ompi -i *_0002.rad mpirun -n $N engine_linux64_gf_ompi -i *_0003.rad MPI + スレッド並列 run_mpi_thread #!/bin/sh N=2 M=2 export OMP_NUM_THREADS=$M starter_linux64_gf -i *_0000.rad -np $N mpirun -n $N engine_linux64_gf_ompi -i *_0001.rad mpirun -n $N engine_linux64_gf_ompi -i *_0002.rad mpirun -n $N engine_linux64_gf_ompi -i *_0003.rad この例では、スレッド並列を使うとかえって時間がかかった。 ポスト計算結果を VTK および CSV (時系列データ) に変換する。 post (ちょっといい加減だが...)
#!/bin/sh
for FILE in *A???; do
echo $FILE
anim_to_vtk_linux64_gf $FILE > $FILE.vtk
done
for FILE in *T??; do
echo $FILE
th_to_csv_linux64_gf $FILE > $FILE.csv
done
ParaView で確認する。 これは "*A???" の形式のアニメーションファイルが出力されている場合であり、.h3d で結果が出力されるケースもある。HyperView か HyperView Palyer で見れそう。 クリーン計算結果を削除。 clean (これもちょっとテキトー) #!/bin/sh rm -f *.rst rm -f *.out rm -f *A??? rm -f *T?? rm -f *.tmp 参考 | |
| PENGUINITIS | |