iRICの格子の座標を計算結果にそのまま出力するソルバー"Grid Tester"を作ってみた。

# はじめに

今回はiRICのプリプロセッサーウィンドウで作成した格子の座標と標高をそのまま計算結果に出力するソルバーを作ってみました。
作る過程の説明記事は今度作ろうと思いますが、本記事はソルバーの紹介をするものになります。

# 作った理由
## グラフウィンドウは計算結果がないと使えない
iRICで計算を行う際に格子を作成する段階で、異常値が無いか横断図や縦断図で連続で確認したり、横断図を断面ごとに画像として保存したいと思う時はありませんか？私はよくあります。

プロセッサーウィンドウでは格子点を選択して右クリックメニューから横断面ウィンドウを開くことで断面図を確認できます。
![marge.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626673/9a18775c-2e66-a96c-39a5-333f5ef7fe18.gif)

この機能では赤線と青線で前後の断面も一緒に表示してくれて、地形高もその場で編集できるので非常に便利なのですが、断面はプルダウンで選択しなければいけないうえ、スクリーンショットを連続で出力する機能もありません。

それに対しグラフウィンドウでは前後断面との比較や標高の編集はできませんが、断面をスライダーで変更でき、断面ごとのスクリーンショットだって撮れちゃいます。異常な標高になっている箇所がないか探したりするときはこちらの方が私は便利です。
![marge2.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626673/e5cd7493-a7c5-80bf-f018-d3fd08fee899.gif)

ただ、 **グラフウィンドウは計算結果がないと開けない** のです。

## いちいち計算のために条件をいれるのはめんどくさい
グラフウィンドウを使うために、Nays2DH等でとりあえず計算を回そうとしたりしても、適当に条件をいれると計算が発散したりして最後まで計算できないことが多々あります。

本当にただ計算結果が欲しいだけの時にこれは結構めんどくさいです。

なので今回のソルバーを作りました。

# インストール方法

Grid TesterはiRICのインストーラーからはインストールできないので、ファイル一式をiRICのソルバーフォルダに置く必要があります。
ソースコードやexeなどの必要なファイルは私のGitHubに置いてあります。

https://github.com/starfieldKt/iRIC_Grid_tester

すでにiRICのver.4がインストールされている状態を想定して解説します。

1. GitHubの[リポジトリ](https://github.com/starfieldKt/iRIC_Grid_tester)からzipでダウンロードするか、ローカルにクローンして必要なファイルを入手してください。（zipでダウンロードするほうが簡単なので推奨です。）リポジトリのクローンの仕方等は[こちらの記事](https://qiita.com/Kazutake/items/129972790c4d7bea1055)を参考にしました。

   

1.  ファイルを入手したら(zipは解凍しておく)`install`フォルダを、iRICがインストールされているフォルダの`private`にある`solvers`フォルダ（デフォルトでインストールしていたら C:\Users\ユーザー名\iRIC_v4\private\solvers )にコピーします。
1.  コピーしたinstallフォルダは好きな名前に変えておいてください。(必須ではないです。)
1.  iRICを起動して`新しいプロジェクト`から出てくるソルバー一覧に追加されていればインストール完了です。

:::note
iRIC_v4\solversにコピーしてもインストールできますが、このフォルダはインストーラーからインストールするものが保存されるフォルダなので、自作の格子生成ツールは\iRIC_v4\private\solversに保存しましょう。
:::

# 機能
機能という機能はほとんどありません。

計算条件の設定も必要ありません。

格子がある状態で計算を実行すると格子点の座標と標高を計算結果として出力するだけです。

## おまけ機能
上記の機能だけだとあまりに寂しいので、水路全体に一定の水位を与えるおまけ機能があります。
イメージとしては津波などでじわじわ水位が変化していく感じです。

一定の高さに対して水路のどの部分が水に浸かるかを確認するのに使えると思います。
じわじわ水路が沈んで行くのを見るのも楽しいです。

いずれ拡張する予定もありますが、今は水面勾配も何も与えずただ時間ごとに決まった水位を与えることしかできません。

# 使い方

1. ソルバーとして`Grid_Tester`を選択します。
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626673/6f4f8987-5967-d985-66f0-ef2f4419fdc0.png)
2. 格子を読み込むか作成します。
   ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626673/3d086b4b-c99c-9983-fc99-49cdcbf220df.png)
3. 計算を実行します。
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626673/de931b7b-45cc-a3d3-b32e-40a008c36cdc.png)
4. 計算結果が出力されます。
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626673/31396962-3fff-ca7f-0910-f48eab9602a7.png)

以上です。
グラフ表示の方法等はiRICのマニュアルをご確認ください。

https://iric-gui-user-manual.readthedocs.io/ja/v4_jp/05/02_chart.html

## おまけ機能の使い方

1. 格子作成後、計算条件を入力します。
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626673/a4d1b360-c493-81f7-8142-bdad281bd803.png)
2. 計算を実行します。
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626673/de931b7b-45cc-a3d3-b32e-40a008c36cdc.png)
3. 計算結果が出力されます。
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626673/e2941711-108e-859b-ee8d-93ed02d69bf1.png)
4. 計算結果は鳥観図可視化ウィンドウで見ると便利です。
    ![marge3.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626673/f06b0ba8-7742-b073-b559-750f3f332061.gif)
以上です。