sofa icon indicating copy to clipboard operation
sofa copied to clipboard

Implementation of new API since refactoring of matrix assembly

Open alxbilger opened this issue 2 years ago • 0 comments

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

alxbilger avatar Jun 23 '23 07:06 alxbilger