forked from ComputationalRadiationPhysics/picongpu
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgasConfig.param
89 lines (72 loc) · 2.53 KB
/
gasConfig.param
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
/**
* Copyright 2013-2015 Axel Huebl, Rene Widera, Felix Schmitt,
* Richard Pausch, Marco Garten
*
* This file is part of PIConGPU.
*
* PIConGPU is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* PIConGPU is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with PIConGPU.
* If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#include "particles/gasProfiles/profiles.def"
namespace picongpu
{
namespace SI
{
/** The maximum density in particles per m^3 in the gas distribution
* unit: ELEMENTS/m^3
*
* He (2e- / Atom ) with 1.e15 He / m^3
* = 2.e15 e- / m^3 */
const double GAS_DENSITY_SI = 1.e25;
}
//##########################################################################
//############## special gas profiles ######################################
//##########################################################################
namespace gasProfiles
{
/** Middle of the constant sphere
* unit: meter */
CONST_VECTOR(float_64, simDim, SphereFlanksParam_center, 8.0e3, 8.0e3, 8.0e3);
struct SphereFlanksParam
{
/** height of vacuum area on top border
* this vacuum is really important because of the laser initialization,
* which is done in the first cell of the simulation
* unit: cells */
static const uint32_t vacuum_y_cells = 50;
struct SI
{
/** Radius of the constant sphere
* unit: meter */
static const float_64 r = 1.0e3;
/** Inner radius if you want to build a shell/ring
* unit: meter */
static const float_64 ri = 0.0;
/** Middle of the constant sphere
* unit: meter */
const SphereFlanksParam_center_t center;
/** Parameters for the exponential slope
* For radius > GAS_R_SI:
* let radius' = radius - r
* \rho = exp[ - radius' * exponent ]
* unit: 1/m
*/
static const float_64 exponent = 1.0e-3;
};
};
/* definition of gas sphere with flanks*/
typedef SphereFlanksImpl<SphereFlanksParam> SphereFlanks;
}//namespace gasProfiles
} //namepsace picongpu