趣味で計算流砂水理

Computational Sediment Hydraulics for Fun

OOPと低平地タンクモデル

更新できてなくてすみません。 なんか仕事が増えちゃいました。

低平地タンクモデル

角屋先生の低平地タンクモデルのトレースがもうちょっとで終わりそうです。

pythonで実装してますが、spyderというツールをインストールしてあげると、 必要なライブラリは大方はいるので、実行は簡単にできると思います。 WindowsMacLinuxに対応してます。

https://code.google.com/p/spyderlib/

一応、OOPで実装してます。まだ、クラスやメソッドが共通化できてませんが、 それができれば、アップしようと思います。

numpy使うと連立1次方程式が楽に解けます。

通水能モデル

角屋先生の論文によると、河道タンクでは、通水能の表現をしていました。 断面関数Gという呼び名だったと思います。

頂いた論文を見ましたが、うーん(笑)ですね。 Leap-frog法の説明も違うような気がします。 2段階混合差分法ですかね。 この呼び名も嫌いなんですが。

角屋先生、木下さん?の論文の出典もないですし・・・。 ちょっといろいろ詰め過ぎかな。 下記3点はなるべく分けて充実した議論をしたほうが良いと思います。

  • 現地データの考察
  • モデル作成と考察
  • モデル適用事例と考察

OOP

隠蔽化等

VBAをみました。 断面のデータを押し込めたほうがよいかなと思います。 あと、クラスのメンバーの隠蔽化はどうするのか気になっています。 そこらへんがGet、Let、Setのアクセサと理解してよろしいでしょうか?

スーパークラスのメンバーに、更新後の変数も入れたほうが良いかと思います。 解法を変更する場合はスーパークラスを継承するのが良いかと思います。 レビューは次の機会にでも。

With

隠蔽化とは関係ないですが、多少Withを使ったほうが書く量が減るかなと。 VBのWith文は便利だなと思います。 (文じゃなかったらごめんなさい)

 計算速度

この程度の計算であれば、計算速度の差は出ないと思います。 空間の離散点が大きく、時間積分のステップ数が多くなると効いてくるはずです。 この種の計算だと、コンストラクタの呼び出しが多くなることはないはず?なので、 オブジェクトのアクセスに対するオーバヘッドが大きくなるはずです。

終わりに

流出率、飽和雨量のキャリブレーションですか・・・。 概念に近いモデルを使って、パラメータ調整って辛いですね。 なにか無意味に思えてきます。 それこそカルマンフィルタ使えば良いのにって思います。