Solver Selection - Does It Matter?
Choices. Everyone wants choices. We make simple choices like ‘paper or plastic’. Or one of my favorites, ‘domestic or import’! In SOLIDWORKS we can be faced with decisions like ‘assembly or multi-body’! While these are simple examples, what do you decide when you’re faced with the decision ‘FFEPlus or Direct Sparse’? Which solver should you select? While this question does not have an easy answer, there are some guidelines you can follow to help in your selection. Understanding the two solvers is the first step in making a smart decision about which to use.
Before discussing the solvers, let’s recall the fundamental equation being solved by Finite Element Analysis, which is the resultant forces acting on a body are equal to the product of the stiffness and resultant displacement of the body. We express this with the following matrix equation: [F] = [K] * [U]. Regardless of the solver selected, this equation has to be calculated such that equality exists.
The FFEPlus solver is an iterative solver. After you have the CAD model set up with the appropriate boundary conditions, the FFEPlus solver makes an educated guess about the deformation, [U], of the model. Then it evaluates the matrix equations to see how good the guess was, and adjusts the deformation accordingly, depending upon the error in the calculation. This process repeats until the calculation balances.
The Direct Sparse solver is just that – direct. This solver will create the entire matrices used for the numerical FEA solution. This requires generating the stiffness matrix, [K], as well as the inverse of the stiffness matrix, [K]-1. Once calculated, Direct Sparse solver has to compute a simple multiplication problem, written out as: [K]-1 * [F] = [K]-1 * [K] * [U]. Computing the inverse of the stiffness matrix is resource (memory) intensive.
Now that you know what the solvers are, let’s discuss and compare the two solvers, at least as far as how they may relate to your Finite Element Model. If your problem has 25,000 degrees of freedom (DoF) or less, the Direct Sparse and FFEPlus solvers are approximately equal in terms of memory usage and solution time. For problems that approach 300,000 DoF, the Direct Sparse solver usually runs entirely in your system’s RAM, which provides for a “fast” solution. When you exceed 300,000 DoF, the FFEPlus solver is more efficient than the Direct Sparse solver in not requiring as much of your system’s RAM. There are times, however, regardless of the problem size that you may need to use one solver over another. In assemblies with a lot of contacts, assemblies with greatly varying material stiffness between components and contacts with friction, the Direct Sparse solver is usually a better choice. In frequency studies with Rigid Body Motion and problems exceeding 300,000 DOF, the FFEPlus solver is usually the appropriate choice.
What do you do now? You know what each solver is doing at the core. You have a general understanding of what each solver is good at. How do you decide? It’s actually a very simple answer – let Simulation decide for you! In SOLIDWORKS Simulation, there is a system option to let the program decide. To access this, from your pull-down menus, select “Simulation… Options…”, then change to the “Default Options” tab and click on the line for “Results”. Then look at the section for ‘Default Solver’ – we have ‘Automatic’, ‘Direct Sparse’ and ‘FFEPlus’. Set your Simulation system options to ‘Automatic’, and let SOLIDWORKS Simulation decide which solver is the most appropriate for your Finite Element Model. With that decision made for you, you now have time to make your products better with SOLIDWORKS Simulation!