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