-
Notifications
You must be signed in to change notification settings - Fork 2
/
AbstractSolver.h
43 lines (34 loc) · 951 Bytes
/
AbstractSolver.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
// AbstractSolver.h: Schnittstelle für die Klasse AbstractSolver.
//
//////////////////////////////////////////////////////////////////////
#ifndef ABSTRACTSOLVER_H
#define ABSTRACTSOLVER_H
#include "Fe.h"
#include "Model.h"
#include "Element.h"
#include <ostream> //print matrices
namespace fesolv {
using namespace fe;
using femath::Matrix;
class AbstractSolver
{
public:
AbstractSolver(Model* model);
virtual ~AbstractSolver();
public:
virtual void Solve()=0;
void PrintData(std::ostream& out);
void PrintElementStiffnessMatrix(std::ostream& out);
void PrintSystemStiffnessMatrix(std::ostream& out);
void PrintSystemDVector(std::ostream& out);
void PrintSystemDisplacementVector(std::ostream& out);
void PrintReactionForceVector(std::ostream& out);
protected:
Model* _model;
Matrix<FEdouble>* _systemstiffnessmatrix;
DoubleVector* _d;
DoubleVector* _displacement;
DoubleVector* _reactionforce;
};
} //end namespace
#endif