Free Scientific Software for Developing World?
FlashBoltzmann asks: "I'm a physics student in the US working with a group
of physicists, mostly from Africa, who are interested in helping their colleagues on the continent obtain free software for
scientific and educational use. Often, many science
departments in Africa have little or almost nonexistent
funding to purchase new software packages, especially for
scientific research or education. Some know of the free
software available but say it takes up large amounts of time
over often slow internet connections to find and obtain it. I am asking for any recommendations on freeware or open source software, for any operating system, that anyone knows about. We are looking at the Debian version of Linux for a lot of the great software
that comes with it but resources for MS Windows would be
helpful as well."
"Free educational software of any level is appreciated though we prefer college and graduate level software. Also, field specific software is great, e.g. software for condensed matter physics. Eventually we'll probably combine the software on CDs to be distributed to these scientists. Any help is appreciated especially with programs that perform simulations, mathematical and statistical analysis and plotting, compilers, lab software, etc. The users of the software will most likely be physicists or mathematicians."
This is most likely the most complete site out there when it comes to science on linux. http://sal.kachinatech.com/
2. For volume rendering i recommend VTK the visualization toolkit. A bit high on overhead required to use it, but quite powerful when you learn. In addition to volume rendering, supports isosurfaces (via marching cubes), segmentation algorithms, and many other image classifications. Delauney triangulation, and many of the elements needed for production visualization pipelines.
3. BLAS and LAPACK are absolutely essential. Basic Linear Algebra and Linear Algebra subroutines for everything from optimized matrix-matrix operations to Singular Value Decomposition and cholesky factorization of band diagonal symmetric yadayada. I use this stuff daily and the LAPACK subroutines would be one of the first things I would compile in a new environment. The LAPACK subs call BLAS subs. Note that I have these in fortran but called from C/C++. I dont know if they have been ported to C yet.
4. Stay away from those fancy "data explorer" deals. Complete waste of time. Chances are with a little more work you can do a better job, in a smaller package, with a *ton* less overhead by writing a bit of code. Learn a command line parser (you could prolly use getopt) and write your own library. I recommend brewing up 1D 2D and 3D storage classes that are reusable via C++ classes. For 2D/3D we use files with an ascii header and binary data, and have written utilities to do math on or between them. We also spent the time to write our own plotting software direct to postscript, so I have not had to struggle with the crap that is the freely available plotting software. GNU plot is simply pathetic. And if you pay for something like NCAR it is at least as bad but costs a hell of a lot more.
5. As far as those fancy environments go, I have used AVS, KHOROS, IBM explorer, and the SGI IRIS explorer. One of these that was free and probably the easiest to use is now not free (khoros). The IBM data explorer is also free now, but it is a total piece of crapola in my not so humble opinion.
6. Finally. Get the numerical algorithms book for your fav language. You wont regret it.
Having to be a testicle, I am happily the testicle of a spork.
2. For volume rendering i recommend VTK the visualization toolkit. A bit high on overhead required to use it, but quite powerful when you learn. In addition to volume rendering, supports isosurfaces (via marching cubes), segmentation algorithms, and many other image classifications. Delauney triangulation, and many of the elements needed for production visualization pipelines.
3. BLAS and LAPACK are absolutely essential. Basic Linear Algebra and Linear Algebra subroutines for everything from optimized matrix-matrix operations to Singular Value Decomposition and cholesky factorization of band diagonal symmetric yadayada. I use this stuff daily and the LAPACK subroutines would be one of the first things I would compile in a new environment. The LAPACK subs call BLAS subs. Note that I have these in fortran but called from C/C++. I dont know if they have been ported to C yet.
4. Stay away from those fancy "data explorer" deals. Complete waste of time. Chances are with a little more work you can do a better job, in a smaller package, with a *ton* less overhead by writing a bit of code. Learn a command line parser (you could prolly use getopt) and write your own library. I recommend brewing up 1D 2D and 3D storage classes that are reusable via C++ classes. For 2D/3D we use files with an ascii header and binary data, and have written utilities to do math on or between them. We also spent the time to write our own plotting software direct to postscript, so I have not had to struggle with the crap that is the freely available plotting software. GNU plot is simply pathetic. And if you pay for something like NCAR it is at least as bad but costs a hell of a lot more.
5. As far as those fancy environments go, I have used AVS, KHOROS, IBM explorer, and the SGI IRIS explorer. One of these that was free and probably the easiest to use is now not free (khoros). The IBM data explorer is also free now, but it is a total piece of crapola in my not so humble opinion.
6. Finally. Get the numerical algorithms book for your fav language. You wont regret it.
Having to be a testicle, I am happily the testicle of a spork.