Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[SofaCore SofaConstraint] Update FreeMotionAnimationLoop so that it can compute a linearised version of the constraint force. #459

Merged
merged 68 commits into from May 30, 2018

Commits on Jan 5, 2018

  1. ADD: compliance factor in GenericConstraintCorrection

    Matthieu Coquet authored and guparan committed Jan 5, 2018
    Copy the full SHA
    33d97f8 View commit details
    Browse the repository at this point in the history
  2. UPDATE: FreeMotionAnimationLoop. Add option to keep the linearisation of

    the mappings around the freemotion. It is disabled by default, so no
    change is actually introduced from the exisiting behavior.
    fjourdes authored and guparan committed Jan 5, 2018
    Copy the full SHA
    0fb3f9c View commit details
    Browse the repository at this point in the history
  3. UPDATE: SofaCore. ConstraintSolver API. Make it possible for derived

    classes to redefine the state vector allocation for the constraint
    lambdas and the corrective displacements.
    fjourdes authored and guparan committed Jan 5, 2018
    Copy the full SHA
    497e105 View commit details
    Browse the repository at this point in the history
  4. UPDATE : Perform ConstraintCorrection computations only if it belongs…

    … to an active node
    
    git-svn-id: https://code.insimo.fr/svn/IS/ISSofa/branches/ISSofa@10524 f8a8aa39-ebdb-4476-bae3-08f188f1b544
    fouadbenhaida authored and guparan committed Jan 5, 2018
    Copy the full SHA
    d9b1a25 View commit details
    Browse the repository at this point in the history
  5. Copy the full SHA
    91ce370 View commit details
    Browse the repository at this point in the history
  6. WARNING CHANGE: SofaCore ConstraintCorrection API.

    - ConstraintParams need to be given the VecId where the constraint
      jacobian must be accumulated, and where the constraint lambda must be
      stored. Right now the current API mostly assumes that the constraint
      lambda and the constraint force are stored in pre defined VecIds. It
      was therefore difficult to know where these quantities are stored,
      because it was dependent both on the constraint solver, and the
      constraint correction scheme used in the scene.
    
    - Separate method which computes the corrective displacement coming
      from the constraint force from the methods which apply this corrective
      displacement. This is anyway what was silently done in the concrete
      implementations of the ConstraintCorrection API.
    fjourdes authored and guparan committed Jan 5, 2018
    Copy the full SHA
    e220777 View commit details
    Browse the repository at this point in the history
  7. WARNING CHANGE: SofaCore. LinearSolver API

    - give read only access to the MultiMatrixAccessor used to construct
      the system matrix, if the solver actually builds it.
    
    - rename applyContactForce method into applyConstraintForce method.
    
    - also change the signature of the method, and document its
      responsibility, which is bounded to:
    
      -- projecting the constraint force in the motion space provided the
      constraint jacobian is known (which should be the case at the time
      this method is called)
    
      -- computing dx = A^-1 . J^t . lambda
         and storing the result in the VecId passed as a parameter.
    fjourdes authored and guparan committed Jan 5, 2018
    Copy the full SHA
    91159ef View commit details
    Browse the repository at this point in the history
  8. CHANGE: SofaSimulation MechanicalIntegrateConstraintsVisitor

    The visitor must be passed the location of the VecId where the
    corrective motion coming from the influence of the constraint force is
    stored. On overall this Visitor can be tuned to work along with the
    parameters of the methods of the ConstraintCorrection API.
    fjourdes authored and guparan committed Jan 5, 2018
    Copy the full SHA
    2de4bd4 View commit details
    Browse the repository at this point in the history
  9. UPDATE: SofaBaseLinearSolver. Reflect changes in LinearSolver API in

    MatrixLinearSolver.
    fjourdes authored and guparan committed Jan 5, 2018
    Copy the full SHA
    da00c54 View commit details
    Browse the repository at this point in the history
  10. UPDATE: SofaConstraint. Reflect changes in ConstraintCorrection API.

    Also, PrecomputedConstraintCorrection can no longer rely on the former
    API methods to compute the list of "active dofs" (which correponds to
    the sparsity pattern of the constraint jacobian). Instead this list is
    computed whenever the update of the compliance matrix is done.
    fjourdes authored and guparan committed Jan 5, 2018
    Copy the full SHA
    59a2691 View commit details
    Browse the repository at this point in the history
  11. UPDATE: SofaConstraint. FreeMotionAnimationLoop constructs a

    ConstraintParams object that contains the necessary information to
    retrieve:
    
    - where to read the free motion of the dofs ( as done before )
    
    - where the constraint jacobian must be accumulated
    
    - where the constraint force must be stored
    fjourdes authored and guparan committed Jan 5, 2018
    Copy the full SHA
    69463dd View commit details
    Browse the repository at this point in the history
  12. UPDATE: SofaConstraint. Update GenericConstraintSolver with changes

    introduced in ConstraintCorrection API. It also allocates dynamic VecId
    for constraint jacobian and constraint lambda.
    fjourdes authored and guparan committed Jan 5, 2018
    Copy the full SHA
    57a4475 View commit details
    Browse the repository at this point in the history
  13. UPDATE: SofaCore. BaseConstraint storeLambda method, to store the

    constraint lambda at the constraint dofs level.
    fjourdes authored and guparan committed Jan 5, 2018
    Copy the full SHA
    d5e8a1e View commit details
    Browse the repository at this point in the history
  14. ADD: [SofaConstraint]. UniformConstraint, a component that shares sim…

    …ilarities with UniformCompliance from the Compliant plugin. The idea is to be able to express constraint equations compatible with the Constraint / ConstraintCorrection API with mappings that give a strain measure and its jacobian.
    fjourdes authored and guparan committed Jan 5, 2018
    Copy the full SHA
    8024e6b View commit details
    Browse the repository at this point in the history
  15. UPDATE: [SofaConstraint]. UniformConstraint to compute the constraint…

    … rhs as vfree + pos * invDt when solving constraints for velocity corrective motion.
    fjourdes authored and guparan committed Jan 5, 2018
    Copy the full SHA
    65c3c49 View commit details
    Browse the repository at this point in the history
  16. UPDATE: [SofaConstraint]. UniformConstraint can use a constraint reso…

    …lution which factors the compliance block to perform a direct solving of the constraint blocK. The default mode stays the iterative one where each line is treated one after the other.
    fjourdes authored and guparan committed Jan 5, 2018
    Copy the full SHA
    689c17a View commit details
    Browse the repository at this point in the history
  17. FIX: [SofaConstraint]. UniformConstraint to take into account the con…

    …straint index offset when filling the constraint jacobian matrix.
    fjourdes authored and guparan committed Jan 5, 2018
    Copy the full SHA
    a78e797 View commit details
    Browse the repository at this point in the history
  18. Copy the full SHA
    0a0b3fd View commit details
    Browse the repository at this point in the history
  19. ADD: [SofaConstraint]. First draft for GeometricStiffnessForceField, …

    …which assembles the geometric stiffness computed by a mapping inside the mechanical matrix. Does not support multimappings.
    fjourdes authored and guparan committed Jan 5, 2018
    Copy the full SHA
    d98e82b View commit details
    Browse the repository at this point in the history
  20. [SofaConstraint] MOVE: GeometricStiffnessForceField renamed to

    MappingGeometricStiffnessForcefield
    fjourdes authored and guparan committed Jan 5, 2018
    Copy the full SHA
    239541f View commit details
    Browse the repository at this point in the history
  21. Copy the full SHA
    2646d98 View commit details
    Browse the repository at this point in the history
  22. UPDATE: SofaBaseMechanics. Specify name and owner for dynamic data

    created when allocating new state vectors.
    fjourdes authored and guparan committed Jan 5, 2018
    Copy the full SHA
    8c50459 View commit details
    Browse the repository at this point in the history
  23. CHANGE: SofaCore ConstraintCorrection API.

    ConstraintCorrection constructor argument nbLines, which specify the
    size of the block this ConstraintCorrection is dealing with, is a non
    optional argument. Also prefer the use of setters / getters when
    specifying the nbLines and tolerance, since it is then much easier to
    track down mutable vs non mutable operations on a ConstraintCorrection
    object.
    fjourdes authored and guparan committed Jan 5, 2018
    Copy the full SHA
    0881339 View commit details
    Browse the repository at this point in the history
  24. Copy the full SHA
    f67aaf6 View commit details
    Browse the repository at this point in the history
  25. Copy the full SHA
    b462070 View commit details
    Browse the repository at this point in the history
  26. FIX: SofaConstraint. GenericConstraintSolver to also clear the lambda

    and dx of the mapped dofs.
    fjourdes authored and guparan committed Jan 5, 2018
    Copy the full SHA
    5bb20d0 View commit details
    Browse the repository at this point in the history
  27. UPDATE: SofaConstraint. GenericConstraintSolver block gauss seidel to

    support arbitrary block size. Previous implementation would crash
    silently (out of bounds in a raw buffer) if the block size was above 6.
    fjourdes authored and guparan committed Jan 5, 2018
    Copy the full SHA
    33364a4 View commit details
    Browse the repository at this point in the history
  28. UPDATE: SofaConstraint. GenericConstraintSolver to store the constraint

    lambdas at the constraint dofs level and accumulate it back to the
    independent degrees of freedom, after the corrective motion has been
    applied.
    fjourdes authored and guparan committed Jan 5, 2018
    Copy the full SHA
    10f4339 View commit details
    Browse the repository at this point in the history
  29. Copy the full SHA
    01557d3 View commit details
    Browse the repository at this point in the history
  30. UPDATE: SofaConstraint. FreeMotionAnimationLoop to assemble

    geometric stiffness when available.
    fjourdes authored and guparan committed Jan 5, 2018
    Copy the full SHA
    54a9d4e View commit details
    Browse the repository at this point in the history
  31. Copy the full SHA
    01f0a00 View commit details
    Browse the repository at this point in the history
  32. UPDATE: SofaConstraint FreeMotionAnimationLoop. xfree is computed only

    when required, ie when solving constraints in position. Removed
    linearizeMappingsAroundFreeMotion option, since only one mapping
    linearization per time step is computed.
    fjourdes authored and guparan committed Jan 5, 2018
    Copy the full SHA
    7e3bf6a View commit details
    Browse the repository at this point in the history
  33. Copy the full SHA
    66f3113 View commit details
    Browse the repository at this point in the history
  34. FIX: SofaBaseCollision. Fix typo GenerateStirngID -> GenerateStringID.

    A personal opinion though, I find these random generated strings to be
    very confusing and ugly.
    fjourdes authored and guparan committed Jan 5, 2018
    Copy the full SHA
    196c579 View commit details
    Browse the repository at this point in the history
  35. Copy the full SHA
    fd9bd4f View commit details
    Browse the repository at this point in the history
  36. UPDATE: SofaMeshCollision. Some missing applyJ calls in the

    ContactMappers when propagating the free motions to contact dofs.
    fjourdes authored and guparan committed Jan 5, 2018
    Copy the full SHA
    0f1f7ab View commit details
    Browse the repository at this point in the history
  37. UPDATE: SofaConstraint. UnilateralInteractionConstraint constraint

    velocity violation computation.
    fjourdes authored and guparan committed Jan 5, 2018
    Copy the full SHA
    65066ed View commit details
    Browse the repository at this point in the history
  38. UPDATE: SofaConstraint. BilateralInteractionConstraint constraint

    velocity violation evaluation.
    fjourdes authored and guparan committed Jan 5, 2018
    Copy the full SHA
    3cc3aec View commit details
    Browse the repository at this point in the history
  39. UPDATE: SofaConstraint. BilateralConstraintResolution inverse compliance

    computation in the general case ( arbitrary number of lines ) using LDLT
    decomposition provided by Eigen library.
    fjourdes authored and guparan committed Jan 5, 2018
    Copy the full SHA
    bb38fa4 View commit details
    Browse the repository at this point in the history
  40. Copy the full SHA
    94b1742 View commit details
    Browse the repository at this point in the history
  41. FIX: SofaMiscMapping. DistanceMapping to support cumulative write when

    accumulating MapMapSparseMatrix of child dofs.
    fjourdes authored and guparan committed Jan 5, 2018
    Copy the full SHA
    b6c8e0f View commit details
    Browse the repository at this point in the history
  42. ADD: InextensiblePendulum which is inspired by the CompliantPendulum

    example from the CompliantPlugin. It shows that the formulation which
    uses a linearisation of the constraint force during the time step offers
    superior stability.
    fjourdes authored and guparan committed Jan 5, 2018
    Copy the full SHA
    fac6a97 View commit details
    Browse the repository at this point in the history
  43. [SofaConstraint] UPDATE MINOR: Renamed GeometricStiffnessForceField

    component into MappingGeometricStiffnessForceField to be consistent
    with the filename
    fjourdes authored and guparan committed Jan 5, 2018
    Copy the full SHA
    9e3a606 View commit details
    Browse the repository at this point in the history
  44. Copy the full SHA
    d1b67f1 View commit details
    Browse the repository at this point in the history
  45. [SofaCore] CHANGE: LinearSolver buildComplianceMatrix API method requ…

    …ires
    
    a ConstraintParams so that it can retrieve MatrixDerivID which specifies
    for each state the location of the constraint jacobian (in a MatrixDeriv
    form) to use to build the compliance matrix.
    fjourdes authored and guparan committed Jan 5, 2018
    Copy the full SHA
    ff42ae3 View commit details
    Browse the repository at this point in the history
  46. [SofaCore] CHANGE: BaseMechanicalState API

    resetConstraint and getConstraintJacobian must be passed a ConstraintParams
    which is used internally to retrieve which allocated MatrixDeriv to use.
    fjourdes authored and guparan committed Jan 5, 2018
    Copy the full SHA
    b5b98f2 View commit details
    Browse the repository at this point in the history
  47. [SofaSimulationCore] UPDATE: Reflect API changes in visitors.

    Essentially it means that MechanicalResetConstraintVisitor and
    MechanicalGetConstraintJacobianVisitor must be passed a pointer to a
    ConstraintParams object.
    fjourdes authored and guparan committed Jan 5, 2018
    Copy the full SHA
    16a3a61 View commit details
    Browse the repository at this point in the history
  48. [SofaBaseLinearSolver] UPDATE: reflect API change in MatrixLinearSolver.

    MechanicalGetConstraintJacobianVisitor must be constructed with the
    ConstraintParams object that the buildComplianceMatrix receives as a
    parameter.
    fjourdes authored and guparan committed Jan 5, 2018
    Copy the full SHA
    f2356ae View commit details
    Browse the repository at this point in the history
  49. [SofaBaseMechanics] UPDATE: Reflect API changes in MechanicalObject.

    resetConstraint and getConstraintJacobian method are passed a
    ConstraintParams which must be used to know which allocated MatrixDeriv
    to use internally by these methods. This contrast with the previous
    implementation whereby a fixed MatrixDerivId was used.
    fjourdes authored and guparan committed Jan 5, 2018
    Copy the full SHA
    a6a51af View commit details
    Browse the repository at this point in the history
  50. [SofaConstraint] UPDATE: Reflect changes in API.

    - buildComplianceMatrix must be passed a ConstraintParams object which has
      the MatrixDerivId that can be used to retrieve which allocated
      MatrixDeriv contains the jacobian of the constraints.
    - MechanicalResetConstraintVisitor uses the ConstraintParams to know which
      allocated MatrixDeriv to clear.
    fjourdes authored and guparan committed Jan 5, 2018
    Copy the full SHA
    4585f87 View commit details
    Browse the repository at this point in the history
  51. [SofaGeneralAnimationLoop] UPDATE: MechanicalResetConstraintVisitor m…

    …ust be
    
    constructed with a ConstraintParams.
    fjourdes authored and guparan committed Jan 5, 2018
    Copy the full SHA
    33927fc View commit details
    Browse the repository at this point in the history
  52. UPDATE: ConstraintParams define the location of the constraint jacobi…

    …an by
    
    the means of a MultiMatrixDerivId instead of a ConstMultiMatrixDerivId
    since some visitors can need to have a write access to this location.
    Accumulation of the constraint directions towards independant dofs being
    the main reason for this change.
    fjourdes authored and guparan committed Jan 5, 2018
    Copy the full SHA
    8bfddb0 View commit details
    Browse the repository at this point in the history
  53. Copy the full SHA
    736079a View commit details
    Browse the repository at this point in the history
  54. Copy the full SHA
    f63a77d View commit details
    Browse the repository at this point in the history
  55. Copy the full SHA
    9456c9d View commit details
    Browse the repository at this point in the history
  56. [SofaConstraint] UPDATE: The id of the state vector which contains the

    constraint direction can be retrieved from the ConstraintParams.
    fjourdes authored and guparan committed Jan 5, 2018
    Copy the full SHA
    0133c50 View commit details
    Browse the repository at this point in the history
  57. [SofaCore] UPDATE: ConstraintParams default constructor uses the thread

    local default instance of ExecParams.
    fjourdes authored and guparan committed Jan 5, 2018
    Copy the full SHA
    b83563a View commit details
    Browse the repository at this point in the history
  58. Copy the full SHA
    0c9cb9c View commit details
    Browse the repository at this point in the history
  59. [SofaConstraint] UPDATE: FreeMotionAnimationLoop to leave the

    ConstraintParams constraint jacobian location to its default value.
    fjourdes authored and guparan committed Jan 5, 2018
    Copy the full SHA
    7961bb3 View commit details
    Browse the repository at this point in the history
  60. [SofaConstraint] UPDATE: Remove references to MatrixDerivId::holonomi…

    …cC().
    
    The MatrixDerivId for the constraint jacobian must be retrieved through
    a ConstraintParams object.
    fjourdes authored and guparan committed Jan 5, 2018
    Copy the full SHA
    3824a3f View commit details
    Browse the repository at this point in the history

Commits on Feb 9, 2018

  1. Merge remote-tracking branch 'sofa-framework/master' into insimo_free…

    …motion
    
    # Conflicts:
    #	modules/SofaConstraint/GenericConstraintCorrection.cpp
    #	modules/SofaConstraint/GenericConstraintCorrection.h
    guparan committed Feb 9, 2018
    Copy the full SHA
    7f5d9cf View commit details
    Browse the repository at this point in the history
  2. Copy the full SHA
    cf0d2cb View commit details
    Browse the repository at this point in the history

Commits on Feb 13, 2018

  1. Copy the full SHA
    14536a8 View commit details
    Browse the repository at this point in the history

Commits on Apr 13, 2018

  1. Copy the full SHA
    1dbd109 View commit details
    Browse the repository at this point in the history

Commits on May 10, 2018

  1. Copy the full SHA
    78b8459 View commit details
    Browse the repository at this point in the history

Commits on May 18, 2018

  1. FIX one crash and the added warnings

    One scene was crashing in SensableEmulation plugin : testOmniDriverEmu.scn
    I fixed it by adding the option : solveVelocityConstraintFirst="true"
    
    Fixed added warnings
    - in GenericConstraintSolver.cpp line 368
    none of the function parameter (cParams, res1 and res2) were unused.
    - in GenericConstraintCorrection.cpp line 277
    the complianceFactor is not used.
    hugtalbot committed May 18, 2018
    Copy the full SHA
    6e5e460 View commit details
    Browse the repository at this point in the history
  2. FIX added warnings

    hugtalbot committed May 18, 2018
    Copy the full SHA
    9a23f1e View commit details
    Browse the repository at this point in the history

Commits on May 28, 2018

  1. Copy the full SHA
    09c25b0 View commit details
    Browse the repository at this point in the history