chrono::ChIterativeSolverMulticoreNSC Class Reference
  Description
Wrapper class for all complementarity solvers.
#include <ChIterativeSolverMulticore.h>
Inheritance diagram for chrono::ChIterativeSolverMulticoreNSC:

Collaboration diagram for chrono::ChIterativeSolverMulticoreNSC:

| Public Member Functions | |
| ChIterativeSolverMulticoreNSC (ChMulticoreDataManager *dc) | |
| virtual void | RunTimeStep () | 
| Similarly, the run timestep function needs to be defined. | |
| virtual void | ComputeImpulses () | 
| This function computes the new velocities based on the lagrange multipliers. | |
| void | ComputeD () | 
| Compute the constraint Jacobian matrix. | |
| void | ComputeE () | 
| Compute the compliance matrix. | |
| void | ComputeR () | 
| Compute the RHS vector. This will not change depending on the solve. | |
| void | ComputeN () | 
| Compute the Schur matrix N. | |
| void | SetR () | 
| Set the RHS vector depending on the local solver mode. | |
| void | PreSolve () | 
| This function computes an initial guess for each contact. | |
| void | ChangeSolverType (SolverType type) | 
| This function is used to change the solver algorithm. | |
|  Public Member Functions inherited from chrono::ChIterativeSolverMulticore | |
| virtual double | Solve (ChSystemDescriptor &sysd) override | 
| Each child class must define its own solve method. | |
| void | ComputeInvMassMatrix () | 
| Compute the inverse mass matrix and the term v+M_inv*hf. | |
| void | ComputeMassMatrix () | 
| Compute mass matrix. | |
| void | PerformStabilization () | 
| Solves just the bilaterals so that they can be warm started. | |
| real | GetResidual () const | 
| virtual double | GetError () const override | 
| Return the tolerance error reached during the last solve. | |
|  Public Member Functions inherited from chrono::ChIterativeSolverVI | |
| void | SetOmega (double mval) | 
| Set the overrelaxation factor (default: 1.0).  More... | |
| void | SetSharpnessLambda (double mval) | 
| Set the sharpness factor (default: 1.0).  More... | |
| virtual void | SetMaxIterations (int max_iterations) override | 
| Set the maximum number of iterations. | |
| void | SetRecordViolation (bool mval) | 
| Enable/disable recording of the constraint violation history.  More... | |
| double | GetOmega () const | 
| Return the current value of the overrelaxation factor. | |
| double | GetSharpnessLambda () const | 
| Return the current value of the sharpness factor. | |
| virtual int | GetIterations () const override | 
| Return the number of iterations performed during the last solve. | |
| const std::vector< double > & | GetViolationHistory () const | 
| Access the vector of constraint violation history.  More... | |
| const std::vector< double > & | GetDeltalambdaHistory () const | 
| Access the vector with history of maximum change in Lagrange multipliers Note that collection of constraint violations must be enabled through SetRecordViolation. | |
| 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::ChIterativeSolver | |
| void | SetTolerance (double tolerance) | 
| Set the tolerance threshold used by the stopping criteria. | |
| void | EnableDiagonalPreconditioner (bool val) | 
| Enable/disable use of a simple diagonal preconditioner (default: true).  More... | |
| void | EnableWarmStart (bool val) | 
| Enable/disable warm starting by providing an initial guess (default: false).  More... | |
| int | GetMaxIterations () const | 
| Get the current maximum number of iterations. | |
| double | GetTolerance () const | 
| Get the current tolerance value. | |
|  Public Member Functions inherited from chrono::ChSolver | |
| virtual Type | GetType () const | 
| Return type of the solver. | |
| virtual ChDirectSolverLS * | AsDirect () | 
| Downcast to ChDirectSolver. | |
| virtual bool | Setup (ChSystemDescriptor &sysd) | 
| This function does the setup operations for the solver.  More... | |
| 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::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. | |
|  Public Attributes inherited from chrono::ChIterativeSolverMulticore | |
| ChMulticoreDataManager * | data_manager | 
| ChSolverMulticore * | solver | 
| ChSolverMulticore * | bilateral_solver | 
|  Protected Member Functions inherited from chrono::ChIterativeSolverMulticore | |
| ChIterativeSolverMulticore (ChMulticoreDataManager *dc) | |
|  Protected Member Functions inherited from chrono::ChIterativeSolverVI | |
| virtual bool | IsIterative () const override | 
| Return true if iterative solver. | |
| virtual bool | IsDirect () const override | 
| Return true if direct solver. | |
| virtual ChIterativeSolver * | AsIterative () override | 
| Downcast to ChIterativeSolver. | |
| void | AtIterationEnd (double mmaxviolation, double mdeltalambda, unsigned int iternum) | 
| This method MUST be called by all iterative methods INSIDE their iteration loops (at the end).  More... | |
| virtual bool | SolveRequiresMatrix () const override | 
| Indicate whether or not the Solve() phase requires an up-to-date problem matrix.  More... | |
|  Protected Member Functions inherited from chrono::ChIterativeSolver | |
| ChIterativeSolver (int max_iterations, double tolerance, bool use_precond, bool warm_start) | |
| void | WriteMatrices (ChSystemDescriptor &sysd, bool one_indexed=true) | 
| double | CheckSolution (ChSystemDescriptor &sysd, const ChVectorDynamic<> &x) | 
|  Protected Attributes inherited from chrono::ChIterativeSolverMulticore | |
| ChSchurProductBilateral | SchurProductBilateral | 
| ChProjectNone | ProjectNone | 
|  Protected Attributes inherited from chrono::ChIterativeSolverVI | |
| int | m_iterations | 
| number of iterations performed by the solver during last call to Solve() | |
| double | m_omega | 
| over-relaxation factor | |
| double | m_shlambda | 
| sharpness factor | |
| bool | record_violation_history | 
| std::vector< double > | violation_history | 
| std::vector< double > | dlambda_history | 
|  Protected Attributes inherited from chrono::ChIterativeSolver | |
| bool | m_use_precond | 
| use diagonal preconditioning? | |
| bool | m_warm_start | 
| use initial guesss? | |
| int | m_max_iterations | 
| maximum number of iterations | |
| double | m_tolerance | 
| tolerance threshold in stopping criteria | |
|  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_multicore/solver/ChIterativeSolverMulticore.h
- /builds/uwsbel/chrono/src/chrono_multicore/solver/ChIterativeSolverMulticoreNSC.cpp
