SOFA API  1c8b807d
Open source framework for multi-physics simuation
sofa::component::linearsystem Namespace Reference

Classes

class  BaseMatrixProjectionMethod
 
class  CompositeLinearSystem
 
class  SparsityPatternLocalMatrix
 
class  SparsityPatternLocalMappedMatrix
 
class  ConstantSparsityPatternSystem
 
struct  CheckNoChangeInInsertionOrder
 Check that the incoming rows and columns are expected by the constant sparsity pattern. More...
 
class  ConstantSparsityProjectionMethod
 
struct  CreateMatrixDispatcher
 
struct  LinearSystemData
 
struct  MappedMassMatrixObserver
 
class  ComponentGroupsVisitor
 
class  MappingGraph
 
class  MappingJacobians
 
class  AssemblingMappedMatrixAccumulator
 
class  AssemblingMatrixAccumulator
 
class  BaseAssemblingMatrixAccumulator
 
class  ConstantLocalMappedMatrix
 
class  ConstantLocalMatrix
 
class  MatrixFreeSystem
 
struct  LocalMatrixMaps
 
class  MatrixLinearSystem
 
struct  GroupOfComponentsAssociatedToAPairOfMechanicalStates
 
class  MatrixProjectionMethod
 
class  TypedMatrixLinearSystem
 
class  AssembleGlobalVectorFromLocalVectorVisitor
 
class  DispatchFromGlobalVectorToLocalVectorVisitor
 

Typedefs

using StrategyCheckerType = sofa::core::matrixaccumulator::CompositeIndexVerificationStrategy< core::matrixaccumulator::RangeVerification, CheckNoChangeInInsertionOrder >
 
template<class TReal >
using LocalMappedMatrixType = sofa::linearalgebra::CompressedRowSparseMatrix< TReal >
 

Functions

void registerMatrixLinearSystemBTDMatrix (sofa::core::ObjectFactory *factory)
 
void registerTypedMatrixLinearSystemBTDMatrix (sofa::core::ObjectFactory *factory)
 
void registerMatrixFreeSystemGraphScattered (sofa::core::ObjectFactory *factory)
 
void registerCompositeLinearSystem (sofa::core::ObjectFactory *factory)
 
void registerConstantSparsityPatternSystem (sofa::core::ObjectFactory *factory)
 
void registerConstantSparsityProjectionMethod (sofa::core::ObjectFactory *factory)
 
void registerMatrixLinearSystem (sofa::core::ObjectFactory *factory)
 
void registerMatrixProjectionMethod (sofa::core::ObjectFactory *factory)
 
void init ()
 
SOFA_COMPONENT_LINEARSYSTEM_API void initExternalModule ()
 
SOFA_COMPONENT_LINEARSYSTEM_API const chargetModuleName ()
 
SOFA_COMPONENT_LINEARSYSTEM_API const chargetModuleVersion ()
 
SOFA_COMPONENT_LINEARSYSTEM_API const chargetModuleLicense ()
 
SOFA_COMPONENT_LINEARSYSTEM_API const chargetModuleDescription ()
 
SOFA_COMPONENT_LINEARSYSTEM_API void registerObjects (sofa::core::ObjectFactory *factory)
 
std::ostream & operator<< (std::ostream &os, const GroupOfComponentsAssociatedToAPairOfMechanicalStates &group)
 
sofa::type::vector< core::behavior::BaseMechanicalState * > retrieveAssociatedMechanicalState (const sofa::core::behavior::StateAccessor *component)
 
sofa::type::vector< core::behavior::BaseMechanicalState * > retrieveAssociatedMechanicalState (BaseMapping *component)
 
auto generatePairs (const sofa::type::vector< core::behavior::BaseMechanicalState * > &mstates) -> sofa::type::vector< sofa::type::fixed_array< core::behavior::BaseMechanicalState *, 2 > >
 Generate all possible pairs of Mechanical States from a list of Mechanical States. More...
 
template<core::matrixaccumulator::Contribution c>
void configureCreatedMatrixComponent (typename BaseAssemblingMatrixAccumulator< c >::SPtr mat, typename BaseAssemblingMatrixAccumulator< c >::ComponentType *object, const SReal factor, bool printLog)
 
template<class BlockType >
void computeProjection (const Eigen::Map< Eigen::SparseMatrix< BlockType, Eigen::RowMajor > > KMap, const sofa::type::fixed_array< std::shared_ptr< linearalgebra::CompressedRowSparseMatrix< BlockType >>, 2 > J, Eigen::SparseMatrix< BlockType, Eigen::RowMajor > &JT_K_J)
 
template<class BlockType >
void addToGlobalMatrix (linearalgebra::BaseMatrix *globalMatrix, Eigen::SparseMatrix< BlockType, Eigen::RowMajor > JT_K_J, const type::Vec2u positionInGlobalMatrix)
 

Variables

template struct SOFA_COMPONENT_LINEARSOLVER_ITERATIVE_API LinearSystemData< GraphScatteredMatrix, GraphScatteredVector >
 
template class SOFA_COMPONENT_LINEARSOLVER_ITERATIVE_API MatrixFreeSystem< GraphScatteredMatrix, GraphScatteredVector >
 
template class SOFA_COMPONENT_LINEARSOLVER_ITERATIVE_API TypedMatrixLinearSystem< GraphScatteredMatrix, GraphScatteredVector >
 
template class SOFA_COMPONENT_LINEARSYSTEM_API CompositeLinearSystem< FullMatrix< SReal >, FullVector< SReal > >
 
template class SOFA_COMPONENT_LINEARSYSTEM_API CompositeLinearSystem< SparseMatrix< SReal >, FullVector< SReal > >
 
template class SOFA_COMPONENT_LINEARSYSTEM_API CompositeLinearSystem< CompressedRowSparseMatrix< SReal >, FullVector< SReal > >
 
template class SOFA_COMPONENT_LINEARSYSTEM_API CompositeLinearSystem< DiagonalMatrix< SReal >, FullVector< SReal > >
 
template class SOFA_COMPONENT_LINEARSYSTEM_API CompositeLinearSystem< BlockDiagonalMatrix< 3, SReal >, FullVector< SReal > >
 
template class SOFA_COMPONENT_LINEARSYSTEM_API CompositeLinearSystem< RotationMatrix< SReal >, FullVector< SReal > >
 
template struct SOFA_COMPONENT_LINEARSYSTEM_API MappedMassMatrixObserver< SReal >
 
template class SOFA_COMPONENT_LINEARSYSTEM_API MatrixLinearSystem< FullMatrix< SReal >, FullVector< SReal > >
 
template class SOFA_COMPONENT_LINEARSYSTEM_API MatrixLinearSystem< SparseMatrix< SReal >, FullVector< SReal > >
 
template class SOFA_COMPONENT_LINEARSYSTEM_API MatrixLinearSystem< CompressedRowSparseMatrix< SReal >, FullVector< SReal > >
 
template class SOFA_COMPONENT_LINEARSYSTEM_API MatrixLinearSystem< DiagonalMatrix< SReal >, FullVector< SReal > >
 
template class SOFA_COMPONENT_LINEARSYSTEM_API MatrixLinearSystem< BlockDiagonalMatrix< 3, SReal >, FullVector< SReal > >
 
template class SOFA_COMPONENT_LINEARSYSTEM_API MatrixLinearSystem< RotationMatrix< SReal >, FullVector< SReal > >
 
template class SOFA_COMPONENT_LINEARSYSTEM_API TypedMatrixLinearSystem< FullMatrix< double >, FullVector< double > >
 
template class SOFA_COMPONENT_LINEARSYSTEM_API TypedMatrixLinearSystem< FullMatrix< float >, FullVector< float > >
 
template class SOFA_COMPONENT_LINEARSYSTEM_API TypedMatrixLinearSystem< SparseMatrix< double >, FullVector< double > >
 
template class SOFA_COMPONENT_LINEARSYSTEM_API TypedMatrixLinearSystem< SparseMatrix< float >, FullVector< float > >
 
template class SOFA_COMPONENT_LINEARSYSTEM_API TypedMatrixLinearSystem< CompressedRowSparseMatrix< double >, FullVector< double > >
 
template class SOFA_COMPONENT_LINEARSYSTEM_API TypedMatrixLinearSystem< CompressedRowSparseMatrix< float >, FullVector< float > >
 
template class SOFA_COMPONENT_LINEARSYSTEM_API TypedMatrixLinearSystem< DiagonalMatrix< double >, FullVector< double > >
 
template class SOFA_COMPONENT_LINEARSYSTEM_API TypedMatrixLinearSystem< DiagonalMatrix< float >, FullVector< float > >
 
template class SOFA_COMPONENT_LINEARSYSTEM_API TypedMatrixLinearSystem< BlockDiagonalMatrix< 3, double >, FullVector< double > >
 
template class SOFA_COMPONENT_LINEARSYSTEM_API TypedMatrixLinearSystem< BlockDiagonalMatrix< 3, float >, FullVector< float > >
 
template class SOFA_COMPONENT_LINEARSYSTEM_API TypedMatrixLinearSystem< RotationMatrix< double >, FullVector< double > >
 
template class SOFA_COMPONENT_LINEARSYSTEM_API TypedMatrixLinearSystem< RotationMatrix< float >, FullVector< float > >
 

Typedef Documentation

◆ LocalMappedMatrixType

◆ StrategyCheckerType

The strategy used to check the incoming rows and columns is a combination of: 1) checking if the indices are in the authorized submatrix (range) 2) checking if the indices comply with the initial sparsity pattern

Function Documentation

◆ addToGlobalMatrix()

template<class BlockType >
void sofa::component::linearsystem::addToGlobalMatrix ( linearalgebra::BaseMatrix globalMatrix,
Eigen::SparseMatrix< BlockType, Eigen::RowMajor >  JT_K_J,
const type::Vec2u  positionInGlobalMatrix 
)

◆ computeProjection()

template<class BlockType >
void sofa::component::linearsystem::computeProjection ( const Eigen::Map< Eigen::SparseMatrix< BlockType, Eigen::RowMajor > >  KMap,
const sofa::type::fixed_array< std::shared_ptr< linearalgebra::CompressedRowSparseMatrix< BlockType >>, 2 >  J,
Eigen::SparseMatrix< BlockType, Eigen::RowMajor > &  JT_K_J 
)

◆ configureCreatedMatrixComponent()

template<core::matrixaccumulator::Contribution c>
void sofa::component::linearsystem::configureCreatedMatrixComponent ( typename BaseAssemblingMatrixAccumulator< c >::SPtr  mat,
typename BaseAssemblingMatrixAccumulator< c >::ComponentType *  object,
const SReal  factor,
bool  printLog 
)

Generic function to configure a local matrix and associate it to a component

◆ generatePairs()

auto sofa::component::linearsystem::generatePairs ( const sofa::type::vector< core::behavior::BaseMechanicalState * > &  mstates) -> sofa::type::vector<sofa::type::fixed_array<core::behavior::BaseMechanicalState*, 2> >
inline

Generate all possible pairs of Mechanical States from a list of Mechanical States.

◆ getModuleDescription()

const char * sofa::component::linearsystem::getModuleDescription ( )

◆ getModuleLicense()

const char * sofa::component::linearsystem::getModuleLicense ( )

◆ getModuleName()

const char * sofa::component::linearsystem::getModuleName ( )

◆ getModuleVersion()

const char * sofa::component::linearsystem::getModuleVersion ( )

◆ init()

void SOFA_COMPONENT_LINEARSYSTEM_API sofa::component::linearsystem::init ( )

◆ initExternalModule()

void sofa::component::linearsystem::initExternalModule ( )

◆ operator<<()

std::ostream& sofa::component::linearsystem::operator<< ( std::ostream &  os,
const GroupOfComponentsAssociatedToAPairOfMechanicalStates group 
)
inline

◆ registerCompositeLinearSystem()

void sofa::component::linearsystem::registerCompositeLinearSystem ( sofa::core::ObjectFactory factory)

◆ registerConstantSparsityPatternSystem()

void sofa::component::linearsystem::registerConstantSparsityPatternSystem ( sofa::core::ObjectFactory factory)

◆ registerConstantSparsityProjectionMethod()

void sofa::component::linearsystem::registerConstantSparsityProjectionMethod ( sofa::core::ObjectFactory factory)

◆ registerMatrixFreeSystemGraphScattered()

void sofa::component::linearsystem::registerMatrixFreeSystemGraphScattered ( sofa::core::ObjectFactory factory)

◆ registerMatrixLinearSystem()

void sofa::component::linearsystem::registerMatrixLinearSystem ( sofa::core::ObjectFactory factory)

◆ registerMatrixLinearSystemBTDMatrix()

void sofa::component::linearsystem::registerMatrixLinearSystemBTDMatrix ( sofa::core::ObjectFactory factory)

◆ registerMatrixProjectionMethod()

void sofa::component::linearsystem::registerMatrixProjectionMethod ( sofa::core::ObjectFactory factory)

◆ registerObjects()

void sofa::component::linearsystem::registerObjects ( sofa::core::ObjectFactory factory)

◆ registerTypedMatrixLinearSystemBTDMatrix()

void sofa::component::linearsystem::registerTypedMatrixLinearSystemBTDMatrix ( sofa::core::ObjectFactory factory)

◆ retrieveAssociatedMechanicalState() [1/2]

sofa::type::vector<core::behavior::BaseMechanicalState*> sofa::component::linearsystem::retrieveAssociatedMechanicalState ( BaseMapping component)
inline

◆ retrieveAssociatedMechanicalState() [2/2]

sofa::type::vector<core::behavior::BaseMechanicalState*> sofa::component::linearsystem::retrieveAssociatedMechanicalState ( const sofa::core::behavior::StateAccessor component)
inline

Variable Documentation

◆ CompositeLinearSystem< BlockDiagonalMatrix< 3, SReal >, FullVector< SReal > >

template class SOFA_COMPONENT_LINEARSYSTEM_API sofa::component::linearsystem::CompositeLinearSystem< BlockDiagonalMatrix< 3, SReal >, FullVector< SReal > >

◆ CompositeLinearSystem< CompressedRowSparseMatrix< SReal >, FullVector< SReal > >

template class SOFA_COMPONENT_LINEARSYSTEM_API sofa::component::linearsystem::CompositeLinearSystem< CompressedRowSparseMatrix< SReal >, FullVector< SReal > >

◆ CompositeLinearSystem< DiagonalMatrix< SReal >, FullVector< SReal > >

template class SOFA_COMPONENT_LINEARSYSTEM_API sofa::component::linearsystem::CompositeLinearSystem< DiagonalMatrix< SReal >, FullVector< SReal > >

◆ CompositeLinearSystem< FullMatrix< SReal >, FullVector< SReal > >

template class SOFA_COMPONENT_LINEARSYSTEM_API sofa::component::linearsystem::CompositeLinearSystem< FullMatrix< SReal >, FullVector< SReal > >

◆ CompositeLinearSystem< RotationMatrix< SReal >, FullVector< SReal > >

template class SOFA_COMPONENT_LINEARSYSTEM_API sofa::component::linearsystem::CompositeLinearSystem< RotationMatrix< SReal >, FullVector< SReal > >

◆ CompositeLinearSystem< SparseMatrix< SReal >, FullVector< SReal > >

template class SOFA_COMPONENT_LINEARSYSTEM_API sofa::component::linearsystem::CompositeLinearSystem< SparseMatrix< SReal >, FullVector< SReal > >

◆ LinearSystemData< GraphScatteredMatrix, GraphScatteredVector >

template struct SOFA_COMPONENT_LINEARSOLVER_ITERATIVE_API sofa::component::linearsystem::LinearSystemData< GraphScatteredMatrix, GraphScatteredVector >

◆ MappedMassMatrixObserver< SReal >

template struct SOFA_COMPONENT_LINEARSYSTEM_API sofa::component::linearsystem::MappedMassMatrixObserver< SReal >

◆ MatrixFreeSystem< GraphScatteredMatrix, GraphScatteredVector >

template class SOFA_COMPONENT_LINEARSOLVER_ITERATIVE_API sofa::component::linearsystem::MatrixFreeSystem< GraphScatteredMatrix, GraphScatteredVector >
extern

◆ MatrixLinearSystem< BlockDiagonalMatrix< 3, SReal >, FullVector< SReal > >

template class SOFA_COMPONENT_LINEARSYSTEM_API sofa::component::linearsystem::MatrixLinearSystem< BlockDiagonalMatrix< 3, SReal >, FullVector< SReal > >

◆ MatrixLinearSystem< CompressedRowSparseMatrix< SReal >, FullVector< SReal > >

template class SOFA_COMPONENT_LINEARSYSTEM_API sofa::component::linearsystem::MatrixLinearSystem< CompressedRowSparseMatrix< SReal >, FullVector< SReal > >

◆ MatrixLinearSystem< DiagonalMatrix< SReal >, FullVector< SReal > >

template class SOFA_COMPONENT_LINEARSYSTEM_API sofa::component::linearsystem::MatrixLinearSystem< DiagonalMatrix< SReal >, FullVector< SReal > >

◆ MatrixLinearSystem< FullMatrix< SReal >, FullVector< SReal > >

template class SOFA_COMPONENT_LINEARSYSTEM_API sofa::component::linearsystem::MatrixLinearSystem< FullMatrix< SReal >, FullVector< SReal > >

◆ MatrixLinearSystem< RotationMatrix< SReal >, FullVector< SReal > >

template class SOFA_COMPONENT_LINEARSYSTEM_API sofa::component::linearsystem::MatrixLinearSystem< RotationMatrix< SReal >, FullVector< SReal > >

◆ MatrixLinearSystem< SparseMatrix< SReal >, FullVector< SReal > >

template class SOFA_COMPONENT_LINEARSYSTEM_API sofa::component::linearsystem::MatrixLinearSystem< SparseMatrix< SReal >, FullVector< SReal > >

◆ TypedMatrixLinearSystem< BlockDiagonalMatrix< 3, double >, FullVector< double > >

template class SOFA_COMPONENT_LINEARSYSTEM_API sofa::component::linearsystem::TypedMatrixLinearSystem< BlockDiagonalMatrix< 3, double >, FullVector< double > >

◆ TypedMatrixLinearSystem< BlockDiagonalMatrix< 3, float >, FullVector< float > >

template class SOFA_COMPONENT_LINEARSYSTEM_API sofa::component::linearsystem::TypedMatrixLinearSystem< BlockDiagonalMatrix< 3, float >, FullVector< float > >

◆ TypedMatrixLinearSystem< CompressedRowSparseMatrix< double >, FullVector< double > >

template class SOFA_COMPONENT_LINEARSYSTEM_API sofa::component::linearsystem::TypedMatrixLinearSystem< CompressedRowSparseMatrix< double >, FullVector< double > >

◆ TypedMatrixLinearSystem< CompressedRowSparseMatrix< float >, FullVector< float > >

◆ TypedMatrixLinearSystem< DiagonalMatrix< double >, FullVector< double > >

template class SOFA_COMPONENT_LINEARSYSTEM_API sofa::component::linearsystem::TypedMatrixLinearSystem< DiagonalMatrix< double >, FullVector< double > >

◆ TypedMatrixLinearSystem< DiagonalMatrix< float >, FullVector< float > >

template class SOFA_COMPONENT_LINEARSYSTEM_API sofa::component::linearsystem::TypedMatrixLinearSystem< DiagonalMatrix< float >, FullVector< float > >

◆ TypedMatrixLinearSystem< FullMatrix< double >, FullVector< double > >

template class SOFA_COMPONENT_LINEARSYSTEM_API sofa::component::linearsystem::TypedMatrixLinearSystem< FullMatrix< double >, FullVector< double > >

◆ TypedMatrixLinearSystem< FullMatrix< float >, FullVector< float > >

template class SOFA_COMPONENT_LINEARSYSTEM_API sofa::component::linearsystem::TypedMatrixLinearSystem< FullMatrix< float >, FullVector< float > >

◆ TypedMatrixLinearSystem< GraphScatteredMatrix, GraphScatteredVector >

template class SOFA_COMPONENT_LINEARSOLVER_ITERATIVE_API sofa::component::linearsystem::TypedMatrixLinearSystem< GraphScatteredMatrix, GraphScatteredVector >

◆ TypedMatrixLinearSystem< RotationMatrix< double >, FullVector< double > >

template class SOFA_COMPONENT_LINEARSYSTEM_API sofa::component::linearsystem::TypedMatrixLinearSystem< RotationMatrix< double >, FullVector< double > >

◆ TypedMatrixLinearSystem< RotationMatrix< float >, FullVector< float > >

template class SOFA_COMPONENT_LINEARSYSTEM_API sofa::component::linearsystem::TypedMatrixLinearSystem< RotationMatrix< float >, FullVector< float > >

◆ TypedMatrixLinearSystem< SparseMatrix< double >, FullVector< double > >

template class SOFA_COMPONENT_LINEARSYSTEM_API sofa::component::linearsystem::TypedMatrixLinearSystem< SparseMatrix< double >, FullVector< double > >

◆ TypedMatrixLinearSystem< SparseMatrix< float >, FullVector< float > >

template class SOFA_COMPONENT_LINEARSYSTEM_API sofa::component::linearsystem::TypedMatrixLinearSystem< SparseMatrix< float >, FullVector< float > >