Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
ElmerCSC
GitHub Repository: ElmerCSC/elmerfem
Path: blob/devel/meshgen2d/src/include/BGMesh.h
3203 views
1
#if !defined( MESH_BGMESH_H )
2
#define MESH_BGMESH_H
3
4
#include "Connect.h"
5
6
class BGMesh
7
{
8
public:
9
BGMesh() { initialized = false; }
10
11
virtual double interpolate( const double ix, const double iy ) = 0;
12
virtual void initialize(std::vector< GeometryNode* >& nodes, std::vector< GeometryEdge* >& edges) = 0;
13
14
bool isInitialized() { return initialized; }
15
16
protected:
17
bool initialized;
18
};
19
20
class BGTriangleMesh : public Connect, public BGMesh
21
{
22
public:
23
BGTriangleMesh() : Connect(-1) { }
24
25
virtual void discretize(NodeMap& fixedNodes, NodeMap& allNodes,
26
std::list< Element* >& allElements) { }
27
28
virtual void initialize(std::vector< GeometryNode* >& nodes, std::vector< GeometryEdge* >& edges);
29
30
void getVertices( std::vector< Vertex * >& v, const int count );
31
32
virtual double interpolate( const double ix, const double iy );
33
void dump();
34
};
35
36
class BGGridMesh : public BGMesh
37
{
38
public:
39
BGGridMesh(double scale) { cellsize = scale; }
40
41
virtual double interpolate( const double ix, const double iy );
42
virtual void initialize(std::vector< GeometryNode* >& nodes, std::vector< GeometryEdge* >& edges);
43
44
protected:
45
int nh, nv;
46
double cellsize;
47
double ox, oy, width, height;
48
double *grid;
49
};
50
51
#endif /* MESH_BGMESH_H */
52
53