-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathLocalMatrices.hpp
More file actions
46 lines (30 loc) · 1.6 KB
/
LocalMatrices.hpp
File metadata and controls
46 lines (30 loc) · 1.6 KB
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
#ifndef _LOC_MAT_HPP
#define _LOC_MAT_HPP
#include "Mesh.hpp"
#include "GeometricEntities.hpp"
#include "DataEikonal.hpp"
class LocalMatrices
{
public:
typedef const std::vector<double> (*difftensor_type)(const Element & , const std::vector<double> & );
LocalMatrices();
LocalMatrices(const Mesh* theGeoMesh);
LocalMatrices(const Mesh* theGeoMesh, const DataEikonal * theData);
~LocalMatrices();
inline void setMesh(const Mesh* theGeoMesh){_geoMesh=theGeoMesh;};
inline void setData(const DataEikonal * theData){_data=theData; if(_data!=NULL){_with_data=true;}};
inline const Mesh* mesh() const {return(_geoMesh); };
inline const DataEikonal *data() const {return(_data);};
// Local matrices, row-major ordered
std::vector<double> aniso_local_stiffness(const Element & GeoEle, const Element & VarEle, const GaussIntegrator & quadRule, difftensor_type condtens );
std::vector<double> aniso_local_stiffness(const Element & GeoEle, const Element & VarEle, const GaussIntegrator & quadRule);
std::vector<double> iso_local_stiffness(const Element & GeoEle, const Element & VarEle, const GaussIntegrator & quadRule );
std::vector<double> iso_local_stiffnessTetra(const size_t & iTet);
std::vector<double> aniso_local_stiffnessTetra(const size_t & iTet);
std::vector<double> local_mass(const Element & GeoEle, const Element & VarEle, const GaussIntegrator & quadRule );
protected:
const Mesh * _geoMesh;
const DataEikonal * _data;
bool _with_data;
};
#endif