#include <LOCA_BorderedSystem_Bordering.H>
Inheritance diagram for LOCA::BorderedSystem::Bordering:
Public Member Functions | |
| Bordering (NOX::Parameter::List ¶ms) | |
| Constructor. | |
| Bordering (const Bordering &source) | |
| Copy constructor. | |
| virtual | ~Bordering () |
| Destructor. | |
| virtual Bordering & | operator= (const Bordering &source) |
| Assignment operator. | |
| virtual LOCA::BorderedSystem::Generic * | clone () const |
| Clone function. | |
| virtual LOCA::BorderedSystem::Generic & | operator= (const LOCA::BorderedSystem::Generic &source) |
| Assignment operator. | |
| virtual NOX::Abstract::Group::ReturnType | reset (NOX::Parameter::List ¶ms) |
| Reset parameters. | |
| virtual void | setIsZero (bool flagA, bool flagB, bool flagC, bool flagF, bool flagG) |
| Set flags indicating if any blocks are zero. | |
| virtual void | setIsContiguous (bool flag) |
| Set flag indicating whether F and A are continguous. | |
| virtual void | setMatrixBlocks (const NOX::Abstract::Group *group, const NOX::Abstract::MultiVector *blockA, const NOX::Abstract::MultiVector *blockB, const NOX::Abstract::MultiVector::DenseMatrix *blockC) |
| Set blocks. | |
| virtual NOX::Abstract::Group::ReturnType | apply (const NOX::Abstract::MultiVector &X, const NOX::Abstract::MultiVector::DenseMatrix &Y, NOX::Abstract::MultiVector &U, NOX::Abstract::MultiVector::DenseMatrix &V) const |
| Computed extended matrix-multivector product. | |
| virtual NOX::Abstract::Group::ReturnType | applyTranspose (const NOX::Abstract::MultiVector &X, const NOX::Abstract::MultiVector::DenseMatrix &Y, NOX::Abstract::MultiVector &U, NOX::Abstract::MultiVector::DenseMatrix &V) const |
| Computed extended matrix transpose-multivector product. | |
| virtual NOX::Abstract::Group::ReturnType | applyInverse (NOX::Parameter::List ¶ms, const NOX::Abstract::MultiVector *F, const NOX::Abstract::MultiVector::DenseMatrix *G, NOX::Abstract::MultiVector &X, NOX::Abstract::MultiVector::DenseMatrix &Y) const |
| Solves the extended system as defined above using bordering. | |
Protected Member Functions | |
| NOX::Abstract::Group::ReturnType | solveBZeroNoncontiguous (NOX::Parameter::List ¶ms, const NOX::Abstract::MultiVector *AA, const NOX::Abstract::MultiVector::DenseMatrix *CC, const NOX::Abstract::MultiVector *F, const NOX::Abstract::MultiVector::DenseMatrix *G, NOX::Abstract::MultiVector &X, NOX::Abstract::MultiVector::DenseMatrix &Y) const |
| Solves the extended system when B = 0 and F and A are not contiguous. | |
| NOX::Abstract::Group::ReturnType | solveBNonZeroNoncontiguous (NOX::Parameter::List ¶ms, const NOX::Abstract::MultiVector *AA, const NOX::Abstract::MultiVector *BB, const NOX::Abstract::MultiVector::DenseMatrix *CC, const NOX::Abstract::MultiVector *F, const NOX::Abstract::MultiVector::DenseMatrix *G, NOX::Abstract::MultiVector &X, NOX::Abstract::MultiVector::DenseMatrix &Y) const |
| Solves the extended system when B is not 0 and F and A are not contiguous. | |
| NOX::Abstract::Group::ReturnType | solveBNonZeroContiguous (NOX::Parameter::List ¶ms, const NOX::Abstract::MultiVector *AA, const NOX::Abstract::MultiVector *BB, const NOX::Abstract::MultiVector::DenseMatrix *CC, vector< int > &indexF, vector< int > &indexA, const NOX::Abstract::MultiVector *F, const NOX::Abstract::MultiVector::DenseMatrix *G, NOX::Abstract::MultiVector &X, NOX::Abstract::MultiVector::DenseMatrix &Y) const |
| Solves the extended system when B is not 0 and F and A are contiguous. | |
Protected Attributes | |
| const NOX::Abstract::Group * | grp |
| Pointer to group storing J. | |
| const NOX::Abstract::MultiVector * | A |
| Pointer to A block. | |
| const NOX::Abstract::MultiVector * | B |
| Pointer to B block. | |
| const NOX::Abstract::MultiVector::DenseMatrix * | C |
| Pointer to C block. | |
| bool | isZeroA |
| flag indicating whether A block is zero | |
| bool | isZeroB |
| flag indicating whether B block is zero | |
| bool | isZeroC |
| flag indicating whether C block is zero | |
| bool | isZeroF |
| flag indicating whether F block is zero | |
| bool | isZeroG |
| flag indicating whether G block is zero | |
| bool | isContiguous |
| flag indicating whether F and A are contiguous | |
| bool | isZeroX |
| flag indicating whether X block is zero | |
| bool | isZeroY |
| flag indicating whether Y block is zero | |
| bool | isZeroT1 |
| flag indicating whether B^T*X1 block is zero | |
| bool | isZeroT2 |
| flag indicating whether B^T*X2 block is zero | |
This class solves the extended system of equations
via bordering (block elimination):
|
||||||||||||||||||||
|
Computed extended matrix-multivector product. Computes
Implements LOCA::BorderedSystem::Generic. |
|
||||||||||||||||||||||||
|
Solves the extended system as defined above using bordering. The params argument is the linear solver parameters. If isZeroF or isZeroG is true, than the corresponding F or G pointers may be NULL. Implements LOCA::BorderedSystem::Generic. |
|
||||||||||||||||||||
|
Computed extended matrix transpose-multivector product. Computes
Implements LOCA::BorderedSystem::Generic. |
|
||||||||||||||||||||
|
Set blocks. Any of these block pointers (execpt the group pointer) may be NULL if the corresponding flag is set indicating the block is zero. Implements LOCA::BorderedSystem::Generic. |
1.3.9.1