[FEM] Add component for source term integration based on new FEM framework - constant source terms - #6196
Open
th-skam wants to merge 37 commits into
Open
[FEM] Add component for source term integration based on new FEM framework - constant source terms#6196th-skam wants to merge 37 commits into
th-skam wants to merge 37 commits into
Conversation
Contributor
|
I am not a FEM expert so I don't feel confident to review this PR. Nevertheless I checked to make sure this is compatible with higher order element and it seems ton be the case. So it is fine by me given that @alxbilger and/or @hugtalbot review it. Could you add an example ? |
fredroy
force-pushed
the
sourceTerm
branch
2 times, most recently
from
September 6, 2026 22:58
6864a20 to
2bea0cb
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
PR Based on #6225
The PR adds component with which to integrate source terms using the FEM framework ported from Elasticity.
There is a central
FEMSourceTermIntegratorcomponent placed in the scene responsible for gathering all source terms present, and integrating them into loads. Added examples demonstrate this.I added 3 distinct classes that can implement the following loads:
The last object can also mimic body forces (gravity etc).
Currently in SOFA, these loads were spread out among various components, such as
SurfacePressureForceField,QuadPressureForceField,EdgePressureForceField,TrianglePressureForceFieldamong others. Each component implements their own integration loop and uses geometric data (such as normals) directly from its linked topology.The loop is unified in the
FEMSourceTermIntegratorand data such as normals are computed from the mapping jacobian of the reference domain. Extending them to quadratic elements is straightforward by using a quadratic topology in the scene; no more code extensions.The scenes that have been added demonstrate how the new source term classes can duplicate the existing functionality.
In this PR, the loads are applied on the reference geometry. That's to simply introduce them and I'll add the ability to follow the geometry in subsequent PR.
Fixes #6166
[force-full-build]
[with-all-tests]