Skip to content

Commit 6aaeffc

Browse files
authored
Merge pull request #3 from DanShort12/pickup_prs_from_makeclean
Pickup PRs from makeclean
2 parents 604f5c2 + 82a4127 commit 6aaeffc

7 files changed

Lines changed: 53 additions & 34 deletions

File tree

.gitignore

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,6 @@
3131
*.out
3232
*.app
3333

34-
35-
# Compiled Python
36-
*.pyc
37-
3834
# Build path
3935
build/
4036
dist/

parametric_plasma_source/plasma.py

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
from pathlib import Path
44
import tempfile
55
import shutil
6-
from source import source_sampling_cpp, plasma_source_cpp, plasma_source_hpp, make_file
6+
from .source import source_sampling_cpp, plasma_source_cpp, plasma_source_hpp, make_file
77

88

99
class Plasma():
@@ -20,9 +20,10 @@ def __init__(self,
2020
ion_temperature_pedistal=6.09,
2121
ion_temperature_seperatrix=0.1,
2222
ion_temperature_origin=45.9,
23-
pedistal_radius=0.8,
23+
pedistal_radius=120, # 0.8 * minor_radius
2424
ion_density_peaking_factor=1,
2525
ion_temperature_peaking_factor=8.06,
26+
ion_temperature_beta=6.0,
2627
shafranov_shift=0.0,
2728
number_of_bins=100,
2829
plasma_type=1,
@@ -44,6 +45,7 @@ def __init__(self,
4445
self.pedistal_radius = pedistal_radius # pedistal major rad
4546
self.ion_density_peaking_factor = ion_density_peaking_factor
4647
self.ion_temperature_peaking_factor = ion_temperature_peaking_factor
48+
self.ion_temperature_beta = ion_temperature_beta
4749
self.shafranov_shift = shafranov_shift
4850
self.number_of_bins = number_of_bins
4951
self.plasma_type = plasma_type # 0 = L mode anything else H/A mode
@@ -109,6 +111,17 @@ def ion_temperature_peaking_factor(self, ion_temperature_peaking_factor):
109111
else:
110112
self._ion_temperature_peaking_factor = ion_temperature_peaking_factor
111113

114+
@property
115+
def ion_temperature_beta(self):
116+
return self._ion_temperature_beta
117+
118+
@ion_temperature_beta.setter
119+
def ion_temperature_beta(self, ion_temperature_beta):
120+
if ion_temperature_beta < 0:
121+
raise ValueError('ion_temperature_beta is out of range')
122+
else:
123+
self._ion_temperature_beta = ion_temperature_beta
124+
112125
@property
113126
def ion_density_peaking_factor(self):
114127
return self._ion_density_peaking_factor
@@ -329,6 +342,7 @@ def export_plasma_source(self, output_filename):
329342
"pedistal_radius": self.pedistal_radius,
330343
"ion_density_peaking_factor": self.ion_density_peaking_factor,
331344
"ion_temperature_peaking_factor": self.ion_temperature_peaking_factor,
345+
"ion_temperature_beta": self.ion_temperature_beta,
332346
"minor_radius": self.minor_radius,
333347
"major_radius": self.major_radius,
334348
"elongation": self.elongation,

parametric_plasma_source/plasma_source.cpp

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,11 @@ PlasmaSource::PlasmaSource(const double ion_density_ped, const double ion_densit
1717
const double ion_density_origin, const double ion_temp_ped,
1818
const double ion_temp_sep, const double ion_temp_origin,
1919
const double pedistal_rad, const double ion_density_peak,
20-
const double ion_temp_peak, const double minor_radius,
21-
const double major_radius, const double elongation,
22-
const double triangularity, const double shafranov,
23-
const std::string plasma_type, const int plasma_id,
24-
const int number_of_bins,
20+
const double ion_temp_peak, const double ion_temp_beta,
21+
const double minor_radius, const double major_radius,
22+
const double elongation, const double triangularity,
23+
const double shafranov, const std::string plasma_type,
24+
const int plasma_id, const int number_of_bins,
2525
const double min_toroidal_angle,
2626
const double max_toroidal_angle ) {
2727

@@ -35,6 +35,7 @@ PlasmaSource::PlasmaSource(const double ion_density_ped, const double ion_densit
3535
pedistalRadius = pedistal_rad;
3636
ionDensityPeaking = ion_density_peak;
3737
ionTemperaturePeaking = ion_temp_peak;
38+
ionTemperatureBeta = ion_temp_beta;
3839
minorRadius = minor_radius;
3940
majorRadius = major_radius;
4041
this->elongation = elongation;
@@ -159,7 +160,7 @@ void PlasmaSource::setup_plasma_source()
159160
{
160161
double ion_d; // ion density
161162
double ion_t; // ion temp
162-
163+
163164
std::vector<double> src_strength; // the source strength, n/m3
164165
double r;
165166

@@ -230,7 +231,7 @@ double PlasmaSource::ion_temperature(const double sample_radius)
230231
if(sample_radius <= pedistalRadius) {
231232
ion_temp += ionTemperaturePedistal;
232233
double product;
233-
product = 1.0-std::pow(sample_radius/pedistalRadius,2);
234+
product = 1.0-std::pow(sample_radius/pedistalRadius,ionTemperatureBeta);
234235
product = std::pow(product,ionTemperaturePeaking);
235236
ion_temp += (ionTemperatureOrigin-
236237
ionTemperaturePedistal)*(product);

parametric_plasma_source/plasma_source.hpp

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,11 @@ PlasmaSource(const double ion_density_ped, const double ion_density_sep,
1717
const double ion_density_origin, const double ion_temp_ped,
1818
const double ion_temp_sep, const double ion_temp_origin,
1919
const double pedistal_rad, const double ion_density_peak,
20-
const double ion_temp_peak, const double minor_radius,
21-
const double major_radius, const double elongation,
22-
const double triangularity, const double shafranov,
23-
const std::string plasma_type, const int plasma_id,
24-
const int number_of_bins,
20+
const double ion_temp_peak, const double ion_temp_beta,
21+
const double minor_radius, const double major_radius,
22+
const double elongation, const double triangularity,
23+
const double shafranov, const std::string plasma_type,
24+
const int plasma_id, const int number_of_bins,
2525
const double min_toroidal_angle = 0.0,
2626
const double max_toridal_angle = 360.);
2727

@@ -104,6 +104,7 @@ void isotropic_direction(const double random1, const double random2,
104104
double pedistalRadius;
105105
double ionDensityPeaking;
106106
double ionTemperaturePeaking;
107+
double ionTemperatureBeta;
107108
double minorRadius;
108109
double majorRadius;
109110
double elongation;

parametric_plasma_source/plasma_source_pybind.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ PYBIND11_MODULE(plasma_source, m) {
1111
.def(py::init<const double &, const double &, const double &, const double &,
1212
const double &, const double &, const double &, const double &,
1313
const double &, const double &, const double &, const double &,
14-
const double &, const double &, const std::string &, const int &,
15-
const int &, const double &, const double &>(),
14+
const double &, const double &, const double &, const std::string &,
15+
const int &, const int &, const double &, const double &>(),
1616
py::arg("ion_density_pedistal")=1.09e20,
1717
py::arg("ion_density_seperatrix")=3e19,
1818
py::arg("ion_density_origin")=1.09e20,
@@ -22,6 +22,7 @@ PYBIND11_MODULE(plasma_source, m) {
2222
py::arg("pedistal_radius")=0.8,
2323
py::arg("ion_density_peaking_factor")=1.0,
2424
py::arg("ion_temperature_peaking_factor")=8.06,
25+
py::arg("ion_temperature_beta")=6.0,
2526
py::arg("minor_radius")=1.5,
2627
py::arg("major_radius")=4.5,
2728
py::arg("elongation")=2.0,

parametric_plasma_source/source.py

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,12 @@
1919
const double ion_temperature_pedistal = 6.09;
2020
const double ion_temperature_seperatrix = 0.1;
2121
const double ion_temperature_origin = 45.9;
22-
const double pedistal_radius = 0.8; // pedistal major rad
2322
const double ion_density_peaking_factor = 1;
2423
const double ion_temperature_peaking_factor = 8.06; // check alpha or beta value from paper
24+
const double ion_temperature_beta = 6.0;
2525
const double minor_radius = 1.56; // metres
2626
const double major_radius = 2.5; // metres
27+
const double pedistal_radius = 0.8 * minor_radius; // pedistal minor rad in metres
2728
const double elongation = 2.0;
2829
const double triangularity = 0.55;
2930
const double shafranov_shift = 0.0; //metres
@@ -41,6 +42,7 @@
4142
pedistal_radius,
4243
ion_density_peaking_factor,
4344
ion_temperature_peaking_factor,
45+
ion_temperature_beta,
4446
minor_radius,
4547
major_radius,
4648
elongation,
@@ -114,11 +116,11 @@
114116
const double ion_density_origin, const double ion_temp_ped,
115117
const double ion_temp_sep, const double ion_temp_origin,
116118
const double pedistal_rad, const double ion_density_peak,
117-
const double ion_temp_peak, const double minor_radius,
118-
const double major_radius, const double elongation,
119-
const double triangularity, const double shafranov,
120-
const std::string plasma_type, const int plasma_id,
121-
const int number_of_bins,
119+
const double ion_temp_peak, const double ion_temp_beta,
120+
const double minor_radius, const double major_radius,
121+
const double elongation, const double triangularity,
122+
const double shafranov, const std::string plasma_type,
123+
const int plasma_id, const int number_of_bins,
122124
const double min_toroidal_angle,
123125
const double max_toroidal_angle ) {
124126
@@ -132,6 +134,7 @@
132134
pedistalRadius = pedistal_rad;
133135
ionDensityPeaking = ion_density_peak;
134136
ionTemperaturePeaking = ion_temp_peak;
137+
ionTemperatureBeta = ion_temp_beta;
135138
minorRadius = minor_radius;
136139
majorRadius = major_radius;
137140
this->elongation = elongation;
@@ -256,7 +259,7 @@
256259
{
257260
double ion_d; // ion density
258261
double ion_t; // ion temp
259-
262+
260263
std::vector<double> src_strength; // the source strength, n/m3
261264
double r;
262265
@@ -327,7 +330,7 @@
327330
if(sample_radius <= pedistalRadius) {
328331
ion_temp += ionTemperaturePedistal;
329332
double product;
330-
product = 1.0-std::pow(sample_radius/pedistalRadius,2);
333+
product = 1.0-std::pow(sample_radius/pedistalRadius,ionTemperatureBeta);
331334
product = std::pow(product,ionTemperaturePeaking);
332335
ion_temp += (ionTemperatureOrigin-
333336
ionTemperaturePedistal)*(product);
@@ -402,11 +405,11 @@ class PlasmaSource {
402405
const double ion_density_origin, const double ion_temp_ped,
403406
const double ion_temp_sep, const double ion_temp_origin,
404407
const double pedistal_rad, const double ion_density_peak,
405-
const double ion_temp_peak, const double minor_radius,
406-
const double major_radius, const double elongation,
407-
const double triangularity, const double shafranov,
408-
const std::string plasma_type, const int plasma_id,
409-
const int number_of_bins,
408+
const double ion_temp_peak, const double ion_temp_beta,
409+
const double minor_radius, const double major_radius,
410+
const double elongation, const double triangularity,
411+
const double shafranov, const std::string plasma_type,
412+
const int plasma_id, const int number_of_bins,
410413
const double min_toroidal_angle = 0.0,
411414
const double max_toridal_angle = 360.);
412415
@@ -489,6 +492,7 @@ class PlasmaSource {
489492
double pedistalRadius;
490493
double ionDensityPeaking;
491494
double ionTemperaturePeaking;
495+
double ionTemperatureBeta;
492496
double minorRadius;
493497
double majorRadius;
494498
double elongation;

parametric_plasma_source/source_sampling.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,12 @@ const double ion_density_origin = 1.09e+20;
1313
const double ion_temperature_pedistal = 6.09;
1414
const double ion_temperature_seperatrix = 0.1;
1515
const double ion_temperature_origin = 45.9;
16-
const double pedistal_radius = 0.8; // pedistal major rad
1716
const double ion_density_peaking_factor = 1;
1817
const double ion_temperature_peaking_factor = 8.06; // check alpha or beta value from paper
18+
const double ion_temperature_beta = 6.0;
1919
const double minor_radius = 1.56; // metres
2020
const double major_radius = 2.5; // metres
21+
const double pedistal_radius = 0.8 * minor_radius; // pedistal minor rad in metres
2122
const double elongation = 2.0;
2223
const double triangularity = 0.55;
2324
const double shafranov_shift = 0.0; //metres
@@ -35,6 +36,7 @@ plasma_source::PlasmaSource source = plasma_source::PlasmaSource(ion_density_ped
3536
pedistal_radius,
3637
ion_density_peaking_factor,
3738
ion_temperature_peaking_factor,
39+
ion_temperature_beta,
3840
minor_radius,
3941
major_radius,
4042
elongation,

0 commit comments

Comments
 (0)