ESyS-Particle
2.2
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
Mesh2D.h
Go to the documentation of this file.
1
2
// //
3
// Copyright (c) 2003-2013 by The University of Queensland //
4
// Earth Systems Science Computational Centre (ESSCC) //
5
// http://www.uq.edu.au/esscc //
6
// //
7
// Primary Business: Brisbane, Queensland, Australia //
8
// Licensed under the Open Software License version 3.0 //
9
// http://www.opensource.org/licenses/osl-3.0.php //
10
// //
12
13
#ifndef __MESH2D_H
14
#define __MESH2D_H
15
16
// -- Project includes --
17
#include "
Geometry/Edge2D.h
"
18
#include "
Geometry/Corner2D.h
"
19
#include "
Model/MeshData2D.h
"
20
#include "
Foundation/vec3.h
"
21
22
// -- STL includes --
23
#include <vector>
24
#include <map>
25
#include <string>
26
27
using
std::vector;
28
using
std::multimap;
29
using
std::map;
30
using
std::string;
31
32
// -- IO includes ---
33
#include <iostream>
34
35
using
std::ostream;
36
37
//--- TML includes ---
38
#include "
tml/comm/comm.h
"
39
46
class
Mesh2D
47
{
48
private
:
49
vector<Edge2D>
m_edges
;
50
vector<Corner2D>
m_corners
;
51
map<int,int>
m_corner_by_id
;
52
multimap<int,Edge2D*>
m_edge_by_node_id
;
53
map<int,int>
m_edge_index_by_id
;
54
55
public
:
56
// types
57
typedef
vector<Edge2D>::iterator
edge_iterator
;
58
typedef
vector<Corner2D>::iterator
corner_iterator
;
59
60
// functions
61
Mesh2D
();
62
virtual
~Mesh2D
(){};
63
void
LoadMesh
(
const
vector<MeshNodeData2D>&,
const
vector<MeshEdgeData2D>&);
64
void
moveNode
(
int
,
const
Vec3
&);
65
void
translateBy
(
const
Vec3
&translation);
66
67
edge_iterator
edges_begin
(){
return
m_edges
.begin();};
68
edge_iterator
edges_end
(){
return
m_edges
.end();};
69
corner_iterator
corners_begin
(){
return
m_corners
.begin();};
70
corner_iterator
corners_end
(){
return
m_corners
.end();};
71
Edge2D
*
getEdgeById
(
int
);
72
Corner2D
*
getCornerById
(
int
);
73
74
void
zeroForces
();
75
virtual
void
writeCheckPoint
(ostream&,
const
string
&)
const
;
76
virtual
void
loadCheckPoint
(istream&);
77
78
// edge data access functions
79
template
<
typename
P>
void
forAllEdgesGet
(P&,
typename
P::value_type (
Edge2D
::*rdf)()
const
);
80
template
<
typename
P> vector<pair<int,P> >
forAllEdgesGetIndexed
(P (
Edge2D
::*rdf)()
const
);
81
};
82
83
#include "
Mesh2D.hpp
"
84
85
#endif // __MESH2D_H
Model
Mesh2D.h
Generated on Mon May 6 2013 23:26:30 for ESyS-Particle by
1.8.3.1