23 February 2016 at 17 h 04 min #5903
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?
Zahra23 February 2016 at 18 h 05 min #5904RosalieParticipant
- CRCHUM & Polytechnique Montréal
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,
Rosalie23 February 2016 at 21 h 25 min #5905
Thank you very much for this thorough explanation. Now I understand it better.
Zahra23 February 2016 at 21 h 29 min #5906HugoKeymaster
- SOFA Consortium
Nice 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.
Hugo29 February 2016 at 13 h 28 min #5988
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.
Zahra29 February 2016 at 14 h 23 min #5989HugoKeymaster
- SOFA Consortium
To answer component by component:
The TriangularFEMForecefield implements the linear elasticity material law for linear triangular element based on the finite-element 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.
- You must be logged in to reply to this topic.