There are sources for various software packages.
./configure --enable-single-host --enable-multiple-versions make make installIf you want to specify more options you can do:
./configure CC='gcc -special-options-here' --prefix=/where-you-want-to-stick-it --enable-single-host --enable-multiple-versions make make installThe "where-you-want-to-stick-it" part defaults to /usr/local/Gambit-C/. The special options might include "-m64" to build a 64-bit system, or "-march=native" to generate code to fully exploit the instructions available on the machine where you're building Gambit-C (so it might not run on a related machine). In Gambit, the directory /usr/local/Gambit-C/current (or wherever you installed Gambit-C) is denoted by ~~.
tar zxf MeroonV3-2008Mar01.tgz cd MeroonV3-2008Mar01 ./make_meroonwhich gives output something like:
banach-117% ./make_meroon Gambit v4.5.3 > "/export/users/lucier/WWW/615-2010/MeroonV3-2008Mar01/old-load.scm" > [ Meroon V3 Paques2001+1 $Revision: 1.1 $ ] > "/export/users/lucier/WWW/615-2010/MeroonV3-2008Mar01/_meroon.o1" > *** EOF again to exitThis builds a file called _meroon.o1; to use it, you load it into the Gambit interpreter or compiler:
banach-118% gsi Gambit v4.5.3 > (load "_meroon") [ Meroon V3 Paques2001+1 $Revision: 1.1 $ ] "/export/users/lucier/WWW/615-2010/MeroonV3-2008Mar01/_meroon.o1" >And you're ready to go.
If you like, you can copy _meroon.o1 to ~~/lib, make soft links in ~~/bin from gsi++ and gsc++ to gsi and gsc, respectively, and then put a file named gambcext containing
banach-125% cat gambcext (case (string->symbol (car (##command-line))) ((gsi++ gsc++) (load "~~/lib/_meroon.o1")) (else #f))into ~~/lib. (See the Gambit-C documentation for ~~, gambcext, etc.)
banach-146% gsc Gambit v4.6.0 > (load "old-load") "/export/users/lucier/WWW/615-2010/MeroonV3-2008Mar01/old-load.scm" > (old-load "pre_meroon.scm") [ Meroon V3 Paques2001+1 $Revision: 1.2 $ ] > (compile-file "_meroon.scm") "/export/users/lucier/WWW/615-2010/MeroonV3-2008Mar01/_meroon.o1"This builds _meroon.o1, which you can later use by
banach-147% gsc Gambit v4.6.0 > (load "_meroon") [ Meroon V3 Paques2001+1 $Revision: 1.2 $ ] "/export/users/lucier/WWW/615-2010/MeroonV3-2008Mar01/_meroon.o1" >
The PDE tests can be run interpreted as:
banach-144% gsi++ [ Meroon V3 Paques2001+1 $Revision: 1.1 $ ] Gambit v4.5.3 > (load "all.scm") "/export/users/lucier/WWW/615-2010/software/all.scm" > (load "final-tests.scm") "/export/users/lucier/WWW/615-2010/software/final-tests.scm" > (run-cg-tests symmetric-tests) a=1, c=1, u=x^2-y^2, Neumann CG: (Identity preconditioner) .0001791876 .0221310177 548. 272. CG: (Diagonal preconditioner) .0001004770 .0221013194 448. 220. CG: (Gauss-Seidel preconditioner) .0002638475 .0221169467 452. 184. a=1, c=1, u=\cos(\pi x), Neumann CG: (Identity preconditioner) .0008348367 .0545089348 440. 200. CG: (Diagonal preconditioner) .0009427600 .0545710185 196. 104. CG: (Gauss-Seidel preconditioner) .0010239329 .0545544078 328. 152. a=1, c=1, u=\sin(\pi x)+\sin(\pi y), Neumann CG: (Identity preconditioner) .0009588935 .0771112835 672. 328. CG: (Diagonal preconditioner) .0009490023 .0771118447 508. 240. CG: (Gauss-Seidel preconditioner) .0014972567 .0772266771 740. 348. a=11.0+10.0*\cos\pi x, c=1, u=xy, Neumann CG: (Identity preconditioner) .0002050553 .0156473650 3084. 1488. CG: (Diagonal preconditioner) .0002260837 .0156703111 1192. 620. CG: (Gauss-Seidel preconditioner) .0002228954 .0156726041 1076. 476. a=1, c=1+xy, u=x^2-y^2, Neumann CG: (Identity preconditioner) .0001756872 .0221335135 568. 296. CG: (Diagonal preconditioner) .0001874367 .0221308722 436. 232. CG: (Gauss-Seidel preconditioner) .0003010423 .0221420216 424. 208. a=1, c=2+\cos(\pi y), u=\cos(\pi x), Neumann CG: (Identity preconditioner) .0007976776 .0545059247 560. 272. CG: (Diagonal preconditioner) .0008194825 .0545587117 324. 156. CG: (Gauss-Seidel preconditioner) .0008548599 .0545403659 424. 176. a=1, c=1, gamma=2+\cos(\pi x), u=\sin(\pi x)+\sin(\pi y), Robin CG: (Identity preconditioner) .0008242119 .0770983214 768. 360. CG: (Diagonal preconditioner) .0008311925 .0771132908 720. 340. CG: (Gauss-Seidel preconditioner) .0008294558 .0771042524 656. 276. a=11.0+10.0*\cos\pi x, c=1+xy, gamma=2+\cos(\pi x), u=xy, Robin CG: (Identity preconditioner) .0001895204 .0156447181 2424. 1268. CG: (Diagonal preconditioner) .0002086356 .0156794918 1112. 548. CG: (Gauss-Seidel preconditioner) .0002001008 .0156626417 952. 468. >Or, you can compile them:
banach-146% gsc++ [ Meroon V3 Paques2001+1 $Revision: 1.1 $ ] Gambit v4.5.3 > (compile-file "all") "/export/users/lucier/WWW/615-2010/software/all.o1" > (load "all") "/export/users/lucier/WWW/615-2010/software/all.o1" > (compile-file "final-tests.scm") "/export/users/lucier/WWW/615-2010/software/final-tests.o1" > (load "final-tests") "/export/users/lucier/WWW/615-2010/software/final-tests.o1" > (run-cg-tests symmetric-tests) a=1, c=1, u=x^2-y^2, Neumann CG: (Identity preconditioner) .0001791876 .0221310177 4. 0. CG: (Diagonal preconditioner) .0001004770 .0221013194 4. 0. CG: (Gauss-Seidel preconditioner) .0002638475 .0221169467 8. 0. a=1, c=1, u=\cos(\pi x), Neumann CG: (Identity preconditioner) .0008348367 .0545089348 8. 32. CG: (Diagonal preconditioner) .0009427600 .0545710185 8. 0. CG: (Gauss-Seidel preconditioner) .0010239329 .0545544078 4. 0. a=1, c=1, u=\sin(\pi x)+\sin(\pi y), Neumann CG: (Identity preconditioner) .0009588935 .0771112835 12. 0. CG: (Diagonal preconditioner) .0009490023 .0771118447 8. 0. CG: (Gauss-Seidel preconditioner) .0014972567 .0772266771 4. 0. a=11.0+10.0*\cos\pi x, c=1, u=xy, Neumann CG: (Identity preconditioner) .0002050553 .0156473650 28. 32. CG: (Diagonal preconditioner) .0002260837 .0156703111 20. 0. CG: (Gauss-Seidel preconditioner) .0002228954 .0156726041 8. 0. a=1, c=1+xy, u=x^2-y^2, Neumann CG: (Identity preconditioner) .0001756872 .0221335135 12. 0. CG: (Diagonal preconditioner) .0001874367 .0221308722 4. 0. CG: (Gauss-Seidel preconditioner) .0003010423 .0221420216 4. 0. a=1, c=2+\cos(\pi y), u=\cos(\pi x), Neumann CG: (Identity preconditioner) .0007976776 .0545059247 4. 0. CG: (Diagonal preconditioner) .0008194825 .0545587117 8. 0. CG: (Gauss-Seidel preconditioner) .0008548599 .0545403659 4. 24. a=1, c=1, gamma=2+\cos(\pi x), u=\sin(\pi x)+\sin(\pi y), Robin CG: (Identity preconditioner) .0008242119 .0770983214 8. 32. CG: (Diagonal preconditioner) .0008311925 .0771132908 8. 0. CG: (Gauss-Seidel preconditioner) .0008294558 .0771042524 4. 0. a=11.0+10.0*\cos\pi x, c=1+xy, gamma=2+\cos(\pi x), u=xy, Robin CG: (Identity preconditioner) .0001895204 .0156447181 20. 0. CG: (Diagonal preconditioner) .0002086356 .0156794918 12. 28. CG: (Gauss-Seidel preconditioner) .0002001008 .0156626417 4. 0. >The last two columns are CPU times in milliseconds to compute the solution, and so-called "garbage collection" times that might happen while the solution is being computed. So you can see that compiling the code speeds it up quite a bit.