#include <Komplex_LinearProblem.h>
Collaboration diagram for Komplex_LinearProblem:
Public Member Functions | |
Constructors/Destructor. | |
| Komplex_LinearProblem () | |
| Komplex_LinearProblem default constructor. | |
| virtual | ~Komplex_LinearProblem () |
| Komplex_LinearProblem Destructor. | |
Set methods. | |
| int | SetKomplexOperator (double c0r, double c0i, const Epetra_RowMatrix &A0, double c1r, double c1i, const Epetra_RowMatrix &Ai) |
| Construct the komplex linear operator from VbrMatrix objects. | |
| int | SetKomplexLHS (const Epetra_MultiVector &Xr, const Epetra_MultiVector &Xi) |
| Set the left hand side of a Komplex linear problem. | |
| int | SetKomplexRHS (const Epetra_MultiVector &Br, const Epetra_MultiVector &Bi) |
| Set the right hand side of a Komplex linear problem. | |
Methods to extract complex system solution. | |
| int | ExtractSolution (Epetra_MultiVector *Xr, Epetra_MultiVector *Xi) |
| Extrac a solution for the original complex-valued problem using the solution of the Komplex problem. | |
Attribute Access Methods. | |
| Epetra_LinearProblem * | KomplexProblem () const |
| Returns pointer to the Epetra_LinearProblem object that defines the Komplex formulation. | |
| Epetra_VbrMatrix * | KomplexVbrMatrix () const |
| Returns pointer to Epetra_VbrMatrix from Komplex problem. | |
Protected Member Functions | |
| void | InitializeDefaults () |
| SetKomplexOperatorVbr (double c0r, double c0i, const Epetra_VbrMatrix &A0, double c1r, double c1i, const Epetra_VbrMatrix &Ai) | |
| SetKomplexOperatorRow (double c0r, double c0i, const Epetra_RowMatrix &A0, double c1r, double c1i, const Epetra_RowMatrix &Ai) | |
| int | ConstructKomplexMaps (const Epetra_BlockMap &A0DomainMap, const Epetra_BlockMap &A0RangeMap, const Epetra_BlockMap &A0RowMap, const Epetra_BlockMap &A0ColMap, const Epetra_BlockMap &A1DomainMap, const Epetra_BlockMap &A1RangeMap, const Epetra_BlockMap &A1RowMap, const Epetra_BlockMap &A1ColMap) |
| int | MakeKomplexMap (const Epetra_BlockMap &Map, Epetra_BlockMap *&KMap) |
| int | InitFullMatrixAccess () |
| int | GetRow (int Row, int &NumIndices, int *&Indices) |
| int | GetRowGCIDs (int Row, int &NumIndices, double *&Values, int *&GlobalIndices) |
| int | GetRow (int Row, int &NumIndices, double *&Values, int *&Indices) |
Protected Attributes | |
| Epetra_LinearProblem * | KomplexProblem_ |
| Epetra_VbrMatrix * | KomplexMatrix_ |
| Epetra_CrsGraph * | KomplexGraph_ |
| Epetra_MultiVector * | KomplexRHS_ |
| Epetra_MultiVector * | KomplexLHS_ |
| Epetra_BlockMap * | KomplexMatrixRowMap_ |
| Epetra_BlockMap * | KomplexMatrixColMap_ |
| Epetra_BlockMap * | KomplexMatrixDomainMap_ |
| Epetra_BlockMap * | KomplexMatrixRangeMap_ |
| bool | HaveKomplexProblem_ |
| bool | AnalysisDone_ |
| int * | Indices_ |
| double * | Values_ |
| bool | UserMatrixIsCrsMatrix_ |
| bool | UserMatrixIsVbrMatrix_ |
| int | MaxNumMyEntries_ |
The Komplex_LinearProblem class takes an existing Epetra_LinearProblem object, analyzes it structure and explicitly eliminates rows and columns from the matrix based on density of nonzero entries.
|
||||||||||||
|
Extrac a solution for the original complex-valued problem using the solution of the Komplex problem. After solving the komplex linear system, this method can be called to extract the solution of the original problem, assuming the solution for the komplex system is valid.
|
|
||||||||||||
|
Set the left hand side of a Komplex linear problem.
|
|
||||||||||||||||||||||||||||
|
Construct the komplex linear operator from VbrMatrix objects. Constructs the Komplex operator from the user definition of the complex-valued matrix C = (c0r+i*c0i)*A0 +(c1r+i*c1i)*A1. Using this general expression for the complex matrix allows easy formulation of a variety of common complex problems. The operator will be explicitly constructed as an Epetra_VbrMatrix object when the first call to SetKomplexOperator() is made. Subsequent calls to this method will attempt to reuse the the existing KomplexVbrMatrix object if possible, rather than reconstructing from scratch. If this is not possible (typically because the structure has changed) then a the previous KomplexVbrMatrix object will be deleted and a new one will be constructed.
|
|
||||||||||||
|
Set the right hand side of a Komplex linear problem.
|
1.3.9.1