MFEM
v4.0
Finite element discretization library
|
Specialization of the ComplexOperator built from a pair of Sparse Matrices. More...
#include <complex_operator.hpp>
Public Member Functions | |
ComplexSparseMatrix (SparseMatrix *A_Real, SparseMatrix *A_Imag, bool ownReal, bool ownImag, Convention convention=HERMITIAN) | |
SparseMatrix * | GetSystemMatrix () const |
![]() | |
ComplexOperator (Operator *Op_Real, Operator *Op_Imag, bool ownReal, bool ownImag, Convention convention=HERMITIAN) | |
Constructs complex operator object. More... | |
virtual | ~ComplexOperator () |
virtual void | Mult (const Vector &x, Vector &y) const |
Operator application: y=A(x) . More... | |
virtual void | MultTranspose (const Vector &x, Vector &y) const |
Action of the transpose operator: y=A^t(x) . The default behavior in class Operator is to generate an error. More... | |
![]() | |
Operator (int s=0) | |
Construct a square Operator with given size s (default 0). More... | |
Operator (int h, int w) | |
Construct an Operator with the given height (output size) and width (input size). More... | |
int | Height () const |
Get the height (size of output) of the Operator. Synonym with NumRows(). More... | |
int | NumRows () const |
Get the number of rows (size of output) of the Operator. Synonym with Height(). More... | |
int | Width () const |
Get the width (size of input) of the Operator. Synonym with NumCols(). More... | |
int | NumCols () const |
Get the number of columns (size of input) of the Operator. Synonym with Width(). More... | |
virtual MemoryClass | GetMemoryClass () const |
Return the MemoryClass preferred by the Operator. More... | |
virtual Operator & | GetGradient (const Vector &x) const |
Evaluate the gradient operator at the point x. The default behavior in class Operator is to generate an error. More... | |
virtual const Operator * | GetProlongation () const |
Prolongation operator from linear algebra (linear system) vectors, to input vectors for the operator. NULL means identity. More... | |
virtual const Operator * | GetRestriction () const |
Restriction operator from input vectors for the operator to linear algebra (linear system) vectors. NULL means identity. More... | |
void | FormLinearSystem (const Array< int > &ess_tdof_list, Vector &x, Vector &b, Operator *&A, Vector &X, Vector &B, int copy_interior=0) |
Form a constrained linear system using a matrix-free approach. More... | |
virtual void | RecoverFEMSolution (const Vector &X, const Vector &b, Vector &x) |
Reconstruct a solution vector x (e.g. a GridFunction) from the solution X of a constrained linear system obtained from Operator::FormLinearSystem(). More... | |
void | PrintMatlab (std::ostream &out, int n=0, int m=0) const |
Prints operator with input size n and output size m in Matlab format. More... | |
virtual | ~Operator () |
Virtual destructor. More... | |
Type | GetType () const |
Return the type ID of the Operator class. More... | |
Additional Inherited Members | |
![]() | |
enum | Convention { HERMITIAN, BLOCK_SYMMETRIC } |
![]() | |
enum | Type { ANY_TYPE, MFEM_SPARSEMAT, Hypre_ParCSR, PETSC_MATAIJ, PETSC_MATIS, PETSC_MATSHELL, PETSC_MATNEST, PETSC_MATHYPRE, PETSC_MATGENERIC } |
Enumeration defining IDs for some classes derived from Operator. More... | |
![]() | |
void | Mult (const Vector &x_r, const Vector &x_i, Vector &y_r, Vector &y_i) const |
void | MultTranspose (const Vector &x_r, const Vector &x_i, Vector &y_r, Vector &y_i) const |
![]() | |
Operator * | Op_Real_ |
Operator * | Op_Imag_ |
bool | ownReal_ |
bool | ownImag_ |
Convention | convention_ |
Vector | x_r_ |
Vector | x_i_ |
Vector | y_r_ |
Vector | y_i_ |
Vector * | u_ |
Vector * | v_ |
![]() | |
int | height |
Dimension of the output / number of rows in the matrix. More... | |
int | width |
Dimension of the input / number of columns in the matrix. More... | |
Specialization of the ComplexOperator built from a pair of Sparse Matrices.
The purpose of this specialization is to construct a single SparseMatrix object which is equivalent to the 2x2 block system that the ComplexOperator mimics. The resulting SparseMatrix can then be passed along to solvers which require access to the CSR matrix data such as SuperLU, STRUMPACK, or similar sparse linear solvers.
See ComplexOperator documentation in operator.hpp for more information.
Definition at line 121 of file complex_operator.hpp.
|
inline |
Definition at line 124 of file complex_operator.hpp.
SparseMatrix * mfem::ComplexSparseMatrix::GetSystemMatrix | ( | ) | const |
Definition at line 123 of file complex_operator.cpp.