MFEM
v4.6.0
Finite element discretization library
|
#include <complex_densemat.hpp>
Public Member Functions | |
ComplexLUFactors () | |
ComplexLUFactors (double *data_r_, double *data_i, int *ipiv_) | |
virtual bool | Factor (int m, double TOL=0.0) |
Compute the LU factorization of the current matrix. More... | |
virtual std::complex< double > | Det (int m) const |
void | Mult (int m, int n, double *X_r, double *X_i) const |
void | Mult (int m, int n, std::complex< double > *X) const |
void | LSolve (int m, int n, double *X_r, double *X_i) const |
void | USolve (int m, int n, double *X_r, double *X_i) const |
virtual void | Solve (int m, int n, double *X_r, double *X_i) const |
void | RightSolve (int m, int n, double *X_r, double *X_i) const |
virtual void | GetInverseMatrix (int m, double *X_r, double *X_i) const |
Assuming L.U = P.A factored data of size (m x m), compute X <- A^{-1}. More... | |
Public Member Functions inherited from mfem::ComplexFactors | |
ComplexFactors () | |
ComplexFactors (double *data_r_, double *data_i_) | |
void | SetComplexData (int m) |
void | ResetComplexData (int m) |
virtual | ~ComplexFactors () |
Public Attributes | |
int * | ipiv |
Public Attributes inherited from mfem::ComplexFactors | |
double * | data_r = nullptr |
double * | data_i = nullptr |
std::complex< double > * | data = nullptr |
Static Public Attributes | |
static const int | ipiv_base = 1 |
Additional Inherited Members | |
Protected Member Functions inherited from mfem::ComplexFactors | |
std::complex< double > * | RealToComplex (int m, const double *x_r, const double *x_i) const |
void | ComplexToReal (int m, const std::complex< double > *x, double *x_r, double *x_i) const |
Class that computes factorization of external data and perform various operations with the factored data.
Definition at line 123 of file complex_densemat.hpp.
|
inline |
With this constructor, the (public) data and ipiv members should be set explicitly before calling class methods.
Definition at line 135 of file complex_densemat.hpp.
|
inline |
Definition at line 137 of file complex_densemat.hpp.
|
virtual |
Assuming L.U = P.A factored data of size (m x m), compute |A| from the diagonal values of U and the permutation information.
Reimplemented from mfem::ComplexFactors.
Definition at line 508 of file complex_densemat.cpp.
|
virtual |
Compute the LU factorization of the current matrix.
Factorize the current matrix of size (m x m) overwriting it with the LU factors. The factorization is such that L.U = P.A, where A is the original matrix and P is a permutation matrix represented by ipiv.
[in] | m | size of the square matrix |
[in] | TOL | optional fuzzy comparison tolerance. Defaults to 0.0. |
Reimplemented from mfem::ComplexFactors.
Definition at line 447 of file complex_densemat.cpp.
|
virtual |
Assuming L.U = P.A factored data of size (m x m), compute X <- A^{-1}.
Reimplemented from mfem::ComplexFactors.
Definition at line 682 of file complex_densemat.cpp.
void mfem::ComplexLUFactors::LSolve | ( | int | m, |
int | n, | ||
double * | X_r, | ||
double * | X_i | ||
) | const |
Assuming L.U = P.A factored data of size (m x m), compute X <- L^{-1} P X, for a matrix X of size (m x n).
Definition at line 561 of file complex_densemat.cpp.
void mfem::ComplexLUFactors::Mult | ( | int | m, |
int | n, | ||
double * | X_r, | ||
double * | X_i | ||
) | const |
Assuming L.U = P.A factored data of size (m x m), compute X <- A X, for a matrix X of size (m x n).
Definition at line 525 of file complex_densemat.cpp.
void mfem::ComplexLUFactors::Mult | ( | int | m, |
int | n, | ||
std::complex< double > * | X | ||
) | const |
void mfem::ComplexLUFactors::RightSolve | ( | int | m, |
int | n, | ||
double * | X_r, | ||
double * | X_i | ||
) | const |
Assuming L.U = P.A factored data of size (m x m), compute X <- X A^{-1}, for a matrix X of size (n x m).
Definition at line 625 of file complex_densemat.cpp.
|
virtual |
Assuming L.U = P.A factored data of size (m x m), compute X <- A^{-1} X, for a matrix X of size (m x n).
Reimplemented from mfem::ComplexFactors.
Definition at line 608 of file complex_densemat.cpp.
void mfem::ComplexLUFactors::USolve | ( | int | m, |
int | n, | ||
double * | X_r, | ||
double * | X_i | ||
) | const |
Assuming L.U = P.A factored data of size (m x m), compute X <- U^{-1} X, for a matrix X of size (m x n).
Definition at line 587 of file complex_densemat.cpp.
int* mfem::ComplexLUFactors::ipiv |
Definition at line 126 of file complex_densemat.hpp.
|
static |
Definition at line 128 of file complex_densemat.hpp.