sofa
sofa copied to clipboard
Implementation of new API since refactoring of matrix assembly
Due to #2777, several methods must be implemented to replace the old API:
Force fields
The new functions are buildStiffnessMatrix (replaces addKToMatrix) and buildDampingMatrix (replaces addBToMatrix)
- [x] AngularSpringForceField (#3993)
- [x] BeamFEMForceField (#2777)
- [x] ConicalForceField (#3997)
- [x] ConstantForceField (#2777)
- [x] CudaHexahedronTLEDForceField (#4000)
- [x] CudaTetrahedronTLEDForceField (#4000)
- [x] DiagonalVelocityDampingForceField (#3999)
- [x] EdgePressureForceField (#4004)
- [x] EllipsoidForceField (#4005)
- [x] FastTetrahedralCorotationalForceField (#3929)
- [x] FastTriangularBendingSprings (#4006)
- [x] HexahedralFEMForceField (#3969)
- [x] HexahedronFEMForceField (#2777)
- [x] LinearForceField (#3973)
- [x] MappingGeometricStiffnessForceField (#2777)
- [x] OscillatingTorsionPressureForceField (#4007)
- [x] PlaneForceField (#3972)
- [x] PolynomialRestShapeSpringsForceField (#4009)
- [x] QuadBendingFEMForceField (#4015)
- [x] QuadPressureForceField (#4018)
- [x] RestShapeSpringsForceField (#2777)
- [x] SphereForceField (#4099)
- [x] StandardTetrahedralFEMForceField (#4110)
- [x] SurfacePressureForceField (#4097)
- [x] TaitSurfacePressureForceField (#4116)
- [x] TetrahedralCorotationalFEMForceField (#3981)
- [x] TetrahedralTensorMassForceField (#4127)
- [x] TetrahedronDiffusionFEMForceField (#2777 and #4012)
- [x] TetrahedronFEMForceField (#2777)
- [x] TetrahedronHyperelasticityFEMForceField (#2777)
- [x] TorsionForceField (#4115)
- [x] TriangleFEMForceField (#2777)
- [x] TriangularFEMForceField (#3991)
- [x] TriangularFEMForceFieldOptim (#4105)
- [ ] ParticlesRepulsionForceField
- [ ] TrianglePressureForceField
- [ ] SPHFluidForceField
- [ ] QuadularBendingSprings
- [ ] TriangularAnisotropicFEMForceField
- [ ] TriangularBendingSprings
- [ ] TriangularBiquadraticSpringsForceField
- [ ] TriangularQuadraticSpringsForceField
- [ ] TriangularTensorMassForceField
- [ ] UniformVelocityDampingForceField
Interaction Force Fields
- [x] MechanicalMatrixMapper (#2777)
- [x] MeshSpringForceField (nothing to do as it inherits from StiffSpringForceField)
- [x] PenalityContactForceField (#3974)
- [x] QuadBendingSprings (nothing to do as it inherits from StiffSpringForceField)
- [x] SpringForceField (#3970)
- [x] StiffSpringForceField (#2777)
- [x] TriangleBendingSprings (nothing to do as it inherits from StiffSpringForceField)
- [ ] PolynomialSpringsForceField (#4301)
- [ ] FrameSpringForceField **
- [ ] GearSpringForceField **
- [ ] InteractionEllipsoidForceField **
- [ ] JointSpringForceField **
- [ ] RegularGridSpringForceField **
- [ ] RepulsiveSpringForceField **
- [ ] VectorSpringForceField **
Masses
The new function is buildMassMatrix (replaces addMToMatrix). But since masses are also force fields, they must also implement buildStiffnessMatrix and buildDampingMatrix.
- [x] DiagonalMass (#2777)
- [x] MeshMatrixMass (#2777)
- [x] UniformMass (#2777)
- [ ] HexahedralFEMForceFieldAndMass
- [ ] HexahedronCompositeFEMForceFieldAndMass
- [ ] HexahedronFEMForceFieldAndMass
- [ ] NonUniformHexahedralFEMForceFieldAndMass
- [ ] NonUniformHexahedronFEMForceFieldAndMass
Projective constraints
The new function is applyConstraint(ZeroDirichletCondition*)
- [x] FixedConstraint (#2777)
- [x] FixedPlaneConstraint (#3925)
- [x] LinearMovementConstraint (#4144)
- [x] PartialFixedConstraint (#2777)
- [ ] AffineMovementConstraint
- [ ] AttachConstraint
- [ ] FixedRotationConstraint
- [ ] FixedTranslationConstraint
- [ ] HermiteSplineConstraint
- [ ] LinearVelocityConstraint
- [ ] OscillatorConstraint
- [ ] ParabolicConstraint
- [ ] PartialLinearMovementConstraint
- [ ] ParticleSink
- [ ] ParticleSource
- [ ] ProjectDirectionConstraint
- [ ] ProjectToLineConstraint
- [ ] ProjectToPlaneConstraint
- [ ] ProjectToPointConstraint
- [ ] SkeletalMotionConstraint **
- [ ] PositionBasedDynamicsConstraint **
- [ ] PatchTestMovementConstraint **
Plugins
ShapeMatchingPlugin
- [ ] ShapeMatchingForceField
** = to pluginize