Restructuring the geometry and pushers
The geometry and push structure has been reworked to allow eassy adding new pushers. Documentation not updated yet. Baseline for merging Cartesian pushers into one.
This commit is contained in:
parent
562dba1694
commit
5b5dadce39
18 changed files with 429 additions and 1052 deletions
2
makefile
2
makefile
|
|
@ -6,7 +6,7 @@ SRCDIR := $(TOPDIR)/src# source folder
|
|||
# compiler
|
||||
# gfortran:
|
||||
FC := gfortran
|
||||
JSONDIR := $(TOPDIR)/json-fortran-8.2.0/build-gfortran
|
||||
JSONDIR := $(TOPDIR)/json-fortran/build-gfortran
|
||||
# ifort:
|
||||
# FC := ifort
|
||||
# JSONDIR := $(TOPDIR)/json-fortran-8.2.0/build-ifort
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
{
|
||||
"output": {
|
||||
"path": "./runs/0D_test/",
|
||||
"path": "./runs/0D_Argon/",
|
||||
"triggerOutput": 1,
|
||||
"numColl": true,
|
||||
"folder": "test"
|
||||
|
|
@ -13,21 +13,19 @@
|
|||
"radius": 1.88e-10
|
||||
},
|
||||
"geometry": {
|
||||
"type": "1DCart",
|
||||
"meshType": "0D",
|
||||
"dimension": 0,
|
||||
"volume": 1e-11
|
||||
},
|
||||
"species": [
|
||||
{"name": "Argon+", "type": "charged", "mass": 6.633e-26, "charge": 1.0, "weight": 1.0e0},
|
||||
{"name": "Argon", "type": "neutral", "mass": 6.633e-26, "weight": 1.0e0}
|
||||
],
|
||||
"case": {
|
||||
"solver": {
|
||||
"tau": [1.0e-6, 1.0e-6],
|
||||
"time": 1.0e-3,
|
||||
"pusher": ["0D", "0D"],
|
||||
"finalTime": 1.0e-3,
|
||||
"initial": [
|
||||
{"speciesName": "Argon+", "initialState": "Argon+_Initial.dat"},
|
||||
{"speciesName": "Argon", "initialState": "Argon_Initial.dat"}
|
||||
{"species": "Argon+", "file": "Argon+_Initial.dat"},
|
||||
{"species": "Argon", "file": "Argon_Initial.dat"}
|
||||
]
|
||||
},
|
||||
"interactions": {
|
||||
|
|
|
|||
|
|
@ -1,51 +0,0 @@
|
|||
#Element Density(m^-3) Velocity (m/2) Temperature (K)
|
||||
1 1.8672E+15 -4.2433E+04 0.0000E+00 0.0000E+00 1.7536E+03
|
||||
2 1.7491E+15 -4.1621E+04 0.0000E+00 0.0000E+00 1.8298E+03
|
||||
3 1.7130E+15 -4.0665E+04 0.0000E+00 0.0000E+00 1.6838E+03
|
||||
4 1.7346E+15 -3.9729E+04 0.0000E+00 0.0000E+00 1.5787E+03
|
||||
5 1.7565E+15 -3.8817E+04 0.0000E+00 0.0000E+00 1.5641E+03
|
||||
6 1.7107E+15 -3.7924E+04 0.0000E+00 0.0000E+00 1.4574E+03
|
||||
7 1.6611E+15 -3.7036E+04 0.0000E+00 0.0000E+00 1.3561E+03
|
||||
8 1.6543E+15 -3.6166E+04 0.0000E+00 0.0000E+00 1.2648E+03
|
||||
9 1.6850E+15 -3.5302E+04 0.0000E+00 0.0000E+00 1.1812E+03
|
||||
10 1.7615E+15 -3.4449E+04 0.0000E+00 0.0000E+00 1.1669E+03
|
||||
11 1.7123E+15 -3.3627E+04 0.0000E+00 0.0000E+00 1.1458E+03
|
||||
12 1.6138E+15 -3.2791E+04 0.0000E+00 0.0000E+00 1.0411E+03
|
||||
13 1.6308E+15 -3.1965E+04 0.0000E+00 0.0000E+00 9.6919E+02
|
||||
14 1.6581E+15 -3.1161E+04 0.0000E+00 0.0000E+00 9.8432E+02
|
||||
15 1.6576E+15 -3.0359E+04 0.0000E+00 0.0000E+00 9.8741E+02
|
||||
16 1.6780E+15 -2.9560E+04 0.0000E+00 0.0000E+00 9.1285E+02
|
||||
17 1.6906E+15 -2.8768E+04 0.0000E+00 0.0000E+00 8.5525E+02
|
||||
18 1.6773E+15 -2.7987E+04 0.0000E+00 0.0000E+00 8.5787E+02
|
||||
19 1.6571E+15 -2.7208E+04 0.0000E+00 0.0000E+00 8.3556E+02
|
||||
20 1.6547E+15 -2.6431E+04 0.0000E+00 0.0000E+00 7.9246E+02
|
||||
21 1.6878E+15 -2.5659E+04 0.0000E+00 0.0000E+00 7.6169E+02
|
||||
22 1.7458E+15 -2.4887E+04 0.0000E+00 0.0000E+00 7.4698E+02
|
||||
23 1.7634E+15 -2.4124E+04 0.0000E+00 0.0000E+00 7.5560E+02
|
||||
24 1.8070E+15 -2.3350E+04 0.0000E+00 0.0000E+00 7.3385E+02
|
||||
25 1.8616E+15 -2.2579E+04 0.0000E+00 0.0000E+00 7.1475E+02
|
||||
26 1.8601E+15 -2.1822E+04 0.0000E+00 0.0000E+00 7.1208E+02
|
||||
27 1.8291E+15 -2.1053E+04 0.0000E+00 0.0000E+00 6.8693E+02
|
||||
28 1.8542E+15 -2.0280E+04 0.0000E+00 0.0000E+00 6.5924E+02
|
||||
29 1.9410E+15 -1.9518E+04 0.0000E+00 0.0000E+00 6.4794E+02
|
||||
30 1.9685E+15 -1.8749E+04 0.0000E+00 0.0000E+00 6.4988E+02
|
||||
31 2.0048E+15 -1.7973E+04 0.0000E+00 0.0000E+00 6.2752E+02
|
||||
32 2.1060E+15 -1.7194E+04 0.0000E+00 0.0000E+00 6.1567E+02
|
||||
33 2.1705E+15 -1.6418E+04 0.0000E+00 0.0000E+00 6.1351E+02
|
||||
34 2.1947E+15 -1.5629E+04 0.0000E+00 0.0000E+00 6.0244E+02
|
||||
35 2.2625E+15 -1.4824E+04 0.0000E+00 0.0000E+00 6.0286E+02
|
||||
36 2.4096E+15 -1.4023E+04 0.0000E+00 0.0000E+00 5.9199E+02
|
||||
37 2.5632E+15 -1.3209E+04 0.0000E+00 0.0000E+00 5.8388E+02
|
||||
38 2.6774E+15 -1.2384E+04 0.0000E+00 0.0000E+00 5.8875E+02
|
||||
39 2.8107E+15 -1.1544E+04 0.0000E+00 0.0000E+00 5.8973E+02
|
||||
40 2.9409E+15 -1.0692E+04 0.0000E+00 0.0000E+00 5.9631E+02
|
||||
41 3.1254E+15 -9.8219E+03 0.0000E+00 0.0000E+00 5.9943E+02
|
||||
42 3.4330E+15 -8.9344E+03 0.0000E+00 0.0000E+00 5.9491E+02
|
||||
43 3.7218E+15 -8.0260E+03 0.0000E+00 0.0000E+00 5.9949E+02
|
||||
44 4.0857E+15 -7.0817E+03 0.0000E+00 0.0000E+00 6.4591E+02
|
||||
45 4.5046E+15 -6.1015E+03 0.0000E+00 0.0000E+00 5.9669E+02
|
||||
46 5.4123E+15 -5.0997E+03 0.0000E+00 0.0000E+00 5.7835E+02
|
||||
47 6.7144E+15 -4.2183E+03 0.0000E+00 0.0000E+00 4.7454E+02
|
||||
48 9.1344E+15 -3.1141E+03 0.0000E+00 0.0000E+00 3.0000E+02
|
||||
49 1.4157E+16 -1.8530E+03 0.0000E+00 0.0000E+00 3.0000E+02
|
||||
50 2.3064E+16 -9.7547E+02 0.0000E+00 0.0000E+00 2.7186E+02
|
||||
|
|
@ -1,51 +0,0 @@
|
|||
#Element Density(m^-3) Velocity (m/2) Temperature (K)
|
||||
1 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
|
||||
2 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
|
||||
3 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
|
||||
4 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
|
||||
5 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
|
||||
6 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
|
||||
7 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
|
||||
8 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
|
||||
9 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
|
||||
10 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
|
||||
11 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
|
||||
12 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
|
||||
13 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
|
||||
14 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
|
||||
15 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
|
||||
16 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
|
||||
17 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
|
||||
18 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
|
||||
19 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
|
||||
20 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
|
||||
21 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
|
||||
22 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
|
||||
23 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
|
||||
24 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
|
||||
25 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
|
||||
26 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
|
||||
27 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
|
||||
28 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
|
||||
29 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
|
||||
30 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
|
||||
31 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
|
||||
32 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
|
||||
33 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
|
||||
34 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
|
||||
35 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
|
||||
36 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
|
||||
37 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
|
||||
38 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
|
||||
39 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
|
||||
40 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
|
||||
41 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
|
||||
42 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
|
||||
43 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
|
||||
44 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
|
||||
45 7.5916E+12 1.8413E+05 0.0000E+00 0.0000E+00 5.7527E+03
|
||||
46 7.5916E+12 1.8413E+05 0.0000E+00 0.0000E+00 5.7527E+03
|
||||
47 4.0201E+14 -2.3775E+04 0.0000E+00 0.0000E+00 1.1359E+04
|
||||
48 4.0201E+14 -2.3775E+04 0.0000E+00 0.0000E+00 1.1359E+04
|
||||
49 6.9489E+15 -8.8002E+03 0.0000E+00 0.0000E+00 9.5125E+03
|
||||
50 6.9489E+15 -8.8002E+03 0.0000E+00 0.0000E+00 9.5125E+03
|
||||
|
|
@ -14,7 +14,8 @@
|
|||
"temperature": 11604.0
|
||||
},
|
||||
"geometry": {
|
||||
"type": "1DCart",
|
||||
"dimension": 1,
|
||||
"type": "Cart",
|
||||
"meshType": "gmsh2",
|
||||
"meshFile": "mesh.msh"
|
||||
},
|
||||
|
|
@ -43,15 +44,11 @@
|
|||
{"name": "Plasma Cat e", "species": "Electron", "flow": 2.64e-5, "units": "A", "v": 180000.0, "T": [ 2300.0, 2300.0, 2300.0],
|
||||
"velDist": ["Maxwellian", "Maxwellian", "Maxwellian"], "n": [ 1, 0, 0], "physicalSurface": 1}
|
||||
],
|
||||
"case": {
|
||||
"solver": {
|
||||
"tau": [1.0e-11, 1.0e-11],
|
||||
"time": 4.0e-6,
|
||||
"pusher": ["1DCartCharged", "1DCartCharged"],
|
||||
"EMSolver": "Electrostatic",
|
||||
"initial": [
|
||||
{"speciesName": "Argon+", "initialState": "Argon+_Background.dat"},
|
||||
{"speciesName": "Electron", "initialState": "Electron_Background.dat"}
|
||||
]
|
||||
"finalTime": 4.0e-6,
|
||||
"pusher": ["Electrostatic", "Electrostatic"],
|
||||
"EMSolver": "Electrostatic"
|
||||
},
|
||||
"parallel": {
|
||||
"OpenMP":{
|
||||
|
|
|
|||
|
|
@ -14,7 +14,8 @@
|
|||
"temperature": 11604.0
|
||||
},
|
||||
"geometry": {
|
||||
"type": "1DRad",
|
||||
"dimension": 1,
|
||||
"type": "Cart",
|
||||
"meshType": "gmsh2",
|
||||
"meshFile": "mesh.msh"
|
||||
},
|
||||
|
|
@ -43,15 +44,11 @@
|
|||
{"name": "Plasma Cat e", "species": "Electron", "flow": 2.64e-2, "units": "A", "v": 180000.0, "T": [ 2300.0, 2300.0, 2300.0],
|
||||
"velDist": ["Maxwellian", "Maxwellian", "Maxwellian"], "n": [ 1, 0, 0], "physicalSurface": 1}
|
||||
],
|
||||
"case": {
|
||||
"solver": {
|
||||
"tau": [1.0e-11, 1.0e-11],
|
||||
"time": 3.0e-7,
|
||||
"pusher": ["1DRadCharged", "1DRadCharged"],
|
||||
"EMSolver": "Electrostatic",
|
||||
"initial": [
|
||||
{"speciesName": "Argon+", "initialState": "Argon+_Background.dat"},
|
||||
{"speciesName": "Electron", "initialState": "Electron_Background.dat"}
|
||||
]
|
||||
"finalTime": 3.0e-7,
|
||||
"pusher": ["Electrostatic", "Electrostatic"],
|
||||
"EMSolver": "Electrostatic"
|
||||
},
|
||||
"parallel": {
|
||||
"OpenMP":{
|
||||
|
|
|
|||
|
|
@ -8,7 +8,8 @@
|
|||
"folder": "base_case"
|
||||
},
|
||||
"geometry": {
|
||||
"type": "2DCyl",
|
||||
"dimension": 2,
|
||||
"type": "Cyl",
|
||||
"meshType": "gmsh2",
|
||||
"meshFile": "mesh.msh"
|
||||
},
|
||||
|
|
@ -61,10 +62,10 @@
|
|||
"temperature": 2500.0,
|
||||
"radius": 1.88e-10
|
||||
},
|
||||
"case": {
|
||||
"solver": {
|
||||
"tau": [1.0e-9, 1.0e-11],
|
||||
"time": 1.0e-6,
|
||||
"pusher": ["2DCylCharged", "2DCylCharged"],
|
||||
"finalTime": 1.0e-6,
|
||||
"pusher": ["Electrostatic", "Electrostatic"],
|
||||
"WeightingScheme": "Volume",
|
||||
"EMSolver": "Electrostatic"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -8,7 +8,8 @@
|
|||
"folder": "ionization_0.10mA"
|
||||
},
|
||||
"geometry": {
|
||||
"type": "2DCyl",
|
||||
"dimension": 2,
|
||||
"type": "Cyl",
|
||||
"meshType": "gmsh2",
|
||||
"meshFile": "mesh.msh"
|
||||
},
|
||||
|
|
@ -58,10 +59,10 @@
|
|||
"temperature": 2500.0,
|
||||
"radius": 1.88e-10
|
||||
},
|
||||
"case": {
|
||||
"solver": {
|
||||
"tau": [1.0e-9, 1.0e-11],
|
||||
"time": 1.0e-6,
|
||||
"pusher": ["2DCylCharged", "2DCylCharged"],
|
||||
"finalTime": 1.0e-6,
|
||||
"pusher": ["Electrostatic", "Electrostatic"],
|
||||
"WeightingScheme": "Volume",
|
||||
"EMSolver": "Electrostatic"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -7,7 +7,8 @@
|
|||
"folder": "CX_case"
|
||||
},
|
||||
"geometry": {
|
||||
"type": "2DCyl",
|
||||
"dimension": 2,
|
||||
"type": "Cyl",
|
||||
"meshType": "gmsh2",
|
||||
"meshFile": "mesh.msh"
|
||||
},
|
||||
|
|
@ -41,10 +42,10 @@
|
|||
"temperature": 300.0,
|
||||
"radius": 1.88e-10
|
||||
},
|
||||
"case": {
|
||||
"solver": {
|
||||
"tau": [1.0e-6, 1.0e-6],
|
||||
"time": 4.0e-3,
|
||||
"pusher": ["2DCylNeutral", "2DCylNeutral"],
|
||||
"finalTime": 4.0e-3,
|
||||
"pusher": ["Neutral", "Neutral"],
|
||||
"WeightingScheme": "Volume"
|
||||
},
|
||||
"interactions": {
|
||||
|
|
|
|||
|
|
@ -7,7 +7,8 @@
|
|||
"folder": "Elastic_case"
|
||||
},
|
||||
"geometry": {
|
||||
"type": "2DCyl",
|
||||
"dimension": 2,
|
||||
"type": "Cyl",
|
||||
"meshType": "gmsh2",
|
||||
"meshFile": "mesh.msh"
|
||||
},
|
||||
|
|
@ -41,10 +42,10 @@
|
|||
"temperature": 300.0,
|
||||
"radius": 1.88e-10
|
||||
},
|
||||
"case": {
|
||||
"solver": {
|
||||
"tau": [1.0e-6, 1.0e-6],
|
||||
"time": 4.0e-3,
|
||||
"pusher": ["2DCylNeutral", "2DCylNeutral"],
|
||||
"finalTime": 4.0e-3,
|
||||
"pusher": ["Neutral", "Neutral"],
|
||||
"WeightingScheme": "Volume"
|
||||
},
|
||||
"interactions": {
|
||||
|
|
|
|||
|
|
@ -7,7 +7,8 @@
|
|||
"folder": "Nocoll_case"
|
||||
},
|
||||
"geometry": {
|
||||
"type": "2DCyl",
|
||||
"dimension": 2,
|
||||
"type": "Cyl",
|
||||
"meshType": "gmsh2",
|
||||
"meshFile": "mesh.msh"
|
||||
},
|
||||
|
|
@ -41,10 +42,10 @@
|
|||
"temperature": 300.0,
|
||||
"radius": 1.88e-10
|
||||
},
|
||||
"case": {
|
||||
"solver": {
|
||||
"tau": [1.0e-6, 1.0e-6],
|
||||
"time": 4.0e-3,
|
||||
"pusher": ["2DCylNeutral", "2DCylNeutral"],
|
||||
"finalTime": 4.0e-3,
|
||||
"pusher": ["Neutral", "Neutral"],
|
||||
"WeightingScheme": "Volume"
|
||||
},
|
||||
"parallel": {
|
||||
|
|
|
|||
|
|
@ -6,7 +6,8 @@
|
|||
"numColl": true
|
||||
},
|
||||
"geometry": {
|
||||
"type": "2DCyl",
|
||||
"dimension": 2,
|
||||
"type": "Cyl",
|
||||
"meshType": "gmsh2",
|
||||
"meshFile": "meshSingle.msh"
|
||||
},
|
||||
|
|
@ -40,10 +41,10 @@
|
|||
"temperature": 300.0,
|
||||
"radius": 1.88e-10
|
||||
},
|
||||
"case": {
|
||||
"solver": {
|
||||
"tau": [5.0e-7],
|
||||
"time": 1.0e-3,
|
||||
"pusher": ["2DCylNeutral"],
|
||||
"finalTime": 1.0e-3,
|
||||
"pusher": ["Neutral"],
|
||||
"WeightingScheme": "Volume"
|
||||
},
|
||||
"interactions": {
|
||||
|
|
|
|||
|
|
@ -6,9 +6,11 @@
|
|||
"numColl": true
|
||||
},
|
||||
"geometry": {
|
||||
"type": "2DCyl",
|
||||
"dimension": 2,
|
||||
"type": "Cyl",
|
||||
"meshType": "gmsh2",
|
||||
"meshFile": "mesh.msh"
|
||||
"meshFile": "mesh.msh",
|
||||
"meshCollisions": "meshColl.msh"
|
||||
},
|
||||
"species": [
|
||||
{"name": "Argon", "type": "neutral", "mass": 6.633e-26, "weight": 5.0e8}
|
||||
|
|
@ -40,15 +42,14 @@
|
|||
"temperature": 300.0,
|
||||
"radius": 1.88e-10
|
||||
},
|
||||
"case": {
|
||||
"solver": {
|
||||
"tau": [5.0e-7],
|
||||
"time": 1.0e-3,
|
||||
"pusher": ["2DCylNeutral"],
|
||||
"finalTime": 1.0e-3,
|
||||
"pusher": ["Neutral"],
|
||||
"WeightingScheme": "Volume"
|
||||
},
|
||||
"interactions": {
|
||||
"folderCollisions": "./data/collisions/",
|
||||
"meshCollisions": "meshColl.msh",
|
||||
"collisions": [
|
||||
{"species_i": "Argon", "species_j": "Argon",
|
||||
"cTypes": [
|
||||
|
|
|
|||
|
|
@ -1,629 +0,0 @@
|
|||
General.AxesFormatX = "%.3g";
|
||||
General.AxesFormatY = "%.3g";
|
||||
General.AxesFormatZ = "%.3g";
|
||||
General.AxesLabelX = "z (m)";
|
||||
General.AxesLabelY = "r (m)";
|
||||
General.AxesLabelZ = "";
|
||||
General.BackgroundImageFileName = "";
|
||||
General.BuildOptions = " 64Bit ALGLIB Bamg Blas Blossom DIntegration Dlopen DomHex Fltk GMP Gmm[system] Hxt Hxt3D Jpeg Kbipack Lapack LinuxJoystick MathEx Mesh Metis[system] Mmg3d Mpeg NativeFileChooser Netgen ONELAB ONELABMetamodel OpenCASCADE OpenCASCADE-CAF OpenGL OpenMP OptHom Parser Plugins Png Post QuadTri Solver TetGen/BR Zlib";
|
||||
General.DefaultFileName = "untitled.geo";
|
||||
General.Display = "";
|
||||
General.ErrorFileName = ".gmsh-errors";
|
||||
General.ExecutableFileName = "/usr/bin/gmsh";
|
||||
General.FileName = "/home/jorge/PPartiC/runs/cylFlow/mesh.msh";
|
||||
General.FltkTheme = "";
|
||||
General.GraphicsFont = "Helvetica";
|
||||
General.GraphicsFontEngine = "Native";
|
||||
General.GraphicsFontTitle = "Helvetica";
|
||||
General.OptionsFileName = ".gmsh-options";
|
||||
General.RecentFile0 = "/home/jorge/PPartiC/runs/cylFlow/mesh.msh";
|
||||
General.RecentFile1 = "untitled.geo";
|
||||
General.RecentFile2 = "mesh/Neutral_Expansion_Div.geo";
|
||||
General.RecentFile3 = "mesh/Neutral_Expansion_Div.msh";
|
||||
General.RecentFile4 = "Neutral_Expansion_Div.msh";
|
||||
General.RecentFile5 = "Neutral_Expansion.geo";
|
||||
General.RecentFile6 = "Neutral_Expansion_Div.geo";
|
||||
General.RecentFile7 = "/home/jorge/Dropbox/UPMPlasmaLab/Post-Doc/Codes/PICCIL2D/PIC-FEM/Neutral_Expansion_Div.msh";
|
||||
General.RecentFile8 = "Neutral_Expansion.msh";
|
||||
General.RecentFile9 = "/home/jorge/Dropbox/UPMPlasmaLab/Post-Doc/Codes/PICCIL2D/PIC-FEM/Neutral_Expansion.msh";
|
||||
General.TextEditor = "gedit '%s'";
|
||||
General.TmpFileName = ".gmsh-tmp";
|
||||
General.Version = "4.4.1";
|
||||
General.WatchFilePattern = "";
|
||||
General.AlphaBlending = 1;
|
||||
General.Antialiasing = 0;
|
||||
General.ArrowHeadRadius = 0.12;
|
||||
General.ArrowStemLength = 0.5600000000000001;
|
||||
General.ArrowStemRadius = 0.02;
|
||||
General.Axes = 1;
|
||||
General.AxesMikado = 0;
|
||||
General.AxesAutoPosition = 1;
|
||||
General.AxesForceValue = 0;
|
||||
General.AxesMaxX = 1;
|
||||
General.AxesMaxY = 1;
|
||||
General.AxesMaxZ = 1;
|
||||
General.AxesMinX = 0;
|
||||
General.AxesMinY = 0;
|
||||
General.AxesMinZ = 0;
|
||||
General.AxesTicsX = 8;
|
||||
General.AxesTicsY = 4;
|
||||
General.AxesTicsZ = 5;
|
||||
General.AxesValueMaxX = 1;
|
||||
General.AxesValueMaxY = 1;
|
||||
General.AxesValueMaxZ = 1;
|
||||
General.AxesValueMinX = 0;
|
||||
General.AxesValueMinY = 0;
|
||||
General.AxesValueMinZ = 0;
|
||||
General.BackgroundGradient = 1;
|
||||
General.BackgroundImage3D = 0;
|
||||
General.BackgroundImagePage = 0;
|
||||
General.BackgroundImagePositionX = 0;
|
||||
General.BackgroundImagePositionY = 0;
|
||||
General.BackgroundImageWidth = -1;
|
||||
General.BackgroundImageHeight = -1;
|
||||
General.BoundingBoxSize = 0.07615773105863909;
|
||||
General.Camera = 0;
|
||||
General.CameraAperture = 40;
|
||||
General.CameraEyeSeparationRatio = 1.5;
|
||||
General.CameraFocalLengthRatio = 1;
|
||||
General.Clip0A = 1;
|
||||
General.Clip0B = 0;
|
||||
General.Clip0C = 0;
|
||||
General.Clip0D = 0;
|
||||
General.Clip1A = 0;
|
||||
General.Clip1B = 1;
|
||||
General.Clip1C = 0;
|
||||
General.Clip1D = 0;
|
||||
General.Clip2A = 0;
|
||||
General.Clip2B = 0;
|
||||
General.Clip2C = 1;
|
||||
General.Clip2D = 0;
|
||||
General.Clip3A = -1;
|
||||
General.Clip3B = 0;
|
||||
General.Clip3C = 0;
|
||||
General.Clip3D = 1;
|
||||
General.Clip4A = 0;
|
||||
General.Clip4B = -1;
|
||||
General.Clip4C = 0;
|
||||
General.Clip4D = 1;
|
||||
General.Clip5A = 0;
|
||||
General.Clip5B = 0;
|
||||
General.Clip5C = -1;
|
||||
General.Clip5D = 1;
|
||||
General.ClipFactor = 5;
|
||||
General.ClipOnlyDrawIntersectingVolume = 0;
|
||||
General.ClipOnlyVolume = 0;
|
||||
General.ClipPositionX = 650;
|
||||
General.ClipPositionY = 150;
|
||||
General.ClipWholeElements = 0;
|
||||
General.ColorScheme = 1;
|
||||
General.ConfirmOverwrite = 1;
|
||||
General.ContextPositionX = 235;
|
||||
General.ContextPositionY = 962;
|
||||
General.DetachedMenu = 0;
|
||||
General.DisplayBorderFactor = 0.2;
|
||||
General.DoubleBuffer = 1;
|
||||
General.DrawBoundingBoxes = 0;
|
||||
General.ExpertMode = 0;
|
||||
General.ExtraPositionX = 650;
|
||||
General.ExtraPositionY = 350;
|
||||
General.ExtraHeight = 100;
|
||||
General.ExtraWidth = 100;
|
||||
General.FastRedraw = 0;
|
||||
General.FieldPositionX = 650;
|
||||
General.FieldPositionY = 550;
|
||||
General.FieldHeight = 488;
|
||||
General.FieldWidth = 651;
|
||||
General.FileChooserPositionX = 200;
|
||||
General.FileChooserPositionY = 200;
|
||||
General.FltkColorScheme = 0;
|
||||
General.FontSize = -1;
|
||||
General.GraphicsFontSize = 15;
|
||||
General.GraphicsFontSizeTitle = 18;
|
||||
General.GraphicsHeight = 1003;
|
||||
General.GraphicsPositionX = 274;
|
||||
General.GraphicsPositionY = 263;
|
||||
General.GraphicsWidth = 1920;
|
||||
General.HighOrderToolsPositionX = 650;
|
||||
General.HighOrderToolsPositionY = 150;
|
||||
General.HighResolutionGraphics = 1;
|
||||
General.HighResolutionPointSizeFactor = 2;
|
||||
General.InitialModule = 0;
|
||||
General.InputScrolling = 1;
|
||||
General.Light0 = 1;
|
||||
General.Light0X = 0.65;
|
||||
General.Light0Y = 0.65;
|
||||
General.Light0Z = 1;
|
||||
General.Light0W = 0;
|
||||
General.Light1 = 0;
|
||||
General.Light1X = 0.5;
|
||||
General.Light1Y = 0.3;
|
||||
General.Light1Z = 1;
|
||||
General.Light1W = 0;
|
||||
General.Light2 = 0;
|
||||
General.Light2X = 0.5;
|
||||
General.Light2Y = 0.3;
|
||||
General.Light2Z = 1;
|
||||
General.Light2W = 0;
|
||||
General.Light3 = 0;
|
||||
General.Light3X = 0.5;
|
||||
General.Light3Y = 0.3;
|
||||
General.Light3Z = 1;
|
||||
General.Light3W = 0;
|
||||
General.Light4 = 0;
|
||||
General.Light4X = 0.5;
|
||||
General.Light4Y = 0.3;
|
||||
General.Light4Z = 1;
|
||||
General.Light4W = 0;
|
||||
General.Light5 = 0;
|
||||
General.Light5X = 0.5;
|
||||
General.Light5Y = 0.3;
|
||||
General.Light5Z = 1;
|
||||
General.Light5W = 0;
|
||||
General.LineWidth = 1;
|
||||
General.ManipulatorPositionX = 650;
|
||||
General.ManipulatorPositionY = 150;
|
||||
General.MaxX = 0.07000000000000001;
|
||||
General.MaxY = 0.03;
|
||||
General.MaxZ = 0;
|
||||
General.MenuWidth = 219;
|
||||
General.MenuHeight = 200;
|
||||
General.MenuPositionX = 400;
|
||||
General.MenuPositionY = 400;
|
||||
General.MessageFontSize = -1;
|
||||
General.MessageHeight = 300;
|
||||
General.MinX = 0;
|
||||
General.MinY = 0;
|
||||
General.MinZ = 0;
|
||||
General.MouseHoverMeshes = 0;
|
||||
General.MouseSelection = 1;
|
||||
General.MouseInvertZoom = 0;
|
||||
General.NonModalWindows = 1;
|
||||
General.NoPopup = 0;
|
||||
General.NumThreads = 1;
|
||||
General.OptionsPositionX = 827;
|
||||
General.OptionsPositionY = 541;
|
||||
General.Orthographic = 1;
|
||||
General.PluginPositionX = 58;
|
||||
General.PluginPositionY = 658;
|
||||
General.PluginHeight = 488;
|
||||
General.PluginWidth = 708;
|
||||
General.PointSize = 3;
|
||||
General.PolygonOffsetAlwaysOn = 0;
|
||||
General.PolygonOffsetFactor = 1;
|
||||
General.PolygonOffsetUnits = 1;
|
||||
General.ProgressMeterStep = 20;
|
||||
General.QuadricSubdivisions = 6;
|
||||
General.RotationX = -0;
|
||||
General.RotationY = 0;
|
||||
General.RotationZ = -0;
|
||||
General.RotationCenterGravity = 1;
|
||||
General.RotationCenterX = 0;
|
||||
General.RotationCenterY = 0;
|
||||
General.RotationCenterZ = 0;
|
||||
General.SaveOptions = 0;
|
||||
General.SaveSession = 1;
|
||||
General.ScaleX = 1;
|
||||
General.ScaleY = 1;
|
||||
General.ScaleZ = 1;
|
||||
General.Shininess = 0.4;
|
||||
General.ShininessExponent = 40;
|
||||
General.ShowModuleMenu = 1;
|
||||
General.ShowOptionsOnStartup = 0;
|
||||
General.ShowMessagesOnStartup = 0;
|
||||
General.SmallAxes = 1;
|
||||
General.SmallAxesPositionX = -60;
|
||||
General.SmallAxesPositionY = -40;
|
||||
General.SmallAxesSize = 30;
|
||||
General.StatisticsPositionX = 650;
|
||||
General.StatisticsPositionY = 150;
|
||||
General.Stereo = 0;
|
||||
General.SystemMenuBar = 1;
|
||||
General.Terminal = 0;
|
||||
General.Tooltips = 1;
|
||||
General.Trackball = 1;
|
||||
General.TrackballHyperbolicSheet = 1;
|
||||
General.TrackballQuaternion0 = 0;
|
||||
General.TrackballQuaternion1 = 0;
|
||||
General.TrackballQuaternion2 = 0;
|
||||
General.TrackballQuaternion3 = 1;
|
||||
General.TranslationX = 0;
|
||||
General.TranslationY = 0;
|
||||
General.TranslationZ = 0;
|
||||
General.VectorType = 4;
|
||||
General.Verbosity = 5;
|
||||
General.VisibilityPositionX = 1118;
|
||||
General.VisibilityPositionY = 464;
|
||||
General.ZoomFactor = 4;
|
||||
General.Color.Background = {255,255,255};
|
||||
General.Color.BackgroundGradient = {208,215,255};
|
||||
General.Color.Foreground = {85,85,85};
|
||||
General.Color.Text = {0,0,0};
|
||||
General.Color.Axes = {0,0,0};
|
||||
General.Color.SmallAxes = {0,0,0};
|
||||
General.Color.AmbientLight = {25,25,25};
|
||||
General.Color.DiffuseLight = {255,255,255};
|
||||
General.Color.SpecularLight = {255,255,255};
|
||||
Geometry.DoubleClickedPointCommand = "";
|
||||
Geometry.DoubleClickedLineCommand = "";
|
||||
Geometry.DoubleClickedSurfaceCommand = "";
|
||||
Geometry.DoubleClickedVolumeCommand = "";
|
||||
Geometry.OCCTargetUnit = "";
|
||||
Geometry.AutoCoherence = 1;
|
||||
Geometry.Clip = 0;
|
||||
Geometry.CopyMeshingMethod = 0;
|
||||
Geometry.DoubleClickedEntityTag = 0;
|
||||
Geometry.ExactExtrusion = 1;
|
||||
Geometry.ExtrudeReturnLateralEntities = 1;
|
||||
Geometry.ExtrudeSplinePoints = 5;
|
||||
Geometry.HighlightOrphans = 0;
|
||||
Geometry.LabelType = 0;
|
||||
Geometry.Light = 1;
|
||||
Geometry.LightTwoSide = 1;
|
||||
Geometry.Lines = 1;
|
||||
Geometry.LineNumbers = 0;
|
||||
Geometry.LineSelectWidth = 3;
|
||||
Geometry.LineType = 0;
|
||||
Geometry.LineWidth = 2;
|
||||
Geometry.MatchGeomAndMesh = 0;
|
||||
Geometry.MatchMeshScaleFactor = 1;
|
||||
Geometry.MatchMeshTolerance = 1e-06;
|
||||
Geometry.Normals = 0;
|
||||
Geometry.NumSubEdges = 40;
|
||||
Geometry.OCCAutoFix = 1;
|
||||
Geometry.OCCBooleanPreserveNumbering = 1;
|
||||
Geometry.OCCDisableSTL = 0;
|
||||
Geometry.OCCFixDegenerated = 0;
|
||||
Geometry.OCCFixSmallEdges = 0;
|
||||
Geometry.OCCFixSmallFaces = 0;
|
||||
Geometry.OCCImportLabels = 1;
|
||||
Geometry.OCCParallel = 0;
|
||||
Geometry.OCCScaling = 1;
|
||||
Geometry.OCCSewFaces = 0;
|
||||
Geometry.OffsetX = 0;
|
||||
Geometry.OffsetY = 0;
|
||||
Geometry.OffsetZ = 0;
|
||||
Geometry.OldCircle = 0;
|
||||
Geometry.OldRuledSurface = 0;
|
||||
Geometry.OldNewReg = 1;
|
||||
Geometry.Points = 1;
|
||||
Geometry.PointNumbers = 0;
|
||||
Geometry.PointSelectSize = 6;
|
||||
Geometry.PointSize = 4;
|
||||
Geometry.PointType = 0;
|
||||
Geometry.ReparamOnFaceRobust = 0;
|
||||
Geometry.ScalingFactor = 1;
|
||||
Geometry.OrientedPhysicals = 1;
|
||||
Geometry.SnapX = 0.1;
|
||||
Geometry.SnapY = 0.1;
|
||||
Geometry.SnapZ = 0.1;
|
||||
Geometry.Surfaces = 0;
|
||||
Geometry.SurfaceNumbers = 0;
|
||||
Geometry.SurfaceType = 0;
|
||||
Geometry.Tangents = 0;
|
||||
Geometry.Tolerance = 1e-08;
|
||||
Geometry.ToleranceBoolean = 0;
|
||||
Geometry.Transform = 0;
|
||||
Geometry.TransformXX = 1;
|
||||
Geometry.TransformXY = 0;
|
||||
Geometry.TransformXZ = 0;
|
||||
Geometry.TransformYX = 0;
|
||||
Geometry.TransformYY = 1;
|
||||
Geometry.TransformYZ = 0;
|
||||
Geometry.TransformZX = 0;
|
||||
Geometry.TransformZY = 0;
|
||||
Geometry.TransformZZ = 1;
|
||||
Geometry.Volumes = 0;
|
||||
Geometry.VolumeNumbers = 0;
|
||||
Geometry.Color.Points = {90,90,90};
|
||||
Geometry.Color.Lines = {0,0,255};
|
||||
Geometry.Color.Surfaces = {128,128,128};
|
||||
Geometry.Color.Volumes = {255,255,0};
|
||||
Geometry.Color.Selection = {255,0,0};
|
||||
Geometry.Color.HighlightZero = {255,0,0};
|
||||
Geometry.Color.HighlightOne = {255,150,0};
|
||||
Geometry.Color.HighlightTwo = {255,255,0};
|
||||
Geometry.Color.Tangents = {255,255,0};
|
||||
Geometry.Color.Normals = {255,0,0};
|
||||
Geometry.Color.Projection = {0,255,0};
|
||||
Mesh.Algorithm = 2;
|
||||
Mesh.Algorithm3D = 1;
|
||||
Mesh.AngleSmoothNormals = 30;
|
||||
Mesh.AngleToleranceFacetOverlap = 0.1;
|
||||
Mesh.AnisoMax = 9.999999999999999e+32;
|
||||
Mesh.AllowSwapAngle = 10;
|
||||
Mesh.BdfFieldFormat = 1;
|
||||
Mesh.Binary = 0;
|
||||
Mesh.BoundaryLayerFanPoints = 5;
|
||||
Mesh.CgnsImportOrder = 1;
|
||||
Mesh.CgnsConstructTopology = 0;
|
||||
Mesh.CharacteristicLengthExtendFromBoundary = 1;
|
||||
Mesh.CharacteristicLengthFactor = 1;
|
||||
Mesh.CharacteristicLengthMin = 0;
|
||||
Mesh.CharacteristicLengthMax = 1e+22;
|
||||
Mesh.CharacteristicLengthFromCurvature = 0;
|
||||
Mesh.CharacteristicLengthFromPoints = 1;
|
||||
Mesh.Clip = 0;
|
||||
Mesh.ColorCarousel = 0;
|
||||
Mesh.CompoundClassify = 1;
|
||||
Mesh.CompoundCharacteristicLengthFactor = 0.5;
|
||||
Mesh.CpuTime = 0;
|
||||
Mesh.DrawSkinOnly = 0;
|
||||
Mesh.Dual = 0;
|
||||
Mesh.ElementOrder = 1;
|
||||
Mesh.Explode = 1;
|
||||
Mesh.FlexibleTransfinite = 0;
|
||||
Mesh.NewtonConvergenceTestXYZ = 0;
|
||||
Mesh.Format = 10;
|
||||
Mesh.Hexahedra = 1;
|
||||
Mesh.HighOrderIterMax = 100;
|
||||
Mesh.HighOrderNumLayers = 6;
|
||||
Mesh.HighOrderOptimize = 0;
|
||||
Mesh.HighOrderPassMax = 25;
|
||||
Mesh.HighOrderPeriodic = 0;
|
||||
Mesh.HighOrderPoissonRatio = 0.33;
|
||||
Mesh.HighOrderPrimSurfMesh = 0;
|
||||
Mesh.HighOrderDistCAD = 0;
|
||||
Mesh.HighOrderThresholdMin = 0.1;
|
||||
Mesh.HighOrderThresholdMax = 2;
|
||||
Mesh.LabelSampling = 1;
|
||||
Mesh.LabelType = 0;
|
||||
Mesh.LcIntegrationPrecision = 1e-09;
|
||||
Mesh.Light = 1;
|
||||
Mesh.LightLines = 2;
|
||||
Mesh.LightTwoSide = 1;
|
||||
Mesh.Lines = 1;
|
||||
Mesh.LineNumbers = 0;
|
||||
Mesh.LineWidth = 1;
|
||||
Mesh.MaxNumThreads1D = 0;
|
||||
Mesh.MaxNumThreads2D = 0;
|
||||
Mesh.MaxNumThreads3D = 0;
|
||||
Mesh.MeshOnlyVisible = 0;
|
||||
Mesh.MetisAlgorithm = 1;
|
||||
Mesh.MetisEdgeMatching = 2;
|
||||
Mesh.MetisMaxLoadImbalance = -1;
|
||||
Mesh.MetisObjective = 1;
|
||||
Mesh.MetisMinConn = -1;
|
||||
Mesh.MetisRefinementAlgorithm = 2;
|
||||
Mesh.MinimumCirclePoints = 7;
|
||||
Mesh.MinimumCurvePoints = 3;
|
||||
Mesh.MshFileVersion = 4.1;
|
||||
Mesh.MedFileMinorVersion = -1;
|
||||
Mesh.MedImportGroupsOfNodes = 0;
|
||||
Mesh.MedSingleModel = 0;
|
||||
Mesh.PartitionHexWeight = -1;
|
||||
Mesh.PartitionLineWeight = -1;
|
||||
Mesh.PartitionPrismWeight = -1;
|
||||
Mesh.PartitionPyramidWeight = -1;
|
||||
Mesh.PartitionQuadWeight = -1;
|
||||
Mesh.PartitionTrihedronWeight = 0;
|
||||
Mesh.PartitionTetWeight = -1;
|
||||
Mesh.PartitionTriWeight = -1;
|
||||
Mesh.PartitionCreateTopology = 1;
|
||||
Mesh.PartitionCreatePhysicals = 1;
|
||||
Mesh.PartitionCreateGhostCells = 0;
|
||||
Mesh.PartitionSplitMeshFiles = 0;
|
||||
Mesh.PartitionTopologyFile = 0;
|
||||
Mesh.PartitionOldStyleMsh2 = 1;
|
||||
Mesh.NbHexahedra = 0;
|
||||
Mesh.NbNodes = 27248;
|
||||
Mesh.NbPartitions = 0;
|
||||
Mesh.NbPrisms = 0;
|
||||
Mesh.NbPyramids = 0;
|
||||
Mesh.NbTrihedra = 0;
|
||||
Mesh.NbQuadrangles = 26877;
|
||||
Mesh.NbTetrahedra = 0;
|
||||
Mesh.NbTriangles = 0;
|
||||
Mesh.Normals = 0;
|
||||
Mesh.NumSubEdges = 2;
|
||||
Mesh.Optimize = 1;
|
||||
Mesh.OptimizeThreshold = 0.3;
|
||||
Mesh.OptimizeNetgen = 0;
|
||||
Mesh.Points = 0;
|
||||
Mesh.PointNumbers = 0;
|
||||
Mesh.PointSize = 4;
|
||||
Mesh.PointType = 0;
|
||||
Mesh.Prisms = 1;
|
||||
Mesh.Pyramids = 1;
|
||||
Mesh.Trihedra = 1;
|
||||
Mesh.Quadrangles = 1;
|
||||
Mesh.QualityInf = 0;
|
||||
Mesh.QualitySup = 0;
|
||||
Mesh.QualityType = 2;
|
||||
Mesh.RadiusInf = 0;
|
||||
Mesh.RadiusSup = 0;
|
||||
Mesh.RandomFactor = 1e-09;
|
||||
Mesh.RandomFactor3D = 1e-12;
|
||||
Mesh.RandomSeed = 1;
|
||||
Mesh.PreserveNumberingMsh2 = 0;
|
||||
Mesh.IgnorePeriodicity = 0;
|
||||
Mesh.RecombinationAlgorithm = 1;
|
||||
Mesh.RecombineAll = 0;
|
||||
Mesh.RecombineOptimizeTopology = 5;
|
||||
Mesh.Recombine3DAll = 0;
|
||||
Mesh.Recombine3DLevel = 0;
|
||||
Mesh.Recombine3DConformity = 0;
|
||||
Mesh.RefineSteps = 10;
|
||||
Mesh.Renumber = 1;
|
||||
Mesh.SaveAll = 0;
|
||||
Mesh.SaveElementTagType = 1;
|
||||
Mesh.SaveTopology = 0;
|
||||
Mesh.SaveParametric = 0;
|
||||
Mesh.SaveGroupsOfNodes = 0;
|
||||
Mesh.ScalingFactor = 1;
|
||||
Mesh.SecondOrderExperimental = 0;
|
||||
Mesh.SecondOrderIncomplete = 0;
|
||||
Mesh.SecondOrderLinear = 0;
|
||||
Mesh.Smoothing = 1;
|
||||
Mesh.SmoothCrossField = 0;
|
||||
Mesh.CrossFieldClosestPoint = 1;
|
||||
Mesh.SmoothNormals = 0;
|
||||
Mesh.SmoothRatio = 1.8;
|
||||
Mesh.StlOneSolidPerSurface = 0;
|
||||
Mesh.StlRemoveDuplicateTriangles = 0;
|
||||
Mesh.SubdivisionAlgorithm = 0;
|
||||
Mesh.SurfaceEdges = 0;
|
||||
Mesh.SurfaceFaces = 0;
|
||||
Mesh.SurfaceNumbers = 0;
|
||||
Mesh.SwitchElementTags = 0;
|
||||
Mesh.Tangents = 0;
|
||||
Mesh.Tetrahedra = 1;
|
||||
Mesh.ToleranceEdgeLength = 0;
|
||||
Mesh.ToleranceInitialDelaunay = 1e-08;
|
||||
Mesh.Triangles = 1;
|
||||
Mesh.UnvStrictFormat = 1;
|
||||
Mesh.VolumeEdges = 1;
|
||||
Mesh.VolumeFaces = 0;
|
||||
Mesh.VolumeNumbers = 0;
|
||||
Mesh.Voronoi = 0;
|
||||
Mesh.ZoneDefinition = 0;
|
||||
Mesh.Color.Points = {0,0,255};
|
||||
Mesh.Color.PointsSup = {255,0,255};
|
||||
Mesh.Color.Lines = {0,0,0};
|
||||
Mesh.Color.Triangles = {160,150,255};
|
||||
Mesh.Color.Quadrangles = {130,120,225};
|
||||
Mesh.Color.Tetrahedra = {160,150,255};
|
||||
Mesh.Color.Hexahedra = {130,120,225};
|
||||
Mesh.Color.Prisms = {232,210,23};
|
||||
Mesh.Color.Pyramids = {217,113,38};
|
||||
Mesh.Color.Trihedra = {20,255,0};
|
||||
Mesh.Color.Tangents = {255,255,0};
|
||||
Mesh.Color.Normals = {255,0,0};
|
||||
Mesh.Color.Zero = {255,120,0};
|
||||
Mesh.Color.One = {0,255,132};
|
||||
Mesh.Color.Two = {255,160,0};
|
||||
Mesh.Color.Three = {0,255,192};
|
||||
Mesh.Color.Four = {255,200,0};
|
||||
Mesh.Color.Five = {0,216,255};
|
||||
Mesh.Color.Six = {255,240,0};
|
||||
Mesh.Color.Seven = {0,176,255};
|
||||
Mesh.Color.Eight = {228,255,0};
|
||||
Mesh.Color.Nine = {0,116,255};
|
||||
Mesh.Color.Ten = {188,255,0};
|
||||
Mesh.Color.Eleven = {0,76,255};
|
||||
Mesh.Color.Twelve = {148,255,0};
|
||||
Mesh.Color.Thirteen = {24,0,255};
|
||||
Mesh.Color.Fourteen = {108,255,0};
|
||||
Mesh.Color.Fifteen = {84,0,255};
|
||||
Mesh.Color.Sixteen = {68,255,0};
|
||||
Mesh.Color.Seventeen = {104,0,255};
|
||||
Mesh.Color.Eighteen = {0,255,52};
|
||||
Mesh.Color.Nineteen = {184,0,255};
|
||||
Solver.Executable0 = "";
|
||||
Solver.Executable1 = "";
|
||||
Solver.Executable2 = "";
|
||||
Solver.Executable3 = "";
|
||||
Solver.Executable4 = "";
|
||||
Solver.Executable5 = "";
|
||||
Solver.Executable6 = "";
|
||||
Solver.Executable7 = "";
|
||||
Solver.Executable8 = "";
|
||||
Solver.Executable9 = "";
|
||||
Solver.Name0 = "GetDP";
|
||||
Solver.Name1 = "";
|
||||
Solver.Name2 = "";
|
||||
Solver.Name3 = "";
|
||||
Solver.Name4 = "";
|
||||
Solver.Name5 = "";
|
||||
Solver.Name6 = "";
|
||||
Solver.Name7 = "";
|
||||
Solver.Name8 = "";
|
||||
Solver.Name9 = "";
|
||||
Solver.Extension0 = ".pro";
|
||||
Solver.Extension1 = "";
|
||||
Solver.Extension2 = "";
|
||||
Solver.Extension3 = "";
|
||||
Solver.Extension4 = "";
|
||||
Solver.Extension5 = "";
|
||||
Solver.Extension6 = "";
|
||||
Solver.Extension7 = "";
|
||||
Solver.Extension8 = "";
|
||||
Solver.Extension9 = "";
|
||||
Solver.OctaveInterpreter = "octave";
|
||||
Solver.PythonInterpreter = "python";
|
||||
Solver.RemoteLogin0 = "";
|
||||
Solver.RemoteLogin1 = "";
|
||||
Solver.RemoteLogin2 = "";
|
||||
Solver.RemoteLogin3 = "";
|
||||
Solver.RemoteLogin4 = "";
|
||||
Solver.RemoteLogin5 = "";
|
||||
Solver.RemoteLogin6 = "";
|
||||
Solver.RemoteLogin7 = "";
|
||||
Solver.RemoteLogin8 = "";
|
||||
Solver.RemoteLogin9 = "";
|
||||
Solver.SocketName = ".gmshsock";
|
||||
Solver.AlwaysListen = 0;
|
||||
Solver.AutoArchiveOutputFiles = 0;
|
||||
Solver.AutoCheck = 1;
|
||||
Solver.AutoLoadDatabase = 0;
|
||||
Solver.AutoSaveDatabase = 1;
|
||||
Solver.AutoMesh = 2;
|
||||
Solver.AutoMergeFile = 1;
|
||||
Solver.AutoShowViews = 2;
|
||||
Solver.AutoShowLastStep = 1;
|
||||
Solver.Plugins = 0;
|
||||
Solver.ShowInvisibleParameters = 0;
|
||||
Solver.Timeout = 5;
|
||||
PostProcessing.DoubleClickedGraphPointCommand = "";
|
||||
PostProcessing.GraphPointCommand = "";
|
||||
PostProcessing.AnimationDelay = 0.1;
|
||||
PostProcessing.AnimationCycle = 0;
|
||||
PostProcessing.AnimationStep = 1;
|
||||
PostProcessing.CombineRemoveOriginal = 1;
|
||||
PostProcessing.DoubleClickedGraphPointX = 0;
|
||||
PostProcessing.DoubleClickedGraphPointY = 0;
|
||||
PostProcessing.DoubleClickedView = 0;
|
||||
PostProcessing.ForceElementData = 0;
|
||||
PostProcessing.ForceNodeData = 0;
|
||||
PostProcessing.Format = 10;
|
||||
PostProcessing.GraphPointX = 0;
|
||||
PostProcessing.GraphPointY = 0;
|
||||
PostProcessing.HorizontalScales = 1;
|
||||
PostProcessing.Link = 0;
|
||||
PostProcessing.NbViews = 0;
|
||||
PostProcessing.Plugins = 1;
|
||||
PostProcessing.SaveInterpolationMatrices = 1;
|
||||
PostProcessing.SaveMesh = 1;
|
||||
PostProcessing.Smoothing = 0;
|
||||
Print.ParameterCommand = "Mesh.Clip=1; View.Clip=1; General.ClipWholeElements=1; General.Clip0D=Print.Parameter; SetChanged;";
|
||||
Print.Parameter = 0;
|
||||
Print.ParameterFirst = -1;
|
||||
Print.ParameterLast = 1;
|
||||
Print.ParameterSteps = 10;
|
||||
Print.Background = 0;
|
||||
Print.CompositeWindows = 0;
|
||||
Print.PgfTwoDim = 1;
|
||||
Print.PgfExportAxis = 0;
|
||||
Print.PgfHorizontalBar = 0;
|
||||
Print.DeleteTemporaryFiles = 1;
|
||||
Print.EpsBestRoot = 1;
|
||||
Print.EpsCompress = 0;
|
||||
Print.EpsLineWidthFactor = 1;
|
||||
Print.EpsOcclusionCulling = 1;
|
||||
Print.EpsPointSizeFactor = 1;
|
||||
Print.EpsPS3Shading = 0;
|
||||
Print.EpsQuality = 1;
|
||||
Print.Format = 10;
|
||||
Print.GeoLabels = 1;
|
||||
Print.GeoOnlyPhysicals = 0;
|
||||
Print.GifDither = 0;
|
||||
Print.GifInterlace = 0;
|
||||
Print.GifSort = 1;
|
||||
Print.GifTransparent = 0;
|
||||
Print.Height = -1;
|
||||
Print.JpegQuality = 100;
|
||||
Print.JpegSmoothing = 0;
|
||||
Print.PostElementary = 1;
|
||||
Print.PostElement = 0;
|
||||
Print.PostGamma = 0;
|
||||
Print.PostEta = 0;
|
||||
Print.PostSICN = 0;
|
||||
Print.PostSIGE = 0;
|
||||
Print.PostDisto = 0;
|
||||
Print.TexAsEquation = 0;
|
||||
Print.Text = 1;
|
||||
Print.X3dCompatibility = 0;
|
||||
Print.X3dPrecision = 1e-09;
|
||||
Print.X3dRemoveInnerBorders = 0;
|
||||
Print.X3dTransparency = 0;
|
||||
Print.Width = -1;
|
||||
|
|
@ -67,24 +67,35 @@ MODULE moduleMeshInputGmsh2
|
|||
!Read the nodes information
|
||||
DO e = 1, self%numNodes
|
||||
READ(10, *) n, r(1), r(2), r(3)
|
||||
SELECT CASE(self%geometry)
|
||||
CASE("3DCart")
|
||||
SELECT CASE(self%dimen)
|
||||
CASE(3)
|
||||
ALLOCATE(meshNode3Dcart::self%nodes(n)%obj)
|
||||
self%connectMesh => connectMesh3DCart
|
||||
|
||||
CASE("2DCyl")
|
||||
CASE(2)
|
||||
SELECT CASE(self%geometry)
|
||||
CASE("Cyl")
|
||||
ALLOCATE(meshNode2DCyl:: self%nodes(n)%obj)
|
||||
r(3) = 0.D0
|
||||
self%connectMesh => connectMesh2DCyl
|
||||
|
||||
CASE("2DCart")
|
||||
CASE("Cart")
|
||||
ALLOCATE(meshNode2DCart:: self%nodes(n)%obj)
|
||||
self%connectMesh => connectMesh2DCart
|
||||
|
||||
END SELECT
|
||||
r(3) = 0.D0
|
||||
|
||||
CASE("1DRad")
|
||||
CASE(1)
|
||||
SELECT CASE(self%geometry)
|
||||
CASE("Rad")
|
||||
ALLOCATE(meshNode1DRad:: self%nodes(n)%obj)
|
||||
r(2:3) = 0.D0
|
||||
self%connectMesh => connectMesh1DRad
|
||||
|
||||
CASE("1DCart")
|
||||
CASE("Cart")
|
||||
ALLOCATE(meshNode1DCart:: self%nodes(n)%obj)
|
||||
self%connectMesh => connectMesh1DCart
|
||||
|
||||
END SELECT
|
||||
r(2:3) = 0.D0
|
||||
|
||||
END SELECT
|
||||
|
|
@ -92,7 +103,6 @@ MODULE moduleMeshInputGmsh2
|
|||
|
||||
END DO
|
||||
|
||||
|
||||
!Skip comments
|
||||
READ(10, *)
|
||||
READ(10, *)
|
||||
|
|
@ -106,16 +116,16 @@ MODULE moduleMeshInputGmsh2
|
|||
self%numEdges = 0
|
||||
DO e = 1, totalNumElem
|
||||
READ(10, *) eTemp, elemType
|
||||
SELECT CASE(self%geometry)
|
||||
CASE("3DCart")
|
||||
SELECT CASE(self%dimen)
|
||||
CASE(3)
|
||||
!Element type 2 is triangle in gmsh
|
||||
IF (elemType == 2) self%numEdges = e
|
||||
|
||||
CASE("2DCyl","2DCart")
|
||||
CASE(2)
|
||||
!Element type 1 is segment in Gmsh
|
||||
IF (elemType == 1) self%numEdges = e
|
||||
|
||||
CASE("1DRad","1DCart")
|
||||
CASE(1)
|
||||
!Element type 15 is physical point in Gmsh
|
||||
IF (elemType == 15) self%numEdges = e
|
||||
|
||||
|
|
@ -148,8 +158,8 @@ MODULE moduleMeshInputGmsh2
|
|||
!Reads edges
|
||||
DO e=1, self%numEdges
|
||||
!Reads the edge according to the geometry
|
||||
SELECT CASE(self%geometry)
|
||||
CASE("3DCart")
|
||||
SELECT CASE(self%dimen)
|
||||
CASE(3)
|
||||
READ(10, *) n, elemType, eTemp, boundaryType
|
||||
BACKSPACE(10)
|
||||
|
||||
|
|
@ -167,7 +177,9 @@ MODULE moduleMeshInputGmsh2
|
|||
|
||||
END SELECT
|
||||
|
||||
CASE("2DCyl")
|
||||
CASE (2)
|
||||
SELECT CASE(self%geometry)
|
||||
CASE("Cyl")
|
||||
ALLOCATE(p(1:2))
|
||||
|
||||
READ(10,*) n, elemType, eTemp, boundaryType, eTemp, p(1:2)
|
||||
|
|
@ -176,7 +188,7 @@ MODULE moduleMeshInputGmsh2
|
|||
|
||||
ALLOCATE(meshEdge2DCyl:: self%edges(e)%obj)
|
||||
|
||||
CASE("2DCart")
|
||||
CASE("Cart")
|
||||
ALLOCATE(p(1:2))
|
||||
|
||||
READ(10,*) n, elemType, eTemp, boundaryType, eTemp, p(1:2)
|
||||
|
|
@ -185,7 +197,11 @@ MODULE moduleMeshInputGmsh2
|
|||
|
||||
ALLOCATE(meshEdge2DCart:: self%edges(e)%obj)
|
||||
|
||||
CASE("1DRad")
|
||||
END SELECT
|
||||
|
||||
CASE(1)
|
||||
SELECT CASE(self%geometry)
|
||||
CASE("Rad")
|
||||
ALLOCATE(p(1:1))
|
||||
|
||||
READ(10, *) n, elemType, eTemp, boundaryType, eTemp, p(1)
|
||||
|
|
@ -194,7 +210,7 @@ MODULE moduleMeshInputGmsh2
|
|||
|
||||
ALLOCATE(meshEdge1DRad:: self%edges(e)%obj)
|
||||
|
||||
CASE("1DCart")
|
||||
CASE("Cart")
|
||||
ALLOCATE(p(1:1))
|
||||
|
||||
READ(10, *) n, elemType, eTemp, boundaryType, eTemp, p(1)
|
||||
|
|
@ -205,6 +221,8 @@ MODULE moduleMeshInputGmsh2
|
|||
|
||||
END SELECT
|
||||
|
||||
END SELECT
|
||||
|
||||
CALL self%edges(e)%obj%init(n, p, bt, boundaryType)
|
||||
DEALLOCATE(p)
|
||||
|
||||
|
|
@ -215,8 +233,8 @@ MODULE moduleMeshInputGmsh2
|
|||
!Read and initialize volumes
|
||||
DO e = 1, self%numVols
|
||||
!Reads the volume according to the geometry
|
||||
SELECT CASE(self%geometry)
|
||||
CASE("3DCart")
|
||||
SELECT CASE(self%dimen)
|
||||
CASE(3)
|
||||
READ(10, *) n, elemType
|
||||
BACKSPACE(10)
|
||||
|
||||
|
|
@ -229,7 +247,9 @@ MODULE moduleMeshInputGmsh2
|
|||
|
||||
END SELECT
|
||||
|
||||
CASE("2DCyl")
|
||||
CASE(2)
|
||||
SELECT CASE(self%geometry)
|
||||
CASE("Cyl")
|
||||
READ(10,*) n, elemType
|
||||
BACKSPACE(10)
|
||||
|
||||
|
|
@ -248,7 +268,7 @@ MODULE moduleMeshInputGmsh2
|
|||
|
||||
END SELECT
|
||||
|
||||
CASE("2DCart")
|
||||
CASE("Cart")
|
||||
READ(10,*) n, elemType
|
||||
BACKSPACE(10)
|
||||
|
||||
|
|
@ -267,13 +287,17 @@ MODULE moduleMeshInputGmsh2
|
|||
|
||||
END SELECT
|
||||
|
||||
CASE("1DRad")
|
||||
END SELECT
|
||||
|
||||
CASE(1)
|
||||
SELECT CASE(self%geometry)
|
||||
CASE("Rad")
|
||||
ALLOCATE(p(1:2))
|
||||
|
||||
READ(10, *) n, elemType, eTemp, eTemp, eTemp, p(1:2)
|
||||
ALLOCATE(meshVol1DRadSegm:: self%vols(e)%obj)
|
||||
|
||||
CASE("1DCart")
|
||||
CASE("Cart")
|
||||
ALLOCATE(p(1:2))
|
||||
|
||||
READ(10, *) n, elemType, eTemp, eTemp, eTemp, p(1:2)
|
||||
|
|
@ -281,6 +305,8 @@ MODULE moduleMeshInputGmsh2
|
|||
|
||||
END SELECT
|
||||
|
||||
END SELECT
|
||||
|
||||
CALL self%vols(e)%obj%init(n - numEdges, p, self%nodes)
|
||||
DEALLOCATE(p)
|
||||
|
||||
|
|
@ -288,6 +314,9 @@ MODULE moduleMeshInputGmsh2
|
|||
|
||||
CLOSE(10)
|
||||
|
||||
!Call mesh connectivity
|
||||
CALL self%connectMesh
|
||||
|
||||
END SUBROUTINE readGmsh2
|
||||
|
||||
!Reads the initial information from an output file for an species
|
||||
|
|
|
|||
|
|
@ -262,6 +262,8 @@ MODULE moduleMesh
|
|||
|
||||
!Generic mesh type
|
||||
TYPE, ABSTRACT:: meshGeneric
|
||||
!Dimension of the mesh
|
||||
INTEGER:: dimen
|
||||
!Geometry of the mesh
|
||||
CHARACTER(:), ALLOCATABLE:: geometry
|
||||
!Number of elements
|
||||
|
|
|
|||
|
|
@ -40,16 +40,6 @@ MODULE moduleInput
|
|||
CALL readSpecies(config)
|
||||
CALL checkStatus(config, "readSpecies")
|
||||
|
||||
!Reads case parameters
|
||||
CALL verboseError('Reading Case parameters...')
|
||||
CALL readCase(config)
|
||||
CALL checkStatus(config, "readCase")
|
||||
|
||||
!Read interactions between species
|
||||
CALL verboseError('Reading interaction between species...')
|
||||
CALL readInteractions(config)
|
||||
CALL checkStatus(config, "readInteractions")
|
||||
|
||||
!Read boundaries
|
||||
CALL verboseError('Reading boundary conditions...')
|
||||
CALL readBoundary(config)
|
||||
|
|
@ -60,6 +50,16 @@ MODULE moduleInput
|
|||
CALL readGeometry(config)
|
||||
CALL checkStatus(config, "readGeometry")
|
||||
|
||||
!Read solver parameters
|
||||
CALL verboseError('Reading Solver parameters...')
|
||||
CALL readSolver(config)
|
||||
CALL checkStatus(config, "readSolver")
|
||||
|
||||
!Read interactions between species
|
||||
CALL verboseError('Reading interaction between species...')
|
||||
CALL readInteractions(config)
|
||||
CALL checkStatus(config, "readInteractions")
|
||||
|
||||
!Read probes
|
||||
CALL verboseError('Reading Probes...')
|
||||
CALL readProbes(config)
|
||||
|
|
@ -85,12 +85,15 @@ MODULE moduleInput
|
|||
!Copies input file to output folder
|
||||
CALL EXECUTE_COMMAND_LINE('cp ' // inputFile // ' ' // path // folder)
|
||||
!Copies particle mesh
|
||||
IF (mesh%dimen > 0) THEN
|
||||
CALL EXECUTE_COMMAND_LINE('cp ' // pathMeshParticle // ' ' // path // folder)
|
||||
IF (doubleMesh) THEN
|
||||
CALL EXECUTE_COMMAND_LINE('cp ' // pathMeshColl // ' ' // path // folder)
|
||||
|
||||
END IF
|
||||
|
||||
END IF
|
||||
|
||||
END SUBROUTINE readConfig
|
||||
|
||||
!Checks the status of the JSON case file and, if failed, exits the execution.
|
||||
|
|
@ -156,7 +159,7 @@ MODULE moduleInput
|
|||
END SUBROUTINE readReference
|
||||
|
||||
!Reads the specific case parameters
|
||||
SUBROUTINE readCase(config)
|
||||
SUBROUTINE readSolver(config)
|
||||
USE moduleRefParam
|
||||
USE moduleErrors
|
||||
USE moduleCaseParam
|
||||
|
|
@ -164,6 +167,7 @@ MODULE moduleInput
|
|||
USE moduleSpecies
|
||||
USE moduleCollisions
|
||||
USE moduleOutput
|
||||
USE moduleMesh
|
||||
USE json_module
|
||||
IMPLICIT NONE
|
||||
|
||||
|
|
@ -172,47 +176,67 @@ MODULE moduleInput
|
|||
CHARACTER(:), ALLOCATABLE:: object
|
||||
!simulation final and initial times in [t]
|
||||
REAL(8):: finalTime, initialTime
|
||||
CHARACTER(:), ALLOCATABLE:: pusherType, WSType
|
||||
CHARACTER(:), ALLOCATABLE:: pusherType, WSType, EMType
|
||||
INTEGER:: nTau, nSolver
|
||||
INTEGER:: i
|
||||
CHARACTER(2):: iString
|
||||
CHARACTER(1):: tString
|
||||
|
||||
object = 'case'
|
||||
object = 'solver'
|
||||
|
||||
!Time parameters
|
||||
CALL config%info(object // '.tau', found, n_children = nTau)
|
||||
IF (.NOT. found .OR. nTau == 0) CALL criticalError('Required parameter tau not found','readCase')
|
||||
IF (.NOT. found .OR. nTau == 0) THEN
|
||||
CALL criticalError('Required parameter tau not found','readSolver')
|
||||
|
||||
END IF
|
||||
|
||||
ALLOCATE(tau(1:nSpecies))
|
||||
|
||||
DO i = 1, nTau
|
||||
WRITE(iString, '(I2)') i
|
||||
CALL config%get(object // '.tau(' // TRIM(iString) // ')', tau(i), found)
|
||||
|
||||
END DO
|
||||
|
||||
tauMin = MINVAL(tau(1:nTau))
|
||||
|
||||
IF (nTau < nSpecies) THEN
|
||||
CALL warningError('Using minimum time step for some species')
|
||||
tau(nTau+1:nSpecies) = MINVAL(tau(1:nTau))
|
||||
tau(nTau+1:nSpecies) = tauMin
|
||||
|
||||
END IF
|
||||
tauMin = MINVAL(tau)
|
||||
|
||||
!Gets the simulation final time
|
||||
CALL config%get(object // '.finalTime', finalTime, found)
|
||||
IF (.NOT. found) CALL criticalError('Required parameter finalTime not found','readCase')
|
||||
IF (.NOT. found) THEN
|
||||
CALL criticalError('Required parameter finalTime not found','readSolver')
|
||||
|
||||
END IF
|
||||
!Convert simulation time to number of iterations
|
||||
tFinal = INT(finalTime / tauMin)
|
||||
|
||||
!Gets the simulation initial time
|
||||
CALL config%get(object // '.initialTime', initialTime, found)
|
||||
IF (found) tInitial = INT(initialTime / tauMin)
|
||||
IF (found) THEN
|
||||
tInitial = INT(initialTime / tauMin)
|
||||
|
||||
END IF
|
||||
|
||||
!Gest the pusher for each species
|
||||
IF (mesh%dimen > 0) THEN
|
||||
CALL config%info(object // '.pusher', found, n_children = nSolver)
|
||||
IF (.NOT. found .OR. nSolver /= nSpecies) CALL criticalError('Required parameter pusher not found','readCase')
|
||||
IF (.NOT. found .OR. nSolver /= nSpecies) THEN
|
||||
CALL criticalError('Required parameter pusher not found','readSolver')
|
||||
|
||||
END IF
|
||||
|
||||
END IF
|
||||
|
||||
!Allocates all the pushers for particles
|
||||
ALLOCATE(solver%pusher(1:nSpecies))
|
||||
!Initialize pushers
|
||||
DO i = 1, nSolver
|
||||
DO i = 1, nSpecies
|
||||
WRITE(iString, '(I2)') i
|
||||
CALL config%get(object // '.pusher(' // TRIM(iString) // ')', pusherType, found)
|
||||
|
||||
|
|
@ -221,22 +245,38 @@ MODULE moduleInput
|
|||
|
||||
END DO
|
||||
|
||||
!Gest the non-analogue scheme
|
||||
!Get the non-analogue scheme
|
||||
CALL config%get(object // '.WeightingScheme', WSType, found)
|
||||
CALL solver%initWS(WSType)
|
||||
|
||||
!Makes tau(s) non-dimensional
|
||||
!Make tau(s) non-dimensional
|
||||
tau = tau / ti_ref
|
||||
tauMin = tauMin / ti_ref
|
||||
|
||||
!Sets the format of output files accordint to iteration number
|
||||
!Set the format of output files accordint to iteration number
|
||||
iterationDigits = INT(LOG10(REAL(tFinal))) + 1
|
||||
WRITE(tString, '(I1)') iterationDigits
|
||||
iterationFormat = "(I" // tString // "." // tString // ")"
|
||||
|
||||
END SUBROUTINE readCase
|
||||
!Get EM solver
|
||||
CALL config%get(object // '.EMSolver', EMType, found)
|
||||
IF (found) THEN
|
||||
CALL solver%initEM(EMType)
|
||||
SELECT CASE(EMType)
|
||||
CASE("Electrostatic")
|
||||
!Read BC
|
||||
CALL readEMBoundary(config)
|
||||
|
||||
!Reads the initial information for the species
|
||||
CASE DEFAULT
|
||||
CALL criticalError('EM Solver ' // EMType // ' not found', 'readSolver')
|
||||
|
||||
END SELECT
|
||||
|
||||
END IF
|
||||
|
||||
END SUBROUTINE readSolver
|
||||
|
||||
!Read the initial information for the species
|
||||
SUBROUTINE readInitial(config)
|
||||
USE moduleSpecies
|
||||
USE moduleMesh
|
||||
|
|
@ -270,13 +310,13 @@ MODULE moduleInput
|
|||
REAL(8):: vTh
|
||||
TYPE(lNode), POINTER:: partCurr, partNext
|
||||
|
||||
CALL config%info('case.initial', found, n_children = nInitial)
|
||||
CALL config%info('solver.initial', found, n_children = nInitial)
|
||||
|
||||
IF (found) THEN
|
||||
!Reads the information from initial species
|
||||
DO i = 1, nInitial
|
||||
WRITE(iString, '(I2)') i
|
||||
object = 'case.initial(' // iString // ')'
|
||||
object = 'solver.initial(' // iString // ')'
|
||||
CALL config%get(object // '.species', spName, found)
|
||||
sp = speciesName2Index(spName)
|
||||
CALL config%get(object // '.file', spFile, found)
|
||||
|
|
@ -372,7 +412,7 @@ MODULE moduleInput
|
|||
END DO
|
||||
|
||||
!Convert temporal list of particles into initial partOld array
|
||||
!Deallocates the list of initial particles
|
||||
!Deallocate the list of initial particles
|
||||
nNewPart = partInitial%amount
|
||||
IF (nNewPart > 0) THEN
|
||||
ALLOCATE(partOld(1:nNewPart))
|
||||
|
|
@ -504,13 +544,13 @@ MODULE moduleInput
|
|||
|
||||
END DO
|
||||
|
||||
!Reads relations between species
|
||||
!Read relations between species
|
||||
DO i = 1, nSpecies
|
||||
WRITE(iString, '(I2)') i
|
||||
object = 'species(' // TRIM(iString) // ')'
|
||||
SELECT TYPE(sp => species(i)%obj)
|
||||
TYPE IS (speciesNeutral)
|
||||
!Gets species linked ion
|
||||
!Get species linked ion
|
||||
CALL config%get(object // '.ion', linkName, found)
|
||||
IF (found) THEN
|
||||
linkID = speciesName2Index(linkName)
|
||||
|
|
@ -519,7 +559,7 @@ MODULE moduleInput
|
|||
END IF
|
||||
|
||||
TYPE IS (speciesCharged)
|
||||
!Gets species linked neutral
|
||||
!Get species linked neutral
|
||||
CALL config%get(object // '.neutral', linkName, found)
|
||||
IF (found) THEN
|
||||
linkID = speciesName2Index(linkName)
|
||||
|
|
@ -580,19 +620,6 @@ MODULE moduleInput
|
|||
!Checks if MC collisions have been defined
|
||||
CALL config%info('interactions.collisions', found)
|
||||
IF (found) THEN
|
||||
!Checks if a mesh for collisions has been defined
|
||||
!The mesh will be initialized and reader in readGeometry
|
||||
CALL config%info('interactions.meshCollisions', found)
|
||||
IF (found) THEN
|
||||
!Points meshForMCC to the specific mesh defined
|
||||
meshForMCC => meshColl
|
||||
|
||||
ELSE
|
||||
!Points the meshForMCC pointer to the Particles Mesh
|
||||
meshForMCC => mesh
|
||||
|
||||
END IF
|
||||
|
||||
!Reads collision time step
|
||||
CALL config%info('interactions.timeStep', found)
|
||||
IF (found) THEN
|
||||
|
|
@ -792,11 +819,6 @@ MODULE moduleInput
|
|||
USE moduleMesh
|
||||
USE moduleMeshInputGmsh2, ONLY: initGmsh2
|
||||
USE moduleMeshInput0D, ONLY: init0D
|
||||
USE moduleMesh3DCart, ONLY: connectMesh3DCart
|
||||
USE moduleMesh2DCyl, ONLY: connectMesh2DCyl
|
||||
USE moduleMesh2DCart, ONLY: connectMesh2DCart
|
||||
USE moduleMesh1DRad, ONLY: connectMesh1DRad
|
||||
USE moduleMesh1DCart, ONLY: connectMesh1DCart
|
||||
USE moduleErrors
|
||||
USE moduleOutput
|
||||
USE moduleRefParam
|
||||
|
|
@ -805,87 +827,123 @@ MODULE moduleInput
|
|||
IMPLICIT NONE
|
||||
|
||||
TYPE(json_file), INTENT(inout):: config
|
||||
CHARACTER(:), ALLOCATABLE:: object
|
||||
LOGICAL:: found
|
||||
CHARACTER(:), ALLOCATABLE:: meshFormat, meshFile, EMType
|
||||
CHARACTER(:), ALLOCATABLE:: meshFormat, meshFile
|
||||
REAL(8):: volume
|
||||
|
||||
!Firstly, indicates if a specific mesh for MC collisions is being use
|
||||
doubleMesh = ASSOCIATED(meshForMCC, meshColl)
|
||||
object = 'geometry'
|
||||
|
||||
!Selects the type of geometry.
|
||||
CALL config%get('geometry.type', mesh%geometry, found)
|
||||
IF (doubleMesh) meshColl%geometry = mesh%geometry
|
||||
!Checks if a mesh for collisions has been defined
|
||||
!The mesh will be initialized and reader in readGeometry
|
||||
CALL config%info(object // '.meshCollisions', found)
|
||||
IF (found) THEN
|
||||
!Points meshForMCC to the specific mesh defined
|
||||
meshForMCC => meshColl
|
||||
doubleMesh = .TRUE.
|
||||
|
||||
!Gets the type of mesh
|
||||
CALL config%get('geometry.meshType', meshFormat, found)
|
||||
SELECT CASE(meshFormat)
|
||||
CASE ("gmsh2")
|
||||
CALL initGmsh2(mesh)
|
||||
IF (doubleMesh) CALL initGmsh2(meshColl)
|
||||
ELSE
|
||||
CALL config%info('interactions', found)
|
||||
IF (found) THEN
|
||||
!Points the meshForMCC pointer to the Particles Mesh
|
||||
meshForMCC => mesh
|
||||
|
||||
CASE ("0D")
|
||||
CALL config%get('geometry.meshType', meshFormat, found)
|
||||
CALL init0D(mesh)
|
||||
|
||||
CASE DEFAULT
|
||||
CALL criticalError("Mesh format " // meshFormat // " not recogniced", "readGeometry")
|
||||
|
||||
END SELECT
|
||||
|
||||
!Reads the mesh file
|
||||
CALL config%get('geometry.meshFile', meshFile, found)
|
||||
pathMeshParticle = path // meshFile
|
||||
CALL mesh%readMesh(pathMeshParticle)
|
||||
DEALLOCATE(meshFile)
|
||||
IF (doubleMesh) THEN
|
||||
!Reads the mesh file for collisions
|
||||
CALL config%get('interactions.meshCollisions', meshFile, found)
|
||||
pathMeshColl = path // meshFile
|
||||
CALL meshColl%readMesh(pathMeshColl)
|
||||
END IF
|
||||
doubleMesh = .FALSE.
|
||||
|
||||
END IF
|
||||
|
||||
!Gets the volume for a 0D mesh
|
||||
!TODO: Try to constrain this to the inout for 0D
|
||||
IF (meshFormat == "0D") THEN
|
||||
CALL config%get('geometry.volume', volume, found)
|
||||
!Get the dimension of the geometry
|
||||
CALL config%get(object // '.dimension', mesh%dimen, found)
|
||||
IF (.NOT. found) THEN
|
||||
CALL criticalError('Required parameter geometry.dimension not found', 'readGeometry')
|
||||
|
||||
END IF
|
||||
IF (doubleMesh) THEN
|
||||
meshColl%dimen = mesh%dimen
|
||||
|
||||
END IF
|
||||
|
||||
|
||||
SELECT CASE(mesh%dimen)
|
||||
CASE (0)
|
||||
CALL config%get(object // '.meshType', meshFormat, found)
|
||||
CALL init0D(mesh)
|
||||
|
||||
!Read the 0D mesh
|
||||
CALL mesh%readMesh(pathMeshParticle)
|
||||
|
||||
!Get the volumne
|
||||
CALL config%get(object // '.volume', volume, found)
|
||||
!Rescale the volumne
|
||||
IF (found) THEN
|
||||
mesh%vols(1)%obj%volume = mesh%vols(1)%obj%volume*volume / Vol_ref
|
||||
mesh%nodes(1)%obj%v = mesh%vols(1)%obj%volume
|
||||
|
||||
END IF
|
||||
|
||||
CASE (1:3)
|
||||
!Select the type of geometry
|
||||
CALL config%get(object // '.type', mesh%geometry, found)
|
||||
IF (doubleMesh) THEN
|
||||
meshColl%geometry = mesh%geometry
|
||||
|
||||
END IF
|
||||
|
||||
!Creates the connectivity between elements
|
||||
SELECT CASE(mesh%geometry)
|
||||
CASE("3DCart")
|
||||
mesh%connectMesh => connectMesh3DCart
|
||||
!Check the consistency between geometry and dimension
|
||||
SELECT CASE(mesh%dimen)
|
||||
CASE(3)
|
||||
IF (mesh%geometry /= 'Cart') THEN
|
||||
CALL criticalError('No available geometry ' // mesh%geometry // ' in 3D', 'readGeometry')
|
||||
|
||||
CASE("2DCyl")
|
||||
mesh%connectMesh => connectMesh2DCyl
|
||||
END IF
|
||||
|
||||
CASE("2DCart")
|
||||
mesh%connectMesh => connectMesh2DCart
|
||||
CASE(2)
|
||||
IF (mesh%geometry /= 'Cart' .AND. &
|
||||
mesh%geometry /= 'Cyl') THEN
|
||||
CALL criticalError('No available geometry ' // mesh%geometry // ' in 2D', 'readGeometry')
|
||||
|
||||
CASE("1DRad")
|
||||
mesh%connectMesh => connectMesh1DRad
|
||||
END IF
|
||||
|
||||
CASE("1DCart")
|
||||
mesh%connectMesh => connectMesh1DCart
|
||||
CASE(1)
|
||||
IF (mesh%geometry /= 'Cart' .AND. &
|
||||
mesh%geometry /= 'Rad') THEN
|
||||
CALL criticalError('No available geometry ' // mesh%geometry // ' in 1D', 'readGeometry')
|
||||
|
||||
CASE("0D")
|
||||
mesh%connectMesh => NULL()
|
||||
END IF
|
||||
|
||||
END SELECT
|
||||
IF (ASSOCIATED(mesh%connectMesh)) CALL mesh%connectMesh
|
||||
|
||||
!Get the type of mesh
|
||||
CALL config%get(object // '.meshType', meshFormat, found)
|
||||
SELECT CASE(meshFormat)
|
||||
CASE ("gmsh2")
|
||||
CALL initGmsh2(mesh)
|
||||
IF (doubleMesh) THEN
|
||||
meshColl%connectMesh => mesh%connectMesh
|
||||
CALL meshColl%connectMesh
|
||||
CALL initGmsh2(meshColl)
|
||||
|
||||
END IF
|
||||
|
||||
END SELECT
|
||||
|
||||
!Reads the mesh file
|
||||
CALL config%get(object // '.meshFile', meshFile, found)
|
||||
pathMeshParticle = path // meshFile
|
||||
CALL mesh%readMesh(pathMeshParticle)
|
||||
DEALLOCATE(meshFile)
|
||||
IF (doubleMesh) THEN
|
||||
!Reads the mesh file for collisions
|
||||
CALL config%get(object // '.meshCollisions', meshFile, found)
|
||||
pathMeshColl = path // meshFile
|
||||
CALL meshColl%readMesh(pathMeshColl)
|
||||
|
||||
END IF
|
||||
|
||||
CASE DEFAULT
|
||||
CALL criticalError("Mesh dimension not recogniced", "readGeometry")
|
||||
|
||||
END SELECT
|
||||
|
||||
!Builds the K matrix for the Particles mesh
|
||||
CALL mesh%constructGlobalK()
|
||||
|
||||
|
|
@ -898,16 +956,6 @@ MODULE moduleInput
|
|||
|
||||
END IF
|
||||
|
||||
!Gest EM solver
|
||||
CALL config%get('case.EMSolver', EMType, found)
|
||||
CALL solver%initEM(EMType)
|
||||
SELECT CASE(EMType)
|
||||
CASE("Electrostatic")
|
||||
!Reads BC
|
||||
CALL readEMBoundary(config)
|
||||
|
||||
END SELECT
|
||||
|
||||
END SUBROUTINE readGeometry
|
||||
|
||||
SUBROUTINE readProbes(config)
|
||||
|
|
@ -1010,7 +1058,6 @@ MODULE moduleInput
|
|||
|
||||
END DO
|
||||
|
||||
!TODO: Improve this
|
||||
IF (ALLOCATED(boundEM)) THEN
|
||||
DO e = 1, mesh%numEdges
|
||||
IF (ANY(mesh%edges(e)%obj%physicalSurface == boundEM(:)%physicalSurface)) THEN
|
||||
|
|
@ -1026,7 +1073,10 @@ MODULE moduleInput
|
|||
|
||||
!Compute the PLU factorization of K once boundary conditions have been read
|
||||
CALL dgetrf(mesh%numNodes, mesh%numNodes, mesh%K, mesh%numNodes, mesh%IPIV, info)
|
||||
IF (info /= 0) CALL criticalError('Factorization of K matrix failed', 'readEMBoundary')
|
||||
IF (info /= 0) THEN
|
||||
CALL criticalError('Factorization of K matrix failed', 'readEMBoundary')
|
||||
|
||||
END IF
|
||||
|
||||
END SUBROUTINE readEMBoundary
|
||||
|
||||
|
|
|
|||
|
|
@ -60,53 +60,90 @@ MODULE moduleSolver
|
|||
!Init Pusher
|
||||
SUBROUTINE initPusher(self, pusherType, tau, tauSp)
|
||||
USE moduleErrors
|
||||
USE moduleMesh, ONLY: mesh
|
||||
IMPLICIT NONE
|
||||
|
||||
CLASS(pusherGeneric), INTENT(out):: self
|
||||
CHARACTER(:), ALLOCATABLE:: pusherType
|
||||
REAL(8):: tau, tauSp
|
||||
|
||||
SELECT CASE(pusherType)
|
||||
!3D Cartesian
|
||||
CASE('3DCartNeutral')
|
||||
self%pushParticle => push3DCartNeutral
|
||||
|
||||
CASE('3DCartCharged')
|
||||
self%pushParticle => push3DCartCharged
|
||||
|
||||
!2D Cylindrical
|
||||
CASE('2DCylNeutral')
|
||||
self%pushParticle => push2DCylNeutral
|
||||
|
||||
CASE('2DCylCharged')
|
||||
self%pushParticle => push2DCylCharged
|
||||
|
||||
!2D Cartesian
|
||||
CASE('2DCartNeutral')
|
||||
self%pushParticle => push2DCartNeutral
|
||||
|
||||
CASE('2DCartCharged')
|
||||
self%pushParticle => push2DCartCharged
|
||||
|
||||
!1D Cartesian
|
||||
CASE('1DCartNeutral')
|
||||
self%pushParticle => push1DCartNeutral
|
||||
|
||||
CASE('1DCartCharged')
|
||||
self%pushParticle => push1DCartCharged
|
||||
|
||||
!1D Radial
|
||||
CASE('1DRadNeutral')
|
||||
self%pushParticle => push1DRadNeutral
|
||||
|
||||
CASE('1DRadCharged')
|
||||
self%pushParticle => push1DRadCharged
|
||||
|
||||
CASE('0D')
|
||||
!TODO: Reorganize if Cart pushers are combined
|
||||
SELECT CASE(mesh%dimen)
|
||||
CASE(0)
|
||||
self%pushParticle => push0D
|
||||
|
||||
CASE(3)
|
||||
SELECT CASE(pusherType)
|
||||
CASE('Neutral')
|
||||
self%pushParticle => push3DCartNeutral
|
||||
|
||||
CASE('Electrostatic')
|
||||
self%pushParticle => push3DCartCharged
|
||||
|
||||
CASE DEFAULT
|
||||
CALL criticalError('Pusher ' // pusherType // ' not found','initPusher')
|
||||
CALL criticalError('Pusher ' // pusherType // ' not found for 3D','initPusher')
|
||||
|
||||
END SELECT
|
||||
|
||||
CASE(2)
|
||||
SELECT CASE(mesh%geometry)
|
||||
CASE('Cyl')
|
||||
SELECT CASE(pusherType)
|
||||
CASE('Neutral')
|
||||
self%pushParticle => push2DCylNeutral
|
||||
|
||||
CASE('Electrostatic')
|
||||
self%pushParticle => push2DCylCharged
|
||||
|
||||
CASE DEFAULT
|
||||
CALL criticalError('Pusher ' // pusherType // ' not found for 2D Cyl','initPusher')
|
||||
|
||||
END SELECT
|
||||
|
||||
CASE ('Cart')
|
||||
SELECT CASE(pusherType)
|
||||
CASE('Neutral')
|
||||
self%pushParticle => push2DCartNeutral
|
||||
|
||||
CASE('Electrostatic')
|
||||
self%pushParticle => push2DCartCharged
|
||||
|
||||
CASE DEFAULT
|
||||
CALL criticalError('Pusher ' // pusherType // ' not found for 2D Cart','initPusher')
|
||||
|
||||
END SELECT
|
||||
|
||||
END SELECT
|
||||
|
||||
CASE(1)
|
||||
SELECT CASE(mesh%geometry)
|
||||
CASE('Rad')
|
||||
SELECT CASE(pusherType)
|
||||
CASE('Neutral')
|
||||
self%pushParticle => push1DRadNeutral
|
||||
|
||||
CASE('Electrostatic')
|
||||
self%pushParticle => push1DRadCharged
|
||||
|
||||
CASE DEFAULT
|
||||
CALL criticalError('Pusher ' // pusherType // ' not found for 1D Rad','initPusher')
|
||||
|
||||
END SELECT
|
||||
|
||||
CASE('Cart')
|
||||
SELECT CASE(pusherType)
|
||||
CASE('Neutral')
|
||||
self%pushParticle => push1DCartNeutral
|
||||
|
||||
CASE('Electrostatic')
|
||||
self%pushParticle => push1DCartCharged
|
||||
|
||||
CASE DEFAULT
|
||||
CALL criticalError('Pusher ' // pusherType // ' not found for 1D Cart','initPusher')
|
||||
|
||||
END SELECT
|
||||
|
||||
END SELECT
|
||||
|
||||
END SELECT
|
||||
|
||||
|
|
@ -172,7 +209,7 @@ MODULE moduleSolver
|
|||
|
||||
END SUBROUTINE doPushes
|
||||
|
||||
!Push neutral particles in 3D cartesian coordinates
|
||||
!Push neutral particles in cartesian coordinates
|
||||
PURE SUBROUTINE push3DCartNeutral(part, tauIn)
|
||||
USE moduleSPecies
|
||||
IMPLICIT NONE
|
||||
|
|
@ -195,8 +232,6 @@ MODULE moduleSolver
|
|||
part_temp%v(3) = part%v(3)
|
||||
part_temp%r(3) = part%r(3) + part_temp%v(3)*tauIn
|
||||
|
||||
part_temp%n_in = .FALSE.
|
||||
|
||||
part = part_temp
|
||||
|
||||
END SUBROUTINE push3DCartNeutral
|
||||
|
|
@ -228,8 +263,6 @@ MODULE moduleSolver
|
|||
part_temp%v(3) = part%v(3) + qmEFt(3)
|
||||
part_temp%r(3) = part%r(3) + part_temp%v(3)*tauIn
|
||||
|
||||
part_temp%n_in = .FALSE.
|
||||
|
||||
part = part_temp
|
||||
|
||||
END SUBROUTINE push3DCartCharged
|
||||
|
|
@ -265,7 +298,7 @@ MODULE moduleSolver
|
|||
END IF
|
||||
part_temp%v(2) = cos_alpha*v_p_oh_star(2)+sin_alpha*v_p_oh_star(3)
|
||||
part_temp%v(3) = -sin_alpha*v_p_oh_star(2)+cos_alpha*v_p_oh_star(3)
|
||||
part_temp%n_in = .FALSE. !Assume particle is outside until cell is found
|
||||
|
||||
!Copy temporal particle to particle
|
||||
part=part_temp
|
||||
|
||||
|
|
@ -306,7 +339,7 @@ MODULE moduleSolver
|
|||
END IF
|
||||
part_temp%v(2) = cos_alpha*v_p_oh_star(2)+sin_alpha*v_p_oh_star(3)
|
||||
part_temp%v(3) = -sin_alpha*v_p_oh_star(2)+cos_alpha*v_p_oh_star(3)
|
||||
part_temp%n_in = .FALSE. !Assume particle is outside until cell is found
|
||||
|
||||
!Copy temporal particle to particle
|
||||
part=part_temp
|
||||
|
||||
|
|
@ -331,8 +364,6 @@ MODULE moduleSolver
|
|||
part_temp%v(2) = part%v(2)
|
||||
part_temp%r(2) = part%r(2) + part_temp%v(2)*tauIn
|
||||
|
||||
part_temp%n_in = .FALSE.
|
||||
|
||||
part = part_temp
|
||||
|
||||
END SUBROUTINE push2DCartNeutral
|
||||
|
|
@ -360,8 +391,6 @@ MODULE moduleSolver
|
|||
part_temp%v(2) = part%v(2) + qmEFt(2)
|
||||
part_temp%r(2) = part%r(2) + part_temp%v(2)*tauIn
|
||||
|
||||
part_temp%n_in = .FALSE.
|
||||
|
||||
part = part_temp
|
||||
|
||||
END SUBROUTINE push2DCartCharged
|
||||
|
|
@ -382,8 +411,6 @@ MODULE moduleSolver
|
|||
part_temp%v(1) = part%v(1)
|
||||
part_temp%r(1) = part%r(1) + part_temp%v(1)*tauIn
|
||||
|
||||
part_temp%n_in = .FALSE.
|
||||
|
||||
part = part_temp
|
||||
|
||||
END SUBROUTINE push1DCartNeutral
|
||||
|
|
@ -407,8 +434,6 @@ MODULE moduleSolver
|
|||
part_temp%v(1) = part%v(1) + qmEFt(1)
|
||||
part_temp%r(1) = part%r(1) + part_temp%v(1)*tauIn
|
||||
|
||||
part_temp%n_in = .FALSE.
|
||||
|
||||
part = part_temp
|
||||
|
||||
END SUBROUTINE push1DCartCharged
|
||||
|
|
@ -442,7 +467,7 @@ MODULE moduleSolver
|
|||
END IF
|
||||
part_temp%v(1) = cos_alpha*v_p_oh_star(1)+sin_alpha*v_p_oh_star(2)
|
||||
part_temp%v(2) = -sin_alpha*v_p_oh_star(1)+cos_alpha*v_p_oh_star(2)
|
||||
part_temp%n_in = .FALSE. !Assume particle is outside until cell is found
|
||||
|
||||
!Copy temporal particle to particle
|
||||
part=part_temp
|
||||
|
||||
|
|
@ -480,7 +505,7 @@ MODULE moduleSolver
|
|||
END IF
|
||||
part_temp%v(1) = cos_alpha*v_p_oh_star(1)+sin_alpha*v_p_oh_star(2)
|
||||
part_temp%v(2) = -sin_alpha*v_p_oh_star(1)+cos_alpha*v_p_oh_star(2)
|
||||
part_temp%n_in = .FALSE. !Assume particle is outside until cell is found
|
||||
|
||||
!Copy temporal particle to particle
|
||||
part=part_temp
|
||||
|
||||
|
|
@ -800,6 +825,9 @@ MODULE moduleSolver
|
|||
TYPE(particle), INTENT(inout):: part
|
||||
CLASS(meshVol), POINTER:: volOld, volNew
|
||||
|
||||
!Assume that particle is outside the domain
|
||||
part%n_in = .FALSE.
|
||||
|
||||
volOld => mesh%vols(part%vol)%obj
|
||||
CALL volOld%findCell(part)
|
||||
CALL findCellColl(part)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue