|
OOFEM 3.0
|
#include <inverseit.h>
Public Member Functions | |
| InverseIteration (Domain *d, EngngModel *m) | |
| virtual | ~InverseIteration () |
| ConvergedReason | solve (SparseMtrx &A, SparseMtrx &B, FloatArray &x, FloatMatrix &v, double rtol, int nroot) override |
| const char * | giveClassName () const override |
| Public Member Functions inherited from oofem::SparseGeneralEigenValueSystemNM | |
| SparseGeneralEigenValueSystemNM (Domain *d, EngngModel *m) | |
| Constructor. | |
| virtual | ~SparseGeneralEigenValueSystemNM () |
| Destructor. | |
| std::string | errorInfo (const char *func) |
| Public Member Functions inherited from oofem::NumericalMethod | |
| NumericalMethod (Domain *d, EngngModel *m) | |
| virtual | ~NumericalMethod () |
| Destructor. | |
| EngngModel * | giveEngngModel () |
| virtual void | initializeFrom (InputRecord &ir) |
| virtual void | reinitialize () |
| virtual void | setDomain (Domain *d) |
| virtual void | saveContext (DataStream &stream, ContextMode mode) |
| virtual void | restoreContext (DataStream &stream, ContextMode mode) |
Private Attributes | |
| int | nitem |
| Max number of iterations. | |
Additional Inherited Members | |
| Protected Attributes inherited from oofem::NumericalMethod | |
| Domain * | domain |
| Pointer to domain. | |
| EngngModel * | engngModel |
| Pointer to engineering model. | |
This class implements the class NumericalMethod instance Generalized Jacobi Eigen Value Problem Solver
DESCRIPTION : Perform solution of eigen value problem in the form K y = (omega)^2 M y
TASKS :
Variable description :
A(N,N) = STIFFNESS MATRIX (ASSUMED POZITIVE DEFINITE) *
B(N,N) = MASS MATRIX (ASSUMED POZITIVE DEFINITE) *
X(N,N) = MATRIX STORING EIGENVECTORS ON SOLUTION EXIT *
EIGV(N) = VECTOR STORING EIGENVALUES ON SOLUTION EXIT *
D(N) = WORKING VECTOR *
N = ORDER OF WORKING AREA MATRICES A AND B *
RTOL = CONVERGENCE TOLERANCE (USUALLY SET TO 10.**-12) *
NSMAX = MAXIMUM NUMBER OF SWEEPS ALLOVED *
(USUALLY SET TO 15) *
OUTPUT : (after call solveYourselfAt) A(N,N) = DIAGONALIZED STIFFNESS MATRIX * B(N,N) = DIAGONALIZED MASS MATRIX * X(N,N) = EIGENVECTORS STORED COLUMNWISE * EIGV(N) = EIGENVALUES *
Definition at line 82 of file inverseit.h.
| oofem::InverseIteration::InverseIteration | ( | Domain * | d, |
| EngngModel * | m ) |
Definition at line 47 of file inverseit.C.
References nitem, and oofem::SparseGeneralEigenValueSystemNM::SparseGeneralEigenValueSystemNM().
|
inlinevirtual |
Definition at line 90 of file inverseit.h.
|
inlineoverridevirtual |
Implements oofem::SparseGeneralEigenValueSystemNM.
Definition at line 93 of file inverseit.h.
|
overridevirtual |
Solves the given sparse generalized eigen value system of equations \( Av = x^2 Bv \).
| A | coefficient matrix. |
| B | coefficient matrix. |
| v | eigen vector(s). |
| x | eigen value(s). |
| rtol | tolerance |
| nroot | number of required eigenvalues. |
Implements oofem::SparseGeneralEigenValueSystemNM.
Definition at line 55 of file inverseit.C.
References oofem::FloatArray::at(), oofem::IntArray::at(), oofem::SparseMtrx::at(), oofem::IntArray::begin(), oofem::CR_CONVERGED, oofem::CR_DIVERGED_ITS, oofem::ClassFactory::createSparseLinSolver(), oofem::NumericalMethod::domain, oofem::IntArray::end(), oofem::NumericalMethod::engngModel, oofem::IntArray::enumerate(), oofem::GiveClassFactory(), oofem::SparseMtrx::giveNumberOfColumns(), oofem::min(), nitem, OOFEM_ERROR, OOFEM_LOG_INFO, OOFEM_WARNING, oofem::FloatArray::resize(), oofem::FloatMatrix::resize(), oofem::FloatMatrix::setColumn(), oofem::ST_Direct, and oofem::SparseMtrx::times().
|
private |
Max number of iterations.
Definition at line 86 of file inverseit.h.
Referenced by InverseIteration(), and solve().