I have been experimenting with using the sparse solver to analyse structural frames. Results have been generally good, with the solution of a 750x750 matrix coming down from about 2 minutes using a VBA Gaussian Elimination routine to about 0.05 seconds with the C# version of the sparse solver (2500 times faster!).
I'm having trouble with a very simple problem used to find the buckling load of straight columns. The column is subdivided into a number of segmemts, and given very small lateral deflections at each node, and adjusted iteratively until the deflected shape matches the bending moment diagram. With 8 segments the sparse solver gives results that are about 60% too small, and returns termination type 7. With 50 segments it takes several seconds to solve, and the results are also wrong, and with 100 segments it fails to converge after several minutes.
I have several questions: 1) Is this behaviour expected with the sparse solver with some problems? 2) If so, is there a way to monitor the solution and switch to a different solver if it is not converging? 3) Or is there something wrong with the way I have set the problem up (although the RMatrixSolve routine solves it with no problem)? 4) Any other suggestions?
For the buckling problem I will use one of the "dense" solvers, but I am concerned that this sort of behaviour may arise with other problems. I have attached a spreadsheet with an example, including sparse solver solution and the RMatrixSolve results (starting line 32 on the "Solve" sheet).
_________________ Doug Jenkins http://newtonexcelbach.wordpress.com/
|