Main Page
Related Pages
Classes
Files
File List
File Members
src
mesh.hpp
Go to the documentation of this file.
1
5
/* Copyright (c) 2005-2011 Taneli Kalvas. All rights reserved.
6
*
7
* You can redistribute this software and/or modify it under the terms
8
* of the GNU General Public License as published by the Free Software
9
* Foundation; either version 2 of the License, or (at your option)
10
* any later version.
11
*
12
* This library is distributed in the hope that it will be useful, but
13
* WITHOUT ANY WARRANTY; without even the implied warranty of
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
* General Public License for more details.
16
*
17
* You should have received a copy of the GNU General Public License
18
* along with this library (file "COPYING" included in the package);
19
* if not, write to the Free Software Foundation, Inc., 51 Franklin
20
* Street, Fifth Floor, Boston, MA 02110-1301 USA
21
*
22
* If you have questions about your rights to use or distribute this
23
* software, please contact Berkeley Lab's Technology Transfer
24
* Department at TTD@lbl.gov. Other questions, comments and bug
25
* reports should be sent directly to the author via email at
26
* taneli.kalvas@jyu.fi.
27
*
28
* NOTICE. This software was developed under partial funding from the
29
* U.S. Department of Energy. As such, the U.S. Government has been
30
* granted for itself and others acting on its behalf a paid-up,
31
* nonexclusive, irrevocable, worldwide license in the Software to
32
* reproduce, prepare derivative works, and perform publicly and
33
* display publicly. Beginning five (5) years after the date
34
* permission to assert copyright is obtained from the U.S. Department
35
* of Energy, and subject to any subsequent five (5) year renewals,
36
* the U.S. Government is granted for itself and others acting on its
37
* behalf a paid-up, nonexclusive, irrevocable, worldwide license in
38
* the Software to reproduce, prepare derivative works, distribute
39
* copies to the public, perform publicly and display publicly, and to
40
* permit others to do so.
41
*/
42
43
#ifndef MESH_HPP
44
#define MESH_HPP 1
45
46
47
#include <stdint.h>
48
#include <vector>
49
#include <iostream>
50
#include "
file.hpp
"
51
#include "
vec3d.hpp
"
52
#include "
types.hpp
"
53
54
67
class
Mesh
68
{
69
protected
:
70
geom_mode_e
_geom_mode
;
71
Int3D
_size
;
72
Vec3D
_origo
;
73
Vec3D
_max
;
75
double
_h
;
76
double
_div_h
;
78
public
:
79
85
Mesh
();
86
92
Mesh
(
geom_mode_e
geom_mode
,
Int3D
size
,
Vec3D
origo
,
double
h
);
93
96
Mesh
( std::istream &is );
97
100
~Mesh
() {}
101
104
void
reset
(
geom_mode_e
geom_mode
,
Int3D
size
,
Vec3D
origo
,
double
h
);
105
108
geom_mode_e
geom_mode
(
void
)
const
{
return
(
_geom_mode
); }
109
112
int32_t
dim
(
void
)
const
;
113
116
Int3D
size
(
void
)
const
{
return
(
_size
); }
117
120
int32_t
size
(
int
i )
const
{
return
(
_size
[i] ); }
121
124
int32_t
nodecount
(
void
)
const
{
return
(
_size
[0]*
_size
[1]*
_size
[2] ); }
125
128
Vec3D
origo
(
void
)
const
{
return
(
_origo
); }
129
132
double
origo
(
int
i )
const
{
return
(
_origo
[i] ); }
133
137
Vec3D
max
(
void
)
const
{
return
(
_max
); }
138
142
double
max
(
int
i )
const
{
return
(
_max
[i] ); }
143
146
double
h
(
void
)
const
{
return
(
_h
); }
147
150
double
div_h
(
void
)
const
{
return
(
_div_h
); }
151
154
void
save
( std::ostream &os )
const
;
155
160
bool
operator==
(
const
Mesh
&m )
const
;
161
164
bool
operator!=
(
const
Mesh
&m )
const
;
165
168
void
debug_print
( std::ostream &os )
const
;
169
};
170
171
172
#endif
173
Reference manual for Ion Beam Simulator 1.0.5b
Generated on by
Doxygen
1.8.1.2 on Mon Sep 24 2012 12:37:00.