4章 
 要素モデル自作の方法
 4.6
 「細菌」要素モデル
     〜 海洋モデル用要素モデルの作成例(サンプルプロジェクトプレジェクト:「McOceanSampleModels.csproj 
」)  〜
  
 「細菌」要素モデルは、デトリタスの分解者としての機能を果たします。     // 受信可能なパターン         // 分解・腐敗・消化  = 
      デトリタスを分解         // 
      感染(ウイルス感染)<−−将来用         // 
      死         // 
      海洋分解物が肥料要素となる         // 
      感染(他の生物への感染)<−−将来用
 分解した生成物は、最終的に栄養素として海中に溶け込みます。
  
  図 4.6.1 「細菌」要素モデルと他の要素モデルの接続(細菌によって分解された栄養成分が再び循環される 
)
 細菌要素モデルへの接続は、図4.6.1に示す様に
<入力接続>
 (1)デトリタスを取り込み分解する(一方向接続)
 (2)呼吸の為O2を取り込みCO2を排出する(双方向接続)
<出力接続>
 (1)デトリタスを分解した成分に含まれる、窒素、リン、珪素、鉄分を栄養成分に供給(一方向接続)
 (2)動物プランクトン、小魚から捕食される(双方向接続)
ソースコード:4.6.1  ファクトリークラスでの、送受信パターン部設定部の例
  
     
       
    
      {
        // 
      呼吸
        
      McTranInfoPattern csTrnPtn =
  
        MzFlowObjBaseFactory.CreateFlow(MzOceanBaseDefine.BREATHING, 
      csModelKind);
        
      csRtnCellPrptyDt.AddReceivePattern(csTrnPtn);    // 
      受信可能パターンの追加
        csTrnPtn = 
      MzFlowObjBaseFactory.CreateFlow(MzOceanBaseDefine.DECOMPOSE, 
      csModelKind);
        
      csRtnCellPrptyDt.AddReceivePattern(csTrnPtn);  // 受信可能パターンの追加
        //csTrnPtn =
  
       MzFlowObjBaseFactory.CreateFlow(MzOceanBaseDefine.INFECTION, 
      csModelKind);
        
      //csRtnCellPrptyDt.AddReceivePattern(csTrnPtn);  // 
      受信可能パターンの追加
    }
    // 
      送信パターンの設定
    
      {
        // 
      被捕食:プランクトンから捕食される
        
      McTranInfoPattern csTrnPtn =  
      MzFlowObjBaseFactory.CreateFlow(MzOceanBaseDefine.PREDATION, 
      csModelKind);
        
      csRtnCellPrptyDt.AddSendPattern(csTrnPtn);  // 送信可能パターンの追加
        csTrnPtn = 
      MzFlowObjBaseFactory.CreateFlow(MzOceanBaseDefine.EXCRETION_DEATH, 
      csModelKind);
        
      csRtnCellPrptyDt.AddSendPattern(csTrnPtn);    // 
      送信可能パターンの追加
        csTrnPtn = 
      MzFlowObjBaseFactory.CreateFlow(MzOceanBaseDefine.BCT_FERTILIZER, 
      csModelKind);
        
      csRtnCellPrptyDt.AddSendPattern(csTrnPtn);    // 
      送信可能パターンの追加
        //csTrnPtn =
 
        MzFlowObjBaseFactory.CreateFlow(MzOceanBaseDefine.INFECTION, 
      csModelKind);
        
      //csRtnCellPrptyDt.AddSendPattern(csTrnPtn);  // 
      受信可能パターンの追加
    
} 
「細菌」要素モデルは以下のような計算を行います。
      *モデル全体構造作成を優先していますので、ここの論理は不正確です。後ほど修正していく予定です。(知識のある方は、要素モデルを自作して、本サンプルと交換してください。)
1) 細菌はデトリタスに付着しているため、一部は、デトリタスの沈降とともに深海部へ沈降する。
2) 捕食したデトリタスのα%が細菌の増殖に使用される。
   捕食したデトリタスの(100−)%が、生命維持のために使用され、分解されて、植物プランクトンの栄養素となる。
   尚、αは水温に影響される。
3) 死亡した細菌は分解して、植物プランクトンの栄養素となる。
   (死亡は、酸素不足、デトリタス不足、及び一定比率で発生する)
4) 次回のデトリタス要求量は 自分重量*(β+α)
    α、βは共に水温に依存
   
   *2022/07/23時点で、水圧に対する依存性は考慮していません。
<テスト>
 制作した栄養成分モデルのテストを行います。
     (*注意) :ユニットテストは別途おこないますが、ここではユニットテストの記述は省きます。
 
  図4.6.2 テストの為、細菌が分解した栄養成分が還元されるか否かを調べる
  
 
  図4.6.3 デトリタス分解による栄養分のフィードバック有無の違いによる栄養素成分(窒素)のシミュレーション結果
 
 図4.6.4 デトリタス分解による栄養分のフィードバック有無の違いによる植物プランクトンのシミュレーション結果
 図4.6.2〜に 「細菌」が分解した「デトリタス」を「栄養成分」へフィードバックする場合と、そうでない場合を比較してみます。
 図4.6.3に示す通り、フィードバックがない場合には海上施肥時に一時的に栄養成分が増えるものの、植物プランクトンに消費されて直ちに無くなります。一方フィードバックが存在する場合には、各層に対して(植物プランクトンが生育している表層混合層を除く)少しづつ、栄養素成分が増えています。
 また、植物プランクトンは、栄養分のフィードバックが存在する方が多く成長し、施肥直前の栄養分不足時にも一定量の植物プランクトンが生育しています。
初版:2022/07/23 |