Caribou
Classes | Public Types | Public Member Functions | Static Public Attributes | List of all members
SofaCaribou::forcefield::TetrahedronElasticForce Class Reference
Inheritance diagram for SofaCaribou::forcefield::TetrahedronElasticForce:

Classes

struct  GaussNode
 

Public Types

using Tetrahedron = caribou::geometry::Tetrahedron< caribou::Linear >
 
using Inherit = ForceField< Vec3Types >
 
using DataTypes = typename Inherit::DataTypes
 
using VecCoord = typename DataTypes::VecCoord
 
using VecDeriv = typename DataTypes::VecDeriv
 
using Coord = typename DataTypes::Coord
 
using Deriv = typename DataTypes::Deriv
 
using Real = typename Coord::value_type
 
template<int nRows, int nColumns, int Options = Eigen::RowMajor>
using Matrix = Eigen::Matrix< Real, nRows, nColumns, Options >
 
template<int nRows, int nColumns, int Options = Eigen::RowMajor>
using MatrixI = Eigen::Matrix< UNSIGNED_INTEGER_TYPE, nRows, nColumns, Options >
 
template<int nRows, int nColumns>
using Map = Eigen::Map< const Matrix< nRows, nColumns, Eigen::RowMajor > >
 
template<int nRows, int Options = 0>
using Vector = Eigen::Matrix< Real, nRows, 1, Options >
 
template<int nRows>
using MapVector = Eigen::Map< const Vector< nRows > >
 
using Rotation = Tetrahedron::Matrix< 3, 3 >
 
using Mat33 = Tetrahedron::Matrix< 3, 3 >
 
using Vec3 = Vector< 3 >
 
template<typename ObjectType >
using Link = SingleLink< TetrahedronElasticForce, ObjectType, BaseLink::FLAG_STRONGLINK >
 

Public Member Functions

 SOFA_CLASS (TetrahedronElasticForce, SOFA_TEMPLATE(ForceField, Vec3Types))
 
void init () override
 
void reinit () override
 
void draw (const sofa::core::visual::VisualParams *vparams) override
 
void addForce (const MechanicalParams *mparams, Data< VecDeriv > &d_f, const Data< VecCoord > &d_x, const Data< VecDeriv > &d_v) override
 
void addDForce (const MechanicalParams *, Data< VecDeriv > &, const Data< VecDeriv > &) override
 
void addKToMatrix (sofa::defaulttype::BaseMatrix *, SReal, unsigned int &) override
 
SReal getPotentialEnergy (const MechanicalParams *, const Data< VecCoord > &) const override
 
void computeBBox (const sofa::core::ExecParams *params, bool onlyVisible) override
 

Static Public Attributes

static constexpr INTEGER_TYPE Dimension = 3
 
static constexpr INTEGER_TYPE NumberOfNodes = Tetrahedron::NumberOfNodesAtCompileTime
 

Class Documentation

◆ SofaCaribou::forcefield::TetrahedronElasticForce::GaussNode

struct SofaCaribou::forcefield::TetrahedronElasticForce::GaussNode
Class Members
Matrix< NumberOfNodes, 3 > dN_dx
Real jacobian_determinant
Real weight

The documentation for this class was generated from the following files: