#include <TensorForceField.h>


Data Structures | |
| class | Edge |
| class | EdgeTensor |
| class | Tetrahedron |
| class | Triangle |
| class | VertexTensor |
Public Types | |
| typedef DataTypes::VecCoord | VecCoord |
| typedef DataTypes::VecDeriv | VecDeriv |
| typedef DataTypes::Coord | Coord |
| typedef DataTypes::Deriv | Deriv |
| typedef Coord::value_type | Real |
Public Member Functions | |
| TensorForceField (const char *filename) | |
| TensorForceField (component::MechanicalObject< DataTypes > *object, const char *filename) | |
| virtual void | addForce () |
| Given the current position and velocity states, update the current force vector by computing and adding the forces associated with this ForceField. | |
| virtual void | addDForce () |
| virtual double | getPotentialEnergy () |
| Get the potential energy associated to this ForceField. | |
| void | draw () |
| Render internal data of this object, for debugging purposes. | |
Private Member Functions | |
| void | load (const char *filename) |
| void | initialize () |
| int | getEdge (const int v0, const int v1) |
| int | getTriangle (const int v0, const int v1, const int v2) |
| void | addElasticTensors (Tetrahedron &tetra) |
Private Attributes | |
| component::MechanicalObject < DataTypes > * | object_ |
| Real | alpha_ |
| Real | lambda_ |
| Real | mu_ |
| sofa::helper::vector< Coord > | vertex_ |
| sofa::helper::vector< Edge > | edge_ |
| sofa::helper::vector< Triangle > | triangle_ |
| sofa::helper::vector< Tetrahedron > | tetrahedron_ |
| sofa::helper::vector < VertexTensor > | vertexTensor_ |
| sofa::helper::vector< EdgeTensor > | edgeTensor_ |
Internal Force field (ie it has only one parent object) based on a Finite Element Model modelisation, using strain and stiffness tensors on vertices and edges.
Definition at line 51 of file TensorForceField.h.
| typedef DataTypes::Coord sofa::component::forcefield::TensorForceField< DataTypes >::Coord |
Definition at line 75 of file TensorForceField.h.
| typedef DataTypes::Deriv sofa::component::forcefield::TensorForceField< DataTypes >::Deriv |
Definition at line 76 of file TensorForceField.h.
| typedef Coord::value_type sofa::component::forcefield::TensorForceField< DataTypes >::Real |
Definition at line 77 of file TensorForceField.h.
| typedef DataTypes::VecCoord sofa::component::forcefield::TensorForceField< DataTypes >::VecCoord |
Definition at line 73 of file TensorForceField.h.
| typedef DataTypes::VecDeriv sofa::component::forcefield::TensorForceField< DataTypes >::VecDeriv |
Definition at line 74 of file TensorForceField.h.
| sofa::component::forcefield::TensorForceField< DataTypes >::TensorForceField | ( | const char * | filename | ) | [inline] |
Definition at line 50 of file TensorForceField.cpp.
References sofa::component::forcefield::TensorForceField< DataTypes >::initialize(), and sofa::component::forcefield::TensorForceField< DataTypes >::load().
| sofa::component::forcefield::TensorForceField< DataTypes >::TensorForceField | ( | component::MechanicalObject< DataTypes > * | object, | |
| const char * | filename | |||
| ) | [inline] |
Definition at line 58 of file TensorForceField.cpp.
References sofa::component::forcefield::TensorForceField< DataTypes >::initialize(), and sofa::component::forcefield::TensorForceField< DataTypes >::load().
| void sofa::component::forcefield::TensorForceField< DataTypes >::addDForce | ( | ) | [inline, virtual] |
Definition at line 320 of file TensorForceField.cpp.
References sofa::component::forcefield::TensorForceField< DataTypes >::alpha_, sofa::component::forcefield::TensorForceField< DataTypes >::edge_, sofa::component::forcefield::TensorForceField< DataTypes >::edgeTensor_, sofa::component::forcefield::TensorForceField< DataTypes >::object_, sofa::component::forcefield::TensorForceField< DataTypes >::vertex_, and sofa::component::forcefield::TensorForceField< DataTypes >::vertexTensor_.
| void sofa::component::forcefield::TensorForceField< DataTypes >::addElasticTensors | ( | Tetrahedron & | tetra | ) | [inline, private] |
Definition at line 500 of file TensorForceField.cpp.
References dot(), sofa::component::forcefield::TensorForceField< DataTypes >::Tetrahedron::edge, sofa::component::forcefield::TensorForceField< DataTypes >::edge_, sofa::component::forcefield::TensorForceField< DataTypes >::edgeTensor_, sofa::component::forcefield::TensorForceField< DataTypes >::lambda_, sofa::component::forcefield::TensorForceField< DataTypes >::mu_, sofa::component::forcefield::TensorForceField< DataTypes >::Tetrahedron::restVolume, sofa::component::forcefield::TensorForceField< DataTypes >::Tetrahedron::triangleShapeVector, sofa::component::forcefield::TensorForceField< DataTypes >::Tetrahedron::vertex, sofa::component::forcefield::vertexEdge, and sofa::component::forcefield::TensorForceField< DataTypes >::vertexTensor_.
Referenced by sofa::component::forcefield::TensorForceField< DataTypes >::initialize().
| void sofa::component::forcefield::TensorForceField< DataTypes >::addForce | ( | ) | [inline, virtual] |
Given the current position and velocity states, update the current force vector by computing and adding the forces associated with this ForceField.
If the ForceField can be represented as a matrix, this method computes $ f += B v + K x $
Implements sofa::core::componentmodel::behavior::BaseForceField.
Definition at line 244 of file TensorForceField.cpp.
References sofa::component::forcefield::TensorForceField< DataTypes >::alpha_, sofa::component::forcefield::TensorForceField< DataTypes >::edge_, sofa::component::forcefield::TensorForceField< DataTypes >::edgeTensor_, sofa::component::forcefield::TensorForceField< DataTypes >::object_, sofa::component::forcefield::TensorForceField< DataTypes >::vertex_, and sofa::component::forcefield::TensorForceField< DataTypes >::vertexTensor_.
| void sofa::component::forcefield::TensorForceField< DataTypes >::draw | ( | ) | [inline, virtual] |
Render internal data of this object, for debugging purposes.
Reimplemented from sofa::core::objectmodel::BaseObject.
Definition at line 402 of file TensorForceField.cpp.
References sofa::component::forcefield::TensorForceField< DataTypes >::edge_, sofa::core::objectmodel::BaseObject::getContext(), and sofa::component::forcefield::TensorForceField< DataTypes >::object_.
| int sofa::component::forcefield::TensorForceField< DataTypes >::getEdge | ( | const int | v0, | |
| const int | v1 | |||
| ) | [inline, private] |
Definition at line 436 of file TensorForceField.cpp.
References sofa::component::forcefield::TensorForceField< DataTypes >::edge_, sofa::component::forcefield::TensorForceField< DataTypes >::Edge::index, and sofa::component::forcefield::TensorForceField< DataTypes >::Edge::vertex.
Referenced by sofa::component::forcefield::TensorForceField< DataTypes >::load().
| double sofa::component::forcefield::TensorForceField< DataTypes >::getPotentialEnergy | ( | ) | [inline, virtual] |
Get the potential energy associated to this ForceField.
Used to extimate the total energy of the system by some post-stabilization techniques.
Implements sofa::core::componentmodel::behavior::BaseForceField.
Definition at line 394 of file TensorForceField.cpp.
| int sofa::component::forcefield::TensorForceField< DataTypes >::getTriangle | ( | const int | v0, | |
| const int | v1, | |||
| const int | v2 | |||
| ) | [inline, private] |
Definition at line 463 of file TensorForceField.cpp.
References sofa::component::forcefield::TensorForceField< DataTypes >::Triangle::index, sofa::component::forcefield::TensorForceField< DataTypes >::triangle_, and sofa::component::forcefield::TensorForceField< DataTypes >::Triangle::vertex.
Referenced by sofa::component::forcefield::TensorForceField< DataTypes >::load().
| void sofa::component::forcefield::TensorForceField< DataTypes >::initialize | ( | ) | [inline, private] |
Definition at line 168 of file TensorForceField.cpp.
References sofa::component::forcefield::TensorForceField< DataTypes >::addElasticTensors(), sofa::component::forcefield::TensorForceField< DataTypes >::edge_, sofa::component::forcefield::TensorForceField< DataTypes >::edgeTensor_, sofa::component::forcefield::TensorForceField< DataTypes >::tetrahedron_, sofa::component::forcefield::TensorForceField< DataTypes >::vertex_, and sofa::component::forcefield::TensorForceField< DataTypes >::vertexTensor_.
Referenced by sofa::component::forcefield::TensorForceField< DataTypes >::TensorForceField().
| void sofa::component::forcefield::TensorForceField< DataTypes >::load | ( | const char * | filename | ) | [inline, private] |
Definition at line 70 of file TensorForceField.cpp.
References sofa::component::forcefield::TensorForceField< DataTypes >::alpha_, sofa::component::forcefield::TensorForceField< DataTypes >::Tetrahedron::edge, sofa::component::forcefield::TensorForceField< DataTypes >::getEdge(), sofa::component::forcefield::TensorForceField< DataTypes >::getTriangle(), sofa::component::forcefield::TensorForceField< DataTypes >::Tetrahedron::index, sofa::component::forcefield::TensorForceField< DataTypes >::lambda_, sofa::component::forcefield::TensorForceField< DataTypes >::mu_, sofa::component::forcefield::TensorForceField< DataTypes >::tetrahedron_, sofa::component::forcefield::TensorForceField< DataTypes >::Tetrahedron::triangle, sofa::component::forcefield::TensorForceField< DataTypes >::Tetrahedron::vertex, sofa::component::forcefield::TensorForceField< DataTypes >::vertex_, and sofa::component::forcefield::vertexEdge.
Referenced by sofa::component::forcefield::TensorForceField< DataTypes >::TensorForceField().
Real sofa::component::forcefield::TensorForceField< DataTypes >::alpha_ [private] |
sofa::helper::vector< Edge > sofa::component::forcefield::TensorForceField< DataTypes >::edge_ [private] |
Definition at line 155 of file TensorForceField.h.
Referenced by sofa::component::forcefield::TensorForceField< DataTypes >::addDForce(), sofa::component::forcefield::TensorForceField< DataTypes >::addElasticTensors(), sofa::component::forcefield::TensorForceField< DataTypes >::addForce(), sofa::component::forcefield::TensorForceField< DataTypes >::draw(), sofa::component::forcefield::TensorForceField< DataTypes >::getEdge(), and sofa::component::forcefield::TensorForceField< DataTypes >::initialize().
sofa::helper::vector< EdgeTensor > sofa::component::forcefield::TensorForceField< DataTypes >::edgeTensor_ [private] |
Definition at line 159 of file TensorForceField.h.
Referenced by sofa::component::forcefield::TensorForceField< DataTypes >::addDForce(), sofa::component::forcefield::TensorForceField< DataTypes >::addElasticTensors(), sofa::component::forcefield::TensorForceField< DataTypes >::addForce(), and sofa::component::forcefield::TensorForceField< DataTypes >::initialize().
Real sofa::component::forcefield::TensorForceField< DataTypes >::lambda_ [private] |
Definition at line 153 of file TensorForceField.h.
Referenced by sofa::component::forcefield::TensorForceField< DataTypes >::addElasticTensors(), and sofa::component::forcefield::TensorForceField< DataTypes >::load().
Real sofa::component::forcefield::TensorForceField< DataTypes >::mu_ [private] |
Definition at line 153 of file TensorForceField.h.
Referenced by sofa::component::forcefield::TensorForceField< DataTypes >::addElasticTensors(), and sofa::component::forcefield::TensorForceField< DataTypes >::load().
component::MechanicalObject<DataTypes>* sofa::component::forcefield::TensorForceField< DataTypes >::object_ [private] |
sofa::helper::vector< Tetrahedron > sofa::component::forcefield::TensorForceField< DataTypes >::tetrahedron_ [private] |
Definition at line 157 of file TensorForceField.h.
Referenced by sofa::component::forcefield::TensorForceField< DataTypes >::initialize(), and sofa::component::forcefield::TensorForceField< DataTypes >::load().
sofa::helper::vector< Triangle > sofa::component::forcefield::TensorForceField< DataTypes >::triangle_ [private] |
Definition at line 156 of file TensorForceField.h.
Referenced by sofa::component::forcefield::TensorForceField< DataTypes >::getTriangle().
sofa::helper::vector< Coord > sofa::component::forcefield::TensorForceField< DataTypes >::vertex_ [private] |
Definition at line 154 of file TensorForceField.h.
Referenced by sofa::component::forcefield::TensorForceField< DataTypes >::addDForce(), sofa::component::forcefield::TensorForceField< DataTypes >::addForce(), sofa::component::forcefield::TensorForceField< DataTypes >::initialize(), and sofa::component::forcefield::TensorForceField< DataTypes >::load().
sofa::helper::vector< VertexTensor > sofa::component::forcefield::TensorForceField< DataTypes >::vertexTensor_ [private] |
Definition at line 158 of file TensorForceField.h.
Referenced by sofa::component::forcefield::TensorForceField< DataTypes >::addDForce(), sofa::component::forcefield::TensorForceField< DataTypes >::addElasticTensors(), sofa::component::forcefield::TensorForceField< DataTypes >::addForce(), and sofa::component::forcefield::TensorForceField< DataTypes >::initialize().
1.5.7.1