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

Class for solving a linear system using a Cholesky-decomposition on the effective stiffness matrix. More...

#include <EigenSolver.hpp>

Inheritance diagram for EigenSolver:
Collaboration diagram for EigenSolver:

Public Member Functions

 EigenSolver (bool flag=false)
 Creates a EigenSolver object. More...
 
 ~EigenSolver ()
 Destroys this EigenSolver 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

bool Flag
 Analysis flag. More...
 
bool Factored
 Eigen Factorization Flag. More...
 
bool Initialized
 Eigen Initialization Flag. More...
 
Eigen::VectorXd x
 Vector of unknowns. More...
 
Eigen::SimplicialLDLT< Eigen::SparseMatrix< double > > Solver
 Direct LDLT factorization solver. More...
 

Detailed Description

Class for solving a linear system using a Cholesky-decomposition on the effective stiffness matrix.

See also
LinearSystem.hpp

Constructor & Destructor Documentation

◆ EigenSolver()

EigenSolver::EigenSolver ( bool  flag = false)

Creates a EigenSolver object.

Parameters
flagWhether the analysis is linear or non-linear.
Note
More details can be found at EigenSolver.
See also
EigenSolver::Flag.

◆ ~EigenSolver()

EigenSolver::~EigenSolver ( )

Destroys this EigenSolver object.

Member Function Documentation

◆ GetSolution()

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

Gets the soultion vector.

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

Implements LinearSystem.

◆ SolveSystem()

bool EigenSolver::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 EigenSolver.
See also
Integrator::ComputeEffectiveForce(), Integrator::ComputeEffectiveStiffness().

Implements LinearSystem.

Member Data Documentation

◆ Factored

bool EigenSolver::Factored
protected

Eigen Factorization Flag.

◆ Flag

bool EigenSolver::Flag
protected

Analysis flag.

◆ Initialized

bool EigenSolver::Initialized
protected

Eigen Initialization Flag.

◆ Solver

Eigen::SimplicialLDLT<Eigen::SparseMatrix<double> > EigenSolver::Solver
protected

Direct LDLT factorization solver.

◆ x

Eigen::VectorXd EigenSolver::x
protected

Vector of unknowns.