Seismo-VLAB  1.3
An Open-Source Finite Element Software for Meso-Scale Simulations
MumpsSolver Class Reference

Class for solving a linear system using the (MU)ltifrontal (M)assively (P)arallel (S)parse direct Solver assuming the matrix is symmetric positive definite (SPD), general symmetric (SYM) or unsymmetric (USYM). More...

#include <MumpsSolver.hpp>

Inheritance diagram for MumpsSolver:
Collaboration diagram for MumpsSolver:

Public Member Functions

 MumpsSolver (unsigned int option=1, bool flag=false)
 Creates a MumpsSolver object. More...
 
 ~MumpsSolver ()
 Destroys this MumpsSolver object. More...
 
bool SolveSystem (Eigen::SparseMatrix< double > &A, Eigen::VectorXd &b)
 Solve the linear system. More...
 
const Eigen::VectorXd & GetSolution ()
 Gets the soultion vector. More...
 
- Public Member Functions inherited from LinearSystem
 LinearSystem ()
 Creates a LinearSystem object. More...
 
virtual ~LinearSystem ()=0
 Destroys this LinearSystem object. More...
 

Protected Attributes

unsigned int nz
 Number of non-zero values. More...
 
unsigned int Option
 Matrix structure 0: SPD, 1:Symmetric, 0: Unsymmetric. More...
 
bool Flag
 Analysis flag. More...
 
bool Factored
 MUMPS Factorization Flag. More...
 
bool Initialized
 MUMPS Initialization Flag. More...
 
Eigen::VectorXd x
 Vector of unknowns. More...
 
DMUMPS_STRUC_C id
 MUMPS Structure of parameters. More...
 

Detailed Description

Class for solving a linear system using the (MU)ltifrontal (M)assively (P)arallel (S)parse direct Solver assuming the matrix is symmetric positive definite (SPD), general symmetric (SYM) or unsymmetric (USYM).

See also
LinearSystem.hpp Algorithm.hpp

Constructor & Destructor Documentation

◆ MumpsSolver()

MumpsSolver::MumpsSolver ( unsigned int  option = 1,
bool  flag = false 
)

Creates a MumpsSolver object.

Parameters
optionThe type of left-hand side matrix: SPD, SYM, or USYM.
flagWhether the analysis is linear or non-linear.
Note
More details can be found at MumpsSolver.
See also
MumpsSolver::Flag, MumpsSolver::Option, MumpsSolver::n.

◆ ~MumpsSolver()

MumpsSolver::~MumpsSolver ( )

Destroys this MumpsSolver object.

Member Function Documentation

◆ GetSolution()

const Eigen::VectorXd& MumpsSolver::GetSolution ( )
virtual

Gets the soultion vector.

Returns
The solution vector.
See also
MumpsSolver::x.

Implements LinearSystem.

◆ SolveSystem()

bool MumpsSolver::SolveSystem ( Eigen::SparseMatrix< double > &  A,
Eigen::VectorXd &  b 
)
virtual

Solve the linear system.

Parameters
AThe matrix with the left-hand side.
bThe vector with the right-hand side.
Returns
Whether or not the system was successfully solved.
Note
More details can be found at MumpsSolver.
See also
Integrator::ComputeEffectiveForce(), Integrator::ComputeEffectiveStiffness().

Implements LinearSystem.

Member Data Documentation

◆ Factored

bool MumpsSolver::Factored
protected

MUMPS Factorization Flag.

◆ Flag

bool MumpsSolver::Flag
protected

Analysis flag.

◆ id

DMUMPS_STRUC_C MumpsSolver::id
protected

MUMPS Structure of parameters.

◆ Initialized

bool MumpsSolver::Initialized
protected

MUMPS Initialization Flag.

◆ nz

unsigned int MumpsSolver::nz
protected

Number of non-zero values.

◆ Option

unsigned int MumpsSolver::Option
protected

Matrix structure 0: SPD, 1:Symmetric, 0: Unsymmetric.

◆ x

Eigen::VectorXd MumpsSolver::x
protected

Vector of unknowns.