chrono::ChSystemDescriptorMulticore Class Reference

## Description

System descriptor for Chrono::Multicore.

`#include <ChSystemDescriptorMulticore.h>`

Inheritance diagram for chrono::ChSystemDescriptorMulticore:

Collaboration diagram for chrono::ChSystemDescriptorMulticore:

## Public Member Functions | |

ChSystemDescriptorMulticore (ChMulticoreDataManager *dc) | |

Public Member Functions inherited from chrono::ChSystemDescriptor | |

std::vector< ChConstraint * > & | GetConstraints () |

Access the vector of constraints. | |

std::vector< ChVariables * > & | GetVariables () |

Access the vector of variables. | |

std::vector< ChKRMBlock * > & | GetKRMBlocks () |

Access the vector of KRM matrix blocks. | |

virtual void | BeginInsertion () |

Begin insertion of items. | |

virtual void | InsertConstraint (ChConstraint *mc) |

Insert reference to a ChConstraint object. | |

virtual void | InsertVariables (ChVariables *mv) |

Insert reference to a ChVariables object. | |

virtual void | InsertKRMBlock (ChKRMBlock *mk) |

Insert reference to a ChKRMBlock object (a piece of matrix). | |

virtual void | EndInsertion () |

End insertion of items. More... | |

virtual unsigned int | CountActiveVariables () const |

Count & returns the scalar variables in the system. More... | |

virtual unsigned int | CountActiveConstraints () const |

Count & returns the scalar constraints in the system This excludes ChConstraint object that are set as inactive. More... | |

virtual void | UpdateCountsAndOffsets () |

Update counts of scalar variables and scalar constraints. | |

virtual void | SetMassFactor (const double mc_a) |

Set the c_a coefficient (default=1) used for scaling the M masses of the m_variables. More... | |

virtual double | GetMassFactor () |

Get the c_a coefficient (default=1) used for scaling the M masses of the m_variables. | |

virtual unsigned int | BuildFbVector (ChVectorDynamic<> &Fvector, unsigned int start_row=0) const |

Get a vector with all the 'fb' known terms associated to all variables, ordered into a column vector. More... | |

virtual unsigned int | BuildBiVector (ChVectorDynamic<> &Bvector, unsigned int start_row=0) const |

Get a vector with all the 'bi' known terms ('constraint residuals') associated to all constraints, ordered into a column vector. More... | |

virtual unsigned int | BuildDiVector (ChVectorDynamic<> &Dvector) const |

Get the d vector = {f; -b} with all the 'fb' and 'bi' known terms, as in Z*y-d (it is the concatenation of BuildFbVector and BuildBiVector) The column vector must be passed as a ChMatrix<> object, which will be automatically reset and resized to the proper length if necessary. More... | |

virtual unsigned int | BuildDiagonalVector (ChVectorDynamic<> &Diagonal_vect) const |

Get the D diagonal of the Z system matrix, as a single column vector (it includes all the diagonal masses of M, and all the diagonal E (-cfm) terms). More... | |

virtual unsigned int | FromVariablesToVector (ChVectorDynamic<> &mvector, bool resize_vector=true) const |

Using this function, one may get a vector with all the variables 'q' ordered into a column vector. More... | |

virtual unsigned int | FromVectorToVariables (const ChVectorDynamic<> &mvector) |

Using this function, one may go in the opposite direction of the FromVariablesToVector() function, i.e. More... | |

virtual unsigned int | FromConstraintsToVector (ChVectorDynamic<> &mvector, bool resize_vector=true) const |

Using this function, one may get a vector with all the constraint reactions 'l_i' ordered into a column vector. More... | |

virtual unsigned int | FromVectorToConstraints (const ChVectorDynamic<> &mvector) |

Using this function, one may go in the opposite direction of the FromConstraintsToVector() function, i.e. More... | |

virtual unsigned int | FromUnknownsToVector (ChVectorDynamic<> &mvector, bool resize_vector=true) const |

Using this function, one may get a vector with all the unknowns x={q,l} i.e. More... | |

virtual unsigned int | FromVectorToUnknowns (const ChVectorDynamic<> &mvector) |

Using this function, one may go in the opposite direction of the FromUnknownsToVector() function, i.e. More... | |

virtual void | SchurComplementProduct (ChVectorDynamic<> &result, const ChVectorDynamic<> &lvector, std::vector< bool > *enabled=nullptr) |

Performs the product of N, the Schur complement of the KKT matrix, by an 'l' vector. More... | |

virtual void | SystemProduct (ChVectorDynamic<> &result, const ChVectorDynamic<> &x) |

Performs the product of the entire system matrix (KKT matrix), by a vector x ={q,l}. More... | |

virtual void | ConstraintsProject (ChVectorDynamic<> &multipliers) |

Performs projection of constraint multipliers onto allowed set (in case of bilateral constraints it does not affect multipliers, but for frictional constraints, for example, it projects multipliers onto the friction cones) Note! the 'l_i' data in the ChConstraints of the system descriptor are changed by this operation (they get the value of 'multipliers' after the projection), so it may happen that you need to backup them via FromConstraintToVector(). More... | |

virtual void | UnknownsProject (ChVectorDynamic<> &mx) |

As ConstraintsProject(), but instead of passing the l vector, the entire vector of unknowns x={q,-l} is passed. More... | |

virtual void | ComputeFeasabilityViolation (double &resulting_maxviolation, double &resulting_feasability) |

The following (obsolete) function may be called after a solver's 'Solve()' operation has been performed. More... | |

void | PasteMassKRMMatrixInto (ChSparseMatrix &Z, unsigned int start_row=0, unsigned int start_col=0) const |

Paste the stiffness, damping or mass matrix of the system into a sparse matrix. More... | |

unsigned int | PasteConstraintsJacobianMatrixInto (ChSparseMatrix &Z, unsigned int start_row=0, unsigned int start_col=0, bool only_bilateral=false) const |

Paste the constraints jacobian of the system into a sparse matrix at a given position. More... | |

unsigned int | PasteConstraintsJacobianMatrixTransposedInto (ChSparseMatrix &Z, unsigned int start_row=0, unsigned int start_col=0, bool only_bilateral=false) const |

Paste the transposed constraints jacobian of the system into a sparse matrix at a given position. More... | |

void | PasteComplianceMatrixInto (ChSparseMatrix &Z, unsigned int start_row=0, unsigned int start_col=0, bool only_bilateral=false) const |

Paste the compliance matrix of the system into a sparse matrix at a given position. More... | |

virtual void | BuildSystemMatrix (ChSparseMatrix *Z, ChVectorDynamic<> *rhs) const |

Create and return the assembled system matrix and RHS vector at a given position. More... | |

virtual void | WriteMatrixBlocks (const std::string &path, const std::string &prefix, bool one_indexed=true) |

Write the current system matrix blocks and right-hand side components. More... | |

virtual void | WriteMatrix (const std::string &path, const std::string &prefix, bool one_indexed=true) |

Write the current assembled system matrix and right-hand side vector. More... | |

virtual void | WriteMatrixSpmv (const std::string &path, const std::string &prefix, bool one_indexed=true) |

Write the current assembled system matrix and right-hand side vector. More... | |

virtual void | ArchiveOut (ChArchiveOut &archive_out) |

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

virtual void | ArchiveIn (ChArchiveIn &archive_in) |

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

## Additional Inherited Members | |

Protected Attributes inherited from chrono::ChSystemDescriptor | |

std::vector< ChConstraint * > | m_constraints |

list of all constraints in the current Chrono system | |

std::vector< ChVariables * > | m_variables |

list of all variables in the current Chrono system | |

std::vector< ChKRMBlock * > | m_KRMblocks |

list of all KRM blocks in the current Chrono system | |

double | c_a |

coefficient form M mass matrices in m_variables | |

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

- /builds/uwsbel/chrono/src/chrono_multicore/solver/ChSystemDescriptorMulticore.h