@@ -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