42 #ifndef ALAP_DIRECT_SPARSE_SOLVER_IMP_H
43 #define ALAP_DIRECT_SPARSE_SOLVER_IMP_H
45 #include "AbstractLinAlgPack_DirectSparseSolver.hpp"
46 #include "AbstractLinAlgPack_VectorSpaceSerial.hpp"
48 namespace AbstractLinAlgPack {
50 class DirectSparseSolverImp;
132 size_type
rows()
const;
134 size_type
cols()
const;
207 #ifdef DOXYGEN_COMPILE
267 ,FactorizationStructure *fact_struc
272 ,std::ostream *out = NULL
282 ,
const FactorizationStructure &fact_struc
284 ,std::ostream *out = NULL
291 #ifdef DOXYGEN_COMPILE
292 FactorizationStructure *fact_struc;
302 #endif // ALAP_DIRECT_SPARSE_SOLVER_IMP_H
BasisMatrixImp()
Default initializers to uninitialized.
const BasisMatrix::fact_struc_ptr_t & get_fact_struc() const
Abstract class for objects that represent the factorized matrix and can be used to solve for differen...
virtual const fact_struc_ptr_t & get_fact_struc() const
virtual const fact_nonzeros_ptr_t & get_fact_nonzeros() const
Return a reference to a smart pointer to the object that represents the factorization nonzeros...
virtual Teuchos::RCP< BasisMatrixImp > create_matrix() const =0
Called by this->clone-mns().
virtual const Teuchos::RCP< FactorizationStructure > create_fact_struc() const =0
Create a new, uninitialized FactorizationStructure object.
virtual const Teuchos::RCP< FactorizationNonzeros > create_fact_nonzeros() const =0
Create a new, uninitialized FactorizationNonzeros object.
void factor(const AbstractLinAlgPack::MatrixConvertToSparse &A, BasisMatrix *basis_matrix, const BasisMatrix::fact_struc_ptr_t &fact_struc, std::ostream *out)
Abstract interface for objects that represent a space for mutable coordinate vectors.
virtual void imp_analyze_and_factor(const AbstractLinAlgPack::MatrixConvertToSparse &A, FactorizationStructure *fact_struc, FactorizationNonzeros *fact_nonzeros, DenseLinAlgPack::IVector *row_perm, DenseLinAlgPack::IVector *col_perm, size_type *rank, std::ostream *out=NULL)=0
Called to implement the analyze_and_factor() without having to worry about memory mangagment details...
Mix-in interface for extracing explicit elements from a sparse matrix in one of several Fortran compa...
virtual void initialize(size_type dim, const fact_struc_ptr_t &fact_struc, const fact_nonzeros_ptr_t &fact_nonzeros)
Initialize given initialized factorization structure and factorization nonzeros objects.
Teuchos::RCP< FactorizationStructure > fact_struc_ptr_t
void analyze_and_factor(const AbstractLinAlgPack::MatrixConvertToSparse &A, DenseLinAlgPack::IVector *row_perm, DenseLinAlgPack::IVector *col_perm, size_type *rank, BasisMatrix *basis_matrix, std::ostream *out)
Implementation node class for DirectSparseSolver that takes care of the memory management details...
void set_uninitialized()
Make uninitialized.
Implementation node subclass that combines factorization structure and factorization nonzeros into a ...
Abstract class for objects that represent the factorization structure of a particular matrix...
virtual void imp_factor(const AbstractLinAlgPack::MatrixConvertToSparse &A, const FactorizationStructure &fact_struc, FactorizationNonzeros *fact_nonzeros, std::ostream *out=NULL)=0
Called to implement the analyze_and_factor() without having to worry about memory mangagment details...
virtual ~FactorizationNonzeros()
const VectorSpace & space_rows() const
Abstract class for objects that represent the factorization nonzeros of a particular matrix...
Teuchos::RCP< FactorizationNonzeros > fact_nonzeros_ptr_t
Subclass for serial vector space objects that create VectorMutableDense vector and MultiVectorMutable...
const VectorSpace & space_cols() const
mat_mns_mut_ptr_t clone_mns()
Abstract interface to serial direct sparse linear solvers.