chrono::ChMumpsEngine Class Reference

Description

Wrapper class for the MUMPS direct linear solver.

This solver is not appropriate for 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

void SetProblem (const ChSparseMatrix &Z, ChVectorRef rhs)
 Set the problem matrix and the right-hand side.
 
void SetMatrix (const ChSparseMatrix &Z)
 Set the problem matrix.
 
void SetMatrixSymmetry (mumps_SYM symmetry)
 Informs MUMPS of the matrix symmetry type.
 
void SetRhsVector (ChVectorRef b)
 Set the right-hand side vector. More...
 
void SetRhsVector (double *b)
 
void EnableNullPivotDetection (bool val, double threshold=0)
 Enable null-pivot detection in MUMPS. More...
 
int MumpsCall (mumps_JOB job_call)
 Submit job to MUMPS.
 
void PrintINFOG ()
 Print a detailed description of the current INFOG array of MUMPS.
 
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

◆ EnableNullPivotDetection()

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

Enable null-pivot detection in MUMPS.

< activates null pivot detection

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

< fixation value

< pivot threshold

◆ SetRhsVector()

void chrono::ChMumpsEngine::SetRhsVector ( ChVectorRef  b)

Set the right-hand side vector.

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


The documentation for this class was generated from the following files:
  • /builds/uwsbel/chrono/src/chrono_mumps/ChMumpsEngine.h
  • /builds/uwsbel/chrono/src/chrono_mumps/ChMumpsEngine.cpp