1) Lejuplādējam OpenFOAM un ThirdParty pirmkodu no www.openfoam.org. Iekopējam vēlamajā direktorijā, piemēram, FOAM_INST_DIR=/opt/matmod/OpenFOAM. Norādām vides mainīgos kā teikts mājaslapā.
2) Uz klāstera ir vecas sistēmas programmas un bibliotēkas, bet, tā kā man nav root tiesību, savā mapē biju instalējis dažu programmu jaunākas versijas. OpenFOAM pamata instalācija jau pašā sākumā nekompilējās, tāpēc izlēmu nokompilēt arī jaunu kompilatora Gcc versiju. Mapē ThirdParty iekopēju pirmkodu šādām nepieciešamajām programmām: gmp-5.0.2, mpfr-2.4.2, mpc-0.9 un gcc-4.4.6 (pēdējai pietiek ar core un gpp arhīviem). Arī šeit jau pati pirmā programma nekompilējās ar daudziem paziņojumiem “multiple definition of…”. Biju jau iepriekš dabūjis gcc versiju 4.3.3, kas acīmredzot nesapratās ar glibc bibliotēku, ko var nomainīt tikai cilvēks ar root tiesībām. Lai novērstu problēmu, gcc komandrindai vajadzēja izņemt “flagu” -std=gcc99 un pielikt -fgnu89-inline. Starp iepriekšējiem paziņojumiem uz ekrāna, kad tika laista kompilācija, atradu ar kādiem “flagiem” tika palaists gcc. Tos norādīju vides mainīgajos CFLAGS un CPPFLAGS, izņemot ārā -std=gcc99 un pieliekot -fgnu89-inline. Manā gadījumā tas bija izpildāms no komandrindas sekojoši
export CFLAGS="-O2 -pedantic -m64 -mtune=core2 -march=core2 -fgnu89-inline"
Pēc tam viss nokompilējās, palaižot ThirdParty-2.0.x/makeGcc (palabojot tās sākumā programmu atbilstošos versiju numurus). To, kas uzģenerējās mapes ThirdParty-2.0.x/platforms/linux64 apakšmapēs, saliku mapē /opt/matmod/local. Pievienoju norādes vides mainīgajos PATH un LD_LIBRARY_PATH, LD_RUN_PATH, LIBRARY_PATH uz /opt/matmod/local/bin un /opt/matmod/local/lib, /opt/matmod/local/lib64, /opt/matmod/local/include. Iespējams, kaut kas ir par daudz, bet tā kā neesmu Linux guru, precīzi nezināju, ko varētu nerakstīt.
3) Drošs paliek nedrošs pielaboju ThirdParty-2.0.x/Allwmake:
[ -n "$WM_CFLAGS" ] && export CFLAGS="$WM_CFLAGS -fgnu89-inline" [ -n "$WM_CXXFLAGS" ] && export CXXFLAGS="$WM_CXXFLAGS -fgnu89-inline"
Kad palaidu Allwmake, viss nokompilējās (OpenMPI un Scotch).
Šoreiz datnes uz local/lib un local/bin direktorijām nekopēju. OpenFOAM pats atrod vajadzīgos failus esošajās direktorijās. OpenMPI tas atrod ar paša definētu vides mainīgo $MPI_ARCH_PATH=/opt/matmod/OpenFOAM/ThirdParty-2.0.x/platforms/linux64Gcc/openmpi-1.5.3
4) Palaidu OpenFOAM-2.0.x/Allwmake, un viss nokompilējas, lai arī find, kas sitēmā ir diezgan vecs, bieži meta kļūdu par to, ka nesaprot parametru ‘-L’