Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
ElmerCSC
GitHub Repository: ElmerCSC/elmerfem
Path: blob/devel/meshgen2d/src/include/Body.h
3203 views
1
#if !defined( MESH_BODY_H )
2
#define MESH_BODY_H
3
4
#include <vector>
5
#include "Layer.h"
6
7
class Body
8
{
9
public:
10
Body(const int t, bool p) { tag = t; parabolic = p; }
11
void addLayer( Layer* l) { layers.push_back( l ); }
12
void discretize(NodeMap& fixedNodes, NodeMap& allNodes, std::list< Element* >& allElements)
13
{
14
std::list< Element* > elements;
15
int len = layers.size();
16
int i;
17
for( i = 0; i < len; ++i )
18
{
19
layers[i]->sanityCheck();
20
layers[i]->discretize( fixedNodes, allNodes, elements );
21
}
22
23
std::list< Element* >::iterator e;
24
for (e = elements.begin(); e != elements.end(); e++)
25
(*e)->setBody(tag);
26
27
allElements.insert(allElements.end(), elements.begin(), elements.end());
28
}
29
30
bool isParabolic() const { return parabolic; }
31
32
int tag;
33
protected:
34
std::vector< Layer * > layers;
35
bool parabolic;
36
};
37
38
#endif /* MESH_BODY_H */
39
40