| 
    NOX
    Development
    
   | 
 
Bordered system solver strategy based on bordering. More...
#include <LOCA_BorderedSolver_Bordering.H>


Protected Attributes | |
| Teuchos::RCP< LOCA::GlobalData > | globalData | 
| Global data object.  | |
| 
Teuchos::RCP < Teuchos::ParameterList >  | solverParams | 
| Solver parameters.  | |
| 
Teuchos::RCP< const  LOCA::BorderedSolver::AbstractOperator >  | op | 
| Pointer to operator.  | |
| 
Teuchos::RCP< const  NOX::Abstract::MultiVector >  | A | 
| Pointer to A block.  | |
| 
Teuchos::RCP< const  LOCA::MultiContinuation::ConstraintInterface >  | B | 
| Pointer to B block.  | |
| 
Teuchos::RCP< 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  | |
Bordered system solver strategy based on bordering.
This class solves the extended system of equations
via bordering (block elimination):
 It takes advantage of any of the matrix blocks being zero and concatenates 
 and 
 into a contiguous multivector to compute 
 and 
 in one block solve.
To solve the transpose of the system, a similar bordering algorithm is implemented. Note however that for the transpose, the constraint object representing 
 must implement the LOCA::MultiContinuation::ConstraintInterfaceMVDX since 
 appears on the right-hand-side of a linear system. 
| LOCA::BorderedSolver::Bordering::Bordering | ( | const Teuchos::RCP< LOCA::GlobalData > & | global_data, | 
| const Teuchos::RCP< LOCA::Parameter::SublistParser > & | topParams, | ||
| const Teuchos::RCP< Teuchos::ParameterList > & | solverParams | ||
| ) | 
Constructor.
| global_data | [in] Global data object | 
| topParams | [in] Parsed top-level parameter list | 
| solverParams | [in] Bordered solver parameters. Currently none are referenced. | 
      
  | 
  virtual | 
Computed extended matrix-multivector product.
Computes
Implements LOCA::BorderedSolver::AbstractStrategy.
References NOX::Abstract::Group::Failed, Teuchos::SerialDenseMatrix< OrdinalType, ScalarType >::multiply(), Teuchos::NO_TRANS, and NOX::Abstract::MultiVector::update().
      
  | 
  virtual | 
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::BorderedSolver::AbstractStrategy.
References NOX::Abstract::MultiVector::clone(), Teuchos::ParameterList::get(), Teuchos::RCP< T >::get(), NOX::Abstract::MultiVector::numVectors(), NOX::Abstract::MultiVector::setBlock(), LOCA::BorderedSolver::UpperTriangularBlockElimination::solve(), LOCA::BorderedSolver::LowerTriangularBlockElimination::solve(), and NOX::Abstract::MultiVector::subView().
      
  | 
  virtual | 
Solves the transpose of 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. Note that for the transpose solve B must be of type LOCA::MultiContinuation::ConstraintInterfaceMVDX.
Implements LOCA::BorderedSolver::AbstractStrategy.
References NOX::Abstract::MultiVector::clone(), Teuchos::RCP< T >::get(), Teuchos::ParameterList::get(), LOCA::MultiContinuation::ConstraintInterfaceMVDX::getDX(), NOX::Abstract::MultiVector::numVectors(), NOX::Abstract::MultiVector::setBlock(), LOCA::BorderedSolver::UpperTriangularBlockElimination::solveTranspose(), LOCA::BorderedSolver::LowerTriangularBlockElimination::solveTranspose(), and NOX::Abstract::MultiVector::subView().
      
  | 
  virtual | 
Computed extended matrix transpose-multivector product.
Computes
Implements LOCA::BorderedSolver::AbstractStrategy.
References NOX::Abstract::Group::Failed, Teuchos::SerialDenseMatrix< OrdinalType, ScalarType >::multiply(), NOX::Abstract::MultiVector::multiply(), Teuchos::NO_TRANS, and Teuchos::TRANS.
      
  | 
  virtual | 
Intialize solver for a solve.
This should be called after setMatrixBlocks(), but before applyInverse().
Implements LOCA::BorderedSolver::AbstractStrategy.
References NOX::Abstract::Group::Ok.
      
  | 
  virtual | 
Intialize solver for a transpose solve.
This should be called after setMatrixBlocks(), but before applyInverseTranspose().
Implements LOCA::BorderedSolver::AbstractStrategy.
References NOX::Abstract::Group::Ok.
      
  | 
  virtual | 
Set blocks.
The blockA or blockC pointer may be null if either is zero. Whether block B is zero will be determined by querying blockB via ConstraintInterface::isConstraintDerivativesXZero. 
Implements LOCA::BorderedSolver::AbstractStrategy.
 1.8.5