-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathElement.h
52 lines (36 loc) · 1.03 KB
/
Element.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
44
45
46
47
48
49
50
51
52
#ifndef ELEMENT_H
#define ELEMENT_H
#include <iostream>
#include <valarray>
#include "Fe.h"
#include "Model.h"
#include "Matrix.h"
namespace fesolv {
using namespace fe;
using femath::Matrix;
using femath::IntVector;
using femath::DoubleVector;
class Element
{
public:
Element(Model* model, FEint number);
virtual ~Element();
FEint GetNumber() const { return _number;}
FEint GetNumberOfNodes() const { return _numberofnodes;}
FEint GetDimension() const { return _dimension;}
//virual Part
virtual void GetStiffnessMatrix(Matrix<FEdouble>* mat)=0;
virtual void GetStiffnessNumberVector(IntVector* vec)=0;
protected:
void NumberToInsertPosition(IntVector* vec);
FEint _numberofnodes;
FEint _number;
FEint _dimension;
Model* _model;
};
std::ostream& operator<<(std::ostream& fout, Element* element);
std::ostream& operator<<(std::ostream& fout, DoubleVector* vec);
std::ostream& operator<<(std::ostream& fout, Matrix<FEdouble>* mat);
std::ostream& operator<<(std::ostream& fout, Matrix<FEdouble> mat);
}//end namespace
#endif