SOFA plugin: MultiThreading  master
Open source framework for multi-physics simuation
multithreading::component::linearsolver::iterative::ParallelCGLinearSolver< TMatrix, TVector > Class Template Reference

#include <ParallelCGLinearSolver.h>

Inheritance diagram for multithreading::component::linearsolver::iterative::ParallelCGLinearSolver< TMatrix, TVector >:

Public Member Functions

 SOFA_CLASS2 (SOFA_TEMPLATE2(ParallelCGLinearSolver, TMatrix, TVector), SOFA_TEMPLATE2(sofa::component::linearsolver::iterative::CGLinearSolver, TMatrix, TVector), TaskSchedulerUser)
 
void init () override
 
void solve (Matrix &A, Vector &x, Vector &b) override
 
- Public Member Functions inherited from sofa::component::linearsolver::iterative::CGLinearSolver< TMatrix, TVector >
 SOFA_CLASS (SOFA_TEMPLATE2(CGLinearSolver, TMatrix, TVector), SOFA_TEMPLATE2(sofa::component::linearsolver::MatrixLinearSolver, TMatrix, TVector))
 
void init () override
 
void reinit () override
 
void resetSystem () override
 
void setSystemMBKMatrix (const sofa::core::MechanicalParams *mparams) override
 
void solve (Matrix &A, Vector &x, Vector &b) override
 
- Public Member Functions inherited from MatrixLinearSolver< TMatrix, TVector >
void resetSystem ()
 
SOFA_COMPONENT_LINEARSOLVER_ITERATIVE_API void resetSystem ()
 
void resizeSystem (Size n)
 
SOFA_COMPONENT_LINEARSOLVER_ITERATIVE_API void resizeSystem (Size)
 
void setSystemMBKMatrix (const core::MechanicalParams *mparams)
 
SOFA_COMPONENT_LINEARSOLVER_ITERATIVE_API void setSystemMBKMatrix (const core::MechanicalParams *mparams)
 
void rebuildSystem (SReal, SReal)
 
SOFA_COMPONENT_LINEARSOLVER_ITERATIVE_API void rebuildSystem (SReal massFactor, SReal forceFactor)
 
void setSystemLHVector (core::MultiVecDerivId v)
 
SOFA_COMPONENT_LINEARSOLVER_ITERATIVE_API void setSystemLHVector (core::MultiVecDerivId v)
 
void applySystemSolution ()
 
SOFA_COMPONENT_LINEARSOLVER_ITERATIVE_API void applySystemSolution ()
 
void applyConstraintForce (const sofa::core::ConstraintParams *, sofa::core::MultiVecDerivId, const linearalgebra::BaseVector *)
 
SOFA_COMPONENT_LINEARSOLVER_ITERATIVE_API void applyConstraintForce (const sofa::core::ConstraintParams *, sofa::core::MultiVecDerivId, const linearalgebra::BaseVector *)
 
void computeResidual (const core::ExecParams *, linearalgebra::BaseVector *)
 
SOFA_COMPONENT_LINEARSOLVER_ITERATIVE_API void computeResidual (const core::ExecParams *params, linearalgebra::BaseVector *f)
 
GraphScatteredVector * createPersistentVector ()
 
SOFA_COMPONENT_LINEARSOLVER_ITERATIVE_API GraphScatteredVector * createPersistentVector ()
 
linearalgebra::BaseMatrix * getSystemBaseMatrix ()
 
SOFA_COMPONENT_LINEARSOLVER_ITERATIVE_API linearalgebra::BaseMatrix * getSystemBaseMatrix ()
 
linearalgebra::BaseVector * getSystemRHBaseVector ()
 
SOFA_COMPONENT_LINEARSOLVER_ITERATIVE_API linearalgebra::BaseVector * getSystemRHBaseVector ()
 
linearalgebra::BaseVector * getSystemLHBaseVector ()
 
SOFA_COMPONENT_LINEARSOLVER_ITERATIVE_API linearalgebra::BaseVector * getSystemLHBaseVector ()
 
void checkLinearSystem ()
 
SOFA_COMPONENT_LINEARSOLVER_ITERATIVE_API void checkLinearSystem ()
 
bool addJMInvJtLocal (GraphScatteredMatrix *M, MatrixLinearSolver< GraphScatteredMatrix, GraphScatteredVector, NoThreadManager >::ResMatrixType *result, const MatrixLinearSolver< GraphScatteredMatrix, GraphScatteredVector, NoThreadManager >::JMatrixType *J, const SReal fact)
 

Additional Inherited Members

- Public Attributes inherited from sofa::component::linearsolver::iterative::CGLinearSolver< TMatrix, TVector >
Data< unsigned > d_maxIter
 
Data< Real > d_tolerance
 
Data< Real > d_smallDenominatorThreshold
 
Data< bool > d_warmStart
 
Data< std::map< std::string, sofa::type::vector< Real > > > d_graph
 
- Public Attributes inherited from multithreading::TaskSchedulerUser
sofa::Data< int > d_nbThreads
 
sofa::Data< std::string > d_taskSchedulerType
 Type of task scheduler to use. More...
 
- Protected Attributes inherited from sofa::component::linearsolver::iterative::CGLinearSolver< TMatrix, TVector >
int timeStepCount
 
bool equilibriumReached
 
- Protected Attributes inherited from multithreading::TaskSchedulerUser
sofa::simulation::TaskSchedulerm_taskScheduler { nullptr }
 
- Protected Member Functions inherited from sofa::component::linearsolver::iterative::CGLinearSolver< TMatrix, TVector >
 CGLinearSolver ()
 
void cgstep_beta (const core::ExecParams *params, Vector &p, Vector &r, Real beta)
 
SOFA_COMPONENT_LINEARSOLVER_ITERATIVE_API void cgstep_beta (const core::ExecParams *, Vector &p, Vector &r, Real beta)
 
void cgstep_beta (const core::ExecParams *, Vector &p, Vector &r, Real beta)
 
void cgstep_alpha (const core::ExecParams *params, Vector &x, Vector &r, Vector &p, Vector &q, Real alpha)
 
SOFA_COMPONENT_LINEARSOLVER_ITERATIVE_API void cgstep_alpha (const core::ExecParams *params, Vector &x, Vector &r, Vector &p, Vector &q, Real alpha)
 
void cgstep_alpha (const core::ExecParams *params, Vector &x, Vector &r, Vector &p, Vector &q, Real alpha)
 
- Protected Member Functions inherited from multithreading::TaskSchedulerUser
 TaskSchedulerUser ()
 
void initTaskScheduler ()
 
void reinitTaskScheduler ()
 
void stopTaskSchduler ()
 

Function details

◆ init()

template<class TMatrix , class TVector >
void multithreading::component::linearsolver::iterative::ParallelCGLinearSolver< TMatrix, TVector >::init
override

◆ SOFA_CLASS2()

template<class TMatrix , class TVector >
multithreading::component::linearsolver::iterative::ParallelCGLinearSolver< TMatrix, TVector >::SOFA_CLASS2 ( SOFA_TEMPLATE2(ParallelCGLinearSolver< TMatrix, TVector >, TMatrix, TVector)  ,
SOFA_TEMPLATE2(sofa::component::linearsolver::iterative::CGLinearSolver, TMatrix, TVector)  ,
TaskSchedulerUser   
)

◆ solve()

template<class TMatrix , class TVector >
void multithreading::component::linearsolver::iterative::ParallelCGLinearSolver< TMatrix, TVector >::solve ( Matrix A,
Vector x,
Vector b 
)
override