Description
Sparse QR direct solver.
Interface to Eigen's SparseQR solver, a left-looking rank-revealing QR factorization.
Cannot handle VI and complementarity problems, so it cannot be used with NSC formulations.
See ChDirectSolverLS for more details. 
#include <ChDirectSolverLS.h>
Inheritance diagram for chrono::ChSolverSparseQR:

Collaboration diagram for chrono::ChSolverSparseQR:

| Public Member Functions | |
| virtual Type | GetType () const override | 
| Return type of the solver. | |
|  Public Member Functions inherited from chrono::ChDirectSolverLS | |
| void | LockSparsityPattern (bool val) | 
| Enable/disable locking the sparsity pattern (default: false).  More... | |
| void | UseSparsityPatternLearner (bool val) | 
| Enable/disable use of the sparsity pattern learner (default: enabled).  More... | |
| void | ForceSparsityPatternUpdate () | 
| Force a call to the sparsity pattern learner to update sparsity pattern on the underlying matrix.  More... | |
| void | SetSparsityEstimate (double sparsity) | 
| Set estimate for matrix sparsity, a value in [0,1], with 0 indicating a fully dense matrix (default: 0.9).  More... | |
| virtual void | SetMatrixSymmetryType (MatrixSymmetryType symmetry) | 
| Set the matrix symmetry type (default: GENERAL). | |
| void | UsePermutationVector (bool val) | 
| Enable/disable use of permutation vector (default: false).  More... | |
| void | LeverageRhsSparsity (bool val) | 
| Enable/disable leveraging sparsity in right-hand side vector (default: false).  More... | |
| virtual void | EnableNullPivotDetection (bool val, double threshold=0) | 
| Enable detection of null pivots.  More... | |
| void | ResetTimers () | 
| Reset timers for internal phases in Solve and Setup. | |
| double | GetTimeSolve_Assembly () const | 
| Get cumulative time for assembly operations in Solve phase. | |
| double | GetTimeSolve_SolverCall () const | 
| Get cumulative time for Pardiso calls in Solve phase. | |
| double | GetTimeSetup_Assembly () const | 
| Get cumulative time for assembly operations in Setup phase. | |
| double | GetTimeSetup_SolverCall () const | 
| Get cumulative time for Pardiso calls in Setup phase. | |
| unsigned int | GetNumSetupCalls () const | 
| Return the number of calls to the solver's Setup function. | |
| unsigned int | GetNumSolveCalls () const | 
| Return the number of calls to the solver's Setup function. | |
| ChSparseMatrix & | GetMatrix () | 
| Get a handle to the underlying matrix. | |
| ChSparseMatrix & | A () | 
| Get shortcut handle to underlying A matrix, for A*x=b. | |
| ChVectorDynamic< double > & | x () | 
| Get shortcut handle to underlying x solution vector, for A*x=b. | |
| ChVectorDynamic< double > & | b () | 
| Get shortcut handle to underlying b right hand-side known vector, for A*x=b. | |
| virtual bool | Setup (ChSystemDescriptor &sysd) override | 
| Perform the solver setup operations.  More... | |
| virtual double | Solve (ChSystemDescriptor &sysd) override | 
| Solve linear system.  More... | |
| virtual bool | SetupCurrent () | 
| Generic setup-solve without passing through the ChSystemDescriptor, in cases where a sparse matrix has been already assembled.  More... | |
| virtual double | SolveCurrent () | 
| Generic setup-solve without passing through the ChSystemDescriptor, in cases where the a sparse matrix has been already assembled.  More... | |
| virtual void | ArchiveOut (ChArchiveOut &archive_out) override | 
| Method to allow serialization of transient data to archives. | |
| virtual void | ArchiveIn (ChArchiveIn &archive_in) override | 
| Method to allow de serialization of transient data from archives. | |
|  Public Member Functions inherited from chrono::ChSolver | |
| virtual ChIterativeSolver * | AsIterative () | 
| Downcast to ChIterativeSolver. | |
| void | SetVerbose (bool mv) | 
| Set verbose output from solver. | |
| void | EnableWrite (bool val, const std::string &frame, const std::string &out_dir=".") | 
| Enable/disable debug output of matrix, RHS, and solution vector. | |
| Additional Inherited Members | |
|  Public Types inherited from chrono::ChDirectSolverLS | |
| enum | MatrixSymmetryType { MatrixSymmetryType::GENERAL, MatrixSymmetryType::SYMMETRIC_POSDEF, MatrixSymmetryType::SYMMETRIC_INDEF, MatrixSymmetryType::STRUCTURAL_SYMMETRIC } | 
|  Public Types inherited from chrono::ChSolver | |
| enum | Type { Type::PSOR, Type::PSSOR, Type::PJACOBI, Type::PMINRES, Type::BARZILAIBORWEIN, Type::APGD, Type::ADMM, Type::SPARSE_LU, Type::SPARSE_QR, Type::PARDISO_MKL, Type::MUMPS, Type::GMRES, Type::MINRES, Type::BICGSTAB, CUSTOM } | 
| Available types of solvers.  More... | |
|  Static Public Member Functions inherited from chrono::ChSolver | |
| static std::string | GetTypeAsString (Type type) | 
| Return the solver type as a string. | |
|  Protected Member Functions inherited from chrono::ChDirectSolverLS | |
| virtual bool | IsIterative () const override | 
| Return true if iterative solver. | |
| virtual bool | IsDirect () const override | 
| Return true if direct solver. | |
| virtual ChDirectSolverLS * | AsDirect () override | 
| Downcast to ChDirectSolver. | |
| virtual bool | SolveRequiresMatrix () const override | 
| Indicate whether or not the Solve() phase requires an up-to-date problem matrix.  More... | |
|  Protected Attributes inherited from chrono::ChDirectSolverLS | |
| ChSparseMatrix | m_mat | 
| problem matrix | |
| int | m_dim | 
| problem size | |
| MatrixSymmetryType | m_symmetry | 
| symmetry of problem matrix | |
| double | m_sparsity | 
| user-supplied estimate of matrix sparsity | |
| ChVectorDynamic< double > | m_rhs | 
| right-hand side vector | |
| ChVectorDynamic< double > | m_sol | 
| solution vector | |
| unsigned int | m_solve_call | 
| counter for calls to Solve | |
| unsigned int | m_setup_call | 
| counter for calls to Setup | |
| bool | m_lock | 
| is the matrix sparsity pattern locked? | |
| bool | m_use_learner | 
| use the sparsity pattern learner? | |
| bool | m_force_update | 
| force a call to the sparsity pattern learner? | |
| bool | m_use_perm | 
| use of the permutation vector? | |
| bool | m_use_rhs_sparsity | 
| leverage right-hand side sparsity? | |
| bool | m_null_pivot_detection | 
| enable detection of zero pivots? | |
| ChTimer | m_timer_setup_assembly | 
| timer for matrix assembly | |
| ChTimer | m_timer_setup_solvercall | 
| timer for factorization | |
| ChTimer | m_timer_solve_assembly | 
| timer for RHS assembly | |
| ChTimer | m_timer_solve_solvercall | 
| timer for solution | |
|  Protected Attributes inherited from chrono::ChSolver | |
| bool | verbose | 
| bool | write_matrix | 
| std::string | output_dir | 
| std::string | frame_id | 
The documentation for this class was generated from the following files:
- /builds/uwsbel/chrono/src/chrono/solver/ChDirectSolverLS.h
- /builds/uwsbel/chrono/src/chrono/solver/ChDirectSolverLS.cpp
