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