COMSOLアプリケーション: 基本Application Builder と COMSOL Compiler を使った exe ファイル作成
COMSOL の Application Builder は,解析モデルに入力欄やボタンを付けて専用アプリを作る機能です.COMSOL Compiler は,そのアプリを exe ファイルとして配布できる形に変換する追加製品です.このページでは,両者の役割を分けて考えながら,exe ファイルを作成する流れを扱います.
目次
COMSOL でアプリケーションを作るときは,まず Application Builder でアプリの画面と操作を作ります.Application Builder は COMSOL Multiphysics に含まれる機能で,解析モデルに入力欄,ボタン,グラフなどを付けて,必要な操作だけを見せる専用アプリにできます.一方,COMSOL Compiler は,作成したアプリを exe ファイルなどのスタンドアロンアプリに変換するためのツールです.つまり,Application Builder は「GUI アプリを作る道具」,COMSOL Compiler は「作ったアプリを配布できる形にする道具」です(図1).exe ファイルにすると,COMSOL Multiphysics や COMSOL Server のライセンスがない PC でも実行できるため,社内共有,設計条件の比較,顧客への提示がしやすくなります.
図1: Application Builder と COMSOL Compiler の役割
図1に示す通り,Model Builder と Application Builder は 1 対 1 の関係です.要するに,ひとつの Model Builder で複数の Application Builder の作成は出来ないです.複数の Application Builder が必要な場合は,元となる COMSOL ファイル (*.mph) をコピーし,Application Builder を作成します.
アプリケーション作成は,Model Builder で解析モデルを完成させた後,Application Builder でアプリの画面と操作を作り,最後に COMSOL Compiler で配布用の exe ファイルへ変換する,という順番で進めます.先にモデルを安定させておくと,アプリ側で作る入力欄,グラフ,ボタンの対応関係が分かりやすくなります.
Model Builder
まず,Model Builder を使って解析モデルを作成します.Application Builder は既存モデルをアプリ化するための機能なので,この段階で物理設定,メッシュ,スタディ,結果表示が一通り動作する状態にしておきます.
- 通常の COMSOL モデルとして,Geometry,Materials,Physics,Mesh,Study を設定します.
- アプリ利用者に変更させたい値は,Parameters や Variables として分かりやすい名前で定義します.
- アプリで表示したい結果がある場合は,あらかじめ Plot Group や Table,Export などを作成しておきます.
- 代表的な条件で を実行し,計算が正常に終わることを確認します.
- モデルが意図した通りに動作したら,COMSOL ファイル (*.mph) を保存します.
Application Builder
新規作成
COMSOL モデルが完成したら,Application Builder でアプリの画面を作成します.ここでは,基本的な画面構成を自動生成し,必要に応じて後から調整する流れを説明します.
- Home > Workspace > Application Builder をクリックします.すると,アプリケーションビルダーの画面が現れます.この画面で Home > Workspace > Model Builder をクリックすると,元の Model Builder に戻れます.中央の Preview には,選択されたフォームやメソッドの内容が表示されます.
- Home > Main > New Form をクリックします.すると,Form の選択画面が現れます.Select Template から,Blank form,Single form,Basic などのテンプレートを選択できます.ここでは Basic を選択します.
- Select Template > Basic を選択し,Content をクリックします.すると,BASIC Form の作成画面が現れます.
- Select Content で,初期アプリに配置する要素を選択します.主な項目は,Inputs (入力パラメーター),Outputs (出力値),Graphics (グラフ),Ribbon buttons (リボン上のボタン) です.この段階では大まかに選び,細かい配置や文字列は後から Application Builder 本体で調整します.
- 配置したい項目を Selected 側へ追加したら,下の をクリックします.これで Basic テンプレートに基づく初期フォームが作成されます.
調整
自動生成されたフォームは,あくまで出発点です.アプリ利用者が迷わず操作できるように,入力欄,表示領域,ボタン,説明文を整理します.
- 左ペインの Forms > Main Window または作成されたフォームを選択し,Form Editor を表示します.
- 右ペインの Settings で,フォームや各部品の Text,Name,Tooltip,Size,位置などを調整します.
- 入力欄を追加したい場合は,Editor Tools や Insert Object を使い,Parameters や Variables に対応する Input を配置します.
- 結果を表示したい場合は,Graphics や Table を配置し,対応する Plot Group や Table と結び付けます.
- ボタンには Settings > Choose Commands to Run で実行するコマンドを割り当てます.既定コマンドだけで足りない処理は,後述の Method として作成します.
- を実行し,入力値の変更,計算,結果表示,ボタン操作が意図した通りに動くことを確認します.
作り直し
途中まで作成したフォームを破棄して,最初から作り直したい場合は以下のようにします.
- Application Builder 画面に入ります.
- 左の Application Builder ツリーで,自分で生成または追加した要素を削除します.主に削除対象となるのは以下です.
- Forms の下にあるフォーム,例: io,graphics,graphics1
- Methods の下にあるメソッド
- Declarations の下にある宣言
- Events の下にあるイベント
- Libraries に追加した画像や音声ファイル
- Main Window の下に作った Ribbon ボタンや File Menu 項目も,不要であれば削除します.
- 空に近い状態になったら,Home > Main > New Form からもう一度 Select Template > Basic を選択して作り直します.
[注意] Application Builder ツリーの一番上にある Inputs,Themes,Main Window 自体は基本構造なので,残っていて問題ありません.削除すべきなのは,その下に自分で生成・追加したフォーム,ボタン,メソッドなどです.
COMPILE
Application Builder でアプリが完成し, で動作確認できたら,COMSOL Compiler を使って exe ファイルを作成します.COMSOL Compiler は追加製品なので,コンパイルには利用可能なライセンスが必要です.
- 準備として,Application Builder のリボンで > をクリックし,アプリの動作を確認します.
- 意図した通りに動作したら,モデルを保存 (*.mph) します.
- Application Builder の > > をクリックします.
- 右ペインの Compiler で主な設定を行います.
表: Compiler の主な設定
| 設定項目 |
内容 |
| Directory |
exe ファイルと関連ファイルの保存先ディレクトリーを指定します. |
| Runtime |
Embed: 実行に必要な Runtime を同梱します.ファイルサイズは大きくなりますが,初回実行時のネットワーク依存を減らせます. Download: Runtime を初回実行時にダウンロードします.ファイルサイズは小さくなりますが,初回実行にネットワーク環境が必要です. |
| Platforms |
作成するアプリの実行対象 OS を選択します. |
- 設定が終わったら,Compiler 設定の上部にある をクリックします.しばらくすると,指定した Directory に exe ファイルが作成されます.
- 作成された exe ファイルを実行し,配布先で必要な画面表示,計算,結果出力ができることを確認します.
全体像
COMSOL の Application Builder では,ボタンなどのフォーム部品に「コマンド列」を割り当てて,クリック時の動作を決めます.単純な処理は既定のコマンドだけで実行できますが,モデル設定の変更や複数操作の自動化など,より細かい処理は Method として Java コードで記述します.
重要なのは,Method は「作成しただけ」では実行されない点です.作成した Method を,既存ボタンまたは新規ボタンの に追加して初めて,アプリ上の操作から実行できます(図5).
図5: 記録した Method をボタンから実行する流れ
記録する Method には,主に Application method と Model method があります.Application method はアプリのフォームやボタンから呼び出す処理に使い,Model method は Model Builder 側でモデル操作をまとめる処理に使います.アプリのボタンから実行したい場合は,通常は Application method を選択します.
Method の記録
を使うと,Model Builder や Form Editor で行った操作を Method として記録できます.ユーザーの操作を記録し,Method として保存する手順は,以下の通りです.
- Model Builder を表示している場合は,Application Builder に移ります.
- Application Builder の > > をクリックします.記録名 (例: NewCommand) と Method type を求められますので,名前を入力し,アプリから呼び出す場合は Application method を選択します.すると,COMSOL Desktop の周囲に赤枠が表示され,操作の記録が始まります.
- Model Builder または Form Editor で,記録したいクリックや設定変更を行います.Model Builder の操作を記録する場合は,Application Builder から Model Builder に移ってから操作します.
- 操作が終わったら, をクリックします.このボタンは,Model Builder 側のリボンまたは Application Builder 側のリボンから実行できます.赤枠が消えれば記録は終了です.
- 左ペインの ルート > Methods > (例: NewCommand) をクリックすると,記録された Method を確認できます.Method Editor でコードを編集することもできます.
既存ボタンから実行
記録した Method は,既存の Compute ボタンなどに追加できます.例えば,Compute の後に Method (例: NewCommand) を実行する手順は,以下の通りです.
- Application Builder で,左ペインの Forms > Main Window を選択します.
- フォーム上の Compute ボタンをクリックし,右ペインに Compute ボタンの Settings を表示します.
- Settings > Choose Commands to Run のツリーにある Methods から,追加したい Method (例: NewCommand) をダブルクリックします.すると,下の Command にその Method が追加されます.
- Compute の後に実行したい場合は,Command の並び順で Method が Compute より下にあることを確認します.順序が異なる場合は,Command リストの上下ボタンで並び替えます.
これで,アプリ上で Compute ボタンを押すと,計算後に Method (例: NewCommand) が実行されます.
新規ボタンから実行
新規にボタンを作成し,そのボタンから Method (例: NewCommand) だけを実行することも可能です.この場合は,以下の通りです.
- Application Builder で,左ペインの Forms > Main Window を選択し,Form Editor を表示します.
- ボタンを配置したい空きセルをクリックします.空きセルがない場合は,Form タブの Rows & Columns などを使って行または列を追加します.
- > > > を選択します.これで選択したセルに新しい Button が追加されます.
- 右ペインの Settings で,Text にボタン上へ表示する文字列 (例: Run NewCommand) を入力します.必要に応じて Name,Tooltip,Icon,Size なども設定します.
- 同じ Settings の Choose Commands to Run で,ツリーにある Methods > (例: NewCommand) をダブルクリックします.または,Method を選択して Run コマンドを追加します.すると,下の Command に Run NewCommand が追加されます.
- Command に不要な処理が入っていないこと,および実行順序が意図した通りであることを確認します.このボタンで Method だけを実行したい場合は,Command には NewCommand の Run だけを残します.
最後に でアプリを起動し,新しく作成したボタンを押して Method が実行されることを確認します.意図した通りならモデルを保存します.