MFEM v4.8.0
Finite element discretization library
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Pages
mfem::ComplexCholeskyFactors Class Reference

#include <complex_densemat.hpp>

Inheritance diagram for mfem::ComplexCholeskyFactors:
[legend]
Collaboration diagram for mfem::ComplexCholeskyFactors:
[legend]

Public Member Functions

 ComplexCholeskyFactors ()
 
 ComplexCholeskyFactors (real_t *data_r_, real_t *data_i_)
 
bool Factor (int m, real_t TOL=0.0) override
 Compute the Cholesky factorization of the current matrix.
 
std::complex< real_tDet (int m) const override
 
void LMult (int m, int n, real_t *X_r, real_t *X_i) const
 
void UMult (int m, int n, real_t *X_r, real_t *X_i) const
 
void LSolve (int m, int n, real_t *X_r, real_t *X_i) const
 
void USolve (int m, int n, real_t *X_r, real_t *X_i) const
 
void Solve (int m, int n, real_t *X_r, real_t *X_i) const override
 
void RightSolve (int m, int n, real_t *X_r, real_t *X_i) const
 
void GetInverseMatrix (int m, real_t *X_r, real_t *X_i) const override
 Assuming L.L^H = A factored data of size (m x m), compute X <- A^{-1}.
 
- Public Member Functions inherited from mfem::ComplexFactors
 ComplexFactors ()
 
 ComplexFactors (real_t *data_r_, real_t *data_i_)
 
void SetComplexData (int m)
 
void ResetComplexData (int m)
 
virtual ~ComplexFactors ()
 

Additional Inherited Members

- Public Attributes inherited from mfem::ComplexFactors
real_tdata_r = nullptr
 
real_tdata_i = nullptr
 
std::complex< real_t > * data = nullptr
 
- Protected Member Functions inherited from mfem::ComplexFactors
std::complex< real_t > * RealToComplex (int m, const real_t *x_r, const real_t *x_i) const
 
void ComplexToReal (int m, const std::complex< real_t > *x, real_t *x_r, real_t *x_i) const
 

Detailed Description

Class that can compute Cholesky factorizations of external data of an Hermitian positive matrix and perform various operations with the factored data.

Definition at line 186 of file complex_densemat.hpp.

Constructor & Destructor Documentation

◆ ComplexCholeskyFactors() [1/2]

mfem::ComplexCholeskyFactors::ComplexCholeskyFactors ( )
inline

With this constructor, the (public) data should be set explicitly before calling class methods.

Definition at line 192 of file complex_densemat.hpp.

◆ ComplexCholeskyFactors() [2/2]

mfem::ComplexCholeskyFactors::ComplexCholeskyFactors ( real_t * data_r_,
real_t * data_i_ )
inline

Definition at line 194 of file complex_densemat.hpp.

Member Function Documentation

◆ Det()

std::complex< real_t > mfem::ComplexCholeskyFactors::Det ( int m) const
overridevirtual

Assuming LL^H = A factored data of size (m x m), compute |A| from the diagonal values of L

Reimplemented from mfem::ComplexFactors.

Definition at line 769 of file complex_densemat.cpp.

◆ Factor()

bool mfem::ComplexCholeskyFactors::Factor ( int m,
real_t TOL = 0.0 )
overridevirtual

Compute the Cholesky factorization of the current matrix.

Factorize the current matrix of size (m x m) overwriting it with the Cholesky factors. The factorization is such that LL^H = A, where A is the original matrix

Parameters
[in]msize of the square matrix
[in]TOLoptional fuzzy comparison tolerance. Defaults to 0.0.
Returns
status set to true if successful, otherwise, false.

Reimplemented from mfem::ComplexFactors.

Definition at line 728 of file complex_densemat.cpp.

◆ GetInverseMatrix()

void mfem::ComplexCholeskyFactors::GetInverseMatrix ( int m,
real_t * X_r,
real_t * X_i ) const
overridevirtual

Assuming L.L^H = A factored data of size (m x m), compute X <- A^{-1}.

Reimplemented from mfem::ComplexFactors.

Definition at line 960 of file complex_densemat.cpp.

◆ LMult()

void mfem::ComplexCholeskyFactors::LMult ( int m,
int n,
real_t * X_r,
real_t * X_i ) const

Assuming L.L^H = A factored data of size (m x m), compute X <- L X, for a matrix X of size (m x n).

Definition at line 779 of file complex_densemat.cpp.

◆ LSolve()

void mfem::ComplexCholeskyFactors::LSolve ( int m,
int n,
real_t * X_r,
real_t * X_i ) const

Assuming L L^H = A factored data of size (m x m), compute X <- L^{-1} X, for a matrix X of size (m x n).

Definition at line 824 of file complex_densemat.cpp.

◆ RightSolve()

void mfem::ComplexCholeskyFactors::RightSolve ( int m,
int n,
real_t * X_r,
real_t * X_i ) const

Assuming L.L^H = 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 908 of file complex_densemat.cpp.

◆ Solve()

void mfem::ComplexCholeskyFactors::Solve ( int m,
int n,
real_t * X_r,
real_t * X_i ) const
overridevirtual

Assuming L.L^H = 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 891 of file complex_densemat.cpp.

◆ UMult()

void mfem::ComplexCholeskyFactors::UMult ( int m,
int n,
real_t * X_r,
real_t * X_i ) const

Assuming L.L^H = A factored data of size (m x m), compute X <- L^t X, for a matrix X of size (m x n).

Definition at line 802 of file complex_densemat.cpp.

◆ USolve()

void mfem::ComplexCholeskyFactors::USolve ( int m,
int n,
real_t * X_r,
real_t * X_i ) const

Assuming L L^H = A factored data of size (m x m), compute X <- L^{-t} X, for a matrix X of size (m x n).

Definition at line 857 of file complex_densemat.cpp.


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