GUIs with MATLAB 2 (08.12.2009)

In the previous post, I mentioned about the little MATLAB GUI that I wrote for a 1D FEM solution. I extended the underlying code to solve unsteady problems and modified the GUI so that time dependent advection-diffusion equations can be solved. The following movie shows this new GUI in action. Pure advection problem is solved with a constant velocity of 2. The problem domain is [0,1.4]. Initial condition is hard coded to be a smooth cosine hill with a height of 1, centered at x=0.2. 50 equi-spaced elements and a constant time step of 0.01 is used. The simulation ends at t=0.5. Exact solution at this final time should be a cosine hill with a height of 1, centered at x=1.2. For time discretization alpha family schemes are used.

The movie shows three simulations with three different alpha values. The first one is for alpha=1, which corresponds to the implicit Euler time discretization. This scheme is known to be unconditionally stable, but as seen from the movie it is highly diffusive. The height of the hill drops to 0.5. The second run is for alpha=0.5, which is the Crank-Nicolson scheme. This is also unconditionally stable. As seen, its diffusion errors are much less than the implicit Euler case. However, it produces unphysical trailing waves behind the actual cosine hill. These trailing waves can be eliminated by using more elements. The third run is for the explicit Euler scheme, which is only conditionally stable. Actually the given advection velocity, element size and time step combination falls to the unstable region of this scheme and the solution blows up. To get physically correct results we need to reduce the time step. To play the movie again right click on it and select Play.

GUIs with MATLAB (21.11.2009)

For the finite element course that I am teaching this semester we use MATLAB as a computing tool. During the semester I provide simple 1D and 2D educational MATLAB codes to my students and I assign homework about completing certain missing parts of these codes and solving some test problems using them. This semester I decided to write a Graphical User Interface (GUI) to one of my 1D FEM codes. It is possible to use the GUIDE tool that comes with MATLAB to design GUIs. With a couple of hours of study I managed to come up with a nice little FEM solver that looks like this.

Before this GUI we were providing the inputs through text files. But it was time consuming and prone to typos. We don't need to generate those files anymore. Now we simply provide all the necessary data through this GUI. Also the result is plotted on the same window, which makes our FEM solver really compact and easy to work with. It is also possible to save the input data of a problem to a file and read later, so that we don't need to fill in the text boxes again and again.

The solution shown above is for the well known advection-diffusion problem. It demostrates the typical failure of Galerkin FEM technique when the local Peclet number exceeds a certain critical value. The solution given below is for the same problem, but this time the mesh is clustered towards to end of the domain where we have high gradients. It shows the importance of proper mesh refinement for a successful and efficient FEM solution. With GUIs like this one it is very easy for the instructors to do such quick demostrations. In a few seconds you can play with the constants of the differential equation, change the number of elements and/or their polynomial orders, provide a set of different boundary conditions and obtain a new solution. I am planning to write similar interfaces, first for the time dependent 1D code and later for the 2D code. I love GUIs.

reCAPTCHA (26.10.2009)

CAPTCHAs (Completely Automated Turing Test To Tell Computers and Humans Apart) are codes used in several websites to decide whether the visitor is a human or an automated computer program. Common uses are to prevent spam comments in blogs, protect website registration, prevent computerized mass voting for online polls, etc. Usually a distorted text is shown to the visitor of the web site and he/she is asked to enter the text back. CAPTCHA code expects that a human being can read the distorted text, but a computer code can not. The term CAPTCHA was coined in 2000 by Luis von Ahn, et. al. of Carnegie Mellon University and its first use was for the Yahoo website. Today it is estimated that about 200 million CAPTCHAs are solved around the world eveyday.

reCAPTCHA is a recent implementation of this idea by the original creators. reCAPTCHA tries to use CAPTCHA tests for a secondary useful purpose, helping to digitize old printed material by asking users to decipher scanned words from books that optical character recognition (OCR) software failed to recognize. In a reCAPTCHA test, as shown below, two words are shown to the visitor. These are distorted versions of words that are taken from old scanned documents. Actually the answer for one of these words is known and it is presented as a control mechanism. The other word is the actual word that OCR software failed to recognize. If the visitor can solve the "control word" correctly reCAPTCHA assumes that the actual word is also solved correctly.

reCAPTCHA is a very interesting study. You can read the details of the working mechanism and success rate of this idea from this paper published in the Science magazine. Currently it is being used to improve the accuracy of the digitized versions of old New York Times papers. If you like the idea you can use reCAPTCHA for your own webpage or you can just visit their website and solve as many new reCPATCHA puzzles as you want.

First Bite of Linux (06.10.2009)

For several reasons Unix-like operating systems (OS) always be the preferred OS for scientific computing. Although it is quite possible to develop number-crunching scientific codes on other operating systems, I want my students to get experience on Linux and be familiar with the idea of free-and-open-source software development. Couple of days ago one of my masters students told me that he lost some valuable data while installing Linux on his laptop which was previously running Windows. He did not back-up his data, which is a big mistake, and he messed things up while he was trying to setup a dual-boot system to run Pardus Linux and Windows together.

It was almost 10 years ago when I first tried Linux. I was in the United States doing my PhD and bought a box of Redhat Linux 5.2. Yes, although Linux is known as a free operating system, if you want it is possible to pay money and purchase it. In open source software terminology free means too different things, free as in "free speech" and free as in "free beer". Linux is a free operating system, in the sense that you can freely download it without paying any money and also you have the freedom to change its open source code to suit your own needs. That's why there are 100's of different Linux distributions out there that are built on top of the same Linux kernel, but each having a slightly different taste. Even 10 years ago installing and using Linux was not that difficult, but today it is just a piece of cake and hearing "data loss during installation" stories is quite uncommon. But apparently, as I wrote above, it still happens.

If you want to give Linux a try, you have several options. One is the complete removal of your old operating system and installing the Linux distribution of your choice as your new OS. This is quite simple and all you need is to download the ISO image of a Linux distribution, burn it to a CD/DVD, use it to boot your computer and follow the installation instructions. If it is not that easy for you to make such a sudden switch from your old OS, old software and old habits to new ones (and it was never easy for me, I still use Windows as my main OS), it is possible to take it slower. For example you can try a Live CD. A Live CD is a CD that can be used to boot your computer, but it does not install anything or change any settings. It however gives you a chance to play with a Linux distribution, see what it looks like and learn about its capabilities. But it is not very practical because you can not use a Live CD to do real work for a long time. Considering the other choices that I'll mention, I think it is somewhat a waste of time.

In my opinion, for today's Linux newbie, the best way to start a Linux journey is to use a virtualization software, such as VirtualBox. Virtualization software allow you to install an OS inside another OS and use it just like you use any other application. For example you can install Linux inside a Windows system, without the need of partitioning your hard drive. You can boot into your original OS and start the new OS in its own window and work with it. Since it is possible to use two OSs at the same time, this allows a very safe and step by step transition to a new OS. It is also possible to install many different guest OSs on a single host OS. For example right now my laptop boots into Windows Vista and I can use both Pardus Linux and Debian through VirtualBox. VirtualBox is free to download, just give it a try. If you need you can first read this tutorial about the installation and use of Ubuntu Linux on Windows XP using VirtualBox.

Among other choices for getting the first bite of Linux, Wubi (Windows Ubuntu Installer) is an interesting one. Wubi installs Ubuntu Linux on your computer and sets it up as a dual-boot system without the need of creating partititions. You need to download the free Wubi installer and an Ubuntu ISO image and install Ubuntu Linux on a specific folder of your harddrive. After the installation, when you reboot your computer you'll see two options as Ubuntu and Windows. So you select whichever you want and boot into that OS. If you want to remove Ubuntu from your computer you just uninstall it as you do with any other software. But with Wubi you can not use Windows and Ubuntu at the same time, and each time you want to do something with Linux you need to reboot your machine.

Remember that if you are in Turkey you can download many popular Linux distributions from the ftp server of Linux User's Group of Turkey.

Görüşürüz (05.10.2009)

Nasıl olsa hepimiz ODTÜ'ye geldiğimiz için sabahları kızları ben getiriyorum okula. Ama akşam erken bir saatte çıktıkları için servisle dönüyorlar eve. Bu sabahki okula bırakma rutinimizde Elif kardeşine seslendi "Akşam serviste görüşürüz". Zeynep de ablasına cevap verdi "Görüşürüz". Al başına belayı :-) Artık hayatlarının bizim bilmediğimiz yönleri, detaylarından haberdar olmadığımız "görüşmeleri" var. Farkettirmeden büyüyorlar. Hep derler ya her yaşın ayrı zorluğu var diye. Tam bu işte dedikleri.

Okulun İlk Günü - 2009 (14.09.2009)

Geçen sene bu zamanlarda ilkini yazmıştım "Okulun ilk günü" yazılarının. Bir sene geçti ve bizim kızlar onlara hiç bitmeyecekmiş gibi gelen bir tatilin ardından gene okullu oldular. Zeynep anasınıfına Elif de İlkokul 2'ye başladı bugün. Haftalardır ne zaman başlayacak bu okul diye sayıklayıp duruyorlardı, çok sıkıldılar evde. Zeynep ablasına anasınıfını anlattırıp durdu. "Sınıfta ne oyuncaklar var abla?", "Şunu yapamazsam öğretmen kızar mı abla?". Elif de ablalık yapmaktan keyifli anlatıp durdu. İlkokul 2'nin 1'den çok farklı olacağını sanmam, Elif için değişen çok birşey olmayacaktır. Ama Zeynep pek heyecanlı. Geçen sene gittiği yuvadan oldukça farklı anasınıfı. İnşallah keyifli, başarılı ve sağlıklı bir yıl olur onlar için.

Basketbol Heyecanı Devam Ediyor (10.09.2009)

Avrupa Basketbol Şampiyonası'nın 1. grup maçları tamamlandı ve gruptaki 3 maçımızı da kazanarak lider olarak ikinci gruba çıktık. Özellikle dün ev sahibi Polonya karşısındaki rahat galibiyet keyif vericiydi. İkinci grup maçlarımız ve tarihleri ise şu şekilde

12/9/2009, 16:45, Türkiye - İspanya (63 - 60 :-))
14/9/2009, 22:00, Türkiye - Sırbistan (69 - 64 :-))
16/9/2009, 22:00, Türkiye - Slovenya (67 - 69 :-()

Bu 6 takımlık grupta (diğer iki takım Polonya ve Litvanya) ilk 4'e kalmak önemli ki, ilk gruptan taşıdığımız puan avantajını da düşününce, ben buna artık kesin gözüyle bakıyorum.

2009 Avrupa Basketbol Şampiyonası (31.08.2009)

1 hafta sonra Polonya'da başlayacak olan Avrupa Basketbol Şampiyonası'nda Türkiye'nin ilk grup maçları şu tarihlerde oynanacakmış (Maçlar oynandı bile ve 3'te 3 yaptık)

7/9/2009, 22:15, Türkiye - Litvanya (84 - 76 :-))
8/9/2009, 22:15, Türkiye - Bulgaristan (94 - 66 :-))
9/9/2009, 19:15, Türkiye - Polonya (87 - 69 :-))

Web sayfasındaki bilgiye göre maçları Türkiye'de NTV verecekmiş, belki de NTV Spor verir. Avrupa şampiyonluğu için yarışacak takımlardan bazıları geçen hafta Efes Pilsen World Cup turnuvası için Ankara'daydı. Ben de Türkiye - Almanya maçını seyretmeye gittim. Hidayet - Nowitzki ikilisini seyredecektik aklımızca. Ama Dallas Mavericks'in patronu Mark Cuban Nowitzki'ye izin vermemiş bu turnuva için. Hidayet sahadaydı da oyuna pek bir katkısı yoktu. Esasında takımımızın hiçbir oyuncusu keyif vermiyordu. Zaten turnuvadaki ilk iki maçımızda Hırvatistan ve Almanya'ya yenilip, son maçta Büyük Britanya'yı (Futbolda biz bunlara İngiltere deriz, ama basketbolda adları değişmiş) yenerek 6 takım arasında beşinci olduk. Hırvat takımı birinci, Makedonya ise ikinci oldu. Bu iki takım haftaya Avrupa Şampiyonası'nda A grubunda tokuşacaklar. Grubun diğer iki takımı ise Yunanistan ve İsrail. Ne grup ama. Gruplarda 4 takım arasında ilk 3'e girip yükselmek gerek. Millet şampiyona öncesindeki eleme maçlarına bakıp bizi favorilerden biri diye gösteriyor. Daha ilk grupta insanları şaşırtmayı becerebilir miyiz dersiniz?

Looking for Graduate Students (28.08.2009)

New semester will start in about a month and I am looking for graduate (both MSc and PhD level) students who are interested in working on the following topics.

- Development of finite element and spectral element based flow solvers with state-of-the-art turbulence models.
- Direct numerical simulation of incompressible flows.
- Use of in-house developed flow solvers for microfluidics and biofluidics applications.
- Parallelization of flow solvers using GPUs (graphics cards).
- Development of finite volume and finite element based, open source CFD software with proper graphical user interfaces for educational purposes.

To show your interest and give some information about yourself, please send me an email or stop by my office. My expectation from a graduate student is quite simple; start working on the thesis research on the very first day and keep working hard till the end. That's it.

Recent Thesis Defenses (25.08.2009)

Last month two of my graduate students defended their thesis work and got their M.Sc. degrees. Eser Gürel's thesis was titled as "Modeling and Simulation of Shaped Charges". Eser is working at the Warhead Division of Roketsan Inc. He is mainly working on tank armors and shaped charge applications as anti-tank missiles. A shaped charge is a conical metal liner backed by a high explosive, all placed in a steel or aluminum casing. When the explosive is detonated, the metal liner is compressed and squeezed forward, forming a jet whose tip may travel as fast as 10 kilometers per second (almost 30 times the speed of sound). It is used in military for armor penetration and in civilian applications such as piercing of rocks in oil and gas industry. The weapon known by many of us as bazooka works with this principle. You can watch a simple shaped charge at work in this video.

In his thesis, Eser analyzed the jet formation, breakup and penetration processes of a shaped charge using both one-dimensional analytical codes that he developed and the commercial hydrocode AUTODYN. Due to very high velocities and pressures that occur in these processes solids are usually modeled to be flowing as fluids. It is possible to study this very high deformation problem using either Lagrangian or Eulerian view points, both having their own advantages and disadvantages. The figure below is from Eser's thesis and it shows the penetration of a BRL-82 change fired into an RHA steel armor from a 2 caliber stand-off distance.

The second thesis was defended by Mehtap Cakmak. Her advisor was Prof. Haluk Aksel and I served as the co-advisor. The thesis was titled as "Development of a Multigrid Accelerated Euler Solver on Adaptively Refined Cartesian Grids". Mehtap wrote her own two and three-dimensional Cartesian mesh generators and extended the already available two-dimensional finite volume based compressible solver to 3D. She also implemented multigrid acceleration that works successfully on Cartesian meshes. The solver is tested for inviscid, external, compressible flows over airfoils, wings and projectiles with satisfactory results. The following figure is from Mehtap's thesis and it shows a detail from the 2D Cartesian mesh generated around the NRL 7301 airfoil and flap.

48 VA 117'den Yazıyorum (31.07.2009)

Yıllık iznimi aldım ve Aytülü ile beraber Bodrum yolundayız. Ulusoy, Varan gibi firmalarda olduğunu bilirdim de Kamil Koç'ta kablosuz internet olacağını düşünmezdim. Varmış. Teşekkürler Kamil Koç.

Cavity Love (30.07.2009)

If you are a CFD person like myself, you just can not associate cavity with a dental problem. Instead all you visualize in your mind is a picture like the following. Unfortunate? I don't think so. You are a CFD person because you can enjoy looking at 10 solutions of the cavity problem at once. I like it. It's beautiful. I like its simplicity. I like the pleasure of the first successful Cavity solution of a new code. I like its challenges. I like to see the first inevitable failure at a high Re case. I like its vorticies, its asymmetry and singularities. I like the impossibility of solving it exactly. I like to think about much more difficult problems while struggling even with this innocent looking one.

Today I was trying to organize the files of my everyday work directory and I just came across to this interesting screenshot. Apparently I took it in the early days of our finite element flow solver studies. Maybe I was trying to find a possible bug that prevents convergence or maybe I was trying to understand the effect of different solver parameters on the speed of convergence. Whatever it was it's over now. Our code developed a lot since than, but now it is facing new challenges. Unfortunate? I don't think so :-) Click on the picture to see the full-sized one.

Misket Nerede Satılır? (29.07.2009)

Kızlarım son 2 senedir yaptıkları gibi bu sene de annanneleriyle beraber bizden önce gittiler yazlığa. Okullar kapandıktan sonra Ankara'da apartman dairesinde sıkılıyorlar ve bizi bekleyemeden kaçıyorlar. Esasında iyi de oluyor. Hem onlar bizi, hem de biz onları özlüyoruz. Ama insan evdeki varlıklarına o kadar alışmış oluyor ki, çıt çıkmayan sessiz ev bir garip gelmeye başlıyor. Hafta sonu Aytülü ile evde ne yapacağımızı bilmez vaziyette otururken hadi fırsat bulmuşken alışverişe gidelim dedik. Kızlar Ankara'dayken alışverişe gitmek demek Panora'ya gidip en üst kattaki oyun parkının yanında 1 saat nöbet tutmaktan ibaret benim için. Haa bir de öncesinde veya sonrasında son zamanların modası olan kumdan resim yapma işi var.

Alışveriş merkezinde dolanırken eşimin aklına kızlardan gelen "Misket getirin bize" isteği geldi. Sokağa çıkıp bir misket oynamışlıkları yoktur, zaten bu devirde hangi şehir çocuğu misket oynar ki? Ama nereden geldiyse akıllarına istemişler iste, hiç değilse misketin varlığından haberdarlar. Oyuncakçıya gittik sorduk, misket satmadıklarını söylediler. Bilmemkaç metrekare mağaza, 100'lerce çeşit oyuncak var, ama misket yok. Alamadık. Eee nerede satılır peki misket? Eskiden misket bakkalda satılırdı. Ekmek satılan, çekirdek, gofret satılan, tipitip sakız satılan, tepside yoğurt satılan bakkalda misket de satılırdı. Gerçi misket öyle para verilip alınan birşey değildi pek. Oynayıp üterdin onu.

Eskişehir şeker fabrikasının lojmanlarındayız. Benden iki yaş büyük abim ve ben. Devlet babanın lütfettiği kocaman bahçeli dubleks evimiz bugün oturduğumuz apartman dairesinin yanında bir cennet. Evin yanında kocaman yemyeşil bir koru. Bazı günler sabahın köründen akşam yemeğine kadar o korunun içinde misket oynuyoruz. Her oyunun farklı bir mekanı var. Kuyu oynayacaksak başka yerde, baş oynayacaksak başka yerde toplanıyoruz. Ola ki fıskiyeler bizden erken davranıp misket yerimizi sulamış, yeni yer keşfine çıkıyoruz. Yaz günlerinde ise akşam yemeğini yediğin gibi gene dışardasın. Korunun içindeki bankların yanına konmuş sokak lambalarının ışığında miskete devam. Tek korkumuz gece uçuşurken üzerimize yapışıp kalan dozdoz böcekleri. Herkesin elinde bir poşet, irili ufaklı rengarenk misketler. Üst baş toz toprak içinde. Ütenler ütülenler, çok güzel oynadığı için oynatılmayanlar, mızıkçılar. Abim süper oynardı. Kendine has bir atış stili vardı. Bazen "O şekilde atarsan oynamayız" deyip baştan kural koyardı diğer çocuklar. Ben onun kadar güzel oynayamadığım için patron oydu. İşler iyi gitmeyecek olursa beni oynatmaz, durumu toparlayana kadar sadece kendi oynardı.

Misket oyunlardan sadece biriydi. Bilimum top oyunları, envai çeşit saklambaç, gazoz kapaklarıyla, kibrit kutularıyla garip garip oyunlar, geceleri bahçelere dalıp ayçiçeği aşırmalar, bisiklet tepesinde geçen saatler, yaz gecelerinde gizli hedef ve iskambil oyunları. Aradan 30 sene geçmiş. Bugün misket nerede satılır o bile belli değil. Akşam bir de evin yanındaki kırtasiyeye soracağım, belki orada vardır. İş misketle de bitmiyor. Mesela bizim kızlar için bisiklete binmek çok önemli bir aktivite. Plan bir gün önceden yapılıyor. Bisikletler apartmanın bodrumundan çıkarılıyor ve apartmanın arkasında bizim salondan biraz büyükçe beton park yerinde yarım saat dolanılıyor. Senede birkaç kere oluyor bu da. Sokakta oyun oynamak diye bir mevhum yok. Zaten izin versek de onlar korkudan çıkmazlar. Kendi hayatımla kızlarınkini karşılaştırınca böyle olumsuz değişiklikler karşıma bolca çıkıyor. Gidişat iyi değil, gidişat insani değil. Biz gene iyi zamanlarda yaşamışız.

Araç Muayenesi Hikayeleri (17.07.2009)

2003 model bir araba kullanıyorum. Doktoradan sonra Türkiye'ye döndüğümüzde almıştık. Araba yeni olunca ilk 3 yıl muayene yaptırmak gerekmiyormuş. Zaten bu tip işler hiç mi hiç bana göre değildir. Birkaç yıl önce babam bu konuyu gündeme getirdiğinde bir baktık ruhsata ki muayane süresi geçeli epey olmuş. O zaman araç muayene işini devlet baba yapıyordu. Bir yaz günüydü. Gittim muayene istasyonuna, upuzun bir kuyruk. Moralim bozuldu. Ama baktım kuyruk fena ilerlemiyor. Bekleyen araçlardan bazılarının sürücüleri telaşlı. Kimi torpido gözünde bulamadığı bir belgeye sövüyor, kimi stop lambasının kırık kapağını 10 dakika önce bir seyyar satıcıdan alınmış görünen yenisiyle değiştirmeye çalışıyor. İleride bir görevli tek tek sürücülerden bir kağıt istiyor, üzerine bir işaret koyuyor. Sıra bana gelince anladım ki baktığı trafik sigortasıymış. O kısım sorun olmadı, sigortam beğenildi. İçeriye girdim, ama ne yapacağım hakkında en ufak bir fikrim yok. Kocaman park yerinde benden önce giren arabayı takip ettim. Sürücüsü indi yürüyor, ben de peşinden. Sağda solda baraka binalar ve üzerlerinde 1, 2, 3 gibi sıralı numaralar. Hepsinin önünde kalabalık insan toplulukları, simitçiler, sucular. Herhalde ilk binadan başlayarak hepsini dolaşacağız dedim ve 1 numaralı sıraya girdim. Yapılan tek iş ruhsatı ve muayene parasını vermek. Ama kimi sürücüler veryansında. Belli ki bir problem çıkmış. Bende çıkmadı. 2 numaralı binaya geçtim, harç ödendi belgemi göstererek ruhsatıma birşeyler karalattım. Şimdi nereye sorumun yanıtı ilginç oldu. Bitti dediler. Devlet baba arabama hiç dokunmadan, hatta yan gözle bile olsa bakmadan muayene etmişti. Allah belasını versindi böyle iş yapılmasına göz yumanların. Ama işim kısa sürmüştü, mutluydum, oradaki pek çok kişi de benim gibi mutluydu.

2 hafta kadar önce gene bir araç muayenesi sohbeti sırasında bizimkinin zamanının geldiği ortaya çıktı. Ruhsata baktım, gene bir hafta geçirmişim. Ama biliyorum ki artık bu işi devlet baba yapmıyor, özel bir şirkete vermiş. İnternetten baktım, TÜVTURK diye birileri bu işten sorumlu. Biraz karışık bir web sayfaları var, ama bir miktar dolanınca muayene istasyonlarının yerleri, gerekli belgeler, vesaire bilgilerine ulaşmak mümkün. Ankara'da 7 yerde muayene istasyonları var. Nereden duydum hatırlamıyorum, ama Gölbaşı'ndaki istasyonun diğerlerine göre daha tenha olduğunu hatırladım ve orası için randevu aldım. Evet, randevu sistemi var ve internetten yapabiliyorsunuz. İlk 2-3 gün dolu idi, ama sonrasında tüm istasyonlarda boş saatler vardı.

3 gün önce, randevu saatim olan 10:00'dan bir saat kadar önce Gölbaşı istasyonundaydım. Bizim mahalle olan Bahçelievler'den 25 km uzakta tam olarak. Gölbaşı şehir merkezini ve gölü tamamen geçiyorsunuz. Bir benzin istasyonuna sormak için giriyorsunuz ve daha camı indirir indirmez, hiçbirşey sormadan pompacı genç "Muayane için ışıklardan sola" diyor :-) Garibim, kimbilir günde kaç kişi aynı soruyu soruyor. İstasyona gelmeden kuyruk başlıyor gene, moral bozuluyor. Ama randevum var ya, tek sıra ve inanılmaz düzenli kuyruğun yanından usulca geçip kapıya varıyorum. Şık giyimli güvenlik görevlisine saat 10:00 randevum olduğunu söylüyorum. Daha çok vakit olduğunu, kenarda bir yere arabamı koymamı ve içeriden işlemlerimi yaptırmamı söylüyor. Bu arada istayonun içinde altı sıra halinde dizilmiş arabalar tek tek muayene oluyorlar. Sıraların ikisi randevulu araçlar için, diğer ikisi randevusuzlara bakıyor, kalan ikisi ise büyük araçlar için. O son iki sırada tırdan tutun da itfaiye aracına kadar ne ararsan var.

Ne olduğu tam belli olmayan işlemlerin yapılacağı binaya bir miktar kalabalık ve curcuna hakim. Numaratörden numara alıyorum, 1001 çıkıyor. Anlıyorum ki ben saat 10 randevusu için gelen ilk kişiyim. Ekranlarda değişen numaralar ise benim numaramla hiç alakalı değil. Bir gişeye yaklaşarak öğreniyorum ki 10:00 randevusu numaraları saat 10'dan önce çağrılmazmış. Bu nasıl randevu sistemi? Vakit kaybı garantili. Yapacak birşey yok, ama geçmesi gereken 50 dakika var. En iyisi muayene olan araçları izlemek. Kocaman bir binanın içinde birbirinin aynı 6 kulvar var. Hepsinde mavi üniformalı gençler arabaların içini dışını didikliyorlar. 10-15 dakikada bitiyor bir aracın muayenesi. Biraz muayene olan arabaları seyrederek, biraz numaraların değiştiği ekranları kolaçan ederek vaktimi geçiriyorum.

Saat tam 10'da 10:00 randevusu için numara alanlar çağrılmaya başlanıyor. Meğer 1001 ilk numara değilmiş, 1000 de varmış. Trafik sigortamı, ruhsatı ve 1 hafta gecikme cezası dahil 130 TL'mi vererek işimi hallediyorum. Saat 10:20 gibi mavi giyimli gençlerden biri adımı bağırıyor ve aracımın hangisi olduğunu soruyor. Gösteriyorum, alıp muayene kulvarlarından birine sokuyor. Bana da binanın arkasında beklememi söylüyor. 15 dakika kadar sonra aracım binanın arka kapısından çıkıyor. "Aracınız gayet güzel, sadece kısa farlarınızı ayarlatmanız gerekiyor, ama o küçük bir kusur, buyrun ruhsatınız ve muayene belgeniz" diyor. Belgenin üzerinde fren sistemi ve farlarla ilgili bir sürü anlamadığım rakam, mühürler ve imzalar var. Saatim 10:40'ı gösterirken, bir araç muayene istasyonundan daha mutlu bir şekilde ayrılıyorum.

1000 numaraları sürücü mü? Onun yüzü gülmüyor. Ruhsatının bir sayfasındaki bilmemkaç haneli numara ile diğer sayfadaki numaranın bir hanesi tutmadığı için filanca belgesi düzenletmeye falanca yere gitmen gerek demişler buna. Bir de uzun farları ayarsızmış ve o büyük kusurmuş :-(

Yüksek Hızlı Tren (13.07.2009)

2 haftasonu önce bir akraba düğünü için memlekete, yani Eskişehir'e gittim ve dönüşte ilk defa Yüksek Hızlı Tren'e bindim. Tren saatlerini öğrenmek için gara uğramıştım ve yaklaşık 20 dakika sonra kalkacak olan 18:10 treninde yer olduğunu öğrenince hemen biletimi aldım. Öğretmen indirimi (öğretim görevlisi/üyesi hepsi aynıymış) ile birlikte bilet 16 TL. Eminim otobüs daha pahalıdır. Trenin resmi adının Yüksek Hızlı Tren olduğunu öğrenince çok şaşırdım. Daha sonra öğrendim ki TCDD trenin adı ile ilgili internette anket yaptırmış ve sonunda da bula bula bu yaratıcı ismi bulmuş. Komik, ama alışılır.

Tren yepyeni, gıcır gıcır, koltuk aralığı ve genişliği otobüslerden pek farklı olmasa da tavanı yüksek, camları büyük. Otobüse veya uçağa göre çok daha havadar bir his veriyor insana. 6 vagonu vardı benim bindiğimin. Vagonlardaki koltukların yarısı bir yöne yarısı diğer yöne bakıyor. Yani yolcuların bir kısmı ters gitmek zorunda. Ne gariptir ki bizim vagonda satılan koltukların hepsi ters duranlardı, yani düz koltukların hepsi boştu. Bilet alırken koltuk seçme izni yok, "otomatik veriyor sistem" diyor biletçi. Gel gör ki sistem pek akıllı çalışmıyor veya gıcık. Yolculuk başladıktan sonra pek çok kişi düz giden koltuklara geçtiler. Yanım boşalınca ben koltuğumu değiştirmedim ve ters gitmekten rahatsızlık duymadım.

Devrim Arabaları filmi başlayana kadar tavandaki ekran Eskişehir-Ankara arasındaki hattı, o anda trenin nerede olduğunu ve anlık hızımızı gösterdi. Film başladıktan sonra da hız bilgisi ekrandan hiç eksik olmadı. Bütün seyahat boyunca bir gözüm bilgisayarımda, bir gözüm değişen hızdaydı ve en fazla 255 km/s'yi gördüm. Bu hayatımda popom yere bu kadar yakınken yaptığım en hızlı yolculuktu. Bu yüksek hızda bile rahatsızlık verecek bir gürültü veya sarsıntı yoktu. Ama ne yazık ki sürekli bu hızla gidemiyorsunuz ve bu hızı bir kere gördükten sonra 150 km/s'e bile düşseniz vakit kaybediyorum hissine kapılıyorsunuz. Eskişehir ve Ankara giriş çıkışları, Polatlı ve adlarını bilmediğim başka yerlerdeki hemzemin geçitlerden geçerken hız 40-50 km/s'e kadar düşüyor. Ayrıca Polatlı'da tamamen durduk ve yolcu indirdik. Bilette tahmini yolculuk süresi olarak 1:29 saat yazıyordu. Tren 2 dakika rötarlı kalktı ve Ankara'ya 12 dakika gecikme ile vardı.

Ben beğendim Yüksek Hızlı Tren'i. Otobüsten rahat, hızlı ve ucuz. Uçak gibi tantanası, 1 saat erken gidip kuyruklarda beklemesi, Ankara'ya vardım diye gele gele şehir merkezine 30 km uzağa gelme saçmalığı da yok. Bir başka güzelliği de benim bugüne kadar bindiğim tüm seyahat araçlarında rastladığım en güzel bayan hostesin servis yapıyor olmasıydı, bilmiyorum tabii TCDD standartları mı böyle, bize mi denk geldi? Bir kötü tarafı ise koydukları film bitmeden yolculuğun bitmesi. Gerçekten de filmi yolculuğun başında başlatmadılar ve Ankara'ya geldiğimizde film bitmemişti. Bu arada trende herhangi bir ücretsiz ikram yok, ama satın almak isterseniz abur cubur ve içecek arabaları dolanıyor ortalıkta. Gidip görmediğim bir de restoranı varmış. Uzun lafın kısası tavsiye ederim, binin ve TCDD kar etsin.

Tasarım Harikası (09.07.2009)

Geçenlerde ofisimin olduğu binanın girişindeki aydınlatmayı değiştirdiler. Binanın girişinde epeyce uzun bir merdiven ve bu merdivenleri aydınlatsın diye yere monte edilmiş 4 adet lamba var. Bunlar karpuz lamba şeklinde ve etraflarında demir kafes korumalıklar var. Ama bu kafesler tam bir tasarım harikası olduğundan işçilerin canı çıktı değiştirmek için. Karpuzlara ulaşıp lambaları değiştirmek için demirleri kesmek gerekti. Benim takip edebildiğim kadarı ile kesilen o kafesler çöpe gitti ve yerlerine hemen hemen aynı, biraz daha büyük kafesler takıldı. Aşağıda bu yeni takılanlardan birinin fotoğrafı var. Şimdi bu yeni lambalardan biri patlayacak veya karpuzlardan biri kırılacak olsa ne olacak diye merakla bekliyorum.

Rotating Hill Problem (23.06.2009)

The semester is again over. I finished grading the project of ME 413 Introduction to Finite Element Anaysis just couple of days ago. One of the questions was about a classical test problem called "Rotating Cosine Hill". It is used to test a solver and/or technique for the two-dimensional, unsteady, linear, advection-diffusion equation. Initially the scalar unknown is zero at all points of a square domain except a smooth hill with a height of 1 and a diameter of 0.5. A velocity field of u=-y, v=x is given such that the hill rotates CCW around the origin of the domain. A value of zero is specified for the unknown at all boundaries. The diffusivity is taken to be negligibly small, which makes the flow almost purely advective. The exact solution of the problem will be the cosine hill rotating around the origin, without changing its shape. Unfortunately due to diffusive errors of a numerical solution, the hill will diffuse out as it rotates, which can be seen as a decrease in its height and an increase in its radius. Also due to the dispersive errors, there will be trailing waves behind the rotating hill. It is possible to rotate the hill as many times as we want, which makes this problem a very good one for long time integration tests.

The following animation shows the first 2 rotations of the hill using a mesh of 30x30 bi-linear quadrilateral elements. Crank-Nicolson is used for time discretization.

Potada Rezalet Diz Boyu (18.06.2009)

Daha önce NBA play-off maçlarından bahsetmiştim. Onlar oynanırken ülkemizde de lig bitti ve play-off serileri başladı, ama ben bunlarla ilgili birşey karalamak istemedim. Çünkü değmez. NBA maçları için uykusuz kalmaya değdi, ama bunlar haketmiyor. Efes Pilsen - Fenebahçe Ülker arasındaki serinin beşinci maçını seyretmeye çalışmıştım, ama televizyon karşısında bile küfürden inleyen salondan o kadar utanıyor ki insan kanal değiştirmek zorunda kalıyor. Millet nasıl gidip salonda maç izliyor anlamıyorum. Maçın sonunda ev sahibi Fenerbahçe seyircisi coştu ve salonu pet şişe yağmuruna tuttu, maç 15 dakika tatilden sonra bitebildi. Dün de serinin altıncı ve son maçı oynandı. Seyretmedim o maçı, Efes kazanarak play-off şampiyonu olmuş. Fenerbahçe seyircisi seriyi 2-0 üstünlükten sonra 4-2 vermeyi hazmedememiş ve maç sonunda sahaya inerek ve soyunma odalarını basarak stres atmış. Efes Pilsen kupasını salon boşaltıldıktan sonra alabilmiş. Bu rezaletin nesi insana keyif verir ki? Şu "3 büyükler" dedikleri "3 salaklar" yok mu, insanı deli ediyorlar.

Bilgi Edinmek İstiyorum Lütfen (27.05.2009)

Nasıl oldu hatırlamıyorum, ama geçenlerde yolum Türkiye Petrolleri Anonim Ortaklığı'nın (TPAO) sayfasına düştü. Sayfada dolanırken meşhur Bilgi Edinme bağlantısına denk geldim. Pek çok resmi kurumun web sayfasında var bu tip bir kısım. Daha önce bu bilgi edinme hakkımı hiç kullanmamıştım. Deneyeyim dedim ve can alıcı soruyu sordum kendilerine

Soru: Sayın yetkili, Türkiye'de yıllık çıkarılan petrol miktarı ve Türkiye'nin yıllık petrol ihtiyacı ne kadardır? Bu değerlerin son yıllardaki değişimi nasıldır?

Cevap: Sayın Sert, 2008 yılı itibariyle ülkemizde üretilen ham petrol miktarı 2.160.067 ton olup, ülkemizin yıllık petrol ihtiyacı ise 28 milyon tondur. Ham petrol ihtiyacımız her geçen gün artış göstermektedir.

Bak şimdi... Artış gösteriyormuş. Kusura bakmasınlar ama, bunu tahmin etmek pek zor değil. Benim esas öğrenmek istediğim sayısal değerler. Bir tablo, bir grafik, mühendis adamız biz. En iyisi gene Wikipedia'ya sormak. Türkiye ile ilgili pek birşey bulamadım, ama dünya genelinde petrol üretimi ve tüketimi rakamları insanı isyan ettiriyor. 2006 yılı verilerine göre petrol üretiminde ilk 5 ülke Suudi Arabistan, Rusya, ABD, İran ve Çin. Varil, metre küp ve ton birimleri arasında kaybolup gitmediysem, Arabistan 2006 yılında 540 milyon ton petrol üretmiş. Bu Türkiye'nin 20 yıllık ihtiyacı demek. Tüketimin ilk beşi ise ABD, Çin, Japonya, Rusya ve Almanya. ABD 2006 senesinde 1 milyar tondan fazla petrol içmiş. Bu rakam ise Türkiye'nin yıllık ihtiyacının 40 katından fazla.

Çok Güzel Hareketler Bunlar (07.05.2009)

NBA'de playoff maçları oynanıyor. Sağolsun NTV Spor ve NBA TV kanallarından bir miktar takip etmek mümkün olup biteni. NBA TV'de beni sinir eden bir detay jenerik görüntülerinin çok seyrek yenilenmesi, 3-5 sene hep aynı şeyleri gösteriyorlar. Ama bu playoff sezonunda "Where Will Amazing Happen This Year?" adıyla hazırladıkları bir dizi kısa görüntü var ki seyretmeye doyum olmuyor. Eski playoff'lardaki hoş görüntüler, ağır çekimde, siyah-beyaz olarak, güzel bir fon müziği ile hazırlanmış. Benim favorim Boston Celtics'den Rondo-Pierce-Garnett üçlüsünün müthiş bir oyunu.

Bütün İnsanlık Tehlikede, Öksürürken Ağzınızı Kapatın (30.04.2009)

Dün gece Dünya Sağlık Örgütü'nün domuz gribi virüsüyle ilgili olarak yaptığı açıklamayı dinliyorum televizyondan. Direktör ve yardımcısı domuz gribi ile ilgili yaygın hastalık alarmı seviyesini 4'ten 5'e çıkardıklarını duyuruyorlar. Dünya çapında bir salgın olduğunu söyleyebilmek için alarm seviyesinin en üst seviye olan 6'ya çıkması gerektiğini ve bunun yakın gelecekte olacağını tahmin ettiklerini söylüyor ve ekliyorlar "Böyle bir salgın durumunda tüm insanlık tehdit altına girer". Basın mensuplarından biri soruyor "Peki sıradan vatandaş ne yapmalı?" Cevap çok basit geliyor "İyi beslenin, öksürürken ağzınızı kapatın ve ellerinizi sık sık yıkayın".

Basın mensuplarını bilmem ama ben tüm insanlığı kurtaracak formülün bir nebze daha karmaşık olmasını beklerdim. Ama değilmiş, bu kadar basitmiş. Son yıllarda bu tip salgınlar sıklıkla görülmeye başlandı. Her defasında insanoğlunun bu tehditlere karşı ne kadar savunmasız olduğunu farkediyorum. Virüs bildiğin grip virüsünün bir çeşidi. Birkaç sene önce kuş gribiydi, bugün domuz gribi olmuş. Grip hastalığı ilk olarak milattan önce 412 yılında Hipokrat tarafından tanımlanmış. İlk grip salgını ise 1580 yılında baş göstermiş ve o günden beri her 10 ile 30 yıl arasında bir salgın olmuş. 1918-1919 yıllarında İspanyol gribi denen cinsi Hindistan'da 17 milyon kişiyi öldürmüş. O günden beri virüs bizden hep bir adım önde. Sanki daha zeki. Kendini sürekli yeniliyor, açık bir kapı arıyor, buluyor ve bizi yamultuyor. Bizim tek yapabildiğimiz kapılar açıldıkça kapatmak. Bu yarışta bizim virüsün önüne geçme gibi bir lüksümüz şimdilik yok anladığım kadarı ile.

Gene de bu son yıllardaki salgınları ucuz atlattığımızı düşünüyorum. Bilmem bizim artan becerimizden mi, yoksa virüslerin insafından mı. Dünya tarihinde insanlığı kasıp kavuran tek hastalık grip değil tabii ki. Daha değişik pek çok salgınla boğuşmuş insanlık. Örneğin çiçek dünya tarihi boyunca en belalı hastalıklardan olmuş. 18. yüzyılda her yıl 400,000 insanı öldürmüş. Ama çiçek aynı zamanda bugüne kadar tamamen ortadan kaldırabildiğimiz tek bulaşıcı hastalık. O yüzden benim kolumdaki çiçek aşısından kızlarımda yok artık. Ama herhalde onların, olmadı çocuklarının kollarında bende olmayan HIV aşısı olacak. Ne enteresan bir hayatta kalma mücadelesi.

Lisans Öğrencileri İçin Projeler (13.04.2009)

Son 1 yılda kapımı çalan 3 lisans öğrencisinin akademik çalışmalarıma yaptıkları katkının, bir iş yerinde tam zamanlı çalışıp da yolu kırk yılın başında bir kere odama zor düşen yüksek lisans öğrencilerimin verdiği katkıya göre daha fazla olduğunu görünce bu kaynaktan neden daha fazla faydalanmıyorum diye düşünmeye başladım. Eğer bölümümüzde lisans öğrencisiyseniz (veya başka bir okulda/bölümde öğrenci iseniz ve yolunuz bir şekilde bu sayfaya düştü ise) ve aşağıdaki konularda kendinizi geliştirmek, kullandığımız yazılım geliştirme araçlarına/platformlarına aşina olmak, beni daha yakından tanımak, belki ileride olası bir yüksek lisans çalışması için kapıyı aralamak istiyorsanız, buyrun gelin veya bir eposta ile bana ulaşın.

Ben basitçe bilgisayarları ve programlamayı seven, öğrenmeye hevesli, bilgisini ve becerisini başka insanlarla paylaşmaktan keyif alan öğrencilere hem onların hem de benim faydalanacağım birşeyler yaptırmak istiyorum. Mesela hemen şimdi aşağıdaki konular geliyor aklıma.

- Sayısal metodlar ve CFD eğitiminde kullanılmak üzere geliştirdiğim yazılımlarla testler yapmak, hata ayıklamak, kullanma klavuzu hazırlamak.
- Yeterli programlama bilgisi olan öğrenciler için yukarıda bahsettiğim yazılımlarla ilgili aktif geliştirme yapmak.
- Yeni bir açık kaynak kodlu, mühendislik eğitimi amaçlı yazılım projesi taslağı üzerinde kafa yormak, uygun geliştirme araçlarını seçmek, Grafik Kullanıcı Arayüzü tasarımı yapmak, bilgisi olanlar için kod yazmak.
- MATLAB ile akış simülasyonu yapan bir kod için ağ yaratıcısı ve son işleme (post processing) yapan bir kullanıcı arayüzü geliştirmek.
- Kendi geliştirdiğimiz CFD kodlarını bir dizi test problemi ile sınamak.
- İlgisi ve yeteneği olanlar için MATLAB ve C++ ile paralel çalışan programlar geliştirmek.

Yukarıda da yazdığım gibi bunlar hemen şimdi 5 dakika içinde aklıma gelenler. Konuştukça sizin ilgi alanlarınıza ve becerilerinize göre başka şeyler de gelecektir aklımıza.

Simulating the Air Flow Inside the Human Nose (13.04.2009)

For reasons that I think should be clear to everybody, I find it very motivating to relate my reserarch work to biological systems. When the subject is the simulation of fluid flow, human body provides two main application areas, the air flow inside the respiratory system, and the blood flow inside the circulatory system. I think it was three years ago when I met with Dr. Samet Ozlugedik, a medical doctor with a speciality of Otorhinolaryngology. He somehow heard about CFD and its use for the simulation of air flow in the nasal cavity. It was a very interesting educational experience for me to discuss the technical details of fluid flow and its simulation with somebody who has almost no background on these topics. Of course in the meantime I learned a bit about the anatomy of the human nose and its medical terminology. We worked together for some time and published our first paper about the effect of two common surgical operations on the air flow characteristics of the nasal air flow. The project included taking CT scans of the nasal cavity of a cadaver, creating 3D CAD model of it and simulating the air flow inside it, modifying its geometry through a series of virtual surgeries and re-simulating the flow.

Right now we are interested in understanding the details about the ventillation of the human maxillary sinus. It is important to understand this phenomena due to its link to the very common sinusitis illness. This time we decided to work on a nose-like model instead of a real nose geometry. We prepared a number of nose-like models with different geometrical characteristics and currently we are simulating the diffusion of a gas inside the maxillary sinus during a typical breathing.

Below you can see the details of one of our nose-like models and the results of a simulation during the inhale stage. Our nose-like model includes the nasal valve (the narrow portion after the nostrils) the middle and inferior conchas (L-shaped solid parts obstructing the air flow) and the prismatic maxillary sinus. For the simulations we are using a commercial CFD software, but my ultimate aim is to develop a fully automated mesh generator and flow solver platform that can easily be used by medical doctors at their offices for very quick and accurate patient-based CFD simulations. Starting with two-dimensional CT scan data and ending up with post processed CFD results with just one click of a button is a very big challenge, but that's the kind of tool medical doctors want from engineers.

Our First GPU Computing Project (04.04.2009)

It was 4 months ago when I first met with the CUDA based GPU computing concept. As I wrote in this blog, one of our third year students came to me with this idea and we started investigating how we can use it to increase the run time efficiency of our flow solvers. At the end of 2008 we prepared a project proposal with a relatively small budget. You can read its summary in Turkish here. The project is about parallelizing a Least Squares Finite and Spectral Element based flow solver by utilizing the enormous parallel computing power of GPUs. Nowadays we are searching the market for a GPU that will fit our budget and it looks like that we'll probably select an NVIDIA GTX295.

What limits the computation speed of today's CPU-based high performance scientific computing is actually not the CPU speeds, but rather the speed of memory access. In recent years the CPU speeds increased at a very high rate, but the memory latency and bandwidth couldn't keep up with that. Today, it is very common for number-crunching scientific codes to spend most of their time not for doing actual calculations but to wait for reading/writing data from/to the memory. However the architecture of today's GPUs are quite different than the CPU's. Thanks to the demanding and profitable computer game industry, graphics card manufacturers learned how to do massive parallelization with very high memory bandwidth long time ago. For example GTX295 has 480 processor cores in it and it provides a memory bandwidth of 224 GB/sec. Compare it with Intel's newest Core i7 processor which has 8 cores with hyperthreading and a memory bandwidth less than 20 GB/sec. Numbers are not very different for Intel's Xeon processors which are advertised for the HPC market. Anybody who is claiming of doing HPC should give GPU computing a try after seeing this huge difference. That's what we are doing.

Cartesian Mesh Generation (18.03.2009)

For the last couple of years we are working together with Prof. Haluk Aksel on the development of Cartesian mesh based flow solvers. He is mostly interested in using the finite volume technique for compressible flow solutions and I am working on developing finite element based solvers for incompressible, biological and micro scale flows. A Cartesian mesh is a very special type of unstructured mesh. In 2D and 3D all elements in a Cartesian mesh are squares and cubes, respectively. One major motivation for using Cartesian meshes is the automation of the initial mesh generation process. In the following animation you will see the progress of the generation of a 2D Cartesian mesh for a flow over a square obstacle.

To generate the mesh all we need to provide is the geometry of the fluid region, a rectangular channel in this case, and the geometry of the solid region, which is a square here. If necessary it is possible to have multiple solid regions. The mesh generation process starts by generating a square root cell that will include all the fluid and solid regions. Then this root cell is uniformly refined by dividing it into 4. Then we divide each of the four children of the root cell into 4. The animation shows a 5 step uniform refinement, which at the end results in 1024 equisized square cells. While we perform this refinement we detect the intersection of the cells with the fluid and solid regions and label each cell as a fluid cell (cyan), solid cell (green), fluid/outside cut cell or fluid/solid cut cell (red) and outside cell (blue).

After the 5 step uniform refinement the animation continues with a 4 step cut cell refinement process. Two reasons for this are i) be able to capture the geometrical details of the fluid and solid boundaries and ii) obtain finer cells near the solid boundaries so that a detailed boundary layer solution can be obtained. During this refinement we usually implement the 1-level rule to make sure that the refinement will progress into the inner fluid region in a smooth way.

Of course there are quite a lot of details behind the scenes. But as you can see from the animation couple of issues need quick fixes. For example the cut cell refinement is applied at the fluid/outside and the fluid/solid interfaces in exactly the same way. This produces unnecessarily fine cells at the inflow and outflow of the rectangular channel, which should be avoided.

Apart from the automation of the initial mesh generation, another big advantage of using a Cartesian mesh is the ability to perform mesh refinement and coarsening during the solution of the flow. This is very important for capturing all the essential details of the flow field as efficiently as possible. The most challenging part of Cartesian mesh generation with automated refinement/coarsening is the selection and efficient use of data structures for storing the mesh and the book keeping details as the mesh is modified.

Our work on developing Cartesian mesh based flow solvers is currently in progress and you can follow the details here.

New Graduate Course (03.03.2009)

I do not exactly remember when I first prepared the proposal for this new CFD course, but today I learnt that it is finally get accepted by the Graduate School of Natural and Applied Sciences. So starting from the next semester I may offer this graduate course titled "ME 705 Computational Fluid Dynamics for Incompressible Flows". The course will include lots of hands on programming for finite volume based pressure correction techniques.

Kessler Syndrome (12.02.2009)

According to a news that I read today, two communication satellites orbiting the earth at an altitude of about 800 km. crashed into each other. One was launched at 1997 and the other was an old, now nonfunctioning, Russian satellite launched at 1993. Of course this accident generated lots of space debris which are now orbiting the earth. If you watched the movie Wall-E you may remember how the earth's lower orbit was completely clogged with satellite debris. I don't know how we should feel about it, but there are people actually trying to create catalogues of these small objects around the Earth. The list is currently known to have 17000 parts, and the number is increasing.

Donald J. Kessler, a NASA consultant, once proposed a scenario about the increasing number of these debris, in which the volume of space debris in Low Earth Orbit is so high that objects in orbit are frequently struck by debris, creating even more debris and a greater risk of further impacts. This domino affect, known as the Kessler Syndrome, points to the possibility of rendering space exploration, and even the use of satellites. OK, maybe these will not happen in the near future, but I guess we can say that the chance of getting hit by a manmade space debris is increasing everday. Such an event happened only once until now. In 1997 an Oklahoma woman hit by a 10x13 cm piece that was later confirmed to be part of a Delta II rocket which was used to launch a U.S. Air Force satellite in 1996.

Saat 15'i 32 Geçmeye Çalışırken ... (09.02.2009)

... "Yalanım" dedi Dünya. "Yanlış yerdesin, yanlışın peşindesin". Küçük kızım yuvada uyurken, büyük kızım derslerini bitirmiş servisine koşarken, Aytülü'm bilmem ne sıkıntılarla boğuşup mesaisini tamamlamaya çalışırken ve ben müziğimi dinlerken, bugün de Dünya, saat 15'i 32 geçmeye çalışırken, "Yalanım" dedi. Ben ona yalansın diyemedim, bu satırları yazdım. Şarkı bitti ve saat 15'i 38 geçti.

Happy to Code (05.01.2009)

This is the first blog entry of the new year. The semester is almost over, and there is really not much left to think about the courses that I'm teaching. It's cold and rainy outside, but warm and silent inside. Just the perfect conditions to do some research coding. Yesterday I started converting my LSFEM based flow solver that I wrote in MATLAB to C++. Two-dimensional solutions with couple of 10 thousand elements require hours of run time with MATLAB, which is totally unacceptable. To speed up the solution I first tried MATLAB's own compiler. It is good to create executables that you can run on machines which do not have MATLAB installed. But I could not notice any speed gain. Then I had a look at the C code generated by MATLAB's compiler, to find out how awkward the result of the automatic conversion was. There was only a main() function, which makes necessary calls to all the built-in MATLAB functions that my code uses. That's not what I want. What I want is to convert all my MATLAB code to C++ line by line, and it looks like that MATLAB's compiler is not useful for this purpose. So I started to do the conversion by myself. And I'm so happy that I'm back to coding once again.

This morning I just could not wait to arrive to my office and start coding from where I'm left last night. I really really like this. For many flow problems we have the ability to come up with proper mathematical models, but we are just limited with the computational resources. Given 100 times more computational power, we can easily perform numerical simulations to study the details of problems that have not been studied before. But of course waiting for more resources is not the way how science progresses. In the meantime we need to come up with techniques and algorithms that will utilize the avaliable resoruces as efficiently as possible.

Computers become useful only if you ask them to do useful things and that's exactly what I'm trying to do. I ask them to do simple algebraic operations which at the end will provide the details of pretty amazing flow fields. It's like sitting inside a wind tunnel and being able to do instant measurements of any property at any point of the flow field you want. CFD is amazingly powerful, but like everything else it needs improvement.