[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[dennou-ruby:002375] Re: VArray
- To: dennou-ruby@xxxxxxxxxxx
- Subject: [dennou-ruby:002375] Re: VArray
- From: Masuo NAKANO <masuo@xxxxxxxxxxxxxxxxxx>
- Date: Wed, 27 Jul 2005 14:21:46 +0900
なかのです。
水田さん、堀之内さん、ありがとうございます。
水田さま:
> def bar(dim)
> grid = self.grid_copy
> va = grid.axis(dim).pos
> na = ( va.val[1..-1] + va.val[0..-2] ) / 2.0E0
> va_new = VArray.new( na, va.attr_copy, va.name )
>
> ではだめですか?
> attr_copy がattribute を取り出すメソッドです。
> マニュアルに載っていないんでしたかな。
http://dennou-k.gfd-dennou.org/arch/ruby/products/gphys/doc/varray.html
にはありませんでした。
そんなメソッドあるんですね。
この作戦でやると9行でした。
堀之内さま:
> > def bar(dim)
> > newgp = self[ *( [true]*dim+[1..-1,false] ) ] +
> > self[ *( [true]*dim+[0..-2,false] ) ] / 2.0
> > vax = self.axis(dim).pos
> > newgp.axis(dim).set_pos( vax[1..-1]+vax[0..-2] / 2.0 )
> > newgp
> > end
> >
> > 4行になってしまいました.
なんと、そうできますね。
なんか、NArray までばらさないと配列的な計算ができないような気がしてまし
た。
#まだ身に付いてないなぁ。。。
> > # VArray でなく Axis クラスに4則演算が欲しくなってきた...
うーん、でも軸の演算ってどういうことかよくわからなくなりそうですね。
今回の staggered grid 問題だと、本来は Axis の cell 機能を使うべきです
よね。
となると、ファイル開くときに cell なデータだと GPhys が解釈しないといけ
ないし、それ以前に、ファイルに cell データなんだぜって教えないといけない
ですね。
#こりゃ gtool なみなさまにもお願いしなきゃ。でしたね。
--
中野満寿男
九州大学大学院理学府地球惑星科学専攻
流体圏・宇宙圏科学講座 地球流体力学分野
masuo@xxxxxxxxxxxxxxxxxx