KratosMultiphysics
KRATOS Multiphysics (Kratos) is a framework for building parallel, multi-disciplinary simulation software, aiming at modularity, extensibility, and high performance. Kratos is written in C++, and counts with an extensive Python interface.
List of all members
Kratos::RayleighQuotientIterationEigenvalueSolver< TSparseSpaceType, TDenseSpaceType, TLinearSolverType, TPreconditionerType, TReordererType > Class Template Reference

This is a eigen solver based on the Rayleigh quotient iteration algorithm. More...

#include <rayleigh_quotient_iteration_eigenvalue_solver.h>

Inheritance diagram for Kratos::RayleighQuotientIterationEigenvalueSolver< TSparseSpaceType, TDenseSpaceType, TLinearSolverType, TPreconditionerType, TReordererType >:
Collaboration diagram for Kratos::RayleighQuotientIterationEigenvalueSolver< TSparseSpaceType, TDenseSpaceType, TLinearSolverType, TPreconditionerType, TReordererType >:

Public Member Functions

Life Cycle
 RayleighQuotientIterationEigenvalueSolver ()
 Default constructor. More...
 
 RayleighQuotientIterationEigenvalueSolver (double NewMaxTolerance, unsigned int NewMaxIterationsNumber, unsigned int NewRequiredEigenvalueNumber, typename TLinearSolverType::Pointer pLinearSolver, double ShiftingConvergence=0.25)
 The "manual" settings constructor. More...
 
 RayleighQuotientIterationEigenvalueSolver (Parameters ThisParameters, typename TLinearSolverType::Pointer pLinearSolver)
 The parameters constructor. More...
 
 RayleighQuotientIterationEigenvalueSolver (const RayleighQuotientIterationEigenvalueSolver &Other)
 Copy constructor. More...
 
virtual ~RayleighQuotientIterationEigenvalueSolver ()
 Destructor. More...
 
Operators
RayleighQuotientIterationEigenvalueSolveroperator= (const RayleighQuotientIterationEigenvalueSolver &Other)
 Assignment operator. More...
 
Input and output
std::string Info () const override
 Turn back information as a string. More...
 
void PrintInfo (std::ostream &rOStream) const override
 Print information about this object. More...
 
void PrintData (std::ostream &rOStream) const override
 Print object's data. More...
 
- Public Member Functions inherited from Kratos::IterativeSolver< TSparseSpaceType, TDenseSpaceType, Preconditioner< TSparseSpaceType, TDenseSpaceType >, Reorderer< TSparseSpaceType, TDenseSpaceType > >
 IterativeSolver ()
 Default constructor. More...
 
 IterativeSolver (double NewTolerance)
 
 IterativeSolver (double NewTolerance, unsigned int NewMaxIterationsNumber)
 
 IterativeSolver (double NewTolerance, unsigned int NewMaxIterationsNumber, typename TPreconditionerType::Pointer pNewPreconditioner)
 
 IterativeSolver (Parameters settings, typename TPreconditionerType::Pointer pNewPreconditioner=Kratos::make_shared< Preconditioner< TSparseSpaceType, TDenseSpaceType > >())
 
 IterativeSolver (const IterativeSolver &Other)
 Copy constructor. More...
 
 ~IterativeSolver () override
 Destructor. More...
 
IterativeSolveroperator= (const IterativeSolver &Other)
 Assignment operator. More...
 
void InitializeSolutionStep (SparseMatrixType &rA, VectorType &rX, VectorType &rB) override
 
void FinalizeSolutionStep (SparseMatrixType &rA, VectorType &rX, VectorType &rB) override
 
void Clear () override
 
bool AdditionalPhysicalDataIsNeeded () override
 
void ProvideAdditionalData (SparseMatrixType &rA, VectorType &rX, VectorType &rB, typename ModelPart::DofsArrayType &rdof_set, ModelPart &r_model_part) override
 
virtual TPreconditionerType::Pointer GetPreconditioner (void)
 
virtual const TPreconditionerType::Pointer GetPreconditioner (void) const
 
virtual void SetPreconditioner (typename TPreconditionerType::Pointer pNewPreconditioner)
 
virtual void SetMaxIterationsNumber (unsigned int NewMaxIterationsNumber)
 
virtual IndexType GetMaxIterationsNumber ()
 
virtual void SetIterationsNumber (unsigned int NewIterationNumber)
 
IndexType GetIterationsNumber () override
 
void SetTolerance (double NewTolerance) override
 This method allows to set the tolerance in the linear solver. More...
 
double GetTolerance () override
 This method allows to get the tolerance in the linear solver. More...
 
virtual void SetResidualNorm (double NewResidualNorm)
 
virtual double GetResidualNorm ()
 
virtual bool IterationNeeded ()
 
virtual bool IsConverged ()
 
std::string Info () const override
 Turn back information as a string. More...
 
void PrintInfo (std::ostream &rOStream) const override
 Print information about this object. More...
 
void PrintData (std::ostream &rOStream) const override
 Print object's data. More...
 
 KRATOS_CLASS_POINTER_DEFINITION (IterativeSolver)
 Pointer definition of IterativeSolver. More...
 
- Public Member Functions inherited from Kratos::LinearSolver< TSparseSpaceType, TDenseSpaceType, Reorderer< TSparseSpaceType, TDenseSpaceType > >
 LinearSolver ()
 Default constructor. More...
 
 LinearSolver (Reorderer< TSparseSpaceType, TDenseSpaceType > NewReorderer)
 Constructor with specific reorderer. More...
 
 LinearSolver (const LinearSolver &Other)
 Copy constructor. More...
 
virtual ~LinearSolver ()
 Destructor. More...
 
LinearSolveroperator= (const LinearSolver &Other)
 Assignment operator. More...
 
virtual void Initialize (SparseMatrixType &rA, VectorType &rX, VectorType &rB)
 
virtual void PerformSolutionStep (SparseMatrixType &rA, VectorType &rX, VectorType &rB)
 
virtual bool Solve (SparseMatrixType &rA, VectorType &rX, VectorType &rB)
 
virtual bool Solve (SparseMatrixType &rA, DenseMatrixType &rX, DenseMatrixType &rB)
 
virtual TReordererType::Pointer GetReorderer ()
 
virtual void SetReorderer (typename TReordererType::Pointer pNewReorderer)
 
virtual bool IsConsistent (SparseMatrixType &rA, VectorType &rX, VectorType &rB)
 This method checks if the dimensions of the system of equations are consistent. More...
 
virtual bool IsConsistent (SparseMatrixType &rA, DenseMatrixType &rX, DenseMatrixType &rB)
 This method checks if the dimensions of the system of equations are consistent (dense matrix for RHS and unknowns version) More...
 
virtual bool IsNotConsistent (SparseMatrixType &rA, VectorType &rX, VectorType &rB)
 This method checks if the dimensions of the system of equations are not consistent. More...
 
virtual bool IsNotConsistent (SparseMatrixType &rA, DenseMatrixType &rX, DenseMatrixType &rB)
 This method checks if the dimensions of the system of equations are not consistent. More...
 
 KRATOS_CLASS_POINTER_DEFINITION (LinearSolver)
 Pointer definition of LinearSolver. More...
 

Type Definitions

typedef IterativeSolver< TSparseSpaceType, TDenseSpaceType, TPreconditionerType, TReordererType > BaseType
 The base class definition. More...
 
typedef TSparseSpaceType::MatrixType SparseMatrixType
 The sparse matrix defintion. More...
 
typedef TSparseSpaceType::VectorType VectorType
 The vector definition ("sparse") More...
 
typedef TDenseSpaceType::MatrixType DenseMatrixType
 The dense matrix definition. More...
 
typedef TDenseSpaceType::VectorType DenseVectorType
 The "dense" vector definition. More...
 
typedef std::size_t SizeType
 The size type definiton. More...
 
typedef std::size_t IndexType
 The index type definition. More...
 
 KRATOS_CLASS_POINTER_DEFINITION (RayleighQuotientIterationEigenvalueSolver)
 Pointer definition of RayleighQuotientIterationEigenvalueSolver. More...
 

Operations

SizeType SturmSequenceCheck (SparseMatrixType &ShiftedK)
 This method performs a Sturm Sequence Check. More...
 
void Solve (SparseMatrixType &K, SparseMatrixType &M, DenseVectorType &Eigenvalues, DenseMatrixType &Eigenvectors) override
 The Rayleigh quotient iteration method. More...
 
static void InitializeSystem (VectorType &rR, const SparseMatrixType &rM)
 This method initializes the system. More...
 

Additional Inherited Members

- Public Types inherited from Kratos::IterativeSolver< TSparseSpaceType, TDenseSpaceType, Preconditioner< TSparseSpaceType, TDenseSpaceType >, Reorderer< TSparseSpaceType, TDenseSpaceType > >
typedef LinearSolver< TSparseSpaceType, TDenseSpaceType, Reorderer< TSparseSpaceType, TDenseSpaceType > > BaseType
 
typedef TSparseSpaceType::MatrixType SparseMatrixType
 
typedef TSparseSpaceType::VectorType VectorType
 
typedef TDenseSpaceType::MatrixType DenseMatrixType
 
typedef Preconditioner< TSparseSpaceType, TDenseSpaceType > PreconditionerType
 
typedef TSparseSpaceType::IndexType IndexType
 The index type definition to be consistent. More...
 
- Public Types inherited from Kratos::LinearSolver< TSparseSpaceType, TDenseSpaceType, Reorderer< TSparseSpaceType, TDenseSpaceType > >
typedef TSparseSpaceType::MatrixType SparseMatrixType
 
typedef TSparseSpaceType::MatrixPointerType SparseMatrixPointerType
 
typedef TSparseSpaceType::VectorType VectorType
 
typedef TSparseSpaceType::VectorPointerType VectorPointerType
 
typedef TDenseSpaceType::MatrixType DenseMatrixType
 
typedef TDenseSpaceType::VectorType DenseVectorType
 
typedef std::size_t SizeType
 
typedef TSparseSpaceType::IndexType IndexType
 The index type definition to be consistent. More...
 
- Protected Member Functions inherited from Kratos::IterativeSolver< TSparseSpaceType, TDenseSpaceType, Preconditioner< TSparseSpaceType, TDenseSpaceType >, Reorderer< TSparseSpaceType, TDenseSpaceType > >
void PreconditionedMult (SparseMatrixType &rA, VectorType &rX, VectorType &rY)
 
void PreconditionedTransposeMult (SparseMatrixType &rA, VectorType &rX, VectorType &rY)
 
- Protected Attributes inherited from Kratos::IterativeSolver< TSparseSpaceType, TDenseSpaceType, Preconditioner< TSparseSpaceType, TDenseSpaceType >, Reorderer< TSparseSpaceType, TDenseSpaceType > >
double mResidualNorm
 
double mFirstResidualNorm
 
IndexType mIterationsNumber
 
double mBNorm
 

Detailed Description

template<class TSparseSpaceType, class TDenseSpaceType, class TLinearSolverType, class TPreconditionerType = Preconditioner<TSparseSpaceType, TDenseSpaceType>, class TReordererType = Reorderer<TSparseSpaceType, TDenseSpaceType>>
class Kratos::RayleighQuotientIterationEigenvalueSolver< TSparseSpaceType, TDenseSpaceType, TLinearSolverType, TPreconditionerType, TReordererType >

This is a eigen solver based on the Rayleigh quotient iteration algorithm.

Rayleigh quotient iteration is an iterative method, that is, it delivers a sequence of approximate solutions that converges to a true solution in the limit (this is true for all algorithms that compute eigenvalues: since eigenvalues can be irrational numbers, there can be no general method for computing them in a finite number of steps). Very rapid convergence is guaranteed and no more than a few iterations are needed in practice to obtain a reasonable approximation. The Rayleigh quotient iteration algorithm converges cubically for Hermitian or symmetric matrices, given an initial vector that is sufficiently close to an eigenvector of the matrix that is being analyzed.

See also
https://en.wikipedia.org/wiki/Rayleigh_quotient_iteration
Author
Pooyan Dadvand

Member Typedef Documentation

◆ BaseType

template<class TSparseSpaceType , class TDenseSpaceType , class TLinearSolverType , class TPreconditionerType = Preconditioner<TSparseSpaceType, TDenseSpaceType>, class TReordererType = Reorderer<TSparseSpaceType, TDenseSpaceType>>
typedef IterativeSolver<TSparseSpaceType, TDenseSpaceType, TPreconditionerType, TReordererType> Kratos::RayleighQuotientIterationEigenvalueSolver< TSparseSpaceType, TDenseSpaceType, TLinearSolverType, TPreconditionerType, TReordererType >::BaseType

The base class definition.

◆ DenseMatrixType

template<class TSparseSpaceType , class TDenseSpaceType , class TLinearSolverType , class TPreconditionerType = Preconditioner<TSparseSpaceType, TDenseSpaceType>, class TReordererType = Reorderer<TSparseSpaceType, TDenseSpaceType>>
typedef TDenseSpaceType::MatrixType Kratos::RayleighQuotientIterationEigenvalueSolver< TSparseSpaceType, TDenseSpaceType, TLinearSolverType, TPreconditionerType, TReordererType >::DenseMatrixType

The dense matrix definition.

◆ DenseVectorType

template<class TSparseSpaceType , class TDenseSpaceType , class TLinearSolverType , class TPreconditionerType = Preconditioner<TSparseSpaceType, TDenseSpaceType>, class TReordererType = Reorderer<TSparseSpaceType, TDenseSpaceType>>
typedef TDenseSpaceType::VectorType Kratos::RayleighQuotientIterationEigenvalueSolver< TSparseSpaceType, TDenseSpaceType, TLinearSolverType, TPreconditionerType, TReordererType >::DenseVectorType

The "dense" vector definition.

◆ IndexType

template<class TSparseSpaceType , class TDenseSpaceType , class TLinearSolverType , class TPreconditionerType = Preconditioner<TSparseSpaceType, TDenseSpaceType>, class TReordererType = Reorderer<TSparseSpaceType, TDenseSpaceType>>
typedef std::size_t Kratos::RayleighQuotientIterationEigenvalueSolver< TSparseSpaceType, TDenseSpaceType, TLinearSolverType, TPreconditionerType, TReordererType >::IndexType

The index type definition.

◆ SizeType

template<class TSparseSpaceType , class TDenseSpaceType , class TLinearSolverType , class TPreconditionerType = Preconditioner<TSparseSpaceType, TDenseSpaceType>, class TReordererType = Reorderer<TSparseSpaceType, TDenseSpaceType>>
typedef std::size_t Kratos::RayleighQuotientIterationEigenvalueSolver< TSparseSpaceType, TDenseSpaceType, TLinearSolverType, TPreconditionerType, TReordererType >::SizeType

The size type definiton.

◆ SparseMatrixType

template<class TSparseSpaceType , class TDenseSpaceType , class TLinearSolverType , class TPreconditionerType = Preconditioner<TSparseSpaceType, TDenseSpaceType>, class TReordererType = Reorderer<TSparseSpaceType, TDenseSpaceType>>
typedef TSparseSpaceType::MatrixType Kratos::RayleighQuotientIterationEigenvalueSolver< TSparseSpaceType, TDenseSpaceType, TLinearSolverType, TPreconditionerType, TReordererType >::SparseMatrixType

The sparse matrix defintion.

◆ VectorType

template<class TSparseSpaceType , class TDenseSpaceType , class TLinearSolverType , class TPreconditionerType = Preconditioner<TSparseSpaceType, TDenseSpaceType>, class TReordererType = Reorderer<TSparseSpaceType, TDenseSpaceType>>
typedef TSparseSpaceType::VectorType Kratos::RayleighQuotientIterationEigenvalueSolver< TSparseSpaceType, TDenseSpaceType, TLinearSolverType, TPreconditionerType, TReordererType >::VectorType

The vector definition ("sparse")

Constructor & Destructor Documentation

◆ RayleighQuotientIterationEigenvalueSolver() [1/4]

template<class TSparseSpaceType , class TDenseSpaceType , class TLinearSolverType , class TPreconditionerType = Preconditioner<TSparseSpaceType, TDenseSpaceType>, class TReordererType = Reorderer<TSparseSpaceType, TDenseSpaceType>>
Kratos::RayleighQuotientIterationEigenvalueSolver< TSparseSpaceType, TDenseSpaceType, TLinearSolverType, TPreconditionerType, TReordererType >::RayleighQuotientIterationEigenvalueSolver ( )
inline

Default constructor.

◆ RayleighQuotientIterationEigenvalueSolver() [2/4]

template<class TSparseSpaceType , class TDenseSpaceType , class TLinearSolverType , class TPreconditionerType = Preconditioner<TSparseSpaceType, TDenseSpaceType>, class TReordererType = Reorderer<TSparseSpaceType, TDenseSpaceType>>
Kratos::RayleighQuotientIterationEigenvalueSolver< TSparseSpaceType, TDenseSpaceType, TLinearSolverType, TPreconditionerType, TReordererType >::RayleighQuotientIterationEigenvalueSolver ( double  NewMaxTolerance,
unsigned int  NewMaxIterationsNumber,
unsigned int  NewRequiredEigenvalueNumber,
typename TLinearSolverType::Pointer  pLinearSolver,
double  ShiftingConvergence = 0.25 
)
inline

The "manual" settings constructor.

Parameters
NewMaxToleranceThe tolerance considered
NewMaxIterationsNumberThe maximum number of iterations considered
NewRequiredEigenvalueNumberThe number of eigen values to compute
ShiftingConvergenceThe convergence parameter of shifting

◆ RayleighQuotientIterationEigenvalueSolver() [3/4]

template<class TSparseSpaceType , class TDenseSpaceType , class TLinearSolverType , class TPreconditionerType = Preconditioner<TSparseSpaceType, TDenseSpaceType>, class TReordererType = Reorderer<TSparseSpaceType, TDenseSpaceType>>
Kratos::RayleighQuotientIterationEigenvalueSolver< TSparseSpaceType, TDenseSpaceType, TLinearSolverType, TPreconditionerType, TReordererType >::RayleighQuotientIterationEigenvalueSolver ( Parameters  ThisParameters,
typename TLinearSolverType::Pointer  pLinearSolver 
)
inline

The parameters constructor.

Parameters
ThisParametersThe input parameters
pLinearSolverThe linear solver considered

◆ RayleighQuotientIterationEigenvalueSolver() [4/4]

template<class TSparseSpaceType , class TDenseSpaceType , class TLinearSolverType , class TPreconditionerType = Preconditioner<TSparseSpaceType, TDenseSpaceType>, class TReordererType = Reorderer<TSparseSpaceType, TDenseSpaceType>>
Kratos::RayleighQuotientIterationEigenvalueSolver< TSparseSpaceType, TDenseSpaceType, TLinearSolverType, TPreconditionerType, TReordererType >::RayleighQuotientIterationEigenvalueSolver ( const RayleighQuotientIterationEigenvalueSolver< TSparseSpaceType, TDenseSpaceType, TLinearSolverType, TPreconditionerType, TReordererType > &  Other)
inline

Copy constructor.

◆ ~RayleighQuotientIterationEigenvalueSolver()

template<class TSparseSpaceType , class TDenseSpaceType , class TLinearSolverType , class TPreconditionerType = Preconditioner<TSparseSpaceType, TDenseSpaceType>, class TReordererType = Reorderer<TSparseSpaceType, TDenseSpaceType>>
virtual Kratos::RayleighQuotientIterationEigenvalueSolver< TSparseSpaceType, TDenseSpaceType, TLinearSolverType, TPreconditionerType, TReordererType >::~RayleighQuotientIterationEigenvalueSolver ( )
inlinevirtual

Destructor.

Member Function Documentation

◆ Info()

template<class TSparseSpaceType , class TDenseSpaceType , class TLinearSolverType , class TPreconditionerType = Preconditioner<TSparseSpaceType, TDenseSpaceType>, class TReordererType = Reorderer<TSparseSpaceType, TDenseSpaceType>>
std::string Kratos::RayleighQuotientIterationEigenvalueSolver< TSparseSpaceType, TDenseSpaceType, TLinearSolverType, TPreconditionerType, TReordererType >::Info ( ) const
inlineoverridevirtual

◆ InitializeSystem()

template<class TSparseSpaceType , class TDenseSpaceType , class TLinearSolverType , class TPreconditionerType = Preconditioner<TSparseSpaceType, TDenseSpaceType>, class TReordererType = Reorderer<TSparseSpaceType, TDenseSpaceType>>
static void Kratos::RayleighQuotientIterationEigenvalueSolver< TSparseSpaceType, TDenseSpaceType, TLinearSolverType, TPreconditionerType, TReordererType >::InitializeSystem ( VectorType rR,
const SparseMatrixType rM 
)
inlinestatic

This method initializes the system.

It computes the vector R, which contains the components of the diagonal of the M matrix

Parameters
rRThe vector containing the normalized components of the diagonal
rMThe "mass" matrix

◆ KRATOS_CLASS_POINTER_DEFINITION()

template<class TSparseSpaceType , class TDenseSpaceType , class TLinearSolverType , class TPreconditionerType = Preconditioner<TSparseSpaceType, TDenseSpaceType>, class TReordererType = Reorderer<TSparseSpaceType, TDenseSpaceType>>
Kratos::RayleighQuotientIterationEigenvalueSolver< TSparseSpaceType, TDenseSpaceType, TLinearSolverType, TPreconditionerType, TReordererType >::KRATOS_CLASS_POINTER_DEFINITION ( RayleighQuotientIterationEigenvalueSolver< TSparseSpaceType, TDenseSpaceType, TLinearSolverType, TPreconditionerType, TReordererType >  )

◆ operator=()

template<class TSparseSpaceType , class TDenseSpaceType , class TLinearSolverType , class TPreconditionerType = Preconditioner<TSparseSpaceType, TDenseSpaceType>, class TReordererType = Reorderer<TSparseSpaceType, TDenseSpaceType>>
RayleighQuotientIterationEigenvalueSolver& Kratos::RayleighQuotientIterationEigenvalueSolver< TSparseSpaceType, TDenseSpaceType, TLinearSolverType, TPreconditionerType, TReordererType >::operator= ( const RayleighQuotientIterationEigenvalueSolver< TSparseSpaceType, TDenseSpaceType, TLinearSolverType, TPreconditionerType, TReordererType > &  Other)
inline

Assignment operator.

◆ PrintData()

template<class TSparseSpaceType , class TDenseSpaceType , class TLinearSolverType , class TPreconditionerType = Preconditioner<TSparseSpaceType, TDenseSpaceType>, class TReordererType = Reorderer<TSparseSpaceType, TDenseSpaceType>>
void Kratos::RayleighQuotientIterationEigenvalueSolver< TSparseSpaceType, TDenseSpaceType, TLinearSolverType, TPreconditionerType, TReordererType >::PrintData ( std::ostream &  rOStream) const
inlineoverridevirtual

◆ PrintInfo()

template<class TSparseSpaceType , class TDenseSpaceType , class TLinearSolverType , class TPreconditionerType = Preconditioner<TSparseSpaceType, TDenseSpaceType>, class TReordererType = Reorderer<TSparseSpaceType, TDenseSpaceType>>
void Kratos::RayleighQuotientIterationEigenvalueSolver< TSparseSpaceType, TDenseSpaceType, TLinearSolverType, TPreconditionerType, TReordererType >::PrintInfo ( std::ostream &  rOStream) const
inlineoverridevirtual

◆ Solve()

template<class TSparseSpaceType , class TDenseSpaceType , class TLinearSolverType , class TPreconditionerType = Preconditioner<TSparseSpaceType, TDenseSpaceType>, class TReordererType = Reorderer<TSparseSpaceType, TDenseSpaceType>>
void Kratos::RayleighQuotientIterationEigenvalueSolver< TSparseSpaceType, TDenseSpaceType, TLinearSolverType, TPreconditionerType, TReordererType >::Solve ( SparseMatrixType K,
SparseMatrixType M,
DenseVectorType Eigenvalues,
DenseMatrixType Eigenvectors 
)
inlineoverridevirtual

The Rayleigh quotient iteration method.

Parameters
KThe stiffness matrix
MThe mass matrix
EigenvaluesThe vector containing the eigen values
EigenvectorsThe matrix containing the eigen vectors

Reimplemented from Kratos::LinearSolver< TSparseSpaceType, TDenseSpaceType, Reorderer< TSparseSpaceType, TDenseSpaceType > >.

◆ SturmSequenceCheck()

template<class TSparseSpaceType , class TDenseSpaceType , class TLinearSolverType , class TPreconditionerType = Preconditioner<TSparseSpaceType, TDenseSpaceType>, class TReordererType = Reorderer<TSparseSpaceType, TDenseSpaceType>>
SizeType Kratos::RayleighQuotientIterationEigenvalueSolver< TSparseSpaceType, TDenseSpaceType, TLinearSolverType, TPreconditionerType, TReordererType >::SturmSequenceCheck ( SparseMatrixType ShiftedK)
inline

This method performs a Sturm Sequence Check.

Parameters
ShiftedKThe modified K matrix after apply the M matrix

The documentation for this class was generated from the following file: