proteus
1.9.0
C/C++/Fortran libraries
Toggle main menu visibility
Loading...
Searching...
No Matches
work
cekees
proteus
proteus
Domain.h
Go to the documentation of this file.
1
#ifndef DOMAIN_H
2
#define DOMAIN_H
3
4
#include <iostream>
5
#include <vector>
6
#include <utility>
7
8
using namespace
std;
9
10
class
D_base
11
{
12
public
:
13
D_base
(
int
dimIn = 3,
string
nameIn =
string
(
"Domain"
),
string
unitsIn =
string
(
"m"
));
14
virtual
void
writeAsymptote
(
const
char
* filename)=0;
15
virtual
void
writePoly
(
const
char
* filename)=0;
16
//virtual void writeXdmf()=0;
17
int
dim
;
18
string
name
;
19
string
units
;
20
vector<double>
x
;
//minx, miny, minz
21
vector<double>
L
;
//bounding box when x is origin
22
};
23
24
class
RectangularDomain
:
public
D_base
25
{
26
public
:
27
RectangularDomain
(
int
dimIn = 3,
string
nameIn =
string
(
"Domain"
),
string
unitsIn =
string
(
"m"
));
28
RectangularDomain
(
double
x0 ,
double
Lx,
string
nameIn =
string
(
"Domain"
),
string
unitsIn =
string
(
"m"
));
29
RectangularDomain
(
double
x0,
double
y0,
double
Lx,
double
Ly,
string
nameIn =
string
(
"Domain"
),
string
unitsIn =
string
(
"m"
));
30
RectangularDomain
(
double
x0,
double
y0,
double
z0,
double
Lx,
double
Ly,
double
Lz,
string
nameIn =
string
(
"Domain"
),
string
unitsIn =
string
(
"m"
));
31
void
writePoly
(
const
char
* filename);
32
void
writeAsymptote
(
const
char
* filename);
33
//void writeXdmf();
34
};
35
36
class
PlanarStraightLineGraphDomain
:
public
D_base
37
{
38
public
:
39
PlanarStraightLineGraphDomain
(
int
dimIn = 2,
string
nameIn =
string
(
"Domain"
),
string
unitsIn =
string
(
"m"
));
40
PlanarStraightLineGraphDomain
(
const
vector<vector<double> >& verticesIn,
const
vector< vector<int> >& segmentsIn,
const
vector< vector<double> >& holesIn,
const
vector<double>& regionsIn,
const
vector<int>& vertexFlagsIn,
const
vector<int>& segmentFlagsIn,
string
nameIn =
string
(
"Domain"
),
string
unitsIn =
string
(
"m"
));
41
virtual
~PlanarStraightLineGraphDomain
();
42
43
void
getSegmentPartition
(vector<int>&
s
);
44
void
getBoundingBox
(vector<double>&
v
);
45
void
readPoly
(
const
char
* filename);
46
void
writePoly
(
const
char
* filename);
47
void
writeAsymptote
(
const
char
* filename);
48
vector<vector<double> >
vertices
;
49
vector< vector<int> >
segments
;
50
vector< vector<double> >
holes
;
51
vector<double>
regions
;
52
vector<int>
nVertices
;
53
vector<int>
nVertexAttributes
;
54
vector<int>
vertexAttributes
;
55
vector<int>
vertexFlags
;
56
vector<int>
segmentFlags
;
57
vector<int>
regionFlags
;
58
vector<double>
v
;
59
vector<int>
vN
;
60
vector<int>
sN
;
61
vector<int>
s
;
62
vector<int>
sFlags
;
63
vector<int>
hN
;
64
vector<double>
h
;
65
vector<int>
rN
;
66
vector<double>
r
;
67
vector<string>
line
;
68
int
xMax
,
xMin
;
69
int
yMax
,
yMin
;
70
int
sMax
,
sMin
;
71
int
hasVertexFlags
;
72
int
hasSegmentFlags
;
73
};
74
75
/* class TriangulatedSurfaceDomain:public D_base */
76
/* { */
77
/* public: */
78
/* TriangulatedSurfaceDomain(); */
79
/* virtual ~TriangulatedSurfaceDomain(); */
80
/* void readSTL(const char* filename); */
81
/* void writePoly(const char* filename); */
82
/* void writeAsymptote(const char* filename); */
83
/* vector<double[3]> vertices; */
84
/* //triangles are vectors analagous to segments in 2D */
85
/* vector<int> triangles; */
86
/* vector<double[3]> nodes; */
87
/* }; */
88
/* class Mesh2DMDomain: public D_base
89
{
90
public:
91
Mesh2DMDomain();
92
virtual ~Mesh2DMDomain();
93
};
94
class Mesh3DMDomain: D_base;
95
{
96
public:
97
Mesh3DMDomain();
98
virtual ~Mesh3DMDomain();
99
};
100
*/
101
class
PiecewiseLinearComplexDomain
:
public
D_base
102
{
103
public
:
104
PiecewiseLinearComplexDomain
(
int
dimIn = 3,
string
nameIn =
string
(
"Domain"
),
string
unitsIn =
string
(
"m"
));
105
PiecewiseLinearComplexDomain
(
const
vector<vector < vector <double> > >& verticesIn,
const
vector< vector < vector < vector <int> > > >& facetsIn,
const
vector<vector<double> >& holesIn,
const
vector<double>& regionsIn,
const
vector<int>& vertexFlagsIn,
const
vector <int>& facetFlagsIn,
string
nameIn =
string
(
"Domain"
),
string
unitsIn =
string
(
"m"
));
106
virtual
~PiecewiseLinearComplexDomain
();
107
void
getBoundingBox
(vector <double>&
v
);
108
void
readPoly
(
const
char
* filename);
109
void
writePoly
(
const
char
* filename);
110
void
writeAsymptote
(
const
char
* filename);
111
vector < vector < vector <double>
> >
vertices
;
112
vector < vector < vector <int>
> >
facets
;
113
vector<double>
regions
;
114
vector<double>
holes
;
115
vector<int>
facetHoles
;
116
vector<int>
vertexFlags
;
117
vector<int>
facetFlags
;
118
int
hasVertexFlags
;
119
int
hasFacetFlags
;
120
vector<int>
vN
;
121
vector<double>
v
;
122
vector<int>
f
;
123
vector<int>
fN
;
124
125
};
126
#endif
vector
float * vector(long nl, long nh)
D_base::writeAsymptote
virtual void writeAsymptote(const char *filename)=0
D_base::D_base
D_base(int dimIn=3, string nameIn=string("Domain"), string unitsIn=string("m"))
Definition
Domain.cpp:13
D_base::units
string units
Definition
Domain.h:19
D_base::L
vector< double > L
Definition
Domain.h:21
D_base::x
vector< double > x
Definition
Domain.h:20
D_base::dim
int dim
Definition
Domain.h:17
D_base::name
string name
Definition
Domain.h:18
D_base::writePoly
virtual void writePoly(const char *filename)=0
PiecewiseLinearComplexDomain::PiecewiseLinearComplexDomain
PiecewiseLinearComplexDomain(int dimIn=3, string nameIn=string("Domain"), string unitsIn=string("m"))
Definition
Domain.cpp:437
PiecewiseLinearComplexDomain::regions
vector< double > regions
Definition
Domain.h:113
PiecewiseLinearComplexDomain::v
vector< double > v
Definition
Domain.h:121
PiecewiseLinearComplexDomain::facetHoles
vector< int > facetHoles
Definition
Domain.h:115
PiecewiseLinearComplexDomain::readPoly
void readPoly(const char *filename)
PiecewiseLinearComplexDomain::hasVertexFlags
int hasVertexFlags
Definition
Domain.h:118
PiecewiseLinearComplexDomain::writePoly
void writePoly(const char *filename)
Definition
Domain.cpp:512
PiecewiseLinearComplexDomain::getBoundingBox
void getBoundingBox(vector< double > &v)
PiecewiseLinearComplexDomain::fN
vector< int > fN
Definition
Domain.h:123
PiecewiseLinearComplexDomain::writeAsymptote
void writeAsymptote(const char *filename)
Definition
Domain.cpp:453
PiecewiseLinearComplexDomain::f
vector< int > f
Definition
Domain.h:122
PiecewiseLinearComplexDomain::vertexFlags
vector< int > vertexFlags
Definition
Domain.h:116
PiecewiseLinearComplexDomain::facets
vector< vector< vector< int > > > facets
Definition
Domain.h:112
PiecewiseLinearComplexDomain::hasFacetFlags
int hasFacetFlags
Definition
Domain.h:119
PiecewiseLinearComplexDomain::facetFlags
vector< int > facetFlags
Definition
Domain.h:117
PiecewiseLinearComplexDomain::vN
vector< int > vN
Definition
Domain.h:120
PiecewiseLinearComplexDomain::vertices
vector< vector< vector< double > > > vertices
Definition
Domain.h:111
PiecewiseLinearComplexDomain::holes
vector< double > holes
Definition
Domain.h:114
PlanarStraightLineGraphDomain::sN
vector< int > sN
Definition
Domain.h:60
PlanarStraightLineGraphDomain::s
vector< int > s
Definition
Domain.h:61
PlanarStraightLineGraphDomain::sFlags
vector< int > sFlags
Definition
Domain.h:62
PlanarStraightLineGraphDomain::r
vector< double > r
Definition
Domain.h:66
PlanarStraightLineGraphDomain::xMin
int xMin
Definition
Domain.h:68
PlanarStraightLineGraphDomain::getSegmentPartition
void getSegmentPartition(vector< int > &s)
Definition
Domain.cpp:341
PlanarStraightLineGraphDomain::readPoly
void readPoly(const char *filename)
Definition
Domain.cpp:384
PlanarStraightLineGraphDomain::yMin
int yMin
Definition
Domain.h:69
PlanarStraightLineGraphDomain::line
vector< string > line
Definition
Domain.h:67
PlanarStraightLineGraphDomain::h
vector< double > h
Definition
Domain.h:64
PlanarStraightLineGraphDomain::sMin
int sMin
Definition
Domain.h:70
PlanarStraightLineGraphDomain::writeAsymptote
void writeAsymptote(const char *filename)
Definition
Domain.cpp:299
PlanarStraightLineGraphDomain::segmentFlags
vector< int > segmentFlags
Definition
Domain.h:56
PlanarStraightLineGraphDomain::rN
vector< int > rN
Definition
Domain.h:65
PlanarStraightLineGraphDomain::v
vector< double > v
Definition
Domain.h:58
PlanarStraightLineGraphDomain::PlanarStraightLineGraphDomain
PlanarStraightLineGraphDomain(int dimIn=2, string nameIn=string("Domain"), string unitsIn=string("m"))
Definition
Domain.cpp:209
PlanarStraightLineGraphDomain::getBoundingBox
void getBoundingBox(vector< double > &v)
Definition
Domain.cpp:358
PlanarStraightLineGraphDomain::nVertices
vector< int > nVertices
Definition
Domain.h:52
PlanarStraightLineGraphDomain::xMax
int xMax
Definition
Domain.h:68
PlanarStraightLineGraphDomain::hN
vector< int > hN
Definition
Domain.h:63
PlanarStraightLineGraphDomain::regions
vector< double > regions
Definition
Domain.h:51
PlanarStraightLineGraphDomain::hasVertexFlags
int hasVertexFlags
Definition
Domain.h:71
PlanarStraightLineGraphDomain::regionFlags
vector< int > regionFlags
Definition
Domain.h:57
PlanarStraightLineGraphDomain::vN
vector< int > vN
Definition
Domain.h:59
PlanarStraightLineGraphDomain::holes
vector< vector< double > > holes
Definition
Domain.h:50
PlanarStraightLineGraphDomain::vertexAttributes
vector< int > vertexAttributes
Definition
Domain.h:54
PlanarStraightLineGraphDomain::segments
vector< vector< int > > segments
Definition
Domain.h:49
PlanarStraightLineGraphDomain::nVertexAttributes
vector< int > nVertexAttributes
Definition
Domain.h:53
PlanarStraightLineGraphDomain::writePoly
void writePoly(const char *filename)
Definition
Domain.cpp:227
PlanarStraightLineGraphDomain::yMax
int yMax
Definition
Domain.h:69
PlanarStraightLineGraphDomain::sMax
int sMax
Definition
Domain.h:70
PlanarStraightLineGraphDomain::vertexFlags
vector< int > vertexFlags
Definition
Domain.h:55
PlanarStraightLineGraphDomain::hasSegmentFlags
int hasSegmentFlags
Definition
Domain.h:72
PlanarStraightLineGraphDomain::vertices
vector< vector< double > > vertices
Definition
Domain.h:48
RectangularDomain::writePoly
void writePoly(const char *filename)
Definition
Domain.cpp:50
RectangularDomain::writeAsymptote
void writeAsymptote(const char *filename)
Definition
Domain.cpp:112
RectangularDomain::RectangularDomain
RectangularDomain(int dimIn=3, string nameIn=string("Domain"), string unitsIn=string("m"))
Definition
Domain.cpp:19
Generated on
for proteus by
1.18.0