42 #ifndef ALAP_DIRECT_SPARSE_SOLVER_MA28_H
43 #define ALAP_DIRECT_SPARSE_SOLVER_MA28_H
49 #include "AbstractLinAlgPack_DirectSparseSolverImp.hpp"
50 #include "AbstractLinAlgPack_MA28Solver.hpp"
51 #include "DenseLinAlgPack_DVectorClass.hpp"
52 #include "DenseLinAlgPack_IVector.hpp"
55 namespace AbstractLinAlgPack {
106 ,value_type tol = 0.0
107 ,index_type nsrch = 4
109 ,
bool print_ma28_outputs =
false
110 ,
const std::string& output_file_name =
""
143 ,
const Vector& v_rhs2)
const ;
177 std::valarray<index_type> ivect_;
178 std::valarray<index_type> jvect_;
179 std::valarray<index_type> icn_;
180 std::valarray<index_type> ikeep_;
200 std::valarray<value_type> a_;
239 SLOW_ITER_CONV = -17,
241 MA28BD_CALLED_WITH_DROPPED = -15,
242 DUPLICATE_ELEMENTS = -14,
243 NEW_NONZERO_ELEMENT = -13,
244 N_OUT_OF_RANGE = -11,
248 ERROR_DURRING_BLOCK_TRI = -7,
249 LICN_AND_LIRN_TOO_SMALL = -6,
251 LICN_FAR_TOO_SMALL = -4,
253 NUMERICALLY_SINGULAR = -2,
254 STRUCTURALLY_SINGULAR = -1,
255 SUCCESSFUL_DECOMP_ON_STRUCT_SINGULAR = 1,
256 SUCCESSFUL_DECOMP_ON_NUMER_SINGULAR = 2
262 value_type estimated_fillin_ratio_;
264 int file_output_num_;
270 void set_ma28_parameters( FactorizationStructureMA28* fs );
273 void print_ma28_outputs(
276 ,
const FactorizationStructureMA28 &fs
277 ,
const value_type w[]
282 void ThrowIFlagException(index_type iflag);
291 #endif // ALAP_DIRECT_SPARSE_SOLVER_MA28_H
DirectSparseSolverMA28(value_type estimated_fillin_ratio=10.0, value_type u=0.1, bool grow=false, value_type tol=0.0, index_type nsrch=4, bool lbig=false, bool print_ma28_outputs=false, const std::string &output_file_name="")
Default constructor.
Teuchos::RCP< const Teuchos::AbstractFactory< BasisMatrix > > basis_matrix_factory_ptr_t
Abstract interface for immutable, finite dimensional, coordinate vectors {abstract}.
Stores the factorization nonzeros for MA28.
const Teuchos::RCP< FactorizationNonzeros > create_fact_nonzeros() const
Concreate sparse solver subclass that uses MA28.
Teuchos::RCP< BasisMatrixImp > create_matrix() const
const Teuchos::RCP< FactorizationStructure > create_fact_struc() const
void V_InvMtV(VectorMutable *v_lhs, BLAS_Cpp::Transp trans_rhs1, const Vector &v_rhs2) const
const basis_matrix_factory_ptr_t basis_matrix_factory() const
void imp_factor(const AbstractLinAlgPack::MatrixConvertToSparse &A, const FactorizationStructure &fact_struc, FactorizationNonzeros *fact_nonzeros, std::ostream *out)
Mix-in interface for extracing explicit elements from a sparse matrix in one of several Fortran compa...
Implementation node class for DirectSparseSolver that takes care of the memory management details...
Abstract class for objects that represent the factorization structure of a particular matrix...
Implements the BasisMatrix object for MA28.
Abstract interface for mutable coordinate vectors {abstract}.
void estimated_fillin_ratio(value_type estimated_fillin_ratio)
Stores the factorization structure for MA28.
Abstract class for objects that represent the factorization nonzeros of a particular matrix...
STANDARD_MEMBER_COMPOSITION_MEMBERS(value_type, u)
Pivot tolerance versus sparsity.
MA28 Basic Encapsulation Class.
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)