SolidBlog

A guide to SolidWorks Simulation and Finite Element Analysis

#13 Direct Sparse and FFEPlus Solvers

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.

Direct Sparse

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.

FFEPlus

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.

Convergence Plot

 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.

 

Tags: , , , , , , , ,

2 Awesome Comments So Far

Don't be a stranger, join the discussion by leaving your own comment
  1. Dev
    January 7, 2014 at 10:42 #

    Hello Chris,

    Thats a pretty awesome explanation about solvers. I have got a good idea about them. But my concern is if i am running a model with two different solver with the same mesh setting, how it is coming different results?

    • Chris
      January 12, 2014 at 13:18 #

      Hi,

      Thank you for the kind words.

      It is possible running the same model and mesh but with different solvers to get different answers. Hopefully the difference is minimal. However each solver is more suitable to different types of models. DirectSparse is a quicker method for simple simulations, however can fall short for more complex simulations, especially non-linear. On the other hand, FFFE solver is an iterative method, where the answer is achieved the convergence, but it also means it is susceptable to divergence and failing in very specific situations.

      Because FFFE is iterative and convergent, it requires a termination value to stop, and basically say the answer is close enough. This is another reason why you may get different results, as directsparse might be exact for a simple simulation where as FFFE has converged on a very close but not exact answer.

      This is why it is important to have large Factor of Safety s and to use FEA with good engineering practises and experience.

      Hope this is of help

      Chris

Leave a Comment

Remember to play nicely folks, nobody likes a troll.