Sunday, October 9, 2016

Эрдмийн ажлын зураг, графикийг нээлттэй эх үүсвэр ашиглаж боловсруулах /Scientific art work by open sources/

Эрдмийн ажлын зургийн ажлыг нээлттэй програм ашиглан гүйцэтгэх
Нюфлот (Gnuplot) ба Имижмажик (Imagemagick)

"Гурвадугаар хэсэг"
Шинжлэх ухаан, инженерчлэлийн тайлан, төсөл, өгүүллэгийн зураг, графикийг өндөр чанартай сайн боловсруулах ёстой гээд л өмнөх хоёр цуврал дээр бичсэн учир дахин давтаад яахав. График зураг боловсруулах эхний, дэд өгүүллэгүүдийг уншаарай.
Гэхдээ бас хэдэн зүйл нэммээр санагдлаа. Аливаа зүйл хүний нүдэнд маш аятайхан харагдаж байвал харж уншиж буй хүндээ илүү их мэдээллийг өгөх болно. Тиймээс шинжлэх ухааны графикч бай түүнийг урлаг, уран зураг мэт харж харьцаж ажиллах хэрэгтэй. Мэдрэмж их чухал шүү. Харагдац муутай зураглал уг ажлын мөн чанар, чансааг бууруулдаг, ажиллаж буй хүмүүсийг чадваргүй мэт харагдуулдаг тал бий. Нөгөө хүнийг царайгаар нь угтаж, ухаанаар нь үднэ гэдэг шиг л..
За энэ өгүүллээр баганан график байгуулах, зургуудыг хооронд нь нийлүүлэх гэх мэт ажлыг яаж хийх тухай авч үзнэ. Графикийг бол нюфлот бол ямар л бол ямар л хэлбэр, загвараар үйлдвэрлэж гаргах боломжтой бол Имижмажик бол зургийг болон зургуудыг яаж л бол яаж л янзалж чадах хоёулаа нээлттэй, үнэгүй, коммандын мөрөөр ажилладаг програм хангамж юм. Нээлттэй үүсвэрийн нэг дутагдал нь хэрэглэгчийн санал хүсэлтийг тусгаж шинэ хувилбар гарах гэж уддаг. Түүнээс бол ямар нэгэн зохиогчийн эрхийн асуудал зөрчигдөхгүй, чадвар өндөртэй програмууд юм.
1. Хоёр зүйлийг харьцуулсан баганан график байгуулах
Хоёр зүйлийг хэд хэдэн тохиолдолд харьцуулж харуулах шаарлага гарна. Энэ тохиолдолд жишээ болгож цуваа ба зэрэгцээ кодоор өөр өөр хөрвүүлэгч дээр тооцоо хийж харцуулсаныг харуулая. График байгуулах нюфлот код нь:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
reset
set term postscript color enhanced font "Times-New-Roman, 30"
set output "Compare.esp"

set xtics ("PGI Fortran" 0.25, "Intel Fortran" 1.75, "CUDA Fortran" 3.25,)

set boxwidth 0.5
set style fill solid
set ylabel "Elapsed time (ms)"
set xlabel "Compilers"

set label 1 "1058.39" at -0.2,1100 font ",20"
set label 2 "461.52" at 0.3,500 font ",20"

set label 3 "301.61" at 1.3,350 font ",20"
set label 4 "93.75" at 1.8,140 font ",20"

set label 5 "80.45" at 2.8,120 font ",20"
set label 6 "15.74" at 3.3,80 font ",20"

plot 'data.dat' every 2    using 1:2 with boxes ls 1 lc rgb 'red' title "Entropic (KBC)",\
     'data.dat' every 2::1 using 1:2 with boxes ls 2 lc rgb 'blue' title "Standard (BGK)"

set term win
unset output
Энд ашиглаж байгаа мэдээ нь:

Saturday, October 8, 2016

Тооцонгийн үр дүнд суурилж морь унах нь (The riding horse based on scientific computation)

Шингэний динамикийн тооцоонд үндэслэж морь унавал...

Магистраа төгссөнөөс хойш мөрөөдөж байсан, маш удсан, оролдлого хийж чададгүй байсан нэг мөрөөдөл, хүсэл бол өндөр бүтээмжтэй тооцоололыг (high performance computing) супер компьютер эсвэл параллель тооцоолол хийх боломжтой багцан (super computer or GPGPU cluster) дээр хийх явдал байсан юм. Тооцон бодох тооцооны аргуудыг мэдэхгүй, код бичиж чадахгүй, ямар ч програмчлалын хэл эзэмшээгүй байж юун өндөр бүтээмжит тооцоолол хийх гэдэг нь ойлгомжтой. Тэгээд ч суурин компьютер, эсвэл зөөврийн компьютерээс өөр зүйл бидэнд /Монголд/ олдох биш. Интернэтээр ингэж супер компьютер ашиглаж ийм тооцоолол үйлдэж ийм үр дүн гаргалаа гэх мэт өгүүлэл, бичлэгийг харж гайхан бишэрч мөрөөдлөө бүр л биелүүлмээр санагддаг байж билээ. Докторт сурахаар /2014 оны 9 сар/ Нагаокагийн Технологийн их сургуульд ирэхдээ тооцон бодох хэдэн арга эзэмших, код бичиж сурах, бүх боломжит бодлогонуудыг бодож чаддаг болох гэх мэт л үндсэн чухал зорилтууд өвөртлөж байсан юм. Тэгтэл бараг жилийн дараа /2015 оны 6 сар/ сургуулийн зарын самбар дээрээс GPGPU сургалтын тухай Япон зар байхыг олж харсан юм. Ингэхэд л энэ сургуульд GPGPU байдаг юм байна гэж мэдэж билээ. Тэгээд ч энэ сургалтын боломжийг ашиглаж чадаагүй, хийх ажил ихтэй байсан учир сонирхолгүй орхисон. Гэхдээ л ашиглаж үзэх хүсэл байгаад л байлаа. Ядаж барааг нь нэг удаа харах юмсан гэж бодож байсан юм. 
Үүний дараа 2016 оны 1 сард ЛБА-аар GPGPU дээр хэрхэн тооцоолол хийх тухай семинар болно гэдгийг удирдагч багш маань дуулгаж за энэ боломжийг л ашиглаж GPU тэй танилцая гээд танилцсан юм. Хэрхэн танилцсан тухайгаа нийтлэл болгож бичсэн байгааг зарим нэг нь болгоосон байхаа. Нийтлэлийг эндээс
Хэдий танилцаад авсан ч шууд GPU -рүү орох боломж байгаагүй тул хэрэгтэй гэсэн болгоноо нийтлэл дээрээ бичээд 2016 оны 7 эсвэл 8 сараас нэг ашиглаж үзнэ гээд төлөвлөгөөндөө орууллаа. Төлөвлөгөө жаахан сунжирч одоо /2016 оны 10 сар/ л нэг оролдож байна даа. 
Өөр нэг мөрөөдөл болох Монгол уламжлалтай холбоотой зүйлсийн шингэний динамикийн тооцоог хийж судалж үзэх юмсан гэсэн хүсэл бас л их удаж байна. Үүний нэг нь Монгол морины аэродинамикийн тооцоолол юм. Хүлэг морь бол Монгол түмний шүтээн, хамгийн хурдан унаа учир морио л тооцож үзмээр санагдаад тэгээд тооцсон хэрэг. Энэ нийтлэлд энэ тухай авч үзнэ. 
Давхиж буй морины аэродинамикийн загвар Рэйнольдсын тоо 3000.

Wednesday, September 28, 2016

Геофизик урсгал дахь хагшаасны динамикийн хоёр фазат загварчлал дээрх 3-р бага хурлын тойм /Overview of the 3rd symposium on two-phase modeling for sediment dynamics in geophysical flow/

Геофизик урсгал дахь хагшаасны динамикийн хоёр фазат загварчлал дээрх 3-р бага хурлын тойм

THESIS-2016 хуралд ханын илтгэл тавьж байгаа нь.
Энэ хурлын тухай, үндсэн зорилгын тухай өмнөх өгүүллээс уншаарай. 
Товчхондоо энэ хурал нь хагшаасны динамик, зөөгдөлтийн тухай загварчлал дээр төвлөрсөн дэлхийн шилдэг, тэргүүлэх судлаачдын цуглаан гэж хэлж болно. Энэ хуралд оролцож олон шинэ соргог, мэдлэгийг сонсож авсандаа баяртай байгаа бөгөөд хурлын дундуур тэмдэглэж авсан тэмдэглэлээсээ энд хуваалцая. 
Энэ удаагын хурлыг Японы Чуо их сургууль 2016 оны 9 сарын 12-14 - ний хооронд зохион байгуулсан юм. Энэ хуралд багш Хосояамада Токузо, хамтрагч Отаке Такешигийн хамт "Окозү сувгийн аман дахь хагшаасны зарцуулгын загварчлал" хэмээх ханын илтгэлийг хэлэлцүүлэхээр оролцсон юм. Илтгэлийг энд дарж үзэж болно. 
Ханын илтгэлийг зураг байдлаар харуулъя.
Ханын илтгэлийг pdf -ээр эндээс татаж авч болно. Ханын илтгэл А0 цаасан дээр бэлдэх гэж байгаа хүмүүс эндээс загварын санаагаа авч болно. Хагшаас шороо гэдэг бол бор өнгөөр илэрхийлэгдэх учир ерөнхий чимэглэлийг бор өнгөөр сонгосон болно.

Tuesday, August 23, 2016

Шийдлийн алгоритм дахь Шингэний эзлэхүүний арга (Volume of Fluid Method in SOLA)

Шийдлийн алгоритм дахь (SOLA)

Шингэний эзлэхүүний арга (VOF)

Шингэний чөлөөт гадаргууг ойролцоолох нь тооцон бодох гидравликийн нэгэн чухал асуудал байсаар ирсэн. Ойрын хэдэн жил байх ч болно. Чөлөөт гадаргууг тодорхойлох батлагдсан аргуудыг доорхи зургаас хараарай. Хамгийн анхны арга нь Маркер болон нүдний арга юм. Энэ аргад Лагранжийн координатаар явах маркар буюу цэгнүүд нь шингэний чөлөөт гадаргууг тодорхойлоход хэрэглэгддэг. Үүний дараа гарч ирсэн одооны ихэнх арилжааны програмуудын /Ansys, Solidworks, Xflow, 3Dflow гэх мэт/ ашигладаг арга бол шингэний эзлэхүүний арга /Volume of fluid/ юм. Энэ удаад хамгийн анх боловсруулагдсан шингэний эзлэхүүний аргын тухай авч үзье. Энд тооцооны төгсгөлөг нүдэнд байх шингэнийг эзлэхүүний хувиар илэрхийлж түүнийгээ шингэний фракц гэж авч үзнэ. Шингэний эзлэхүүний фракцийн хугацаан дахь өөрчлөлтийг энгийн адвекцийн тэгшитгэлээр шийднэ.
Гэхдээ энэ адвекцийн тэгшитгэлийн төгсгөлөг ялгаварын ойролцоолол нь нарийвчлал муутай байдаг учир давхар донор ба хүлээн авагчийн схемийг хэрэглэнэ.
Шингэний чөлөөт гадаргууг ойролцоолох тооцонгийн аргууд.

Wednesday, August 17, 2016

Эрдмийн ажлын зураг, графикийг Нюфлотоор дүрсжүүлэх /Scientific visualization and graphics with Gnuplot/

Эрдмийн ажлын зураг, графикийг Нюфлотоор дүрсжүүлэх, зурах
Хоёрдугаар хэсэг

Нэгдүгээр хэсгийг эндээс уншаарай.
Сэтгүүл болгон л өөрийн тодорхой шаардлагуудыг хэвлэгдэхээр илгээгдэн ирж байгаа өгүүллүүдэд тавьдаг. Хамгийн гол нь тэдгээр шаардлагыг сайн биелүүлэхийн тулд ямар ч асуудлыг шийдвэрлэх гарцтай байх хэрэгтэй. Бид графикийг ихэвчлэн Эксэл дээр бужигнуулдаг. Энэ ч амархан. Харин хэд хэдэн графикийг хооронд нь тэнхлэгээр нь нийлүүлэх гэх мэт ахисан түвшний ажлууд гараад ирвэл суугай майзаг болоод эхлэнэ. Нэг ашиглаад суричхвал Нюфлот арвин чадвартай. Энэ хэсгээр зарим нэг чухал үйлдлүүдийг хийж сурсанаар та бүгдтэй хуваалцая.

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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# this script for compare remaining ice area
 reset
 set term postscript landscape enhanced font "Times-New-Roman, 30"  #size 700,500 #500,400  
 set output 'Compare.esp'

#
 set xlabel "{/=30 {/Times-Italic Time } (min)}"
 set ylabel "{/=30 {/Times-Italic Remaining ice area} (percent)}"
 set xrange [0:72]
 set yrange [0.5:1.01]
 set key top right 
 f(x) = a*x + b # fit line 1
 fit f(x) 'ice_example.dat' u 1:2 via a, b
 title_f(a,b) = sprintf('f(x) = %.2fx + %.2f', a, b)
 
 #f(x) = a*x **2 + b *x + e # fit line 1
 #fit f(x) 'ice_example.dat' u 1:2 via a, b, e
 #title_f(a,b,e) = sprintf('f(x) = %.2fx **2 + %.2fx + %.2f', a, b, e)
 g(x) = c*x + d # fit line 2
 fit g(x) 'ice_mass.dat' u 1:2 via c, d
 title_g(c,d) = sprintf('g(x) = %.2gx + %.2g', c, d)
 
 #f1(x) = E*exp(I*x**2) # fit line 3
 #fit f1(x) 'ice_mass.dat' u 1:2 via E, I
 #title_f1(E,I) = sprintf('f1(x) = %.2f1*exp(%.2f1x**2)', E, I)
 
 plot 'ice_example.dat' u 1:2 w lp pt 8 pi -40 lc rgb 'red' lw 7 title 'Free surface LBM' ,\
   'ice_mass.dat' u 1:2 w p pt 5 lc rgb 'black' lw 9 title 'Experiment',\
    f(x) w l ls 10 lw 4 title 'Trend line for LBM',\
    g(x) w l ls 9 lw 4 title 'and for experiment' 
#    f1(x) t title_f1(e,i), title_f(a,b),title_g(c,d)
   
 unset multiplot
 set term win
 unset output