chrono::ChIterativeSolverParallelSMC Class Reference

## Description

Iterative solver for SMC (penalty-based) problems.

`#include <ChIterativeSolverParallel.h>`

Inheritance diagram for chrono::ChIterativeSolverParallelSMC:

Collaboration diagram for chrono::ChIterativeSolverParallelSMC:

## Public Member Functions | |

ChIterativeSolverParallelSMC (ChParallelDataManager *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::ChIterativeSolverParallel | |

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

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

Public Member Functions inherited from chrono::ChIterativeSolver | |

void | SetMaxIterations (int max_iterations) |

Set the maximum number of iterations. | |

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 bool | Setup (ChSystemDescriptor &sysd) |

This function does the setup operations for the solver. More... | |

void | SetVerbose (bool mv) |

Set verbose output from solver. | |

## Additional Inherited Members | |

Public Types inherited from chrono::ChSolver | |

enum | Type { Type::PSOR = 0, Type::PSSOR, Type::PJACOBI, Type::PMINRES, Type::BARZILAIBORWEIN, Type::APGD, Type::SPARSE_LU, Type::SPARSE_QR, Type::PARDISO, Type::MUMPS, Type::GMRES, Type::MINRES, Type::BICGSTAB, CUSTOM
} |

Available types of solvers. More... | |

Public Attributes inherited from chrono::ChIterativeSolverParallel | |

ChParallelDataManager * | data_manager |

ChSolverParallel * | solver |

ChSolverParallel * | bilateral_solver |

Protected Member Functions inherited from chrono::ChIterativeSolverParallel | |

ChIterativeSolverParallel (ChParallelDataManager *dc) | |

Protected Member Functions inherited from chrono::ChIterativeSolverVI | |

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 void | ArchiveOUT (ChArchiveOut &marchive) override |

Method to allow serialization of transient data to archives. | |

virtual void | ArchiveIN (ChArchiveIn &marchive) override |

Method to allow de-serialization of transient data from archives. | |

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 | SaveMatrix (ChSystemDescriptor &sysd) |

double | CheckSolution (ChSystemDescriptor &sysd, const ChVectorDynamic<> &x) |

Protected Attributes inherited from chrono::ChIterativeSolverParallel | |

ChShurProductBilateral | ShurProductBilateral |

ChShurProductFEM | ShurProductFEM |

ChProjectNone | ProjectNone |

Protected Attributes inherited from chrono::ChIterativeSolverVI | |

int | m_iterations |

total number of iterations performed by the solver | |

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 |

The documentation for this class was generated from the following files:

- /builds/uwsbel/chrono/src/chrono_parallel/solver/ChIterativeSolverParallel.h
- /builds/uwsbel/chrono/src/chrono_parallel/solver/ChIterativeSolverParallelSMC.cpp