SOFA plugin: PersistentContact  master
Open source framework for multi-physics simuation
sofa::component::mapping::PersistentContactRigidMapping< TIn, TOut > Class Template Reference

#include <PersistentContactRigidMapping.h>

Inheritance diagram for sofa::component::mapping::PersistentContactRigidMapping< TIn, TOut >:

Protected Attributes

Inheritm_inputMapping
 
bool m_init
 
VecCoord m_previousPoints
 
InVecCoord m_previousPosition
 
InVecCoord m_previousFreePosition
 
InVecDeriv m_previousDx
 
- Protected Attributes inherited from sofa::component::mapping::nonlinear::RigidMapping< TIn, TOut >
std::unique_ptr< MatrixType > m_matrixJ
 
bool m_updateJ
 
SparseMatrixEigen m_eigenJacobian
 
type::vector< sofa::linearalgebra::BaseMatrix * > m_eigenJacobians
 
StiffnessSparseMatrixEigen m_geometricStiffnessMatrix
 
- Protected Attributes inherited from sofa::core::Mapping< class, class >
SingleLink< Mapping< In, Out >, State< In >, BaseLink::FLAG_STOREPATH|BaseLink::FLAG_STRONGLINK > fromModel
 
SingleLink< Mapping< In, Out >, State< Out >, BaseLink::FLAG_STOREPATH|BaseLink::FLAG_STRONGLINK > toModel
 
- Protected Attributes inherited from sofa::core::objectmodel::BaseObject
SingleLink< BaseObject, BaseContext, BaseLink::FLAG_DOUBLELINK > l_context
 
LinkSlaves l_slaves
 
SingleLink< BaseObject, BaseObject, BaseLink::FLAG_DOUBLELINK > l_master
 
- Protected Attributes inherited from sofa::core::objectmodel::Base
std::map< std::string, sofa::core::DataTrackerCallbackm_internalEngine
 
VecData m_vecData
 
MapData m_aliasData
 
VecLink m_vecLink
 
MapLink m_aliasLink
 

Public Member Functions

 SOFA_CLASS2 (SOFA_TEMPLATE2(PersistentContactRigidMapping, TIn, TOut), SOFA_TEMPLATE2(RigidMapping, TIn, TOut), PersistentContactMapping)
 
 PersistentContactRigidMapping ()
 
 ~PersistentContactRigidMapping () override
 
void beginAddContactPoint () override
 Reset the Mapping. More...
 
int addContactPointFromInputMapping (const sofa::type::Vec3 &pos, std::vector< std::pair< int, double > > &baryCoords)
 Add point in the duplicated mapping without using barycentric mappers. More...
 
int keepContactPointFromInputMapping (const int index) override
 Maintains a remaining contact point in the duplicated mapping without using barycentric mappers. More...
 
void init () override
 
void bwdInit () override
 
void reset () override
 
void handleEvent (sofa::core::objectmodel::Event *) override
 
void storeFreePositionAndDx ()
 
void applyLinearizedPosition ()
 
void applyPositionAndFreePosition () override
 Apply position and freeposition. More...
 
void applyJT (const core::ConstraintParams *cparams, Data< InMatrixDeriv > &out, const Data< OutMatrixDeriv > &in)
 
- Public Member Functions inherited from sofa::component::mapping::nonlinear::RigidMapping< TIn, TOut >
 SOFA_CLASS (SOFA_TEMPLATE2(RigidMapping, TIn, TOut), SOFA_TEMPLATE2(core::Mapping, TIn, TOut))
 
sofa::Size addPoint (const OutCoord &c)
 
sofa::Size addPoint (const OutCoord &c, sofa::Index indexFrom)
 
void init () override
 
void reinit () override
 
void apply (const core::MechanicalParams *mparams, Data< OutVecCoord > &out, const Data< InVecCoord > &in) override
 
void applyJ (const core::MechanicalParams *mparams, Data< OutVecDeriv > &out, const Data< InVecDeriv > &in) override
 
void applyJT (const core::MechanicalParams *mparams, Data< InVecDeriv > &out, const Data< OutVecDeriv > &in) override
 
void applyJT (const core::ConstraintParams *cparams, Data< InMatrixDeriv > &out, const Data< OutMatrixDeriv > &in) override
 
void applyDJT (const core::MechanicalParams *mparams, core::MultiVecDerivId parentForce, core::ConstMultiVecDerivId childForce) override
 
const sofa::linearalgebra::BaseMatrixgetJ () override
 
virtual const type::vector< sofa::linearalgebra::BaseMatrix * > * getJs () override
 
void updateK (const core::MechanicalParams *mparams, core::ConstMultiVecDerivId childForceId) override
 
void updateK (const core::MechanicalParams *, core::ConstMultiVecDerivId)
 
void updateK (const core::MechanicalParams *mparams, core::ConstMultiVecDerivId childForceId)
 
const linearalgebra::BaseMatrixgetK () override
 
const linearalgebra::BaseMatrixgetK ()
 
const linearalgebra::BaseMatrixgetK ()
 
void buildGeometricStiffnessMatrix (sofa::core::GeometricStiffnessMatrix *matrices) override
 
void draw (const core::visual::VisualParams *vparams) override
 
void clear (sofa::Size reserve=0)
 
void setRepartition (sofa::Size value)
 
void setRepartition (sofa::type::vector< sofa::Size > values)
 
void parse (core::objectmodel::BaseObjectDescription *arg) override
 
void getGlobalToLocalCoords (OutCoord &result, const InCoord &xfrom, const OutCoord &xto)
 
void getGlobalToLocalCoords (OutCoord &result, const InCoord &xFrom, const OutCoord &xTo)
 
void updateOmega (typename InDeriv::Rot &omega, const OutDeriv &out, const OutCoord &rotatedpoint)
 
void updateOmega (typename InDeriv::Rot &omega, const OutDeriv &out, const OutCoord &rotatedpoint)
 
- Public Member Functions inherited from sofa::core::Mapping< class, class >
 SOFA_ABSTRACT_CLASS (SOFA_TEMPLATE2(Mapping, TIn, TOut), BaseMapping)
 
virtual void setModels (State< In > *from, State< Out > *to)
 
bool setFrom (BaseState *from) override
 
bool setTo (BaseState *to) override
 
void setPathInputObject (const std::string &o)
 
void setPathOutputObject (const std::string &o)
 
State< In > * getFromModel ()
 
State< Out > * getToModel ()
 
type::vector< BaseState * > getFrom () override
 
type::vector< BaseState * > getTo () override
 
void apply (const MechanicalParams *mparams, MultiVecCoordId outPos, ConstMultiVecCoordId inPos) override
 
virtual void apply (const MechanicalParams *mparams, OutDataVecCoord &out, const InDataVecCoord &in)=0
 
void applyJ (const MechanicalParams *mparams, MultiVecDerivId outVel, ConstMultiVecDerivId inVel) override
 
virtual void applyJ (const MechanicalParams *mparams, OutDataVecDeriv &out, const InDataVecDeriv &in)=0
 
void applyJT (const MechanicalParams *mparams, MultiVecDerivId inForce, ConstMultiVecDerivId outForce) override
 
virtual void applyJT (const MechanicalParams *mparams, InDataVecDeriv &out, const OutDataVecDeriv &in)=0
 
void applyJT (const ConstraintParams *cparams, MultiMatrixDerivId inConst, ConstMultiMatrixDerivId outConst) override
 
virtual void applyJT (const ConstraintParams *, InDataMatrixDeriv &, const OutDataMatrixDeriv &)
 
void computeAccFromMapping (const MechanicalParams *mparams, MultiVecDerivId outAcc, ConstMultiVecDerivId inVel, ConstMultiVecDerivId inAcc) override
 
virtual void computeAccFromMapping (const MechanicalParams *, OutDataVecDeriv &, const InDataVecDeriv &, const InDataVecDeriv &)
 
virtual type::vector< behavior::BaseMechanicalState * > getMechFrom () override
 
virtual type::vector< behavior::BaseMechanicalState * > getMechTo () override
 
sofa::linearalgebra::BaseMatrixcreateMappedMatrix (const behavior::BaseMechanicalState *state1, const behavior::BaseMechanicalState *state2, func_createMappedMatrix) override
 
void disable () override
 
- Public Member Functions inherited from sofa::core::BaseMapping
 SOFA_ABSTRACT_CLASS (BaseMapping, objectmodel::BaseObject)
 
virtual bool isLinear () const
 
virtual bool isMechanical () const
 
virtual bool sameTopology () const
 
virtual const sofa::linearalgebra::BaseMatrixgetJ (const MechanicalParams *)
 
bool insertInNode (objectmodel::BaseNode *node) override
 
bool removeInNode (objectmodel::BaseNode *node) override
 
virtual bool areForcesMapped () const
 
virtual bool areConstraintsMapped () const
 
virtual bool areMassesMapped () const
 
virtual bool areMatricesMapped () const
 
virtual void setForcesMapped (bool b)
 
virtual void setConstraintsMapped (bool b)
 
virtual void setMassesMapped (bool b)
 
virtual void setMatricesMapped (bool b)
 
virtual void setNonMechanical ()
 
virtual bool areForcesMapped () const
 
virtual bool areConstraintsMapped () const
 
virtual bool areMassesMapped () const
 
virtual bool areMatricesMapped () const
 
virtual void setForcesMapped (bool b)
 
virtual void setConstraintsMapped (bool b)
 
virtual void setMassesMapped (bool b)
 
virtual void setMatricesMapped (bool b)
 
virtual void setNonMechanical ()
 
- Public Member Functions inherited from sofa::core::objectmodel::BaseObject
 SOFA_CLASS (BaseObject, Base)
 
virtual void computeBBox (const core::ExecParams *, bool=false)
 
void setSrc (const std::string &v, std::vector< std::string > *attributeList=nullptr)
 
void setSrc (const std::string &v, const BaseObject *loader, std::vector< std::string > *attributeList=nullptr)
 
BasefindLinkDestClass (const BaseClass *destType, const std::string &path, const BaseLink *link) override
 
virtual std::string getPathName () const override
 
SReal getTime () const
 
const BaseContextgetContext () const
 
BaseContextgetContext ()
 
const BaseObjectgetMaster () const
 
BaseObjectgetMaster ()
 
const VecSlavesgetSlaves () const
 
BaseObjectgetSlave (const std::string &name) const
 
virtual void addSlave (BaseObject::SPtr s)
 
virtual void removeSlave (BaseObject::SPtr s)
 
virtual void handleTopologyChange ()
 
virtual void handleTopologyChange (core::topology::Topology *t)
 
void updateInternal ()
 
virtual void storeResetState ()
 
virtual void cleanup ()
 
SReal getTime () const
 
- Public Member Functions inherited from sofa::core::objectmodel::Base
virtual const BaseClassgetClass () const
 
void addDeprecatedAttribute (lifecycle::DeprecatedData *attribute)
 
void addUpdateCallback (const std::string &name, std::initializer_list< BaseData * > inputs, std::function< sofa::core::objectmodel::ComponentState(const DataTracker &)> function, std::initializer_list< BaseData * > outputs)
 
void addOutputsToCallback (const std::string &name, std::initializer_list< BaseData * > outputs)
 
const std::string & getName () const
 
void setName (const std::string &n)
 
void setName (const std::string &n, int counter)
 
std::string getTypeName () const
 
virtual std::string getClassName () const
 
virtual std::string getTemplateName () const final
 
std::string getNameSpaceName () const
 
void setDefinitionSourceFileName (const std::string &sourceFileName)
 
const std::string & getDefinitionSourceFileName () const
 
void setDefinitionSourceFilePos (const int)
 
int getDefinitionSourceFilePos () const
 
void setInstanciationSourceFileName (const std::string &sourceFileName)
 
const std::string & getInstanciationSourceFileName () const
 
void setInstanciationSourceFilePos (const int)
 
int getInstanciationSourceFilePos () const
 
void addMessage (const sofa::helper::logging::Message &m) const
 
size_t countLoggedMessages (sofa::helper::logging::Message::TypeSet t=sofa::helper::logging::Message::AnyTypes) const
 
const std::deque< sofa::helper::logging::Message > & getLoggedMessages () const
 
const std::string getLoggedMessagesAsString (sofa::helper::logging::Message::TypeSet t=sofa::helper::logging::Message::AnyTypes) const
 
void clearLoggedMessages () const
 
bool notMuted () const
 
const sofa::core::objectmodel::TagSetgetTags () const
 
bool hasTag (Tag t) const
 
void addTag (Tag t)
 
void removeTag (Tag t)
 
ComponentState getComponentState () const
 
bool isComponentStateValid () const
 
bool isComponentStateInvalid () const
 
 SOFA_ATTRIBUTE_DEPRECATED__TOBASECONSTRAINT () virtual const behavior
 
virtual bool parseField (const std::string &attribute, const std::string &value)
 
virtual bool hasField (const std::string &attribute) const
 
void parseFields (const std::list< std::string > &str)
 
virtual void parseFields (const std::map< std::string, std::string * > &str)
 
void writeDatas (std::map< std::string, std::string * > &str)=delete
 
void writeDatas (std::ostream &out, const std::string &separator=" ")
 
BaseDatafindData (const std::string &name) const
 
std::vector< BaseData * > findGlobalField (const std::string &name) const
 
BaseLinkfindLink (const std::string &name) const
 
std::vector< BaseLink * > findLinks (const std::string &name) const
 
virtual void updateLinks (bool logErrors=true)
 
BaseData::BaseInitData initData (::sofa::core::objectmodel::Data< T > *field, const char *name, const char *help, ::sofa::core::objectmodel::BaseData::DataFlags dataflags)
 
BaseData::BaseInitData initData (Data< T > *field, const char *name, const char *help, bool isDisplayed=true, bool isReadOnly=false)
 
Data< T >::InitData initData (Data< T > *field, const T &value, const char *name, const char *help, bool isDisplayed=true, bool isReadOnly=false)
 
void addData (BaseData *f, const std::string &name)
 
void addData (BaseData *f)
 
void removeData (BaseData *f)
 
void addAlias (BaseData *field, const char *alias)
 
void addLink (BaseLink *l)
 
void addAlias (BaseLink *link, const char *alias)
 
const VecDatagetDataFields () const
 
const MapDatagetDataAliases () const
 
const VecLinkgetLinks () const
 
const MapLinkgetLinkAliases () const
 
virtual bool findDataLinkDest (BaseData *&ptr, const std::string &path, const BaseLink *link)
 
bool findLinkDest (T *&ptr, const std::string &path, const BaseLink *link)
 
const sofa::core::objectmodel::TagSetgetTags () const
 
bool hasTag (Tag t) const
 
void addTag (Tag t)
 
void removeTag (Tag t)
 
ComponentState getComponentState () const
 
bool isComponentStateValid () const
 
bool isComponentStateInvalid () const
 
 SOFA_ATTRIBUTE_DEPRECATED__TOBASECONSTRAINT () virtual const behavior
 
- Public Member Functions inherited from NonLinearMappingData< true >
 NonLinearMappingData ()
 
 NonLinearMappingData ()
 
- Public Member Functions inherited from sofa::component::mapping::PersistentContactMapping
 PersistentContactMapping ()
 Default Constructor. More...
 

Protected Member Functions

void setDefaultValues ()
 
- Protected Member Functions inherited from sofa::component::mapping::nonlinear::RigidMapping< TIn, TOut >
 RigidMapping ()
 
virtual ~RigidMapping ()
 
unsigned int getRigidIndex (unsigned int pointIndex) const
 
void load (const char *filename)
 
const OutVecCoord & getPoints ()
 
void setJMatrixBlock (sofa::Index outIdx, sofa::Index inIdx)
 
- Protected Member Functions inherited from sofa::core::Mapping< class, class >
 Mapping (State< In > *from=nullptr, State< Out > *to=nullptr)
 
 ~Mapping () override
 
- Protected Member Functions inherited from sofa::core::BaseMapping
 BaseMapping ()
 
 ~BaseMapping () override
 
bool testMechanicalState (BaseState *state)
 
- Protected Member Functions inherited from sofa::core::objectmodel::BaseObject
 BaseObject ()
 
 ~BaseObject () override
 
virtual void doUpdateInternal ()
 
void changeContextLink (BaseContext *before, BaseContext *&after)
 
void changeSlavesLink (BaseObject::SPtr ptr, std::size_t, bool add)
 
void trackInternalData (const BaseData &data)
 
void cleanTracker ()
 
bool hasDataChanged (const BaseData &data)
 
- Protected Member Functions inherited from sofa::core::objectmodel::Base
 Base ()
 
virtual ~Base ()
 
void initData0 (BaseData *field, BaseData::BaseInitData &res, const char *name, const char *help, bool isDisplayed=true, bool isReadOnly=false)
 
void initData0 (BaseData *field, BaseData::BaseInitData &res, const char *name, const char *help, BaseData::DataFlags dataFlags)
 
void initData0 (Data< T > *field, typename Data< T >::InitData &res, const T &value, const char *name, const char *help, bool isDisplayed=true, bool isReadOnly=false)
 
- Protected Member Functions inherited from sofa::core::IntrusiveObject
virtual ~IntrusiveObject ()=default
 
- Protected Member Functions inherited from NonLinearMappingData< true >
void checkLinearSolverSymmetry (const core::MechanicalParams *mparams) const
 

Additional Inherited Members

- Public Attributes inherited from sofa::component::mapping::nonlinear::RigidMapping< TIn, TOut >
Data< OutVecCoord > d_points
 
OutVecCoord m_rotatedPoints
 
RigidMappingInternalData< In, Out > m_data
 
Data< sofa::Index > d_index
 
sofa::core::objectmodel::DataFileName d_fileRigidMapping
 
Data< bool > d_useX0
 
Data< bool > d_indexFromEnd
 
Data< type::vector< unsigned int > > d_rigidIndexPerPoint
 
Data< bool > d_globalToLocalCoords
 
- Public Attributes inherited from sofa::core::Mapping< class, class >
Data< bool > f_applyRestPosition
 
- Public Attributes inherited from sofa::core::BaseMapping
Data< bool > f_mapForces
 
Data< bool > f_mapConstraints
 
Data< bool > f_mapMasses
 
Data< bool > f_mapMatrices
 
- Public Attributes inherited from sofa::core::objectmodel::BaseObject
Data< bool > f_listening
 
- Public Attributes inherited from sofa::core::objectmodel::Base
std::vector< lifecycle::DeprecatedData * > m_oldAttributes
 
Data< int > d_messageLogCount
 
Data< std::string > name
 
Data< bool > f_printLog
 
Data< sofa::core::objectmodel::TagSetf_tags
 
Data< sofa::type::BoundingBoxf_bbox
 
Data< sofa::core::objectmodel::ComponentStated_componentState
 
std::string m_definitionSourceFileName
 
int m_definitionSourceFilePos
 
std::string m_instanciationSourceFileName
 
int m_instanciationSourceFilePos
 
- Public Attributes inherited from NonLinearMappingData< true >
Data< helper::OptionsGroup > d_geometricStiffness
 
- Public Attributes inherited from sofa::component::mapping::PersistentContactMapping
Data< std::string > m_nameOfInputMap
 if contactDuplicate == true, it provides the name of the input mapping More...
 
- Static Public Member Functions inherited from sofa::core::Mapping< class, class >
static bool canCreate (T *&obj, core::objectmodel::BaseContext *context, core::objectmodel::BaseObjectDescription *arg)
 
static T::SPtr create (T *, core::objectmodel::BaseContext *context, core::objectmodel::BaseObjectDescription *arg)
 
static std::string shortName (const T *ptr=nullptr, objectmodel::BaseObjectDescription *arg=nullptr)
 
- Static Public Member Functions inherited from sofa::core::objectmodel::BaseObject
static bool canCreate (T *, BaseContext *, BaseObjectDescription *)
 
static T::SPtr create (T *, BaseContext *context, BaseObjectDescription *arg)
 
- Static Public Member Functions inherited from sofa::core::objectmodel::Base
static const BaseClassGetClass ()
 
static std::string shortName (const T *ptr=nullptr, BaseObjectDescription *=nullptr)
 

Attribute details

◆ m_init

template<class TIn , class TOut >
bool sofa::component::mapping::PersistentContactRigidMapping< TIn, TOut >::m_init
protected

◆ m_inputMapping

template<class TIn , class TOut >
Inherit* sofa::component::mapping::PersistentContactRigidMapping< TIn, TOut >::m_inputMapping
protected

◆ m_previousDx

template<class TIn , class TOut >
InVecDeriv sofa::component::mapping::PersistentContactRigidMapping< TIn, TOut >::m_previousDx
protected

◆ m_previousFreePosition

template<class TIn , class TOut >
InVecCoord sofa::component::mapping::PersistentContactRigidMapping< TIn, TOut >::m_previousFreePosition
protected

◆ m_previousPoints

template<class TIn , class TOut >
VecCoord sofa::component::mapping::PersistentContactRigidMapping< TIn, TOut >::m_previousPoints
protected

◆ m_previousPosition

template<class TIn , class TOut >
InVecCoord sofa::component::mapping::PersistentContactRigidMapping< TIn, TOut >::m_previousPosition
protected

Constructor details

◆ PersistentContactRigidMapping()

◆ ~PersistentContactRigidMapping()

template<class TIn , class TOut >
sofa::component::mapping::PersistentContactRigidMapping< TIn, TOut >::~PersistentContactRigidMapping ( )
inlineoverride

Function details

◆ addContactPointFromInputMapping()

template<class TIn , class TOut >
int sofa::component::mapping::PersistentContactRigidMapping< TIn, TOut >::addContactPointFromInputMapping ( const sofa::type::Vec3 ,
std::vector< std::pair< int, double > > &   
)
virtual

Add point in the duplicated mapping without using barycentric mappers.

Reimplemented from sofa::component::mapping::PersistentContactMapping.

◆ applyJT()

template<class TIn , class TOut >
void sofa::component::mapping::PersistentContactRigidMapping< TIn, TOut >::applyJT ( const core::ConstraintParams cparams,
Data< InMatrixDeriv > &  out,
const Data< OutMatrixDeriv > &  in 
)
inline

◆ applyLinearizedPosition()

template<class TIn , class TOut >
void sofa::component::mapping::PersistentContactRigidMapping< TIn, TOut >::applyLinearizedPosition

◆ applyPositionAndFreePosition()

template<class TIn , class TOut >
void sofa::component::mapping::PersistentContactRigidMapping< TIn, TOut >::applyPositionAndFreePosition
overridevirtual

Apply position and freeposition.

Reimplemented from sofa::component::mapping::PersistentContactMapping.

◆ beginAddContactPoint()

template<class TIn , class TOut >
void sofa::component::mapping::PersistentContactRigidMapping< TIn, TOut >::beginAddContactPoint
overridevirtual

Reset the Mapping.

Reimplemented from sofa::component::mapping::PersistentContactMapping.

◆ bwdInit()

template<class TIn , class TOut >
void sofa::component::mapping::PersistentContactRigidMapping< TIn, TOut >::bwdInit
overridevirtual

◆ handleEvent()

template<class TIn , class TOut >
void sofa::component::mapping::PersistentContactRigidMapping< TIn, TOut >::handleEvent ( sofa::core::objectmodel::Event ev)
overridevirtual

◆ init()

template<class TIn , class TOut >
void sofa::component::mapping::PersistentContactRigidMapping< TIn, TOut >::init ( void  )
overridevirtual

◆ keepContactPointFromInputMapping()

template<class TIn , class TOut >
int sofa::component::mapping::PersistentContactRigidMapping< TIn, TOut >::keepContactPointFromInputMapping ( const int  )
overridevirtual

Maintains a remaining contact point in the duplicated mapping without using barycentric mappers.

Reimplemented from sofa::component::mapping::PersistentContactMapping.

◆ reset()

template<class TIn , class TOut >
void sofa::component::mapping::PersistentContactRigidMapping< TIn, TOut >::reset
overridevirtual

◆ setDefaultValues()

template<class TIn , class TOut >
void sofa::component::mapping::PersistentContactRigidMapping< TIn, TOut >::setDefaultValues
protected

◆ SOFA_CLASS2()

template<class TIn , class TOut >
sofa::component::mapping::PersistentContactRigidMapping< TIn, TOut >::SOFA_CLASS2 ( SOFA_TEMPLATE2(PersistentContactRigidMapping< TIn, TOut >, TIn, TOut)  ,
SOFA_TEMPLATE2(RigidMapping, TIn, TOut)  ,
PersistentContactMapping   
)

◆ storeFreePositionAndDx()

template<class TIn , class TOut >
void sofa::component::mapping::PersistentContactRigidMapping< TIn, TOut >::storeFreePositionAndDx

Enum details

◆ anonymous enum

template<class TIn , class TOut >
anonymous enum
Enumerator

◆ anonymous enum

template<class TIn , class TOut >
anonymous enum
Enumerator
NIn 

◆ anonymous enum

template<class TIn , class TOut >
anonymous enum
Enumerator
NOut