FEI
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
base
snl_fei_Factory.hpp
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>
15
#include <snl_fei_Broker_FEData.hpp>
16
#include <snl_fei_Broker_LinSysCore.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>
25
#include <fei_MatrixGraph_Impl2.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
:
38
Factory
(MPI_Comm comm,
fei::SharedPtr<LibraryWrapper>
wrapper);
39
41
Factory
(MPI_Comm comm,
fei::SharedPtr<LinearSystemCore>
lsc);
42
44
Factory
(MPI_Comm comm,
45
fei::SharedPtr<FiniteElementData>
feData,
int
nodeIDType);
46
48
virtual
~Factory
();
49
50
52
fei::SharedPtr<fei::Factory>
clone
()
const
;
53
55
virtual
void
parameters
(
const
fei::ParameterSet
& parameterset);
56
59
virtual
fei::SharedPtr<fei::MatrixGraph>
60
createMatrixGraph
(
fei::SharedPtr<fei::VectorSpace>
rowSpace,
61
fei::SharedPtr<fei::VectorSpace>
columnSpace,
62
const
char
* name);
63
65
virtual
fei::SharedPtr<fei::Vector>
66
createVector
(
fei::SharedPtr<fei::VectorSpace>
vecSpace,
67
int
numVectors=1);
68
70
virtual
fei::SharedPtr<fei::Vector>
createVector
(
fei::SharedPtr<fei::VectorSpace>
vecSpace,
71
bool
isSolutionVector,
72
int
numVectors=1);
73
75
virtual
fei::SharedPtr<fei::Vector>
76
createVector
(
fei::SharedPtr<fei::MatrixGraph>
matrixGraph,
77
int
numVectors=1);
78
80
virtual
fei::SharedPtr<fei::Vector>
81
createVector
(
fei::SharedPtr<fei::MatrixGraph>
matrixGraph,
82
bool
isSolutionVector,
83
int
numVectors=1);
84
86
virtual
fei::SharedPtr<fei::Matrix>
createMatrix
(
fei::SharedPtr<fei::MatrixGraph>
matrixGraph);
87
90
virtual
fei::SharedPtr<fei::LinearSystem>
91
createLinearSystem
(
fei::SharedPtr<fei::MatrixGraph>
& matrixGraph);
92
94
virtual
fei::SharedPtr<fei::Solver>
createSolver
(
const
char
* name=0);
95
97
fei::SharedPtr<LibraryWrapper>
get_LibraryWrapper
()
const
;
98
99
int
getOutputLevel
()
const
;
100
101
private
:
102
int
createBroker(
fei::SharedPtr<fei::MatrixGraph>
matrixGraph);
103
104
int
createBroker_LinSysCore(
fei::SharedPtr<fei::MatrixGraph>
matrixGraph,
105
fei::SharedPtr<LinearSystemCore>
lsc);
106
107
int
createBroker_FEData(
fei::SharedPtr<fei::MatrixGraph>
matrixGraph,
108
fei::SharedPtr<FiniteElementData>
feData);
109
110
MPI_Comm comm_;
111
fei::SharedPtr<snl_fei::Broker>
broker_;
112
fei::SharedPtr<fei::MatrixGraph>
matrixGraph_;
113
fei::SharedPtr<fei::Reducer>
reducer_;
114
115
int
nodeIDType_;
116
117
fei::SharedPtr<LinearSystemCore>
lsc_;
118
fei::SharedPtr<FiniteElementData>
feData_;
119
fei::SharedPtr<LibraryWrapper>
wrapper_;
120
int
outputLevel_;
121
bool
blockMatrix_;
122
};
//class Factory
123
}
//namespace snl_fei
124
125
#endif
// _snl_fei_Factory_hpp_
126
fei::Factory
Definition
fei_Factory.hpp:42
fei::ParameterSet
Definition
fei_ParameterSet.hpp:46
fei::SharedPtr
Definition
fei_SharedPtr.hpp:65
snl_fei::Factory::get_LibraryWrapper
fei::SharedPtr< LibraryWrapper > get_LibraryWrapper() const
Definition
snl_fei_Factory.cpp:307
snl_fei::Factory::createSolver
virtual fei::SharedPtr< fei::Solver > createSolver(const char *name=0)
Definition
snl_fei_Factory.cpp:299
snl_fei::Factory::createVector
virtual fei::SharedPtr< fei::Vector > createVector(fei::SharedPtr< fei::VectorSpace > vecSpace, int numVectors=1)
Definition
snl_fei_Factory.cpp:167
snl_fei::Factory::Factory
Factory(MPI_Comm comm, fei::SharedPtr< LibraryWrapper > wrapper)
Definition
snl_fei_Factory.cpp:16
snl_fei::Factory::~Factory
virtual ~Factory()
Definition
snl_fei_Factory.cpp:68
snl_fei::Factory::createMatrixGraph
virtual fei::SharedPtr< fei::MatrixGraph > createMatrixGraph(fei::SharedPtr< fei::VectorSpace > rowSpace, fei::SharedPtr< fei::VectorSpace > columnSpace, const char *name)
Definition
snl_fei_Factory.cpp:156
snl_fei::Factory::createLinearSystem
virtual fei::SharedPtr< fei::LinearSystem > createLinearSystem(fei::SharedPtr< fei::MatrixGraph > &matrixGraph)
Definition
snl_fei_Factory.cpp:274
snl_fei::Factory::createMatrix
virtual fei::SharedPtr< fei::Matrix > createMatrix(fei::SharedPtr< fei::MatrixGraph > matrixGraph)
Definition
snl_fei_Factory.cpp:249
snl_fei::Factory::clone
fei::SharedPtr< fei::Factory > clone() const
Definition
snl_fei_Factory.cpp:74
snl_fei::Factory::getOutputLevel
int getOutputLevel() const
Definition
snl_fei_Factory.cpp:313
snl_fei::Factory::parameters
virtual void parameters(const fei::ParameterSet ¶meterset)
Definition
snl_fei_Factory.cpp:92
Generated by
1.17.0