O P A R - Open Architecture Particle in Cell Simulation - Version 3.0
Plasma simulations with dust particles
Main Page
Related Pages
Modules
Classes
Files
File List
File Members
•
All
Classes
Files
Functions
Variables
Friends
Macros
Groups
Pages
normalization.h
Go to the documentation of this file.
1
5
#ifndef NORMALIZATION_H
6
#define NORMALIZATION_H
7
#include "
task.h
"
8
#define EL 1.6022e-19
9
#define ELMASS 9.1094E-31
10
#define EPS0 8.8542e-12
11
#define CLIGHT 3.0e+8
12
#define PI 3.1415926535897932384626
13
#define hwq 6.6261e-34
14
//---------------------------------------------------------------------------------------------------------------------
15
class
Species
;
16
22
class
Normalization
:
public
Task
{
23
public
:
25
virtual
void
SetSpecies
(
Species
*) {}
26
28
virtual
void
length(
double
&) = 0;
29
virtual
void
time(
double
&) = 0;
30
virtual
void
frequency(
double
&) = 0;
31
virtual
void
mass(
double
&) = 0;
32
virtual
void
charge(
double
&) = 0;
33
virtual
void
potential(
double
&) = 0;
34
virtual
void
density(
double
&) = 0;
35
virtual
void
temperature(
double
&) = 0;
36
virtual
double
GetTe()
const
= 0;
37
virtual
double
GetTi()
const
= 0;
38
virtual
double
Getdebye()
const
= 0;
39
virtual
double
Getdebye_i()
const
= 0;
40
virtual
double
Getdebye_d()
const
= 0;
41
virtual
double
GetLaRadius()
const
= 0;
42
virtual
double
GetBfield
()
const
= 0;
43
47
49
virtual
std::string
GetClassName
()
const
{
return
"Normalization"
; }
50
};
51
79
class
ElStaticNorm
:
public
Normalization
{
80
protected
:
82
double
debye
;
84
double
debye_i
;
86
double
debye_d
;
88
double
n
;
90
double
Te
;
92
double
Ti
;
94
double
omega
;
96
double
Bz
;
98
double
omega_l
;
100
double
rg
;
101
public
:
103
ElStaticNorm
() {}
105
virtual
~ElStaticNorm
() {}
106
108
virtual
void
length(
double
&);
109
virtual
void
time(
double
&);
110
virtual
void
frequency(
double
&);
111
virtual
void
mass(
double
&);
112
virtual
void
charge(
double
&);
113
virtual
void
potential(
double
&);
114
virtual
void
density(
double
&);
115
virtual
void
temperature(
double
&);
116
virtual
double
GetTe()
const
;
117
virtual
double
GetTi()
const
;
118
virtual
double
Getdebye()
const
;
119
virtual
double
Getdebye_i()
const
;
120
virtual
double
Getdebye_d()
const
;
121
virtual
double
GetLaRadius()
const
;
122
virtual
double
GetBfield
()
const
;
123
// Unnormalize the argument according to the electrostatic normalizations
125
126
virtual
void
Init
();
127
// Doesn't do anything
128
virtual
bool
Execute
() {
return
true
;}
129
protected
:
130
virtual
PARAMETERMAP*
MakeParamMap
(PARAMETERMAP* pm = NULL);
131
};
132
145
class
ElDynamicNorm
:
public
Normalization
{
146
protected
:
148
double
debye
;
149
double
debye_i;
150
double
debye_d;
152
double
courantfactor
;
154
double
n
;
156
double
qoverm
;
158
double
massfactor
;
160
double
Mass;
162
double
Te;
163
double
Ti;
164
double
Bz;
165
double
omega_l;
166
double
rg;
167
public
:
169
ElDynamicNorm
() {}
170
// Destructor
171
virtual
~
ElDynamicNorm
() {}
172
173
// \f$q/m\f$, \f_m\f$ and Mass depend on the Species
174
virtual
void
SetSpecies
(
Species
*);
175
177
virtual
void
length(
double
&);
178
virtual
void
time(
double
&);
179
virtual
void
frequency(
double
&);
180
virtual
void
mass(
double
&);
181
virtual
void
charge(
double
&);
182
virtual
void
potential(
double
&);
183
virtual
void
density(
double
&);
184
virtual
void
temperature(
double
&);
185
virtual
double
GetTe()
const
;
186
virtual
double
GetTi()
const
;
187
virtual
double
Getdebye()
const
;
188
virtual
double
Getdebye_i()
const
;
189
virtual
double
Getdebye_d()
const
;
190
virtual
double
GetLaRadius()
const
;
191
virtual
double
GetBfield
()
const
;
192
194
195
196
virtual
void
Init
();
197
// Doesn't do anything
198
virtual
bool
Execute
() {
return
true
;}
199
protected
:
200
virtual
PARAMETERMAP*
MakeParamMap
(PARAMETERMAP* pm = NULL);
201
};
202
#endif
Generated by
1.8.1.1