22 oct. 2009

Frenezigaj semajnoj

Averto: Ĉi tiu blogero por neinteresatoj de ĝia temo povas esti enuiga!

Finfine hieraŭ du tri semajnoj da senspiriga laborado rezultatis. Mi ne sukcesis solvi tiujn antaŭe menciitajn ekvaciojn uzante programojn kiuj uzas la metodon de finiaj elementoj (ĉefe Comsol). Tial mi ŝanĝis strategion kaj provis uzi alian metodon surbaze de finiaj diferencoj (en. finite difference). En tiu metodo oni dividas spacon kaj tempon al malgrandegaj partoj (krei kradreton) kaj kalkulas derivaĵojn de funkcioj en tiuj subspacoj per polado. Tiel ekzemple evoluo de funkcio en tempo t povas kalkuliĝi sciante valoron de tiu funkcio en du antaŭaj paŝoj:


Programon por tiu kalkulo estis skribinta alia esploristo jam en 1994, sed tiu programo estis en FORTRAN. Do mi reskribis tuton de la programo per la programlingvo C kaj iomete ŝanĝis metodojn de la kalkulo. Evidente kiel ĉiam tie estis kelkaj eraroj kaj mi pasigis tri lastajn semajnojn por trovi tiujn erarojn, korekti ilin kaj kontroli la kalkulojn. Finfine hieraŭ mi sukcesis atingi ĝustajn rezultojn por la unua fojo per tiu programo. Nun mi devas plibonigi kaj modifi ĝin por ke ĝi funkciu en kazo de miaj eksperimentoj.

Mi konstatis, ke kiam mi uzas mian porteblan komputilon la programo uzas nur unu komputantan kernon de la procezilo (hejmen mi uzas la kompilanton GNU C por linukso). Tiel ŝajnas, ke por uzi ambaŭ komputantajn kernojn de la procezilo mi devas uzi specialajn rimedojn kiel OpenMP. Pri tio mi laboros plu.

Aucun commentaire: