Thursday, October 22, 2015

Нюфлот ба Тэкфлотын зарим нэг чухал алхамууд /Important tips to visualize with Gnuplot and Tecplot/

Нюфлот ба Тэкфлотын зарим нэг чухал алхамууд

Сүвэрхэг орчин дундуурх шингэний хөдөлгөөн, түүний тооцооллын тогтворгүйжилт

ТЭКФЛОТ

TECPLOT бол нилээн эрт үеэс Тооцон бодох шингэний динамик болон физикийн судалгааны үр дүнгүүдийн графо-дүрслэлийг хийхэд зориулагдан хөгжиж ирсэн арилжааны програм юм. Ашиглахад хялбар бөгөөд оролтын мэдээний формат нь бичихэд хялбар байдаг учир элдэв төрлийн шилжүүлэг шаардлагагүй байдаг. Мэдээгээ ASCII форматаар биччихвэл Тэкфлотын өөрийнх нь хувиргагчаар мэдээг бинари мэдээлүү хөрвүүлчихнэ. Дараагийн жишээгээр та бүхэнд ASCII форматаар бичигдсэн мэдээг үзүүлье.

 TITLE="Simple data File"  
 Variables="X" "Y"  
 ZONE I=4 F=POINT  
 1 1  
 2 1  
 2 2  
 1 2  
 TEXT X=10 Y=90 T="Simple text"  
Энд TITLE нь мэдээний гарчгийг өгөх ба гарчиг нь давхар зартиг дунд байна. Үүний дараа мэдээний хувьсагчууд байх ба эдгээрийг мөн л VARIABLES= гэсэн үгний араас давхар зартиганд тус тусад нь хийж өгнө.
Хувьсагч бүрийг хооронд нь хоосон зайгаар эсвэл таслалаар тусгаарлаж өгнө. Мөн мэдээнийхээ төрлийг тогтоож өгнө (Дээрх тохиолдолд цэгэн мэдээ байх учир F=POINT гэжээ).

За хэрхэн энэ форматыг бичих тухай жижиг фортран кодны хэсгийг харъя.

1:     write(2,*)'VARIABLES =X, Y, U, V, R'  
2:     write(2,*)'ZONE ','I=',nx+1,'J=',ny+1,',','F=BLOCK'  
3:     do j=0,ny  
4:     write(2,*)(i/float(ny),i=0,nx)  
5:     end do  
6:     do j=0,ny  
7:     write(2,*)(j/float(ny),i=0,nx)  
8:     end do  
9:     do j=0,ny  
10:     write(2,*)(u(i,j),i=0,nx)  
11:     end do  
12:     do j=0,ny  
13:     write(2,*)(v(i,j),i=0,nx)  
14:     end do  
15:     do j=0,ny  
16:     write(2,*)(dho(i,j),i=0,nx)  
17:     end do  
Дээрх кодны хэсэгт х ба у тэнхлэг дээр U хэвтээ хурд, V босоо хурд, R шингэний нягт зэргийг бичихээр болов. I болон J нь хэвтээ ба босоо чиглэл дахь мэдээний тоо хэмжээг харуулна. Энэ кодоор хэвлэгдсэн мэдээний хэсгийг доорхоор авч үзье.

  VARIABLES =X, Y, U, V, R  
  ZONE I=     257 J=    1025 ,F=BLOCK  
  0.0000000E+00 9.7656250E-04 1.9531250E-03 2.9296875E-03 3.9062500E-03  
  4.8828125E-03 5.8593750E-03 6.8359375E-03 7.8125000E-03 8.7890625E-03  
  9.7656250E-03 1.0742188E-02 1.1718750E-02 1.2695312E-02 1.3671875E-02  
  1.4648438E-02 1.5625000E-02 1.6601562E-02 1.7578125E-02 1.8554688E-02  
  1.9531250E-02 2.0507812E-02 2.1484375E-02 2.2460938E-02 2.3437500E-02  
  2.4414062E-02 2.5390625E-02 2.6367188E-02 2.7343750E-02 2.8320312E-02  
  2.9296875E-02 3.0273438E-02 3.1250000E-02 3.2226562E-02 3.3203125E-02  
  3.4179688E-02 3.5156250E-02 3.6132812E-02 3.7109375E-02 3.8085938E-02  
  3.9062500E-02 4.0039062E-02 4.1015625E-02 4.1992188E-02 4.2968750E-02  
  4.3945312E-02 4.4921875E-02 4.5898438E-02 4.6875000E-02 4.7851562E-02  
  4.8828125E-02 4.9804688E-02 5.0781250E-02 5.1757812E-02 5.2734375E-02  
  5.3710938E-02 5.4687500E-02 5.5664062E-02 5.6640625E-02 5.7617188E-02  
  5.8593750E-02 5.9570312E-02 6.0546875E-02 6.1523438E-02 6.2500000E-02  
  6.3476562E-02 6.4453125E-02 6.5429688E-02 6.6406250E-02 6.7382812E-02  
  6.8359375E-02 6.9335938E-02 7.0312500E-02 7.1289062E-02 7.2265625E-02  
  7.3242188E-02 7.4218750E-02 7.5195312E-02 7.6171875E-02 7.7148438E-02  
  7.8125000E-02 7.9101562E-02 8.0078125E-02 8.1054688E-02 8.2031250E-02  
Энэ тоон мэдээ нь доошоо R-ийн утгыг дуустал их олон мөр үргэлжлэх болно. Энэ мэдээгээр байгуулагдаж хөдөлгөөнд оруулсан үр дүнг дараах зургаар харуулъя.

Тэкфлот хэрэглэхэд маш энгийн боловч лицензгүй хувилбарыг нь олж авах хэцүү байж магадгүй. Надад байгаа хуучин хувилбарыг авахыг хүсвэл хуваалцах болно. 
Тэк дээр тэгшитгэлээр зарим нэг параметрүүдийг ачаалсан мэдээний өгөгдлүүдийг ашиглан бодох боломжтой. Жишээ нь хурдны хэвтээ ба босоо бүрдүүлэгчийн мэдээ байгаа бол дараах байдлаар хурдны утгыг тодорхойлж болно.

{vc}=sqrt({u}**2+{v}**2)


НЮФЛОТ

Нюфлотын тухай анхны мэдэгдэхүүн өгөх олон бичлэгийг нюфлот гэсэн шошгон дээр дарснаар бүгдийг нь олох боломжтой. Энд зарим нэг кодуудыг, оролтын мэдээний хагастай, зурагдсан графиктай оруулъя.
Олон тоон мэдээний файлаас нэг график үүсгэх код:



1:   # this script for time evalution of variuos coeff of ELBM  
2:   # plot on single field cd, cl, cp, vp  
3:   reset  
4:   set term pngcairo mono enhanced size 700,500  
5:   set output 'PointVel.png'  
6:   set title 'Vertical velocity comparison on control point (130,140) at Re=21400'  
7:   set xlabel 'time (s)'  
8:   set ylabel 'Vertical velocity'  
9:   set xrange [2:5]  
10:   set yrange [-0.22:0.35]  
11:   plot '130.dat' u 1:5 w lp ls 1 ti 'Present study', \  
12:     '130c.dat' u 1:2 w lp ls 5 ti 'Ref.[7] Smagorinsky model', \  
13:        '130l.dat' u 1:2 w lp ls 6 ti 'Ref.[7],Ref.[11] LES model'  
14:   set term win  
15:   unset output  
Дээрх код нь ****.p гэсэн нэртэйгээр хадгалагдаж gnuplot-ийн консоль дээр >load '****.p' гэж дуудагдах ёстой. # өмнө нь бичсэн бол тайлбар гэж ойлгоно. set term png гэвэл өнгөт png зурган үр дүнг гаргана. pngcairo mono enhanced size 700,500 гэсэн болхоор хар цагаанаар 700 харьцах нь 500 гэсэн хэмжээтэй png зургийг хэвлэж өгөх болно. 11-р мөрнөөс яг график зурах комманд эхлэх ба эхний файл нь 130.dat гэдэг файл байх ба үүний 1 ба 5-р баганаар графикийг байгуулна гэж бичжээ. кодууд нь бүтэн үгний эхний үсгүүдийн товчлолоор бичигддэг болно. Жишээ нь w lp гэдэг нь with linepoints гэсэн үг болно. За графикаа харъяа. 

Хар өнгөтөөр нь харуулав.
Олон график нэг талбарт зурах код:




1:  # gnuplot script for a file 'uvely.dat'  
2:   reset  
3:   set term png size 1000,500  
4:   set output 'vel_long.png'  
5:   set multiplot layout 1,2 title 'Сүвэрхэг орчин дотуурх Хөндийн урсгал. Дарсийн тоо Da=10e+4'  
6:   set tmargin 3  
7:   set title 'Босоо тэнхлэг дахь хурдны хэвтээ бүрдүүлэгч'  
8:   set xrange [-0.41:1]  
9:   plot 'uvely100.dat' u 2:1 w lp t 'Re=1000',\  
10:   'uvely.dat' u 2:1 w lp t 'Re=400',\  
11:   'lidRe1000.dat' u 1:2 w p t 'Ref.[8] Re=1000',\  
12:   'lidRe400.dat' u 1:2 w p t 'Ref.[8] Re=400'  
13:   set title 'Хэвтээ тэнхлэг дахь хурдны босоо бүрдүүлэгч'  
14:   set xrange [0:1]  
15:   plot 'vvelx100.dat' u 1:2 w lp t 'Re=1000',\  
16:   'vvelx.dat' u 1:2 w lp t 'Re=400',\  
17:   'LivRe1000.dat' u 1:2 w p t 'Ref.[8] Re=1000',\  
18:   'LivRe400.dat' u 1:2 w p t 'Ref.[8] Re=400'  
19:   unset multiplot  
20:   set term win  
21:   unset output  
Дээрх код нь нэг талбарыг хоёр хувааж хэвтээ байрлалаар цуваан хоёр графикийг зурж байгаа юм. set multiplot гэдэг нь нэг талбарт олон график зурах боломжийг олгож layout 1, 2 гэдэг нь нэг мөр хоёр баганатай байхыг зааж өгнө. Энэ кодонд 8 ширхэг тоон мэдээлэл агуулсан файл ашиглагдсан байна. 
Нэг чухал зүйл нь Тэкфлот дээр крилл үсгийн фонд танидаггүй бол нюфлот дээр ямарч асуудал байхгүй монголоор чөлөөтэй бичиж тэмдэглэж болно. Тэкфлот дээр монголоор ингэж л бичих боломжтой. 



Графо-Дүрслэлийн тухай нийтлэлүүд

No comments:

Post a Comment