Home › Forum › SOFA › Using SOFA › Why both FEM and PDE/ODE Solvers?
 This topic has 5 replies, 3 voices, and was last updated 5 years ago by Hugo.

AuthorPosts

23 February 2016 at 17 h 04 min #5903
Hi,
I have a question about the numerical solving method that are used in many examples of SOFA. As an instance, in “TriangularFEMForecefield” scene, why both “TriangularFEMForecefield” and “EulerImplicitSolver” are used to solve the PDE equations? One of them is not enough for solving the equations?
Best,
Zahra
23 February 2016 at 18 h 05 min #5904Dear Zahra,
Actually, TriangularFEMForecefield does not solve the equations, and EulerImplicitSolver alone do not solve the equations of motion either.
TriangularFEMForecefield belong to the categories of force field, as its name suggest. The only purpose of a force field is to write the equations of motion. It will construct a part of the system of equations: the stiffness matrix, even if sometimes a force field do not assemble explicitly the matrix. (You will also need a mass component to construct the mass matrix.)
The EulerImplicitSolver will construct a linearised version of the system with respect to the time.
However, a third guy is needed to finally solve the linear system: a linear solver (CGLinearSolver (which does not require the assembled stiffness matrix), SparseLDLSolver …)
Hope this help,
Rosalie
23 February 2016 at 21 h 25 min #5905Dear Rosalie,
Thank you very much for this thorough explanation. Now I understand it better.
Best regards,
Zahra
23 February 2016 at 21 h 29 min #5906Nice to hear Zahra,
If you need any further details, let us know. Moreover, we are currently writing the documentation about the main principles of SOFA including these aspects. I will let you know when this will be released.
Cheers,
Hugo
29 February 2016 at 13 h 28 min #5988Dear Hugo,
Yes it is really nice to hear that. I always feel the lack of such helpful documentation. Sometimes I just get some results without knowing the mathematical background and also the relation of components to each other.
Can I have further details on the relation between “TriangularFEMForecefield”, “triangularBendingSprings”, “EulerImplicitSolver” and “CGLinearSolver”? More specifically, How “triangularBendingSprings” is related to the other components?
Thank you very much for your support.
Best,
Zahra29 February 2016 at 14 h 23 min #5989Dear Zahra,
To answer component by component:

The TriangularFEMForecefield implements the linear elasticity material law for linear triangular element based on the finiteelement method. This theory makes a discretization in space. In other words, it describes the physics (deformation) of the object by considering small elements (triangles here).

The TriangularBendingSprings is very similar in the sense that it simulates the physics of an object. However, the integration in space of the physics in not computed on the surface of the triangles but through the edges. The stiffness of your material is defined through these edges.

The EulerImplicitSolver corresponds to the integration scheme: this defines how to go from one time step to the next. This is a discretization in time.

The CGLinearSolver is an iterative linear solver. The whole physics simulation can be linearized into a problem: Ax=b where x is your unknown. The CGLinearSolver is an iterative solver (Conjugate Gradient) finding an optimal solution for x.
Moreover, in case you need a beginner training, do not hesitate to join the Consortium. We would be happy to make you a theoretical introduction to SOFA.
Cheers,
Hugo


AuthorPosts
 You must be logged in to reply to this topic.