chrono::ChMumpsEngine Class Reference

Description

Class that wraps the MUMPS direct linear solver.

It can solve linear systems. It cannot solve VI and complementarity problems.

#include <ChMumpsEngine.h>

Public Types

enum  mumps_SYM { UNSYMMETRIC = 0, SYMMETRIC_POSDEF = 1, SYMMETRIC_GENERAL = 2 }
 
enum  mumps_JOB {
  INIT = -1, END = -2, ANALYZE = 1, FACTORIZE = 2,
  SOLVE = 3, ANALYZE_FACTORIZE = 4, FACTORIZE_SOLVE = 5, COMPLETE = 6
}
 

Public Member Functions

 ChMumpsEngine (mumps_SYM symmetry=UNSYMMETRIC, int mumps_mpi_comm=-987654, int activate_this_node=1)
 
void SetProblem (const ChCOOMatrix &Z, const ChMatrix<> &rhs)
 Set the problem matrix and the right-hand side, at the same time.
 
void SetMatrix (const ChCOOMatrix &Z)
 Set the problem matrix.
 
void SetMatrixSymmetry (mumps_SYM mat_type)
 Informs MUMPS of the matrix symmetry type.
 
void SetRhsVector (const ChMatrix<> &b)
 Set the right-hand side vector. More...
 
void SetRhsVector (double *b)
 
int MumpsCall (mumps_JOB job_call)
 Submit jobs to MUMPS.
 
void PrintINFOG ()
 Print a detailed description of the current INFOG array of MUMPS.
 
void SetNullPivotDetection (bool val, double threshold=0)
 Set the null-pivot detection of MUMPS. More...
 
double GetCNTL (int parnum)
 Get the parnumth CoNTroL parameter (CNTL)
 
void SetCNTL (int parnum, int parvalue)
 Set the parnumth CoNTroL parameter (CNTL)
 
int GetICNTL (int parnum)
 Get the parnumth Integer CoNTroL parameter (ICNTL)
 
void SetICNTL (int parnum, int parvalue)
 Set the parnumth Integer CoNTroL parameter (ICNTL)
 
int GetINFO (int parnum)
 Get the parnumth INFOrmative flag (INFO)
 
int GetINFOG (int parnum)
 Get the parnumth Global INFOrmative flag (INFOG)
 
double GetRINFO (int parnum)
 Get the parnumth Real-valued INFOrmative flag (RINFO)
 
double GetRINFOG (int parnum)
 Get the parnumth Real-valued INFOrmative flag (RINFOG)
 
DMUMPS_STRUC_C & GetMumpsStruc ()
 

Member Function Documentation

void chrono::ChMumpsEngine::SetNullPivotDetection ( bool  val,
double  threshold = 0 
)

Set the null-pivot detection of MUMPS.

< activates null pivot detection

< tries to compute one of the many solutions of AX = B

< fixation value

< pivot threshold

void chrono::ChMumpsEngine::SetRhsVector ( const ChMatrix<> &  b)

Set the right-hand side vector.

Note that it is the caller's responsibility to ensure that the size is appropriate.