Skip to content

Commit 36d5964

Browse files
cianciosacianciosa
authored andcommitted
Add implementation for mpex fields.
1 parent 99463f5 commit 36d5964

6 files changed

Lines changed: 808 additions & 172 deletions

File tree

graph_driver/mpex_example.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
./graph_driver/xrays --absorption_model=weak_damping --dispersion=ordinary_wave --endtime=0.15 --equilibrium=mpex --equilibrium_file=../graph_tests/mpex.nc --mpex_ps1_current=4500 --mpex_ps2_current=4500 --mpex_tr1_current=600 --mpex_tr2_current=160 --mpex_ne_scale=1.0E19 --mpex_te_scale=1000 --init_kx --init_kx_mean=-700.0 --init_ky_dist=normal --init_ky_mean=-100.0 --init_ky_sigma=10.0 --init_kz_dist=normal --init_kz_mean=0.0 --init_kz_sigma=10.0 --init_w_dist=normal --init_w_mean=700 --init_w_sigma=10.0 --init_x_mean=0.2 --init_y_dist=normal --init_y_mean=0.0 --init_y_sigma=0.05 --init_z_dist=normal --init_z_mean=2.0 --init_z_sigma=0.0 --num_rays=1 --num_times=100000 --solver=rk4 --sub_steps=100 --use_cyl_xy

graph_driver/xrays.cpp

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -378,6 +378,14 @@ equilibrium::shared<T, SAFE_MATH> make_equilibrium(const commandline::parser &cl
378378

379379
if (eq == "efit") {
380380
return equilibrium::make_efit<T, SAFE_MATH> (file_name);
381+
} else if (eq == "mpex") {
382+
return equilibrium::make_mpex<T, SAFE_MATH> (file_name,
383+
cl.get_option_value<T> ("mpex_ne_scale"),
384+
cl.get_option_value<T> ("mpex_te_scale"),
385+
cl.get_option_value<T> ("mpex_ps1_current"),
386+
cl.get_option_value<T> ("mpex_ps2_current"),
387+
cl.get_option_value<T> ("mpex_tr1_current"),
388+
cl.get_option_value<T> ("mpex_tr2_current"));
381389
} else {
382390
return equilibrium::make_vmec<T, SAFE_MATH> (file_name);
383391
}
@@ -976,13 +984,21 @@ commandline::parser parse_commandline(int argc, const char * argv[]) {
976984
});
977985
cl.add_option("equilibrium", true, "Equilibrium to use.", {
978986
"efit",
979-
"vmec"
987+
"vmec",
988+
"mpex"
980989
});
981990
cl.add_option("equilibrium_file", true, "File to read the equilibrium from.");
982991
cl.add_option("init_w_dist", true, "Distribution function for wave frequency.", {
983992
"uniform",
984993
"normal"
985994
});
995+
cl.add_option("mpex_ne_scale", true, "Scale factor for electron density profiles.");
996+
cl.add_option("mpex_te_scale", true, "Scale factor for electron temperature profiles.");
997+
cl.add_option("mpex_ps2_current", true, "Current for the ps2 coil set.");
998+
cl.add_option("mpex_ps1_current", true, "Current for the ps1 coil set.");
999+
cl.add_option("mpex_ps2_current", true, "Current for the ps2 coil set.");
1000+
cl.add_option("mpex_tr1_current", true, "Current for the tr1 coil set.");
1001+
cl.add_option("mpex_tr2_current", true, "Current for the tr2 coil set.");
9861002
cl.add_option("init_w_mean", true, "Mean value for the wave frequency distribution function.");
9871003
cl.add_option("init_w_sigma", true, "Standard deviation of for the wave frequency distribution function.");
9881004
cl.add_option("init_kx_dist", true, "Distribution function for wave number in the x direction.", {
@@ -1097,6 +1113,11 @@ int main(int argc, const char * argv[]) {
10971113

10981114
typedef double base;
10991115

1116+
std::cout << "Using " << cl.get_option_value<std::string> ("equilibrium") << " equilibrium from " << cl.get_option_value<std::string> ("equilibrium_file") << std::endl;
1117+
std::cout << "Using " << cl.get_option_value<std::string> ("dispersion") << " dispersion relation" << std::endl;
1118+
std::cout << "Using " << cl.get_option_value<std::string> ("solver") << " solver methd" << std::endl;
1119+
std::cout << "Using " << cl.get_option_value<std::string> ("absorption_model") << " absorption model" << std::endl << std::endl;
1120+
11001121
trace_ray<base> (cl, num_times, sub_steps, num_rays);
11011122
calculate_power<std::complex<base>, use_safe_math> (cl,
11021123
num_times,

0 commit comments

Comments
 (0)