[Mass] Introduce element-agnostic FEM mass#6061
[Mass] Introduce element-agnostic FEM mass#6061alxbilger wants to merge 18 commits intosofa-framework:masterfrom
Conversation
|
[ci-build][with-all-tests] |
| <MechanicalObject template="Vec3" name="state" showObject="true"/> | ||
|
|
||
| <MeshMatrixMass massDensity="1100" topology="@grid"/> | ||
| <NodalMassDensity property="1100"/> |
There was a problem hiding this comment.
I find the name Nodal* ambiguous since I wanted to rename some time ago the ConstantForceField and UniformMass respectively as NodalForceField and NodalMass
To me Nodal is inducing the absence of space integration
There was a problem hiding this comment.
In that case, there is no space integration. The density is really defined only on nodes.
| } | ||
|
|
||
| template <class TDataTypes, class TElementType> | ||
| void ElementFEMMass<TDataTypes, TElementType>::validateNodalMassDensity() |
There was a problem hiding this comment.
This could have integrated a check on non-negative values
| { | ||
|
|
||
| template<class T> | ||
| class BaseNodalProperty : public virtual sofa::core::objectmodel::BaseComponent |
There was a problem hiding this comment.
I would need some clarification on this BaseNodalProperty, would you like to extend it in the future for additional information?
There was a problem hiding this comment.
Yes, mechanical parameters for example
This PR adds a new finite-element mass implementation that builds a sparse global mass matrix from per-element quadrature, using nodal density values instead of a single uniform density.
It also introduces support for computing both kinetic and gravitational potential energy from that mass matrix, along with the corresponding force and matrix-assembly paths.
A new generic nodal-property abstraction was added so density can be stored per node and validated against the mechanical state’s scalar type.
The finite-element helpers were extended with shape-function evaluation and interpolation utilities needed for the mass integration.
The validation example was updated to use the new nodal-density-driven FEM mass setup.
[with-all-tests]
By submitting this pull request, I acknowledge that
I have read, understand, and agree SOFA Developer Certificate of Origin (DCO).
Reviewers will merge this pull-request only if