だいたい１００分ではじめるOpenRadiossチュートリアル

突試験がニュースにあがっており、衝突解析を体験できるソフトとチュートリアルがありましたので、ためしました。普段の業務では使わないので、勉強も兼ねてトライしました。  
OpenRadiossのOpenRadiossのチュートリアル集で、携帯電話が地面に落ちた時の解!
析がありました。  
OpenCAE学会のOpenRadiossのページを見ながら、インストール、結果の確認を行いました。 [https://wiki.opencae.or.jp/index.php/OpenRadioss](https://t.co/LxY2Haec5W)  

使用環境  
・第11世代iCore7のゲーミングパソコン  
・OS:Windows11  
・CPU:第11世代iCore7、GPU:Geforce  
・メモリ:16GB、ストレージ:512GB  
使用ソフト  
・OpenRadioss(windows版）  
・SalomeMeca2021のParavis(Paraview相当）  
（本当はParaviewを使うべきですが、パソコンの空き容量に余裕がなかったため、試しました。）　

## １．概要

スマートフォンが落下したときの応力を計算します。

![FvPfxnmaUAAyROE-1024x807.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3782081/a815f02a-613f-108d-5d8b-7547552baae0.jpeg)
  
解析データは、メッシュ、境界条件、物性設定等CAE解析に必要なデータ設定済みであるチュートリアルデータを使用しました。  
ダウンロード先：[https://openradioss.atlassian.net/wiki/spaces/OPENRADIOSS/pages/11141156/Cell+Phone+Drop+Test](https://t.co/JvzqFRtgpi)

## ２．設定操作

## ２．１　OpenRadiossのダウンロードとインストール

プログラムデータは、[Releases · OpenRadioss/OpenRadioss (github.com)](https://github.com/OpenRadioss/OpenRadioss/releases) からダウンロードします。  
ファイル形式は、Zipファイル形式で圧縮されているため、解凍をおこないます。  
解凍先は、”C:\OpenRadioss_win64”とします。  
うまくいけば、下図に示すようなフォルダにプログラムデータが保存されます。

![image-1024x396.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3782081/fc0bee01-44fc-f38c-e8c8-15e1cbcc7561.png)

##   
２．２　解析データの設定とダウンロード

解析を実行できる環境を構築します。  
考え方は、指定のフォルダに解析データのダウンロードして、解析を実行するバッチファイルを作成して実行します。バッチファイル上内の設定で一部書き換えることで、他の解析データも実行できるようにします。  
解析フォルダは、"C:\data\wshare\openradioss"とします。（赤□部）  
解析では、以下のダウンロードします。解析データはzipファイルなので、解析フォルダ内に解凍を行います。お行うと２つのファイルができます。(緑□部）  
解析のバッチファイルは、simulation.batというOpenradiossを実行するバッチファイルと、convert_vtk.batという解析結果を可視化できるデータに変換するバッチファイルをダウンロードし、解析フォルダに格納します。  
解析データダウンロードURL:  
[https://openradioss.atlassian.net/wiki/spaces/OPENRADIOSS/pages/11141156/Cell+Phone+Drop+Test](https://t.co/JvzqFRtgpi)


![image-2-1024x811.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3782081/bdf4de3b-a27c-bdc0-ab70-df0e1f498eab.png)


simulation.batの説明

```
echo 
set OPENRADIOSS_PATH=C:\OpenRadioss_win64\OpenRadioss
set RAD_CFG_PATH=%OPENRADIOSS_PATH%\hm_cfg_files
set RAD_H3D_PATH=%OPENRADIOSS_PATH%\extlib\h3d\lib\win64
set KMP_STACKSIZE=400m
set PATH=%OPENRADIOSS_PATH%\extlib\hm_reader\win64;%PATH% 
set PATH=%OPENRADIOSS_PATH%\extlib\intelOneAPI_runtime\win64;%PATH%

REM DataFolderは計算に使うファイルをおいている。
REM Datafile1、Datafile2は計算に使うファイルを指す
REM Datafile1、Datafile2は計算に使うファイルを指す
REM %DataFolder%%DataFile1%にすることで、 DataFolder内にあるDataFile1を使える。

set DataFolder=C:\data\wshare\openradioss\
set DataFile1=Cell_Phone_Drop_0000.rad
set DataFile2=Cell_Phone_Drop_0001.rad


call "C:\Program Files (x86)\Intel\oneAPI\mpi\2021.7.1\env\vars.bat"
call C:\OpenRadioss_win64\OpenRadioss\exec\starter_win64.exe -i %DataFolder%%DataFile1% -np 4
call mpiexec -delegate -np 4 C:\OpenRadioss_win64\OpenRadioss\exec\engine_win64_impi.exe -i %DataFolder%%DataFile2%
```

解析を実行するバッチファイルです。赤マーカーがデータの保存フォルダ、青マーカーが解析のファイル名です。ここを書き換えることでほかのチュートリアルデータを作ることができます。  
  
convert_vtk.batの説明

```
@echo off
@setlocal enabledelayedexpansion

set num=1
set chk=Cell_Phone_DropA

pause
for %%i in (*) do (
    echo %%i | find "%chk%" >NUL
    if not ERRORLEVEL 1 (
        echo %%i | find ".vtk" >NUL
        if ERRORLEVEL 1 (
            call C:\OpenRadioss_win64\OpenRadioss\exec\anim_to_vtk_win64.exe %%i > %%i.vtk 2>&1
        )
    )
)
```

解析後のデータをParaviewで読み込みめるデータに変換を行うバッチファイルです。  
解析結果は、==Cell_Phone_DropA==001、==Cell_Phone_DropA==002、といった連番ファイルが作成されます。  
Paraviewの拡張子は、.vtkであり、変換後のファイルは、==Cell_Phone_DropA==001.vtk、==Cell_Phone_DropA==002.vtk..といった連番が作られます。

## ２．３　解析の実行

simulation.batをダブルクリックします。解析が開始します。計算は20分程度かかりました。  
解析がおわったら、covert_vtk.batをダブルクリックします。計算は10分程度かかりました。

## ３．解析結果

## ３．１　ファイルを開く

paraviewは、salomemeca2021 for windowsにParavisとして組み込まれているので、可視化結果を見れると思いトライしました。  
ファイルを開きます。Pipeline Browserを右クリックし、Openを選択します。  
ダイアログボックスが開くので、Cell_Phone_DropA..vtkをクリックします。このファイルが２で行った解析結果のデータです。

![image-3-946x1024.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3782081/1df9d916-588f-0193-e385-b093d7b112e5.png)


## ３．２　可視化したい結果の選択

ファイルを開くと、データが出てくるので、変位や応力を選ぶこともできます。

![image-4-946x1024.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3782081/c2211fac-9102-f63c-6943-9de4bf45b7e8.png)


## ３．３　解析時間の表示

解析時刻を表示させます。  
下図の説明に沿ってAnimationAttibuteDataを選択します。

![image-5-941x1024.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3782081/39cb3efa-64f9-87cb-1860-3417d0a8a508.png)


PipeLineBrowser上にAnimationAttibuteData1と表示されます。  
Prefixの欄に、Time(s):と追加して、SelectInputArrayをTimeを選択して、Applyをクリックします。  
そうすると、画面左上に、解析データの現時刻が表示されます。

![image-7-939x1024.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3782081/565c9a6d-81c8-733e-2b5a-1f9a69c295e5.png)


## ３．４　アニメーション表示

画面にある再生ボタンをクリックすると、各ステップごとの解析結果が表示されます。パソコンの使用環境によっては時間がかかるかもしれません。この画面では衝突後最後のステップの結果です。  

![image-9-939x1024.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3782081/78b441bb-c398-71d2-6f67-7d8d568a4978.png)


https://www.youtube.com/watch?v=7GvRMVLi8Cg

## ４．まとめ

この解析は、２つのものがぶつかったと単純化しているものです。実際に解析する場合は、接触時に発生した応力が妥当かは解析時の設定条件や計算手法と現物の確認が必要だと思います。  
あくまでのチュートリアルデータのためなので、理想的なデータだと思います。  
シミュレーションは、可視化された結果に影響されて計算手法にフォーカスされがちです。 計算結果を適切に使いこなすには、現物の実験手法や変形や応力などの解析結果を測定する計測知識も重要です。  
実際の解析は、メッシュ等のモデル設定や条件の見直しをすると、１回の解析に対して数回は行いますので、膨大な時間がかかります。  
実務で仕事をしている解析専任者の技術力の高さを体感しました。  
  
Paraviewの操作は、解析データ内に時刻情報があるものの、画面に表示させる方法がわからないため、有料版のChatGPTを使いながら設定を行いました。本当はチュートリアルを用いるべきですが、覚えるのに時間がかかりそうだったため、必要な部分のみ使うことにしました。  

## **番外編**：車の衝突解析チュートリアルデータ

OpenRadiossにはほかの解析データもあり、車の衝突解析もありました。  
試してみましたが１週間以上かかるもので断念しました。  
＜解析内容＞

![FwkBSIQaYAAXWN4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3782081/f9707744-a652-cd8b-fad4-4bda8fe74824.png)


＜解析時間予測＞  
CPU負荷も60%近くかかった状態で、637485s(177hr)かかる。

![FwkCGG-aUAUZBip.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3782081/a0791ed4-f806-383a-4491-03c35f532ac3.png)


＜注意書き＞  
60hoursぐらいかかるとホームページで注意書きがあり、負荷がかかる計算だった。


![FwkBJrHaEAENGV4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3782081/dd37de9a-d211-7fbf-e723-97c0c2f528e5.png)