Compliant

Snapshot of CompliantCloth.scn
representative image of the plugin



This plugin introduces a constraint-based approach and a matrix assembly method.

Design

This plugin introduces a constraint-based approach and a matrix assembly method. Details are given  in compliant.pdf in this directory.
See also the code documentation, which you can generate using doxygen. There is also an embryo of test suite documented in the code documentation.
$
\newcommand{\vect}[1]{\mathbf{#1}}
\newcommand{\mat}[1]{\mathbf{#1}}

\newcommand{\pos}{\vect{x}}
\newcommand{\dx}{\vect{\Delta x}}
\newcommand{\xcur}{\vect{x}_{n}}
\newcommand{\xnext}{\vect{x}_{n+1}}
\newcommand{\vel}{\vect{v}}
\newcommand{\dv}{\vect{\Delta v}}
\newcommand{\vcur}{\vect{v}_{n}}
\newcommand{\vnext}{\vect v_{n+1}}
\newcommand{\acc}{\vect{a}}
\newcommand{\force}{\vect{f}}
\newcommand{\forcext}{\vect{f}_{ext}}
\newcommand{\lam}{\vect{\lambda}}
\newcommand{\lcur}{\lam_{n}}
\newcommand{\lnext}{\lam_{n+1}}
\newcommand{\avlam}{\bar{\lam}}
\newcommand{\fcur}{\vect{f}_{n}}
\newcommand{\fnext}{\vect f_{n+1}}
\newcommand{\M}{\mat M}
\newcommand{\Minv}{\mat M^{-1}}
\renewcommand{\P}{\mat P}
\newcommand{\J}{\mat J}
\newcommand{\Jt}{\mat J^T}
\newcommand{\C}{\mat C}
\newcommand{\violation}{ \phi}
\newcommand{\dviolation}{\dot \violation}
\newcommand{\violcur}{\violation_{n}}
\newcommand{\violnext}{\violation_{n+1}}
\newcommand{\dviolnext}{\dot \violation_{n+1}}
\newcommand{\cmp}{c}
\newcommand{\dampingratio}{d}
$

Limitations

Currently, the Schur complement $\J\Minv\Jt + \C$ can not be computed for a non-diagonal mass and stiffness matrix $\M$. Consequently, it can not handle the usual mouse interactor based on a stiff spring. However, it is possible to use a constraint-based mouse interactor. To automatically use it, insert the following object near the root in your .scn file description:
<CompliantAttachButtonSetting button="Left"/>

Examples

.

Plugin structure and installation

Directory structure:
Installation:
Troubleshooting:

Intellectual property and rights

Authors
François Faure, Maxime Tournier, …
Contact
Francois Faure
License
This plugin is distributed under the same license as the core of SOFA.
Patents

APP registration

Sponsors
No sponsor yet…  :-)

HowTo

Code documentation

can be generated using doxygen. In Unix systems, simply type doxygen Doxyfile in the doc directory.

LaTeX formulas

can be inserted in this html document thanks to the mathjax config and script included in the header. Basically, an inline \( \LaTeX \) formula starts with \( and ends with \), while a centered formula on a separate line is bracketed using \[ and \]  .