45 #ifndef STOKHOS_INVERSEPRECONDITIONER_HPP 46 #define STOKHOS_INVERSEPRECONDITIONER_HPP 48 #include "Teuchos_RCP.hpp" 50 #include "Teuchos_SerialDenseMatrix.hpp" 51 #include "Teuchos_SerialDenseSolver.hpp" 55 template <
typename ordinal_type,
typename value_type>
62 const Teuchos::SerialDenseMatrix<ordinal_type,double> & A_) :
A(A_) {}
68 const Teuchos::SerialDenseMatrix<ordinal_type, value_type>& Input,
69 Teuchos::SerialDenseMatrix<ordinal_type, value_type>& Result,
71 Teuchos::RCP< Teuchos::SerialDenseMatrix<ordinal_type, value_type> > AA, UU, RR;
72 AA = Teuchos::rcp(
new Teuchos::SerialDenseMatrix<ordinal_type, value_type> (Teuchos::Copy,
A));
73 UU = Teuchos::rcp(
new Teuchos::SerialDenseMatrix<ordinal_type, value_type> (Teuchos::Copy,Result));
74 RR = Teuchos::rcp(
new Teuchos::SerialDenseMatrix<ordinal_type, value_type> (Teuchos::Copy,Input));
77 Teuchos::SerialDenseSolver<ordinal_type, value_type> solver;
79 solver.setVectors(UU, RR);
81 if (solver.shouldEquilibrate()) {
82 solver.factorWithEquilibration(
true);
83 solver.equilibrateMatrix();
88 Result(i,0)=(*UU)(i,0);
94 const Teuchos::SerialDenseMatrix<ordinal_type,value_type> &
A;
99 #endif // STOKHOS_INVERSEPRECONDITIONER_HPP virtual ~InversePreconditioner()
Destructor.
const Teuchos::SerialDenseMatrix< ordinal_type, value_type > & A
InversePreconditioner(const Teuchos::SerialDenseMatrix< ordinal_type, double > &A_)
Constructor.
Top-level namespace for Stokhos classes and functions.
virtual ordinal_type ApplyInverse(const Teuchos::SerialDenseMatrix< ordinal_type, value_type > &Input, Teuchos::SerialDenseMatrix< ordinal_type, value_type > &Result, ordinal_type m) const