An open note for all the Mathematica
- To: mathgroup at smc.vnet.net
- Subject: [mg108577] An open note for all the Mathematica
- From: Pratip Chakraborty <pratip.chakraborty at gmail.com>
- Date: Wed, 24 Mar 2010 04:41:39 -0500 (EST)
Dear MathGroup Members, I have been using Mathematica for a long time now. I like it; actually it will be better to say that I am kind of in love with it. However in the versions of Mathematica 6 and 7 we saw many new features that are really great. But I was thinking if the developers have any plan to increase the numerical capabilities of Mathematica in near future. In our institute which is a quite renowned one in the world we use Mathematica but we also face a group of coworkers who just don't get enough convinced with the numerical power of Mathematica. They are not completely wrong with their point of view, I must admit that. But with my experience I feel that Mathematica still has much scope to incorporate cutting edge algorithms that can extend its numerical power to a much greater extent. I will specify some of them in the following. Especially the in case of numerical simulation of coupled PDEs the development seems to be quite stagnant if we consider the last four versions. On the other hand there is a free add on called IMTEK which proves to be an example how Mathematica can be used to solve industrial scale problem in the field of multiphysics. There is an exceptional add on Analog Insydes that also shows Mathematica technology is powerful and robust enough to tackle simulations of large dynamical system that are nonlinear and governed by DAEs. I am giving these examples because with new and new version release of Mathematica the task to interface this old and add-ons seems to be a nasty job. Whereas it is more than conspicuous that IMTEK is a great piece of open source software that will perform much better if integrated with latest version of Mathematica. My question is if there is any plan in the development pipeline to include this type of simulation features. I am sure with this credibility Mathematica will be no doubt one of the best prototyping tool available for the whole applied mathematics community. Another place that can be easily extended is the parallelization of Linear System solver. There are so many excellent C++ solvers which are open source. It should not be much more difficult than how IDA package was integrated in NDSolve. Mathematica has the entire ingredient to have a parallel LinearSolve I don't know why it is still missing. Ability to take advantage from GPUs were announced ( http://www.nvidia.com/object/io_1227010734073.html) but not included finally in version 7. May be the time was not correct in 2009 but now it seems to be good future step for the next Mathematica release. I myself have managed to use the CUDA architecture in my Mathematica code and I am just a graduate student of applied mathematics. I will really look forward to see it. FindRoot is also a function that needs a lot of attention. There are so many wonderful algorithms available which by their own right deserve a place in the package that FindRoot offers. With just a few days of effort and consulting some recent literatures I remember to have implemented a homotpy continuation based algorithm in Mathematica that can deal with large nonlinear systems which FindRoot simply fails to solve deal with. I am sure it does not require too much effort Mathematica already has everything in its disposal. What we need is a much more dynamic vision and a strong wish to excel better than everybody else. Another system has extended its parallel capabilities to cover vast areas of mathematics with their release in 2010 we must not stay behind. Another part of hardcore numerics is finite element based computation. Mathematica still possess very naive support for doing such things. There is no finite volume or mesh free method implemented within Mathematica PDE solver. Once we build a simple frame work for such things we can carry on further to enrich it and update it with latest algorithms. Mathematica specially has this quality to achieve them as it has such beautiful building blocks in the core supported with elegant functional programming paradigm. Another missing stuff is documentation for interfacing C/C++ programs. There is very few or no example that properly shows how powerful technology Mathematica brings with it. Though parallel computation supported Mathematica must now make many of its functions for manipulation and creation of List to use the multicore architectures. Most institutes now have large vector machines and with a little step further Mathematica can deliver tremendous power by using this powerful hardware at their full force. These are some of the things that I, being a Mathemaica lover, would like to see implemented in near future. Of course I understand that Mathematica is a proprietary software and the developers might not like or have the freedom to answer or even give any hint to my questions but still I could not help writing this post because I really like the software and want it to be unbeatable in the field of computational science and no need to mention that I dream that one day my colleagues will be convinced and will consider that Mathematica is worthy to give a try even for most of the industrial scale numerical problems. At last if given the chance for this post to appear in the group I will not really look forward for a concrete answer from the core developers but a healthy discussion does not seem to be too much to ask. All the Mathematica gurus/lovers are encouraged also to write their suggestion for the development team and to mention the unplugged Mathematical flowers our good old friend Mathematica should pick up on its way to a bright future. With best regards to all, Pratip