So what’s the differences between Direct Sparse and FEEPlus and when should we use them?
First it’s probably best to describe the function of a ‘Solver’. To find the solution to a Finite element Analysis problem we must solve simultaneous equations (#2 Finite Element Analysis, What is it?) and this is what the solver is used for. There are two main methods; directly, by using numerical techniques such as Inverse Matrix, LU Decomposition, Gauss-Jordon etc or, iterative methods, where we use approximate techniques to find the solution and repeat this process until the change in solution from the previous to current is significantly small or within set error limits and the iteration converges.
This is, as the name suggests, a direct method. Using numerical techniques this solver takes the simultaneous equations and solves them directly and in one go. For instance if you wanted to solve simultaneous equation using the inverse matrix method, like in this video Solving a System of Linear Equations Using Inverses, you need to put all the equations into matrices, find the inverse and multiply out to find the solution. However, in FEA the number of equations is massive so creating inverse matrix takes a lot of work with a lot of factors and numbers to store, requiring a large amount of RAM to perform this operation. This is an example of just one of the possible methods that could be used to solve the equations directly.
Instead of using one of the direct methods such as, Inverse Matrix, LU Decomposition, Gauss-Jordon etc, this method is iterative. It will first approximate certain parameters in order to solve the equations and calculate a solution, it will then increment those estimated parameters and calculate a new solution. By comparing the two solutions it can identify if the solution is diverging or converging. As it converges the answer will get closer and closer to the real answer.
Eventually the change in solution between iterations will become smaller and smaller as it converges, this change is an indication of the error between the actual numerical solution and the solution found using the iterative (FFEPlus method). The software will set a limit to determine when the change in solution between one iteration to the next is small enough it can stop computing and accept that as the solution with minimal error.