蛇島伸吾メール蛇島伸吾     (前頁)<<      >>(次頁)          (Up)

4章  要素モデル自作の方法
 4.1  要素モデル作成準備


 本章(4章) では、CommonMPを使用して海洋でのCO2吸収、及びCO2排出権と経済に関するモデルのスケルトン(骨格)を作成することに重点を置きます。
 従って、スケルトンモデルを構成する要素モデルの精度等は十分に検討しておりません。
 また、スケルトン構造としても、要素モデルの追加、接続の修正等が入る事も前提としております。
 この章では、CommonMPを使用すると、要素モデルを組み合わせることで、「海洋での生態系の構築」、「海上施肥におる植物プランクトン増殖によるCO2吸収の増加」、「我が国が海上施肥によって栽培した植物プランクトンによるCO2吸収量増大を我が国のCO2排出権として経済モデルに組み込む事へ検証モデル作成」等に比較的簡単に利用可能である事を示したいと思います。



 図4.1.1に示す様に、CommonMPでは、全体モデルは、要素モデルを組み合わせて生成されます。
 図に描かれているモデルは、必要な構成要素モデルを列挙し、それら要素モデルの関係を有効線分で結合した図として作成します。
 本例では、「生態系モデル」と「経済モデル」を、一つのモデル内で描いています。 
 本図内で、海中の生態系モデルは、主に図の下半分に描かれており、「植物プランクトン」,「動物プランクトン」,「ネクトン」,「デトリタス」,「バクテリア」等の各生物の捕食関係、及び、「海中の溶融ガス」と各生物との呼吸、「海中の栄養素成分(植物プランクトン成長用)」と植物プランクトンや「バクテリア」の関係を、有向線分で接続しています。
 一方、海上での経済モデルは、主に図の上半分に描かれており、海洋に関係すると考えられる要素として、「海上施肥」,「海上施肥生産工場」,「漁業」,「外海洋開発事業者」,「人間社会」等を列挙し、それらの間で流通する資源、製品、キャッシュ等を有向線分で接続しています。また、ここではCO2の吸収が焦点であるため、海洋モデルに関連する人間活動で排出されるCO2、ブルーカーボンによって海洋へ吸収されるCO2を「大気圏」という要素モデルを媒介して接続しています。
 これらの要素モデルの関係や、個数等は、モデル作成者が作図によって自由に変更、作成できます。


 ところで、図を作成しても、実際の数値計算を行うことは出来ません。何故ならば、本図の「要素」はただの「箱」であり、中には数値計算を行うべき論理が入っておりません。
 
   図4.1.1 全体モデルは、要素モデルを接続して生成される。 本図では、要素モデルの箱は空であり論理は何も入っていない。

 ここで、 空の要素モデルの箱の中に、論理を実装した要素モデルを設定します。
 ライブラリ管理画面から、動物プランクトンを選択して動物プランクトンの箱に設定します。設定すると、演算要素の動物プランクトンのアイコン画像が、要素モデル内に表示されます。ここで、動物プランクトンの一種であるカイアシ類を選択して設定すると、カイアシ類のアイコンが表示されます。
 ここで設定した動物プランクトン、カイアシ類の論理はダイナミックリンクライブラリ (Dynamic Link Library: DLL、動的リンクライブラリ) として提供されます。

  
   図4.1.2 要素モデルに動物プランクトンを設定する(ここでは、動物プランクトンとカイアシ類のいずれか一方を設定している)



 Microsoft Visual Studio Community 2019 の要素モデル提供用DLLはの作成は以下の様にして行います。

 @ 本ホームページからダウンロードしたソースにおいて \CommonMP\Source\HYMCO\Ocean\ 下の 「McOceanModelTemplate」フォルダーの複製を作成します
    

 A複製したしたフォルダー名称を変更し、内部のMcOceanModelTemplate.csproj のファイル名称を変更します。
   (下の例ではフォルダー名を、McOceanMYModel とし、プロジェクトファイル名を McOceanMyModel.csproj に変更)
   


 B \CommonMP\Source\HYMCO\下の 「OceanModelDebugMainPrjct.sln」を Microsoft Visual Studio Community から開きます。
   


 Cソリューションに対して、Aで作成した新しい名称のプロジェクトを追加します。
   


 D追加されたプロジェクトのプロパティ画面を開いて、DLL名称、名前空間名称を変更します(CommonMP内でユニークな値にする)
         


 E追加されたプロジェクト内のソースを開き、名前空間名称を、プロパティ画面の名前空間名称に一致させます。
   

 Fコンパイルします。

 Gここで、起動したCommonMPは、\CommonMP\Source\HYMCO\OcenDebugMain\bin\下で実行します。ディバッグモードで動作したプログラム実行体(DLL)は\CommonMP\Source\HYMCO\OcenDebugMain\bin\Debug\下に配置されます。一方、リリースモードでコンパイルした場合には、\CommonMP\Source\HYMCO\OcenDebugMain\bin\Release\ 下にDLLが生成されます。


 <★補足:1>
  必要ならば、CommonMPのデータ格納先の設定を行います。
  ディバッグモードで、CommonMPを起動させての「ファイル」−「環境定義」−「データフォルダ格納設定」を選択すると、データフォルダー格納先設定ダイアローグが表示されるので、そのダイアローグからフォルダーを設定してください。以後、自作したプロジェクト、出力結果等はこの位置の下に生成されます。
  
  
   

 <★補足:2>
   CommonMPの計算は、上流の演算要素から下流の演算要素へ順に行われていくことがデフォルトとなっています。
   (上流の演算要素がδT後の計算を出力すると、その結果を用いて下流がδT後の計算を行う。下流のδTが上流のδTよりも大きい場合には、下流は、上流の計算が下流の計算開始可能となるまで待つ「非同期計算」)
   しかしながら、海洋モデルの作成では、双方向の接続が存在する為、すべての計算は「同期型」の計算に設定する必要があります。
   この設定では、メニュー「プロジェクト管理」−「制御パラメータ―設定」から、パラメーター設定ダイアローグを開き 演算制御を「同期」とします。

   同期型に設定
    図 計算を「同期」に設定する


 次頁からは、サンプルプロジェクトを例にして、要素モデル作成の方法を具体的に説明します。


(前頁)<<      >>(次頁)

初版:2022/07/07 |


東経135.0度