Hi, I'm hoping that someone will help me understand the memory requirements of the multiroot algorithms. I'm using GSL routines in a simulation of a mechanical system that I've written in C++. I'm trying to use the multiroot solvers to determine equilibrium states of the system. But the multiroot solvers have been failing, even for the smallest example, complaining that there isn't enough memory to accommodate the required blocks. A rough calculation, included at the bottom of this message, suggests that there should be enough memory and my shell doesn't seem to be imposing any artificial limitations, i.e. all of the associated ulimit parameters are set to "unlimited".
If the GSL solvers aren't appropriate for my problem, then I would very much appreciate any alternative suggestions. I've poked around on the web quite a bit and the alternatives that I've seen all seem to be based on MINPACK and seem likely to have the same limitations. Any help would be very greatly appreciated! Mark ---------------------------- I am assuming that the parts of the system are rigid. The equilibrium equations determine the positions and orientations of the parts. This means that I am searching for a vector and a quaternion for each part, which amounts to 7 component equations per part. The smallest example of the system has 22 parts, giving me 154 equations in the simplest case. After poking around in the GSL code a little bit, it looks like the algorithms require a few matrices with dimensions nxn and a few vectors of length n, where n is the number of equations (and unknowns). If I'm using 10-bit doubles, a 154x154 matrix will require about 23 MB of memory. Since I have 1 GB of memory, a little more than half of which seems to be available to my program, it seems that my memory would accommodate around 22 matrices of this size, which seems more than adequate. _______________________________________________ Help-gsl mailing list [email protected] http://lists.gnu.org/mailman/listinfo/help-gsl
