TRNSYS18で大規模モデルを扱う

プロジェクトの規模が大きくなると、TRNSYSが扱えるデータ数の上限を超えてしまうことがあります。

上限値は標準で十分な余裕をとって設定されているため普段はあまり気にする必要はありません。

とはいえ、使用するコンポーネントの種類や数に因ってはエラーが発生します。

プロジェクトで扱えるデータの上限を超えた例

データの上限を超えると、計算実行時にエラーが発生します。1つのプロジェクトで数百個のコンポーネントを並べると次のようなエラーが発生することがあります。

エラー例1

*** Fatal Error at time : 0.000000
Generated by Unit : Not applicable or not available
Generated by Type : Not applicable or not available
TRNSYS Message 46 : The total number of PARAMETERs in the entire simulation has exceeded the maximum number of parameters allowed by TRNSYS. Reduce the number of required parameters by eliminating unnecessary TYPES if possible or increase the limit on the number of parameters allowed.
Reported information : Error 46

和訳)
シミュレーション全体のPARAMETER数の合計が、TRNSYSで許容されるパラメータ数の上限を超えました。可能であれば不要なtypeを削除して必要なパラメータ数を減らすか、パラメータ数の上限を増やしてください。

エラー例2

*** Fatal Error at time   :         0.000000
    Generated by Unit     : Not applicable or not available
    Generated by Type     : Not applicable or not available
    TRNSYS Message      4 : The total number of OUTPUTS in your simulation exceeds the maximum possible number of TRNSYS outputs. You can either decrease the number of OUTPUTS in your simulation or you may increase the maximum number of OUTPUTS that TRNSYS will accept by modifying that parameter nMaxOutputs in the file TrnsysConstants.f90. You will need to recompile and relink the trndll.dll
    Reported information  : the maximum number of outputs is currently set to 6000. The maximum was reached while reserving output space for UNIT 580. Please increase the value of nMaxOutputs by 20 for each UNIT that generated this error.

和訳)
シミュレーションのOUTPUTSの合計数がTRNSYSの出力可能な最大数を超えています。シミュレーションのOUTPUTS数を減らすか、TrnsysConstants.f90のパラメータnMaxOutputsを変更して、TRNSYSが受け付けるOUTPUTSの最大数を増やしてください。trndll.dllの再コンパイルと再リンクが必要です。

1つのプロジェクト内で扱えるParameterの上限は4000,Outputの上限は6000に設定されています。この例では多数のコンポーネントを並べたため、その上限を超えています。

対策

エラーメッセージにもあるように、取れる対策は単純に2つです。

  • コンポーネントの総数を減らす
  • Parameter、Outputの上限を増やす

前者については、コンポーネントの構成を工夫して減らせればそれに超したことはありません。ですが、そもそも計算に必要なコンポーネントを並べているので、それを減らすのはなかなか難しいですよね?

後者のParameter、Outputの上限を増やす方が現実的ですが、こちらはTRNSYS本体(計算エンジン)の再構築(リビルド)が必要です。

TRNSYSには幸いなことにソースコード一式が添付します。そのソースコードを書き換えて上限を増やして再構築を行います。(詳しくはドキュメント「7.4. Programming Reference」を参照)

図はドキュメントの抜粋です。ここでParameterの上限は4000,Outputの上限は6000に定義されていることが確認出来ます。

7.4. Programming Reference

これらの値を大きな値へ変更して再構築(リビルド)します。

具体的にはエラーメッセージで示されているTrnsysConstants.f90(”C:\TRNSYS18\SourceCode\Kernel\TrnsysConstants.f90″)を編集して再構築します。

再構築(リビルド)については、専門的な話になるので詳しくは触れません。FORTRANコンパイラを用意してTRNSYS本体の作り直しを行います。

普段FORTRANなどの開発ツールに慣れていないと、なかなかハードルの高い作業が待ち構えています。

もし、上記のようなエラーに遭遇したら、まずはサポート窓口へご相談ください。

動作環境

以下の環境で動作を確認しています。

  • Windows11 Pro(64bit, 22H2)
  • TRNSYS18.05.0001(64bit)
  • Intel Fortran compiler 2023.2(OneAPI)
  • Visual Studio Professional 2019
Pocket

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です