SOFA API  6b913c64
Open source framework for multi-physics simuation
sofa::component::mapping::linear::SubsetMultiMapping< TIn, TOut > Class Template Reference

#include <SubsetMultiMapping.h>

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

Public Attributes

Data< type::vector< unsigned > > d_indexPairs
 list of couples (parent index + index in the parent) More...
 

Protected Attributes

type::vector< linearalgebra::BaseMatrix * > baseMatrices
 Jacobian of the mapping, in a vector. More...
 

Public Member Functions

 SOFA_CLASS (SOFA_TEMPLATE2(SubsetMultiMapping, TIn, TOut), SOFA_TEMPLATE2(LinearMultiMapping, TIn, TOut))
 
void init () override
 
void addPoint (const core::BaseState *fromModel, int index)
 
void addPoint (int fromModel, int index)
 
void apply (const core::MechanicalParams *mparams, const type::vector< DataVecCoord_t< Out > * > &dataVecOutPos, const type::vector< const DataVecCoord_t< In > * > &dataVecInPos) override
 
void applyJ (const core::MechanicalParams *mparams, const type::vector< DataVecDeriv_t< Out > * > &dataVecOutVel, const type::vector< const DataVecDeriv_t< In > * > &dataVecInVel) override
 
void applyJT (const core::MechanicalParams *mparams, const type::vector< DataVecDeriv_t< In > * > &dataVecOutForce, const type::vector< const DataVecDeriv_t< Out > * > &dataVecInForce) override
 
void applyDJT (const core::MechanicalParams *, core::MultiVecDerivId, core::ConstMultiVecDerivId) override
 
void applyJT (const core::ConstraintParams *cparams, const type::vector< DataMatrixDeriv_t< In > * > &dataMatOutConst, const type::vector< const DataMatrixDeriv_t< Out > * > &dataMatInConst) override
 
virtual const type::vector< sofa::linearalgebra::BaseMatrix * > * getJs () override
 Experimental API used to handle multimappings in matrix assembly. Returns pointers to matrices associated with parent states, consistently with getFrom(). More...
 
- Public Member Functions inherited from sofa::component::mapping::linear::crtp::CRTPLinearMapping< TMapping >
 SOFA_CLASS (SOFA_TEMPLATE(CRTPLinearMapping, TMapping), TMapping)
 
virtual bool isLinear () const override
 

Protected Member Functions

 SubsetMultiMapping ()
 
virtual ~SubsetMultiMapping () override
 

Attribute details

◆ baseMatrices

template<class TIn , class TOut >
type::vector<linearalgebra::BaseMatrix*> sofa::component::mapping::linear::SubsetMultiMapping< TIn, TOut >::baseMatrices
protected

Jacobian of the mapping, in a vector.

◆ d_indexPairs

template<class TIn , class TOut >
Data< type::vector<unsigned> > sofa::component::mapping::linear::SubsetMultiMapping< TIn, TOut >::d_indexPairs

list of couples (parent index + index in the parent)

Constructor details

◆ SubsetMultiMapping()

template<class TIn , class TOut >
sofa::component::mapping::linear::SubsetMultiMapping< TIn, TOut >::SubsetMultiMapping
protected

◆ ~SubsetMultiMapping()

template<class TIn , class TOut >
sofa::component::mapping::linear::SubsetMultiMapping< TIn, TOut >::~SubsetMultiMapping
overrideprotectedvirtual

Function details

◆ addPoint() [1/2]

template<class TIn , class TOut >
void sofa::component::mapping::linear::SubsetMultiMapping< TIn, TOut >::addPoint ( const core::BaseState fromModel,
int  index 
)

◆ addPoint() [2/2]

template<class TIn , class TOut >
void sofa::component::mapping::linear::SubsetMultiMapping< TIn, TOut >::addPoint ( int  fromModel,
int  index 
)

◆ apply()

template<class TIn , class TOut >
void sofa::component::mapping::linear::SubsetMultiMapping< TIn, TOut >::apply ( const core::MechanicalParams mparams,
const type::vector< DataVecCoord_t< Out > * > &  dataVecOutPos,
const type::vector< const DataVecCoord_t< In > * > &  dataVecInPos 
)
override

◆ applyDJT()

template<class TIn , class TOut >
void sofa::component::mapping::linear::SubsetMultiMapping< TIn, TOut >::applyDJT ( const core::MechanicalParams ,
core::MultiVecDerivId  ,
core::ConstMultiVecDerivId   
)
inlineoverride

◆ applyJ()

template<class TIn , class TOut >
void sofa::component::mapping::linear::SubsetMultiMapping< TIn, TOut >::applyJ ( const core::MechanicalParams mparams,
const type::vector< DataVecDeriv_t< Out > * > &  dataVecOutVel,
const type::vector< const DataVecDeriv_t< In > * > &  dataVecInVel 
)
override

◆ applyJT() [1/2]

template<class TIn , class TOut >
void sofa::component::mapping::linear::SubsetMultiMapping< TIn, TOut >::applyJT ( const core::ConstraintParams cparams,
const type::vector< DataMatrixDeriv_t< In > * > &  dataMatOutConst,
const type::vector< const DataMatrixDeriv_t< Out > * > &  dataMatInConst 
)
override

◆ applyJT() [2/2]

template<class TIn , class TOut >
void sofa::component::mapping::linear::SubsetMultiMapping< TIn, TOut >::applyJT ( const core::MechanicalParams mparams,
const type::vector< DataVecDeriv_t< In > * > &  dataVecOutForce,
const type::vector< const DataVecDeriv_t< Out > * > &  dataVecInForce 
)
override

◆ getJs()

template<class TIn , class TOut >
const type::vector< sofa::linearalgebra::BaseMatrix * > * sofa::component::mapping::linear::SubsetMultiMapping< TIn, TOut >::getJs
overridevirtual

Experimental API used to handle multimappings in matrix assembly. Returns pointers to matrices associated with parent states, consistently with getFrom().

◆ init()

template<class TIn , class TOut >
void sofa::component::mapping::linear::SubsetMultiMapping< TIn, TOut >::init ( void  )
override

◆ SOFA_CLASS()

template<class TIn , class TOut >
sofa::component::mapping::linear::SubsetMultiMapping< TIn, TOut >::SOFA_CLASS ( SOFA_TEMPLATE2(SubsetMultiMapping< TIn, TOut >, TIn, TOut)  ,
SOFA_TEMPLATE2(LinearMultiMapping, TIn, TOut)   
)