1
1
/**
2
2
* Copyright 2013-2015 Axel Huebl, Rene Widera, Richard Pausch
3
3
*
4
- * This file is part of PIConGPU.
5
- *
6
- * PIConGPU is free software: you can redistribute it and/or modify
7
- * it under the terms of the GNU General Public License as published by
8
- * the Free Software Foundation, either version 3 of the License, or
9
- * (at your option) any later version.
10
- *
11
- * PIConGPU is distributed in the hope that it will be useful,
12
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
- * GNU General Public License for more details.
15
- *
16
- * You should have received a copy of the GNU General Public License
17
- * along with PIConGPU.
18
- * If not, see <http://www.gnu.org/licenses/>.
19
- */
20
-
4
+ * This file is part of PIConGPU.
5
+ *
6
+ * PIConGPU is free software: you can redistribute it and/or modify
7
+ * it under the terms of the GNU General Public License as published by
8
+ * the Free Software Foundation, either version 3 of the License, or
9
+ * (at your option) any later version.
10
+ *
11
+ * PIConGPU is distributed in the hope that it will be useful,
12
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
+ * GNU General Public License for more details.
15
+ *
16
+ * You should have received a copy of the GNU General Public License
17
+ * along with PIConGPU.
18
+ * If not, see <http://www.gnu.org/licenses/>.
19
+ */
20
+
21
21
22
22
23
23
#pragma once
@@ -32,7 +32,27 @@ namespace picongpu
32
32
const double DELTA_T_SI = 1.79e-16;
33
33
/** equals X
34
34
* unit: meter */
35
+ #define fieldSolverDirSplitting 1
36
+ #if (PARAM_FIELDSOLVER == 1)
37
+ /* THIS CODE PATH IS ONLY USED IF `PARAM_FIELDSOLVER` IS CHANGED IN
38
+ * `cmakeFlags` and the field solver there is set to fieldSolverDirSplitting
39
+ *
40
+ * Directional Splitting requires a fixed ratio between dt and dx
41
+ * and in addition cubic cells.
42
+ * conditions: dX == dt * c
43
+ * dX == dY
44
+ * dX == dZ
45
+ */
46
+ const double CELL_WIDTH_SI = DELTA_T_SI*SPEED_OF_LIGHT_SI;
47
+ #else
48
+ /* cell size for Yee solver (must fulfill CFL)
49
+ * WARNING: if you change the field solver in `componentsConfig` you
50
+ * have to change the CELL_SIZE in this code path
51
+ */
35
52
const double CELL_WIDTH_SI = 9.34635e-8;
53
+ #endif
54
+ #undef fieldSolverDirSplitting
55
+
36
56
/** equals Y - the propagation direction
37
57
* unit: meter */
38
58
const double CELL_HEIGHT_SI = CELL_WIDTH_SI;
@@ -47,22 +67,22 @@ namespace picongpu
47
67
{32, 32}, /*y direction [negative,positive]*/
48
68
{32, 32} /*z direction [negative,positive]*/
49
69
}; //unit: number of cells
50
-
70
+
51
71
//! Define the strange of the absober for any direction
52
72
const float_X ABSORBER_STRENGTH[3][2] = {
53
73
{1.0e-3, 1.0e-3}, /*x direction [negative,positive]*/
54
74
{1.0e-3, 1.0e-3}, /*y direction [negative,positive]*/
55
75
{1.0e-3, 1.0e-3} /*z direction [negative,positive]*/
56
- }; //unit: none
76
+ }; //unit: none
57
77
58
78
const uint32_t ABSORBER_FADE_IN_STEPS = 16;
59
-
79
+
60
80
/** When to move the co-moving window.
61
81
* An initial pseudo particle, flying with the speed of light,
62
82
* is fired at the begin of the simulation.
63
83
* When it reaches slide_point % of the absolute(*) simulation area,
64
84
* the co-moving window starts to move with the speed of light.
65
- *
85
+ *
66
86
* (*) Note: beware, that there is one "hidden" row of gpus at the y-front,
67
87
* when you use the co-moving window
68
88
* 0.75 means only 75% of simulation area is used for real simulation
0 commit comments