sofa::component::forcefield Namespace Reference


Data Structures

class  BeamFEMForceField
 Compute Finite Element forces based on 6D beam elements. More...
class  BoxConstantForceField
 apply a constant force (_force) to all DOFs contained in the box (_box) More...
class  BoxStiffSpringForceField
 Set springs between the particles located inside a given box. More...
class  ConicalForceFieldInternalData
 This class can be overridden if needed for additionnal storage within template specializations. More...
class  ConicalForceField
class  ConstantForceField
 Apply constant forces to given degrees of freedom. More...
class  EdgePressureForceField
class  EllipsoidForceFieldInternalData
 This class can be overridden if needed for additionnal storage within template specializations. More...
class  EllipsoidForceField
class  FrameSpringForceFieldInternalData
class  FrameSpringForceField
 FrameSpringForceField simulates 6D springs between moving frames Use stiffnessTrans vector to specify the directionnal stiffnesses (on each local axis) Use stiffnessRot vector to specify the rotational stiffnesses (on each local axis). More...
class  HexahedralFEMForceField
 Compute Finite Element forces based on hexahedral elements. More...
class  HexahedronFEMForceField
 Compute Finite Element forces based on hexahedral elements. More...
class  JointSpringForceFieldInternalData
class  JointSpringForceField
 JointSpringForceField simulates 6D springs between Rigid DOFS Use kst vector to specify the directionnal stiffnesses (on each local axe) Use ksr vector to specify the rotational stiffnesses (on each local axe). More...
class  LennardJonesForceField
class  MeshSpringForceField
class  PenalityContactForceField
class  PlaneForceFieldInternalData
 This class can be overridden if needed for additionnal storage within template specializations. More...
class  PlaneForceField
class  QuadBendingSprings
 Bending springs added between vertices of quads sharing a common edge. More...
class  QuadularBendingSprings
 Bending springs added between vertices of quads sharing a common edge. More...
class  RegularGridSpringForceField
class  SparseGridSpringForceField
class  SphereForceFieldInternalData
 This class can be overridden if needed for additionnal storage within template specializations. More...
class  SphereForceField
class  SPHFluidForceField
class  SpringEdgeDataForceField
class  EdgeLengthArrayInterface
class  SpringForceFieldInternalData
 This class can be overridden if needed for additionnal storage within template specializations. More...
class  SpringForceField
 Define a set of springs between particles. More...
class  StiffSpringForceField
 SpringForceField able to evaluate and apply its stiffness. More...
class  TensorForceField
 Tensors based internal force field class. More...
class  TetrahedralCorotationalFEMForceField
 Compute Finite Element forces based on tetrahedral elements. More...
class  TetrahedralTensorMassForceField
class  TetrahedronFEMForceFieldInternalData
 This class can be overridden if needed for additionnal storage within template specializations. More...
class  TetrahedronFEMForceField
 Compute Finite Element forces based on tetrahedral elements. More...
class  TriangleBendingSprings
 Bending springs added between vertices of triangles sharing a common edge. More...
class  TriangleFEMForceField
class  TrianglePressureForceField
class  TriangularAnisotropicFEMForceField
class  TriangularBendingSprings
 Bending springs added between vertices of triangles sharing a common edge. More...
class  TriangularBiquadraticSpringsForceField
class  TriangularFEMForceField
 corotational triangle from {NPF05, author = "Nesme, Matthieu and Payan, Yohan and Faure, Fran\c{c}ois", title = "Efficient, Physically Plausible Finite Elements", booktitle = "Eurographics (short papers)", month = "august", year = "2005", editor = "J. Dingliana and F. Ganovelli", keywords = "animation, physical model, elasticity, finite elements", url = "http://www-evasion.imag.fr/Publications/2005/NPF05" } More...
class  TriangularQuadraticSpringsForceField
class  TriangularTensorMassForceField
class  VectorSpringForceField
class  EllipsoidForceFieldInternalData< gpu::cuda::CudaVec3fTypes >
class  EllipsoidForceFieldInternalData< gpu::cuda::CudaVec3f1Types >
class  PenalityContactForceField< CudaVec3fTypes >
class  PlaneForceFieldInternalData< gpu::cuda::CudaVectorTypes< TCoord, TDeriv, TReal > >
class  SphereForceFieldInternalData< gpu::cuda::CudaVec3fTypes >
class  SphereForceFieldInternalData< gpu::cuda::CudaVec3f1Types >
class  SpringForceFieldInternalData< gpu::cuda::CudaVectorTypes< TCoord, TDeriv, TReal > >
class  TetrahedronFEMForceFieldInternalData< gpu::cuda::CudaVectorTypes< TCoord, TDeriv, TReal > >

Typedefs

typedef BaseMeshTopology::Quad Quad
typedef BaseMeshTopology::QuadEdges QuadEdges
typedef BaseMeshTopology::Tetra Tetra
typedef
BaseMeshTopology::TetraEdges 
TetraEdges
typedef Tetra Tetrahedron
typedef TetraEdges TetrahedronEdges
typedef
BaseMeshTopology::TriangleEdges 
TriangleEdges
typedef BaseMeshTopology::Triangle Triangle

Functions

Quat qDiff (Quat a, const Quat &b)
 SOFA_DECL_CLASS (FrameSpringForceField)
template<class DataTypes >
void create (SpringEdgeDataForceField< DataTypes > *&obj, simulation::tree::xml::ObjectDescription *arg)
template<class DataTypes >
void springCreationFunction (int index, void *param, typename SpringEdgeDataForceField< DataTypes >::Spring &t, const component::topology::Edge &, const std::vector< unsigned int > &ancestors, const std::vector< double > &coefs)
template<class DataTypes >
void create (TensorForceField< DataTypes > *&obj, simulation::tree::xml::ObjectDescription *arg)
 CudaSpringForceField_DeclMethods (gpu::cuda::CudaVec3fTypes)
 CudaSpringForceField_ImplMethods (gpu::cuda::CudaVec3fTypes)
 CudaTetrahedronFEMForceField_DeclMethods (gpu::cuda::CudaVec3fTypes)
 CudaTetrahedronFEMForceField_ImplMethods (gpu::cuda::CudaVec3fTypes)

Variables

int BeamFEMForceFieldClass
int BoxConstantForceFieldClass
int BoxStiffSpringForceFieldClass
int ConicalForceFieldClass
int ConstantForceFieldClass
int EdgePressureForceFieldClass
int EllipsoidForceFieldClass
int FrameSpringForceFieldClass
int HexahedralFEMForceFieldClass
int HexahedronFEMForceFieldClass
int JointSpringForceFieldClass
int LennardJonesForceFieldClass
int MeshSpringForceFieldClass
int PenalityContactForceFieldClass
int PlaneForceFieldClass
int QuadBendingSpringsClass
int QuadularBendingSpringsClass
int RegularGridSpringForceFieldClass
int SparseGridSpringForceFieldClass
int SphereForceFieldClass
int SPHFluidForceFieldClass
Creator
< simulation::tree::xml::ObjectFactory,
SpringEdgeDataForceField
< Vec3dTypes > > 
SpringEdgeDataForceFieldVec3dClass ("SpringEdgeDataForceField", true)
Creator
< simulation::tree::xml::ObjectFactory,
SpringEdgeDataForceField
< Vec3fTypes > > 
SpringEdgeDataForceFieldVec3fClass ("SpringEdgeDataForceField", true)
int SpringForceFieldClass
int StiffSpringForceFieldClass
static unsigned int vertexEdge [4][4] = {{0,0,1,2,},{0,0,3,4},{1,3,0,5},{2,4,5,0}}
Creator
< simulation::tree::xml::ObjectFactory,
TensorForceField< Vec3dTypes > > 
TensorForceFieldVec3dClass ("TensorForceField", true)
Creator
< simulation::tree::xml::ObjectFactory,
TensorForceField< Vec3fTypes > > 
TensorForceFieldVec3fClass ("TensorForceField", true)
int TetrahedralCorotationalFEMForceFieldClass
int TetrahedralTensorMassForceFieldClass
int TetrahedronFEMForceFieldClass
int TriangleBendingSpringsClass
int TriangleFEMForceFieldClass
int TrianglePressureForceFieldClass
int TriangularAnisotropicFEMForceFieldClass
int TriangularBendingSpringsClass
int TriangularBiquadraticSpringsForceFieldClass
static Vec3d ColorMap [64]
int TriangularFEMForceFieldClass
int TriangularQuadraticSpringsForceFieldClass
int TriangularTensorMassForceFieldClass
int VectorSpringForceFieldClass

Typedef Documentation

Definition at line 58 of file QuadularBendingSprings.inl.

Definition at line 59 of file QuadularBendingSprings.inl.

Definition at line 52 of file TetrahedralTensorMassForceField.inl.

Definition at line 53 of file TetrahedralTensorMassForceField.inl.

Definition at line 55 of file TetrahedralTensorMassForceField.inl.

Definition at line 56 of file TetrahedralTensorMassForceField.inl.

Definition at line 53 of file TriangularBiquadraticSpringsForceField.inl.

Definition at line 67 of file TriangularBendingSprings.inl.


Function Documentation

template<class DataTypes >
void sofa::component::forcefield::create ( TensorForceField< DataTypes > *&  obj,
simulation::tree::xml::ObjectDescription *  arg 
) [inline]

Definition at line 584 of file TensorForceField.cpp.

template<class DataTypes >
void sofa::component::forcefield::create ( SpringEdgeDataForceField< DataTypes > *&  obj,
simulation::tree::xml::ObjectDescription *  arg 
) [inline]

Definition at line 50 of file SpringEdgeDataForceField.cpp.

sofa::component::forcefield::CudaSpringForceField_DeclMethods ( gpu::cuda::CudaVec3fTypes   ) 

sofa::component::forcefield::CudaSpringForceField_ImplMethods ( gpu::cuda::CudaVec3fTypes   ) 

sofa::component::forcefield::CudaTetrahedronFEMForceField_DeclMethods ( gpu::cuda::CudaVec3fTypes   ) 

sofa::component::forcefield::CudaTetrahedronFEMForceField_ImplMethods ( gpu::cuda::CudaVec3fTypes   ) 

Quat sofa::component::forcefield::qDiff ( Quat  a,
const Quat &  b 
) [inline]

sofa::component::forcefield::SOFA_DECL_CLASS ( FrameSpringForceField   ) 

template<class DataTypes >
void sofa::component::forcefield::springCreationFunction ( int  index,
void *  param,
typename SpringEdgeDataForceField< DataTypes >::Spring &  t,
const component::topology::Edge &  ,
const std::vector< unsigned int > &  ancestors,
const std::vector< double > &  coefs 
) [inline]


Variable Documentation

Initial value:

 core::RegisterObject("Beam finite elements")

    .add< BeamFEMForceField<Rigid3dTypes> >()


    .add< BeamFEMForceField<Rigid3fTypes> >()

Definition at line 49 of file BeamFEMForceField.cpp.

Initial value:

 core::RegisterObject("Constant forces applied to degrees of freedom contained in the bbox")

    .add< BoxConstantForceField<Vec3dTypes> >()
    .add< BoxConstantForceField<Vec2dTypes> >()
    .add< BoxConstantForceField<Vec1dTypes> >()
    .add< BoxConstantForceField<Vec6dTypes> >()
    .add< BoxConstantForceField<Rigid3dTypes> >()
    .add< BoxConstantForceField<Rigid2dTypes> >()


    .add< BoxConstantForceField<Vec3fTypes> >()
    .add< BoxConstantForceField<Vec2fTypes> >()
    .add< BoxConstantForceField<Vec1fTypes> >()
    .add< BoxConstantForceField<Vec6fTypes> >()
    .add< BoxConstantForceField<Rigid3fTypes> >()
    .add< BoxConstantForceField<Rigid2fTypes> >()

Definition at line 45 of file BoxConstantForceField.cpp.

Initial value:

 core::RegisterObject("Set Spring between the points inside a given box")

.add< BoxStiffSpringForceField<Vec3dTypes> >()
.add< BoxStiffSpringForceField<Vec2dTypes> >()
.add< BoxStiffSpringForceField<Vec1dTypes> >()
.add< BoxStiffSpringForceField<Vec6dTypes> >()


.add< BoxStiffSpringForceField<Vec3fTypes> >()
.add< BoxStiffSpringForceField<Vec2fTypes> >()
.add< BoxStiffSpringForceField<Vec1fTypes> >()
.add< BoxStiffSpringForceField<Vec6fTypes> >()

Definition at line 41 of file BoxStiffSpringForceField.cpp.

Initial value:

 core::RegisterObject("Repulsion applied by a cone toward the exterior")

.add< ConicalForceField<Vec3dTypes> >()


.add< ConicalForceField<Vec3fTypes> >()

Definition at line 54 of file ConicalForceField.cpp.

Initial value:

 core::RegisterObject("Constant forces applied to given degrees of freedom")

.add< ConstantForceField<Vec3dTypes> >()
.add< ConstantForceField<Vec2dTypes> >()
.add< ConstantForceField<Vec1dTypes> >()
.add< ConstantForceField<Vec6dTypes> >() 
.add< ConstantForceField<Rigid3dTypes> >()
.add< ConstantForceField<Rigid2dTypes> >()


.add< ConstantForceField<Vec3fTypes> >()
.add< ConstantForceField<Vec2fTypes> >()
.add< ConstantForceField<Vec1fTypes> >()
.add< ConstantForceField<Vec6fTypes> >()
.add< ConstantForceField<Rigid3fTypes> >()
.add< ConstantForceField<Rigid2fTypes> >()

Definition at line 42 of file ConstantForceField.cpp.

Initial value:

 core::RegisterObject("EdgePressure")

.add< EdgePressureForceField<Vec3dTypes> >()


.add< EdgePressureForceField<Vec3fTypes> >()

Definition at line 52 of file EdgePressureForceField.cpp.

Initial value:

 core::RegisterObject("Repulsion applied by an ellipsoid toward the exterior or the interior")


.add< EllipsoidForceField<Vec3dTypes> >()
.add< EllipsoidForceField<Vec2dTypes> >()
.add< EllipsoidForceField<Vec1dTypes> >()


.add< EllipsoidForceField<Vec3fTypes> >()
.add< EllipsoidForceField<Vec2fTypes> >()
.add< EllipsoidForceField<Vec1fTypes> >()

Definition at line 42 of file EllipsoidForceField.cpp.

Initial value:

 core::RegisterObject ( "Springs for Flexibles" )

                                          .add< FrameSpringForceField<Rigid3dTypes> >()


                                          .add< FrameSpringForceField<Rigid3fTypes> >()

Definition at line 47 of file FrameSpringForceField.cpp.

Initial value:

 core::RegisterObject("Hexahedral finite elements")

.add< HexahedralFEMForceField<Vec3dTypes> >()


.add< HexahedralFEMForceField<Vec3fTypes> >()

Definition at line 46 of file HexahedralFEMForceField.cpp.

Initial value:

 core::RegisterObject("Hexahedral finite elements")

.add< HexahedronFEMForceField<Vec3dTypes> >()


.add< HexahedronFEMForceField<Vec3fTypes> >()

Definition at line 47 of file HexahedronFEMForceField.cpp.

Initial value:

 core::RegisterObject("Springs for Rigids")

.add< JointSpringForceField<Rigid3dTypes> >()


.add< JointSpringForceField<Rigid3fTypes> >()

Definition at line 50 of file JointSpringForceField.cpp.

Initial value:

 core::RegisterObject("Lennard-Jones forces for fluids")

.add< LennardJonesForceField<Vec3dTypes> >()


.add< LennardJonesForceField<Vec3fTypes> >()

Definition at line 44 of file LennardJonesForceField.cpp.

Initial value:

 core::RegisterObject("Spring force field acting along the edges of a mesh")

.add< MeshSpringForceField<Vec3dTypes> >()
.add< MeshSpringForceField<Vec2dTypes> >()
.add< MeshSpringForceField<Vec1dTypes> >()


.add< MeshSpringForceField<Vec3fTypes> >()
.add< MeshSpringForceField<Vec2fTypes> >()
.add< MeshSpringForceField<Vec1fTypes> >()

Definition at line 43 of file MeshSpringForceField.cpp.

Initial value:

 core::RegisterObject("Contact using repulsive springs")

.add< PenalityContactForceField<Vec3dTypes> >()


.add< PenalityContactForceField<Vec3fTypes> >()

Definition at line 46 of file PenalityContactForceField.cpp.

Initial value:

 core::RegisterObject("Repulsion applied by a plane toward the exterior (half-space)")

.add< PlaneForceField<Vec3dTypes> >()
.add< PlaneForceField<Vec2dTypes> >()
.add< PlaneForceField<Vec1dTypes> >()
.add< PlaneForceField<Vec6dTypes> >()


.add< PlaneForceField<Vec3fTypes> >()
.add< PlaneForceField<Vec2fTypes> >()
.add< PlaneForceField<Vec1fTypes> >()
.add< PlaneForceField<Vec6fTypes> >()

Definition at line 42 of file PlaneForceField.cpp.

Initial value:

 core::RegisterObject("Springs added to a quad mesh to prevent bending")

.add< QuadBendingSprings<Vec3dTypes> >()
.add< QuadBendingSprings<Vec2dTypes> >()


.add< QuadBendingSprings<Vec3fTypes> >()
.add< QuadBendingSprings<Vec2fTypes> >()

Definition at line 44 of file QuadBendingSprings.cpp.

Initial value:

 core::RegisterObject("Springs added to a quad mesh to prevent bending")

.add< QuadularBendingSprings<Vec3dTypes> >()


.add< QuadularBendingSprings<Vec3fTypes> >()

Definition at line 52 of file QuadularBendingSprings.cpp.

Initial value:

 core::RegisterObject("Spring acting on the edges and faces of a regular grid")



    .add< RegularGridSpringForceField<Vec3dTypes> >(true) 

    .add< RegularGridSpringForceField<Vec3fTypes> >() 



.add< RegularGridSpringForceField<Vec2dTypes> >()
.add< RegularGridSpringForceField<Vec1dTypes> >()
.add< RegularGridSpringForceField<Vec6dTypes> >()


.add< RegularGridSpringForceField<Vec2fTypes> >()
.add< RegularGridSpringForceField<Vec1fTypes> >()
.add< RegularGridSpringForceField<Vec6fTypes> >()

Definition at line 44 of file RegularGridSpringForceField.cpp.

Initial value:

 core::RegisterObject("Springs acting on the cells of a sparse grid")

.add< SparseGridSpringForceField<Vec3dTypes> >()


.add< SparseGridSpringForceField<Vec3fTypes> >()

Definition at line 44 of file SparseGridSpringForceField.cpp.

Initial value:

 core::RegisterObject("Repulsion applied by a sphere toward the exterior")

.add< SphereForceField<Vec3dTypes> >()
.add< SphereForceField<Vec2dTypes> >()
.add< SphereForceField<Vec1dTypes> >()


.add< SphereForceField<Vec3fTypes> >()
.add< SphereForceField<Vec2fTypes> >()
.add< SphereForceField<Vec1fTypes> >()

Definition at line 43 of file SphereForceField.cpp.

Initial value:

 core::RegisterObject("Smooth Particle Hydrodynamics")

.add< SPHFluidForceField<Vec3dTypes> >()
.add< SPHFluidForceField<Vec2dTypes> >()


.add< SPHFluidForceField<Vec3fTypes> >()
.add< SPHFluidForceField<Vec2fTypes> >()

Definition at line 45 of file SPHFluidForceField.cpp.

Initial value:

 core::RegisterObject("Springs")

.add< SpringForceField<Vec3dTypes> >()
.add< SpringForceField<Vec2dTypes> >()
.add< SpringForceField<Vec1dTypes> >()
.add< SpringForceField<Vec6dTypes> >()


.add< SpringForceField<Vec3fTypes> >()
.add< SpringForceField<Vec2fTypes> >()
.add< SpringForceField<Vec1fTypes> >()
.add< SpringForceField<Vec6fTypes> >()

Definition at line 50 of file SpringForceField.cpp.

Initial value:

 core::RegisterObject("Stiff springs for implicit integration")

.add< StiffSpringForceField<Vec3dTypes> >()
.add< StiffSpringForceField<Vec2dTypes> >()
.add< StiffSpringForceField<Vec1dTypes> >()
.add< StiffSpringForceField<Vec6dTypes> >()


.add< StiffSpringForceField<Vec3fTypes> >()
.add< StiffSpringForceField<Vec2fTypes> >()
.add< StiffSpringForceField<Vec1fTypes> >()
.add< StiffSpringForceField<Vec6fTypes> >()

Definition at line 48 of file StiffSpringForceField.cpp.

Initial value:

 core::RegisterObject("Corotational FEM Tetrahedral finite elements")

.add< TetrahedralCorotationalFEMForceField<Vec3dTypes> >()


.add< TetrahedralCorotationalFEMForceField<Vec3fTypes> >()

Definition at line 47 of file TetrahedralCorotationalFEMForceField.cpp.

Initial value:

 core::RegisterObject("Linear Elastic Tetrahedral Mesh")

.add< TetrahedralTensorMassForceField<Vec3dTypes> >()


.add< TetrahedralTensorMassForceField<Vec3fTypes> >()

Definition at line 58 of file TetrahedralTensorMassForceField.cpp.

Initial value:

 core::RegisterObject("Tetrahedral finite elements")

.add< TetrahedronFEMForceField<Vec3dTypes> >()


.add< TetrahedronFEMForceField<Vec3fTypes> >()

Definition at line 47 of file TetrahedronFEMForceField.cpp.

Initial value:

 core::RegisterObject("Springs added to a traingular mesh to prevent bending")

.add< TriangleBendingSprings<Vec3dTypes> >()
.add< TriangleBendingSprings<Vec2dTypes> >()


.add< TriangleBendingSprings<Vec3fTypes> >()
.add< TriangleBendingSprings<Vec2fTypes> >()

Definition at line 56 of file TriangleBendingSprings.cpp.

Initial value:

 core::RegisterObject("Triangular finite elements")

.add< TriangleFEMForceField<Vec3dTypes> >()


.add< TriangleFEMForceField<Vec3fTypes> >()

Definition at line 691 of file TriangleFEMForceField.cpp.

Initial value:

 core::RegisterObject("TrianglePressure")

.add< TrianglePressureForceField<Vec3dTypes> >()


.add< TrianglePressureForceField<Vec3fTypes> >()

Definition at line 59 of file TrianglePressureForceField.cpp.

Initial value:

 core::RegisterObject("Triangular finite element model using anisotropic material")

.add< TriangularAnisotropicFEMForceField<Vec3dTypes> >()


.add< TriangularAnisotropicFEMForceField<Vec3fTypes> >()

Definition at line 229 of file TriangularAnisotropicFEMForceField.cpp.

Initial value:

 core::RegisterObject("Springs added to a triangular mesh to prevent bending")

.add< TriangularBendingSprings<Vec3dTypes> >()


.add< TriangularBendingSprings<Vec3fTypes> >()

Definition at line 65 of file TriangularBendingSprings.cpp.

Initial value:

 core::RegisterObject("Biquadratic Springs on a Triangular Mesh")

.add< TriangularBiquadraticSpringsForceField<Vec3dTypes> >()


.add< TriangularBiquadraticSpringsForceField<Vec3fTypes> >()

Definition at line 58 of file TriangularBiquadraticSpringsForceField.cpp.

Initial value:

 core::RegisterObject("Triangular finite elements")

.add< TriangularFEMForceField<Vec3dTypes> >()


.add< TriangularFEMForceField<Vec3fTypes> >()

Definition at line 1197 of file TriangularFEMForceField.cpp.

Initial value:

 core::RegisterObject("Quadratic Springs on a Triangular Mesh")

.add< TriangularQuadraticSpringsForceField<Vec3dTypes> >()


.add< TriangularQuadraticSpringsForceField<Vec3fTypes> >()

Definition at line 59 of file TriangularQuadraticSpringsForceField.cpp.

Initial value:

 core::RegisterObject("Linear Elastic Membrane on a Triangular Mesh")

.add< TriangularTensorMassForceField<Vec3dTypes> >()


.add< TriangularTensorMassForceField<Vec3fTypes> >()

Definition at line 58 of file TriangularTensorMassForceField.cpp.

Initial value:

 core::RegisterObject("Spring force field acting along the edges of a mesh")

.add< VectorSpringForceField<Vec3dTypes> >()


.add< VectorSpringForceField<Vec3fTypes> >()

Definition at line 42 of file VectorSpringForceField.cpp.

unsigned int sofa::component::forcefield::vertexEdge[4][4] = {{0,0,1,2,},{0,0,3,4},{1,3,0,5},{2,4,5,0}} [static]


Generated on Sun Nov 23 04:18:39 2008 for Sofa by  doxygen 1.5.7.1