Home › Forum › SOFA › Using SOFA › Decreasing FPS during contact
Tagged: 64_bits, SOFA_1712, Windows_10
- This topic has 10 replies, 4 voices, and was last updated 5 years, 8 months ago by Hugo.
-
AuthorPosts
-
24 January 2019 at 13:51 #12878HarrisBlocked
Hi,
I have a simple case of an interaction between soft body and a rigid body. I give a displacement to the rigid and it presses a region of a soft body locally. I would like to ask why when this pressure increases, the speed of the simulation decreases?
Thank you,
Harris24 January 2019 at 16:51 #12880HugoKeymasterDear Harris,
How are you solving the constraint?
Using penalty or using Lagrange approach?Best
Hugo
24 January 2019 at 22:50 #12897HarrisBlockedHi Hugo,
I use Lagrange multipliers approach.
Harris
25 January 2019 at 10:17 #12902HugoKeymasterHi Harris
Good, that’s what I assumed.
When constraints (like contacts) based on the Lagrange multipliers appears in the simulation, a new term appears in the linear system : the H matrix, which includes the constraint directions. When the pressure applied on your soft body increases, the constraints becomes harder to respect. And the solver requires more iterations to converge and find a proper solution, respecting the constraints. This is why the frame rate decreases, while the number of constraints (contacts) remains the same.With penalty methods, you would not have a significant decrease in performance but it would be way less stable, and the constraints might not be well respected.
Best
Hugo
25 January 2019 at 14:18 #12906HarrisBlockedHi Hugo,
When you say “solver requires more iterations” do you mean Gauss Seidel algorithm needs more iterations to converge?
Thank you for your reply
Harris25 January 2019 at 16:49 #12907HugoKeymasterHi Harris
That’s exactly my point, the GS requires more iterations to converge.
Hugo
25 January 2019 at 18:25 #12909HarrisBlockedHi Hugo,
Thanks a lot for your help.
I would like to ask you something more. I want to meassure the stress or strain in an element and I am using Co-rotationalFEM component. When I compute strain by: Strain=StrainDisplacement*Displacement I meassure very smaller strains than the FEBIO software computes. Is this because I compute local strain and FEBIO computes global strain?
Thank you for your time,
Harris26 January 2019 at 04:01 #1291028 January 2019 at 14:21 #12913HugoKeymasterHi @hkomninos
To answer you first, it is strange indeed to get way smaller strain than FeBIO.
I know @Igorp and @Eleonora are discussing about such comparison and validation on another forum topic. Igor, Eleonora, any advice / info about Harris’ remark ?Dear @outtt, you can find an example based on constraint solved with Penalty method in the repository examples/Components/collision:
- TriangleModel.scn
- SphereModel.scn
But notice that – as stated above – even if penalty method would not suffer from a decrease in performance due to increasing nb of contacts, but it would be way less stable, and the constraints might not be well respected. If you have specific questions regarding penalty methods, please open a dedicated topic.
Best,
Hugo
1 February 2019 at 10:03 #12973etagliabueBlockedHello @hkomninos,
I did some work on the comparison between FEBio and SOFA, in particular related to nonlinear constitutive laws (StVenant-Kirchhoff and Neo-Hookean). Based on my experience, it’s worth checking that you are using the same integration rule in SOFA and FEBio. Indeed, while SOFA always uses 1-point Gauss integration rule (to my knowledge), in FEBio you can specify also other rules, that can lead to quite different results (check this link, Section 3.5.1). In particular, with 1-point Gauss you might underestimate the displacements.
Apart from that, I did not investigate too much the corotational implementation in SOFA. However, it happened both to me and to other users to notice a weird response of that material, especially in static simulations. I do not know if @igorp and @jnbrunet have figured out something new about that.
Ciao!
Eleonora19 March 2019 at 17:47 #13216HugoKeymasterDear @hkomninos
It has been a long time since our last chat. Is everything fine?
If the advices from Eleonora helped, feel free to update us or close the topic.Best wishes,
Hugo
-
AuthorPosts
- You must be logged in to reply to this topic.