FEI Package Browser (Single Doxygen Collection)  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
snl_fei_Factory.hpp
Go to the documentation of this file.
1 /*--------------------------------------------------------------------*/
2 /* Copyright 2005 Sandia Corporation. */
3 /* Under the terms of Contract DE-AC04-94AL85000, there is a */
4 /* non-exclusive license for use of this work by or on behalf */
5 /* of the U.S. Government. Export of this program may require */
6 /* a license from the United States Government. */
7 /*--------------------------------------------------------------------*/
8 
9 #ifndef _snl_fei_Factory_hpp_
10 #define _snl_fei_Factory_hpp_
11 
12 #include <fei_macros.hpp>
13 #include <fei_Factory.hpp>
14 #include <fei_VectorSpace.hpp>
17 #include <fei_Solver.hpp>
18 #include <fei_LinearSystemCore.hpp>
19 #include <fei_LibraryWrapper.hpp>
20 #include <fei_utils.hpp>
21 #include <fei_Reducer.hpp>
22 #include <fei_MatrixReducer.hpp>
23 #include <fei_VectorReducer.hpp>
24 #include <fei_ParameterSet.hpp>
26 
27 #undef fei_file
28 #define fei_file "snl_fei_Factory.hpp"
29 #include <fei_ErrMacros.hpp>
30 
31 namespace snl_fei {
32 
35  class Factory : public virtual fei::Factory {
36  public:
39 
42 
44  Factory(MPI_Comm comm,
45  fei::SharedPtr<FiniteElementData> feData, int nodeIDType);
46 
48  virtual ~Factory();
49 
50 
53 
55  virtual void parameters(const fei::ParameterSet& parameterset);
56 
62  const char* name);
63 
67  int numVectors=1);
68 
71  bool isSolutionVector,
72  int numVectors=1);
73 
77  int numVectors=1);
78 
82  bool isSolutionVector,
83  int numVectors=1);
84 
87 
92 
94  virtual fei::SharedPtr<fei::Solver> createSolver(const char* name=0);
95 
98 
99  int getOutputLevel() const;
100 
101  private:
103 
106 
109 
114 
116 
122  };//class Factory
123 }//namespace snl_fei
124 
125 #endif // _snl_fei_Factory_hpp_
126 
fei::SharedPtr< LibraryWrapper > wrapper_
int createBroker(fei::SharedPtr< fei::MatrixGraph > matrixGraph)
int createBroker_LinSysCore(fei::SharedPtr< fei::MatrixGraph > matrixGraph, fei::SharedPtr< LinearSystemCore > lsc)
virtual fei::SharedPtr< fei::MatrixGraph > createMatrixGraph(fei::SharedPtr< fei::VectorSpace > rowSpace, fei::SharedPtr< fei::VectorSpace > columnSpace, const char *name)
fei::SharedPtr< LibraryWrapper > get_LibraryWrapper() const
fei::SharedPtr< fei::Factory > clone() const
virtual fei::SharedPtr< fei::LinearSystem > createLinearSystem(fei::SharedPtr< fei::MatrixGraph > &matrixGraph)
#define MPI_Comm
Definition: fei_mpi.h:56
fei::SharedPtr< snl_fei::Broker > broker_
int createBroker_FEData(fei::SharedPtr< fei::MatrixGraph > matrixGraph, fei::SharedPtr< FiniteElementData > feData)
virtual void parameters(const fei::ParameterSet &parameterset)
int getOutputLevel() const
virtual fei::SharedPtr< fei::Matrix > createMatrix(fei::SharedPtr< fei::MatrixGraph > matrixGraph)
virtual fei::SharedPtr< fei::Solver > createSolver(const char *name=0)
fei::SharedPtr< fei::MatrixGraph > matrixGraph_
virtual fei::SharedPtr< fei::Vector > createVector(fei::SharedPtr< fei::VectorSpace > vecSpace, int numVectors=1)
fei::SharedPtr< LinearSystemCore > lsc_
fei::SharedPtr< FiniteElementData > feData_
fei::SharedPtr< fei::Reducer > reducer_