Yamamoto's Laboratory
 
 
加速空洞
 
アプリケーション
  基本
 
 
 
 
 
 
 
 
 
 
 
 
 
研究内容 加速器 COMSOL アプリケーション:基本

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 は既存モデルをアプリ化するための機能なので,この段階で物理設定,メッシュ,スタディ,結果表示が一通り動作する状態にしておきます.

  1. 通常の COMSOL モデルとして,Geometry,Materials,Physics,Mesh,Study を設定します.
  2. アプリ利用者に変更させたい値は,Parameters や Variables として分かりやすい名前で定義します.
  3. アプリで表示したい結果がある場合は,あらかじめ Plot Group や Table,Export などを作成しておきます.
  4. 代表的な条件で Compute を実行し,計算が正常に終わることを確認します.
  5. モデルが意図した通りに動作したら,COMSOL ファイル (*.mph) を保存します.

Application Builder

新規作成

COMSOL モデルが完成したら,Application Builder でアプリの画面を作成します.ここでは,基本的な画面構成を自動生成し,必要に応じて後から調整する流れを説明します.

  1. Home > Workspace > Application Builder をクリックします.すると,アプリケーションビルダーの画面が現れます.この画面で Home > Workspace > Model Builder をクリックすると,元の Model Builder に戻れます.中央の Preview には,選択されたフォームやメソッドの内容が表示されます.
  2. Home > Main > New Form をクリックします.すると,Form の選択画面が現れます.Select Template から,Blank form,Single form,Basic などのテンプレートを選択できます.ここでは Basic を選択します.
  3. Select Template > Basic を選択し,Content をクリックします.すると,BASIC Form の作成画面が現れます.
  4. Select Content で,初期アプリに配置する要素を選択します.主な項目は,Inputs (入力パラメーター),Outputs (出力値),Graphics (グラフ),Ribbon buttons (リボン上のボタン) です.この段階では大まかに選び,細かい配置や文字列は後から Application Builder 本体で調整します.
  5. 配置したい項目を Selected 側へ追加したら,下の Done をクリックします.これで Basic テンプレートに基づく初期フォームが作成されます.

調整

自動生成されたフォームは,あくまで出発点です.アプリ利用者が迷わず操作できるように,入力欄,表示領域,ボタン,説明文を整理します.

  1. 左ペインの Forms > Main Window または作成されたフォームを選択し,Form Editor を表示します.
  2. 右ペインの Settings で,フォームや各部品の Text,Name,Tooltip,Size,位置などを調整します.
  3. 入力欄を追加したい場合は,Editor Tools や Insert Object を使い,Parameters や Variables に対応する Input を配置します.
  4. 結果を表示したい場合は,Graphics や Table を配置し,対応する Plot Group や Table と結び付けます.
  5. ボタンには Settings > Choose Commands to Run で実行するコマンドを割り当てます.既定コマンドだけで足りない処理は,後述の Method として作成します.
  6. Test Application を実行し,入力値の変更,計算,結果表示,ボタン操作が意図した通りに動くことを確認します.

作り直し

途中まで作成したフォームを破棄して,最初から作り直したい場合は以下のようにします.

  1. Application Builder 画面に入ります.
  2. 左の Application Builder ツリーで,自分で生成または追加した要素を削除します.主に削除対象となるのは以下です.
    • Forms の下にあるフォーム,例: io,graphics,graphics1
    • Methods の下にあるメソッド
    • Declarations の下にある宣言
    • Events の下にあるイベント
    • Libraries に追加した画像や音声ファイル
  3. Main Window の下に作った Ribbon ボタンや File Menu 項目も,不要であれば削除します.
  4. 空に近い状態になったら,Home > Main > New Form からもう一度 Select Template > Basic を選択して作り直します.

[注意]  Application Builder ツリーの一番上にある Inputs,Themes,Main Window 自体は基本構造なので,残っていて問題ありません.削除すべきなのは,その下に自分で生成・追加したフォーム,ボタン,メソッドなどです.

COMPILE

Application Builder でアプリが完成し,Test Application で動作確認できたら,COMSOL Compiler を使って exe ファイルを作成します.COMSOL Compiler は追加製品なので,コンパイルには利用可能なライセンスが必要です.

  1. 準備として,Application Builder のリボンで Test > Test Application をクリックし,アプリの動作を確認します.
  2. 意図した通りに動作したら,モデルを保存 (*.mph) します.
  3. Application Builder の Home > Main > Compiler をクリックします.
  4. 右ペインの Compiler で主な設定を行います.
    表: Compiler の主な設定
    設定項目 内容
    Directory exe ファイルと関連ファイルの保存先ディレクトリーを指定します.
    Runtime Embed: 実行に必要な Runtime を同梱します.ファイルサイズは大きくなりますが,初回実行時のネットワーク依存を減らせます.
    Download: Runtime を初回実行時にダウンロードします.ファイルサイズは小さくなりますが,初回実行にネットワーク環境が必要です.
    Platforms 作成するアプリの実行対象 OS を選択します.
  5. 設定が終わったら,Compiler 設定の上部にある Compile Application をクリックします.しばらくすると,指定した Directory に exe ファイルが作成されます.
  6. 作成された exe ファイルを実行し,配布先で必要な画面表示,計算,結果出力ができることを確認します.

Method の取得と実行

全体像

COMSOL の Application Builder では,ボタンなどのフォーム部品に「コマンド列」を割り当てて,クリック時の動作を決めます.単純な処理は既定のコマンドだけで実行できますが,モデル設定の変更や複数操作の自動化など,より細かい処理は Method として Java コードで記述します.

重要なのは,Method は「作成しただけ」では実行されない点です.作成した Method を,既存ボタンまたは新規ボタンの Choose Commands to Run に追加して初めて,アプリ上の操作から実行できます(図5).

図5: 記録した Method をボタンから実行する流れ

記録する Method には,主に Application method と Model method があります.Application method はアプリのフォームやボタンから呼び出す処理に使い,Model method は Model Builder 側でモデル操作をまとめる処理に使います.アプリのボタンから実行したい場合は,通常は Application method を選択します.

Method の記録

Record Method を使うと,Model Builder や Form Editor で行った操作を Method として記録できます.ユーザーの操作を記録し,Method として保存する手順は,以下の通りです.

  1. Model Builder を表示している場合は,Application Builder に移ります.
  2. Application Builder の Home > Main > Record Method をクリックします.記録名 (例: NewCommand) と Method type を求められますので,名前を入力し,アプリから呼び出す場合は Application method を選択します.すると,COMSOL Desktop の周囲に赤枠が表示され,操作の記録が始まります.
  3. Model Builder または Form Editor で,記録したいクリックや設定変更を行います.Model Builder の操作を記録する場合は,Application Builder から Model Builder に移ってから操作します.
  4. 操作が終わったら,Stop Recording をクリックします.このボタンは,Model Builder 側のリボンまたは Application Builder 側のリボンから実行できます.赤枠が消えれば記録は終了です.
  5. 左ペインの ルート > Methods > (例: NewCommand) をクリックすると,記録された Method を確認できます.Method Editor でコードを編集することもできます.

既存ボタンから実行

記録した Method は,既存の Compute ボタンなどに追加できます.例えば,Compute の後に Method (例: NewCommand) を実行する手順は,以下の通りです.

  1. Application Builder で,左ペインの Forms > Main Window を選択します.
  2. フォーム上の Compute ボタンをクリックし,右ペインに Compute ボタンの Settings を表示します.
  3. Settings > Choose Commands to Run のツリーにある Methods から,追加したい Method (例: NewCommand) をダブルクリックします.すると,下の Command にその Method が追加されます.
  4. Compute の後に実行したい場合は,Command の並び順で Method が Compute より下にあることを確認します.順序が異なる場合は,Command リストの上下ボタンで並び替えます.

これで,アプリ上で Compute ボタンを押すと,計算後に Method (例: NewCommand) が実行されます.

新規ボタンから実行

新規にボタンを作成し,そのボタンから Method (例: NewCommand) だけを実行することも可能です.この場合は,以下の通りです.

  1. Application Builder で,左ペインの Forms > Main Window を選択し,Form Editor を表示します.
  2. ボタンを配置したい空きセルをクリックします.空きセルがない場合は,Form タブの Rows & Columns などを使って行または列を追加します.
  3. Form > Insert Object > Input > Button を選択します.これで選択したセルに新しい Button が追加されます.
  4. 右ペインの Settings で,Text にボタン上へ表示する文字列 (例: Run NewCommand) を入力します.必要に応じて Name,Tooltip,Icon,Size なども設定します.
  5. 同じ Settings の Choose Commands to Run で,ツリーにある Methods > (例: NewCommand) をダブルクリックします.または,Method を選択して Run コマンドを追加します.すると,下の Command に Run NewCommand が追加されます.
  6. Command に不要な処理が入っていないこと,および実行順序が意図した通りであることを確認します.このボタンで Method だけを実行したい場合は,Command には NewCommand の Run だけを残します.

最後に Test Application でアプリを起動し,新しく作成したボタンを押して Method が実行されることを確認します.意図した通りならモデルを保存します.

ページ作成情報



no counter