Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
ElmerCSC
GitHub Repository: ElmerCSC/elmerfem
Path: blob/devel/meshgen2d/src/include/QuadLayer.h
3203 views
1
#if !defined( BL_QUADLAYER_H )
2
#define BL_QUADLAYER_H
3
#include <iostream>
4
5
#include "Layer.h"
6
#include "Border.h"
7
#include "MGError.h"
8
9
class Node;
10
class MeshNode;
11
12
typedef std::map< int, Node * > NodeMap;
13
typedef std::map< int, Node * >::iterator NodeMapIt;
14
15
class QuadLayer : public Layer
16
{
17
public:
18
QuadLayer(const int t) : Layer(t) { grid = (MeshNode **) 0; }
19
20
void sanityCheck()
21
{
22
if( edges.size() == 4 )
23
{
24
if(!(edges[0]->size() == edges[2]->size() && edges[1]->size() == edges[3]->size()))
25
{
26
blm_error("Grid mismatch");
27
}
28
}
29
else
30
{
31
blm_error("Not a grid", tag);
32
}
33
}
34
35
virtual void setBounds( Border *bd )
36
{
37
bounds = bd;
38
// bounds is simply a single loop
39
bounds->copyLoop( nodes, edges, directions );
40
}
41
42
virtual void initialize() { }
43
44
void discretize(NodeMap& fixedNodes, NodeMap& allNodes, std::list< Element* >& allElements);
45
protected:
46
void makeGrid( NodeMap& allNodes, const int m, const int n );
47
MeshNode **grid;
48
};
49
#endif /* BL_QUADLAYER_H */
50
51