SOFA API  1a4bb3e7
Open source framework for multi-physics simuation
sofa::component::linearsystem::AssemblingMappedMatrixAccumulator< c, TBlockType > Class Template Reference

#include <AssemblingMappedMatrixAccumulator.h>

Inheritance diagram for sofa::component::linearsystem::AssemblingMappedMatrixAccumulator< c, TBlockType >:

Detailed Description

template<sofa::core::matrixaccumulator::Contribution c, class TBlockType>
class sofa::component::linearsystem::AssemblingMappedMatrixAccumulator< c, TBlockType >

Similar to AssemblingMatrixAccumulator but dedicated for mapped components. Instead of writing directly into the global matrix, AssemblingMappedMatrixAccumulator builds explicitly a local matrix, so it can be transformed from the mapped space to the global space, using matrix product with the Jacobian matrix of the mapping.

Protected Attributes

std::shared_ptr< LocalMappedMatrixType< TBlockType > > m_mappedMatrix
 

Public Member Functions

 SOFA_CLASS (AssemblingMappedMatrixAccumulator, AssemblingMatrixAccumulator< c >)
 
void clear () override
 
void shareMatrix (const std::shared_ptr< LocalMappedMatrixType< TBlockType > > &m)
 
const std::shared_ptr< LocalMappedMatrixType< TBlockType > > & getMatrix () const
 
- Public Member Functions inherited from sofa::component::linearsystem::AssemblingMatrixAccumulator< c, TStrategy >
 SOFA_CLASS (AssemblingMatrixAccumulator, SOFA_TEMPLATE2(sofa::core::MatrixAccumulatorIndexChecker, BaseAssemblingMatrixAccumulator< c >, TStrategy))
 
void clear () override
 
- Public Member Functions inherited from sofa::core::MatrixAccumulatorIndexChecker< BaseAssemblingMatrixAccumulator< c >, sofa::core::matrixaccumulator::NoIndexVerification >
 SOFA_CLASS (MatrixAccumulatorIndexChecker, BaseAssemblingMatrixAccumulator< c >)
 
void setIndexCheckerStrategy (std::shared_ptr< matrixaccumulator::IndexVerificationStrategy > strategy) override
 
void add (const sofa::SignedIndex row, const sofa::SignedIndex col, const float value) override final
 
void add (const sofa::SignedIndex row, const sofa::SignedIndex col, double value) override final
 
void add (const sofa::SignedIndex row, const sofa::SignedIndex col, const sofa::type::Mat< 2, 2, float > &value) override final
 
void add (const sofa::SignedIndex row, const sofa::SignedIndex col, const sofa::type::Mat< 2, 2, double > &value) override final
 
void add (const sofa::SignedIndex row, const sofa::SignedIndex col, const sofa::type::Mat< 3, 3, float > &value) override final
 
void add (const sofa::SignedIndex row, const sofa::SignedIndex col, const sofa::type::Mat< 3, 3, double > &value) override final
 
void add (const sofa::SignedIndex row, const sofa::SignedIndex col, const sofa::type::Mat< 6, 6, float > &value) override final
 
void add (const sofa::SignedIndex row, const sofa::SignedIndex col, const sofa::type::Mat< 6, 6, double > &value) override final
 

Protected Member Functions

void add (const core::matrixaccumulator::no_check_policy &, sofa::SignedIndex row, sofa::SignedIndex col, float value) override
 
void add (const core::matrixaccumulator::no_check_policy &, sofa::SignedIndex row, sofa::SignedIndex col, double value) override
 
void add (const core::matrixaccumulator::no_check_policy &, sofa::SignedIndex row, sofa::SignedIndex col, const sofa::type::Mat< 3, 3, float > &value) override
 
void add (const core::matrixaccumulator::no_check_policy &, sofa::SignedIndex row, sofa::SignedIndex col, const sofa::type::Mat< 3, 3, double > &value) override
 
 AssemblingMappedMatrixAccumulator ()
 
- Protected Member Functions inherited from sofa::component::linearsystem::AssemblingMatrixAccumulator< c, TStrategy >
void add (const core::matrixaccumulator::no_check_policy &, sofa::SignedIndex row, sofa::SignedIndex col, float value) override
 
void add (const core::matrixaccumulator::no_check_policy &, sofa::SignedIndex row, sofa::SignedIndex col, double value) override
 
void add (const core::matrixaccumulator::no_check_policy &, sofa::SignedIndex row, sofa::SignedIndex col, const sofa::type::Mat< 3, 3, float > &value) override
 
void add (const core::matrixaccumulator::no_check_policy &, sofa::SignedIndex row, sofa::SignedIndex col, const sofa::type::Mat< 3, 3, double > &value) override
 
void add (const core::matrixaccumulator::no_check_policy &, sofa::SignedIndex row, sofa::SignedIndex col, const sofa::type::Mat< 6, 6, float > &value) override
 
void add (const core::matrixaccumulator::no_check_policy &, sofa::SignedIndex row, sofa::SignedIndex col, const sofa::type::Mat< 6, 6, double > &value) override
 
- Protected Member Functions inherited from sofa::core::MatrixAccumulatorIndexChecker< BaseAssemblingMatrixAccumulator< c >, sofa::core::matrixaccumulator::NoIndexVerification >
virtual void add (const matrixaccumulator::no_check_policy &, sofa::SignedIndex row, sofa::SignedIndex col, const sofa::type::Mat< 2, 2, float > &value)
 
virtual void add (const matrixaccumulator::no_check_policy &, sofa::SignedIndex row, sofa::SignedIndex col, const sofa::type::Mat< 2, 2, double > &value)
 
void indexCheckedAdd (sofa::SignedIndex row, sofa::SignedIndex col, const T &value)
 

Additional Inherited Members

- Public Attributes inherited from sofa::core::MatrixAccumulatorIndexChecker< BaseAssemblingMatrixAccumulator< c >, sofa::core::matrixaccumulator::NoIndexVerification >
std::shared_ptr< matrixaccumulator::IndexVerificationStrategyindexVerificationStrategy
 
- Static Public Attributes inherited from sofa::component::linearsystem::AssemblingMatrixAccumulator< c, TStrategy >
static constexpr core::matrixaccumulator::Contribution contribution = c
 
- Static Public Member Functions inherited from sofa::component::linearsystem::AssemblingMatrixAccumulator< c, TStrategy >
static std::string GetCustomTemplateName ()
 

Attribute details

◆ m_mappedMatrix

template<sofa::core::matrixaccumulator::Contribution c, class TBlockType >
std::shared_ptr<LocalMappedMatrixType<TBlockType> > sofa::component::linearsystem::AssemblingMappedMatrixAccumulator< c, TBlockType >::m_mappedMatrix
protected

Constructor details

◆ AssemblingMappedMatrixAccumulator()

template<sofa::core::matrixaccumulator::Contribution c, class TBlockType >
sofa::component::linearsystem::AssemblingMappedMatrixAccumulator< c, TBlockType >::AssemblingMappedMatrixAccumulator
protected

Function details

◆ add() [1/4]

template<sofa::core::matrixaccumulator::Contribution c, class TBlockType >
void sofa::component::linearsystem::AssemblingMappedMatrixAccumulator< c, TBlockType >::add ( const core::matrixaccumulator::no_check_policy ,
sofa::SignedIndex  row,
sofa::SignedIndex  col,
const sofa::type::Mat< 3, 3, double > &  value 
)
overrideprotectedvirtual

◆ add() [2/4]

◆ add() [3/4]

◆ add() [4/4]

◆ clear()

template<sofa::core::matrixaccumulator::Contribution c, class TBlockType >
void sofa::component::linearsystem::AssemblingMappedMatrixAccumulator< c, TBlockType >::clear
override

◆ getMatrix()

template<sofa::core::matrixaccumulator::Contribution c, class TBlockType >
const std::shared_ptr< LocalMappedMatrixType< TBlockType > > & sofa::component::linearsystem::AssemblingMappedMatrixAccumulator< c, TBlockType >::getMatrix

◆ shareMatrix()

template<sofa::core::matrixaccumulator::Contribution c, class TBlockType >
void sofa::component::linearsystem::AssemblingMappedMatrixAccumulator< c, TBlockType >::shareMatrix ( const std::shared_ptr< LocalMappedMatrixType< TBlockType > > &  m)

◆ SOFA_CLASS()

template<sofa::core::matrixaccumulator::Contribution c, class TBlockType >
sofa::component::linearsystem::AssemblingMappedMatrixAccumulator< c, TBlockType >::SOFA_CLASS ( AssemblingMappedMatrixAccumulator< c, TBlockType >  ,
AssemblingMatrixAccumulator< c >   
)