chrono::ChIterativeSolverMulticoreSMC Class Reference

## Description

Iterative solver for SMC (penalty-based) problems.

`#include <ChIterativeSolverMulticore.h>`

Inheritance diagram for chrono::ChIterativeSolverMulticoreSMC:

Collaboration diagram for chrono::ChIterativeSolverMulticoreSMC:

## Public Member Functions | |

ChIterativeSolverMulticoreSMC (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. | |

void | ProcessContacts () |

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... | |

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 ot 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/ChIterativeSolverMulticoreSMC.cpp