44#ifndef _fei_Factory_Aztec_hpp_
45#define _fei_Factory_Aztec_hpp_
47#include "fei_trilinos_macros.hpp"
51#include <fei_Aztec_LSVector.hpp>
52#include <fei_AztecDMSR_Matrix.hpp>
54#include <fei_Factory.hpp>
55#include <fei_ParameterSet.hpp>
56#include <fei_Reducer.hpp>
57#include <fei_Vector_Impl.hpp>
58#include <fei_Matrix_Impl.hpp>
59#include <fei_MatrixGraph_Impl2.hpp>
60#include <fei_SparseRowGraph.hpp>
61#include <fei_utils.hpp>
64#define fei_file "fei_Factory_Aztec.hpp"
65#include <fei_ErrMacros.hpp>
72 Factory_Aztec(MPI_Comm comm);
74 virtual ~Factory_Aztec();
77 fei::SharedPtr<fei::Factory> clone()
const
79 fei::SharedPtr<fei::Factory> factory(
new Factory_Aztec(comm_));
84 int parameters(
int numParams,
const char*
const* paramStrings);
87 void parameters(
const fei::ParameterSet& parameterset);
89 fei::SharedPtr<fei::MatrixGraph>
90 createMatrixGraph(fei::SharedPtr<fei::VectorSpace> rowSpace,
91 fei::SharedPtr<fei::VectorSpace> colSpace,
92 const char* name = NULL);
95 fei::SharedPtr<fei::Vector>
96 createVector(fei::SharedPtr<fei::VectorSpace> vecSpace,
int numVectors=1);
99 fei::SharedPtr<fei::Vector>
100 createVector(fei::SharedPtr<fei::VectorSpace> vecSpace,
101 bool isSolutionVector,
105 fei::SharedPtr<fei::Vector>
106 createVector(fei::SharedPtr<fei::MatrixGraph> matrixGraph,
110 fei::SharedPtr<fei::Vector>
111 createVector(fei::SharedPtr<fei::MatrixGraph> matrixGraph,
112 bool isSolutionVector,
115 fei::SharedPtr<fei::Matrix>
116 createMatrix(fei::SharedPtr<fei::MatrixGraph> matrixGraph);
118 fei::SharedPtr<fei::Solver> createSolver(
const char* name=0);
120 int getOutputLevel()
const {
return(outputLevel_); }
125 fei::SharedPtr<fei::Reducer> reducer_;
126 bool blockEntryMatrix_;