1
$\begingroup$

Is it reasonable for a FEM and FVM code to converge to slightly different solutions for the same physical problem (identical BCs, geometry, properties, etc...), provided stability constraints are satisfied? Or even, is it possible for different FEM methods to converge to different solutions?

This is supposed to be more of a general question, but it is inspired by a specific example that I tested a few weeks ago.

A few weeks ago, I tried modeling a simple thermal expansion problem in Abaqus, ANSYS, and a FVM solver, all of which operates under linear elasticity. I'm pretty sure the conditions are specified identically in all 3 solvers, but it appears that the 3 solvers converge to slightly different results with about a 10-20% difference (the difference exists for Abaqus vs. ANSYS as well, 2 FEM solvers).

I wrote the FVM solver myself, and I've verified that the linear elasticity equations are solved correctly and I assume established solvers like ANSYS and Abaqus are solving their equations correctly as well. It puzzles me how the 3 solvers can each converge to different solutions, and I can't intuitively think of how this can be possible, numerically?

$\endgroup$
8
  • $\begingroup$ Do all solvers work on the same mesh(es)? Did you try solving the problem on the same mesh and compare the results? $\endgroup$
    – Anton Menshov
    Jun 27, 2019 at 6:56
  • $\begingroup$ @AntonMenshov Haven't done any comparisons on identical meshes because I'm under the impression that it's an apples to oranges comparison since the solvers each use different discretization methods? So my approach was to refine the mesh for each solver until the solution no longer changes and then comparing that converged solution across the solvers. $\endgroup$
    – anonuser01
    Jun 27, 2019 at 7:01
  • 2
    $\begingroup$ It is kinda of apples and oranges for the meshes of two methods like FEM and FWM. Nevertheless, it is a good idea for the commercial solvers. Also, you should check that you are using "the same" method, it is really common for software like Ansys and Abaqus to have some tweaks like reduced integration. $\endgroup$
    – nicoguaro
    Jun 27, 2019 at 13:01
  • 2
    $\begingroup$ Have you refined the meshes to see if the solutions change with finer meshes? $\endgroup$ Jun 30, 2019 at 3:06
  • $\begingroup$ @nicoguaro I just checked Abaqus vs. ANSYS, and the solutions are indeed different for the same mesh. I know that both solvers are FEM, but even within FEM, there are different types of FEM methods, so a direct comparison may not work? $\endgroup$
    – anonuser01
    Jul 1, 2019 at 20:33

1 Answer 1

1
$\begingroup$

It is difficult to give you advice since we don't know the details of the problem that you are solving. As a general answer, I would say that you should get the same results between FEM program A and FEM program B, but this might no be as simple as it sounds because you might need to tweak some defaults to get it.

Nevertheless, I would suggest the following:

  1. Use an analytic solution to check that you are reproducing the results. For example, you can find the displacements for a sphere that is heated non-uniformly with a temperature distribution that is spherically symmetric. In that case, the (radial) displacement field is given by

    $$u_r = \alpha\frac{1 + \nu}{3(1 - \nu)}\left[\frac{1}{r^2}\int\limits_{0}^rT(r)r^2\mathrm{d}r + \frac{2(1-2\nu)}{1 +\nu}\frac{r}{R^3}\int\limits_0^R T(r) r^2\mathrm{d}r\right]\, ,$$

    where $T(R) =0$ have been assumed.

  2. Use the method of manufactured solutions to check the desired convergence. You could check reference 1, where they do it for Abaqus.

References

  1. Aycock, Kenneth I., Nuno Rebelo, and Brent A. Craven. "Method of Manufactured Solutions Code Verification of Elastostatic Solid Mechanics Problems in a Commercial Finite Element Solver." arXiv preprint arXiv:1902.07608 (2019).
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.