メインコンテンツに移動

途中で計算

途中で計算してから作図

数値データが全部データファイルに入っているとは限りませんね.そこで,定義されているデータから何かを計算し,それを作図することができるにゃ.

このCalculatorフィルターを使うにゃ.この例では,元のデータがbody.pvdだにゃ.んでCalculatorでスカラー値をゲットするにゃーーーーー(あ?ベクトルんとこ選んだらフィルターの出力がベクトルになるのじゃ.それでよけりゃーそーするにゃーーーーー)

あたりみゃーだが,式入れそうなところに計算式をかきたまへ

だーかーらー,sqrt(U.U) とかかけばいーわけよ

計算した出力は,【Result Array Name】として使うことができるにゃ.この例ではAHOデータにしちまってるぞこりゃ

んでApplyしたら,その下のContourで使えるようになってるんだにゃ:

 

おまえ,ベクトルを電卓で入力してみろよ

これは

この辺の謎の iHat などが,基底ベクトル\({\boldsymbol e}_1\), \({\boldsymbol e}_2\),\({\boldsymbol e}_3\)である

だからまあ,多くの場合,かけるのである. 

この例ではさらに,Result Array Name を, VTKで定義されているArray Name と同じものを使っている.すると,大混乱するのではなく,Array Nameの値が,式で計算されるやつと交換される.

ほんだば, MassFluxとは

計算式に N*U とか書いたら,数密度と流速の積じゃけん,ますフラックスになるとよ(無次元化してりゃ分子質量は1じゃけん,こいでよか)

面白いから微分してみる

ComputeDerivativesでは微分ができる. でも何を何で微分するんだろ〜

KitWareの申しようによれば,

  • 入力関数は,スカラーとベクトルから選びたまい. お前が選んだ量をそれぞれ f, u と表そう
  • 出力できるのは次のものである
    • ベクトル値  計算しない, grad f, rot u の3択
    • テンソル値   計算しない, ∂ u_i / ∂ x_j, (∂ u_i / ∂ x_j + ∂ u_j / ∂ x_i )/2 の3択

だそうだ.

ってことはですね,テンソル計算してTraceができたら div u も計算できるわけねー

・・・って,Traceどうするのfuck

てゆうかtensorの成分がわかんねーぞコラ. CouetteFlowなんだから,結果から考えてみる

  • T[0]      d u / d X かな.ほとんどゼロだが, u の加減速にちゃんと反応している
  • T[1]      d u / d Y みたいだ.だいたい0.05 くらいになっており,与えたデータと符合している
  • T[2]      d u / d Z か,  d w / d X  めっちゃくちゃ0   そりゃ2Dデータだからなー.ということは, これ d u / d Z だ!
  • T[3]      d v / d X    ±0.02くらいだ
  • T[4]      d v  / dY    ±0.02くらいだ
  • T[5]      d v  / dZ  めっちゃくちゃ0
  • T[6]      d w / dX    ±0.02くらいだ
  • T[7]      d w / dY    ±0.02くらいだ
  • T[8]      d w / dZ  めっちゃくちゃ0

ふーん.で,この成分を足し合わせるとかできるのか?あいやー,今の所,tensorをどうこうできるフィルターは,なさそうである.

死ねぼけ

で,思いついたんだが, U_U_1とかベクトルの要素はスカラーとしても使えるのだから,そいつのgradientを取ったら良いのでは?ほいたら, ベクトルとして

     gradient_U1_1 gradent_U1_2 gradient_U1_3 ,.... 

ってな感じでベクトルの要素が取れるわけよ.

そしたらモッ発CALCULATEフィルターでそいつらの和を計算したら div U の出来上がり〜 でよくねえか