Loading graph_driver/CMakeLists.txt +1 −0 Original line number Diff line number Diff line Loading @@ -7,6 +7,7 @@ add_test ( --endtime=2.0 --equilibrium=efit --equilibrium_file=${CMAKE_CURRENT_SOURCE_DIR}/../graph_tests/efit.nc --init_kx --init_kx_mean=-700.0 --init_ky_dist=normal --init_ky_mean=-100.0 Loading graph_driver/efit_example.sh +1 −1 Original line number Diff line number Diff line ./graph_driver/xrays --absorption_model=weak_damping --dispersion=ordinary_wave --endtime=2.0 --equilibrium=efit --equilibrium_file=../graph_tests/efit.nc --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=2.5 --init_y_dist=normal --init_y_mean=0.0 --init_y_sigma=0.05 --init_z_dist=normal --init_z_mean=0.0 --init_z_sigma=0.05 --num_rays=100000 --num_times=100000 --solver=rk4 --sub_steps=100 --use_cyl_xy --verbose ./graph_driver/xrays --absorption_model=weak_damping --dispersion=ordinary_wave --endtime=2.0 --equilibrium=efit --equilibrium_file=../graph_tests/efit.nc --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=2.5 --init_y_dist=normal --init_y_mean=0.0 --init_y_sigma=0.05 --init_z_dist=normal --init_z_mean=0.0 --init_z_sigma=0.05 --num_rays=100000 --num_times=100000 --solver=rk4 --sub_steps=100 --use_cyl_xy --verbose graph_driver/xrays.cpp +11 −3 Original line number Diff line number Diff line Loading @@ -189,12 +189,17 @@ void run_solver(const commandline::parser &cl, SOLVER_METHOD solve(omega, kx, ky, kz, x, y, z, t, dt, eq, filename, num_rays, index); if (!cl.is_option_set("init_kx_dist")) { if (cl.is_option_set("init_kx") && !cl.is_option_set("init_kx_dist")) { solve.init(kx); } else if (!cl.is_option_set("init_ky_dist")) { } else if (cl.is_option_set("init_ky") && !cl.is_option_set("init_ky_dist")) { solve.init(ky); } else { } else if (cl.is_option_set("init_kz") && !cl.is_option_set("init_kz_dist")) { solve.init(kz); } else { solve.init(); } solve.compile(); Loading Loading @@ -829,18 +834,21 @@ commandline::parser parse_commandline(int argc, const char * argv[]) { "uniform", "normal" }); cl.add_option("init_kx", false, "Initalize kx"); cl.add_option("init_kx_mean", true, "Inital kx mean"); cl.add_option("init_kx_sigma", true, "Inital kx sigma"); cl.add_option("init_ky_dist", true, "Inital ky distribution.", { "uniform", "normal" }); cl.add_option("init_ky", false, "Initalize ky"); cl.add_option("init_ky_mean", true, "Inital ky mean"); cl.add_option("init_ky_sigma", true, "Inital ky sigma"); cl.add_option("init_kz_dist", true, "Inital kz distribution.", { "uniform", "normal" }); cl.add_option("init_kz", false, "Initalize kz"); cl.add_option("init_kz_mean", true, "Inital kz mean"); cl.add_option("init_kz_sigma", true, "Inital kz sigma"); cl.add_option("init_x_dist", true, "Inital x distribution.", { Loading graph_framework/dispersion.hpp +12 −1 Original line number Diff line number Diff line Loading @@ -1309,10 +1309,21 @@ namespace dispersion { return this->D*this->D; } //------------------------------------------------------------------------------ /// @brief Get the disperison residule. /// /// @return D*D //------------------------------------------------------------------------------ graph::shared_leaf<typename DISPERSION_FUNCTION::base, DISPERSION_FUNCTION::safe_math> get_residule() { return this->D*this->D; } //------------------------------------------------------------------------------ /// @brief Get the disperison function. /// /// @return dx/dt /// @return D(x,y,z,kx,ky,kz,w) //------------------------------------------------------------------------------ graph::shared_leaf<typename DISPERSION_FUNCTION::base, DISPERSION_FUNCTION::safe_math> Loading graph_framework/solver.hpp +24 −0 Original line number Diff line number Diff line Loading @@ -176,6 +176,30 @@ namespace solver { return residule; } //------------------------------------------------------------------------------ /// @brief Method to initalize the rays. /// /// @returns The residule graph. //------------------------------------------------------------------------------ virtual graph::shared_leaf<typename DISPERSION_FUNCTION::base, DISPERSION_FUNCTION::safe_math> init() final { graph::input_nodes<typename DISPERSION_FUNCTION::base, DISPERSION_FUNCTION::safe_math> inputs { graph::variable_cast(this->t), graph::variable_cast(this->w), graph::variable_cast(this->x), graph::variable_cast(this->y), graph::variable_cast(this->z), graph::variable_cast(this->kx), graph::variable_cast(this->ky), graph::variable_cast(this->kz) }; residule = this->D.get_residule(); return residule; } //------------------------------------------------------------------------------ /// @brief Compile the solver function. //------------------------------------------------------------------------------ Loading Loading
graph_driver/CMakeLists.txt +1 −0 Original line number Diff line number Diff line Loading @@ -7,6 +7,7 @@ add_test ( --endtime=2.0 --equilibrium=efit --equilibrium_file=${CMAKE_CURRENT_SOURCE_DIR}/../graph_tests/efit.nc --init_kx --init_kx_mean=-700.0 --init_ky_dist=normal --init_ky_mean=-100.0 Loading
graph_driver/efit_example.sh +1 −1 Original line number Diff line number Diff line ./graph_driver/xrays --absorption_model=weak_damping --dispersion=ordinary_wave --endtime=2.0 --equilibrium=efit --equilibrium_file=../graph_tests/efit.nc --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=2.5 --init_y_dist=normal --init_y_mean=0.0 --init_y_sigma=0.05 --init_z_dist=normal --init_z_mean=0.0 --init_z_sigma=0.05 --num_rays=100000 --num_times=100000 --solver=rk4 --sub_steps=100 --use_cyl_xy --verbose ./graph_driver/xrays --absorption_model=weak_damping --dispersion=ordinary_wave --endtime=2.0 --equilibrium=efit --equilibrium_file=../graph_tests/efit.nc --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=2.5 --init_y_dist=normal --init_y_mean=0.0 --init_y_sigma=0.05 --init_z_dist=normal --init_z_mean=0.0 --init_z_sigma=0.05 --num_rays=100000 --num_times=100000 --solver=rk4 --sub_steps=100 --use_cyl_xy --verbose
graph_driver/xrays.cpp +11 −3 Original line number Diff line number Diff line Loading @@ -189,12 +189,17 @@ void run_solver(const commandline::parser &cl, SOLVER_METHOD solve(omega, kx, ky, kz, x, y, z, t, dt, eq, filename, num_rays, index); if (!cl.is_option_set("init_kx_dist")) { if (cl.is_option_set("init_kx") && !cl.is_option_set("init_kx_dist")) { solve.init(kx); } else if (!cl.is_option_set("init_ky_dist")) { } else if (cl.is_option_set("init_ky") && !cl.is_option_set("init_ky_dist")) { solve.init(ky); } else { } else if (cl.is_option_set("init_kz") && !cl.is_option_set("init_kz_dist")) { solve.init(kz); } else { solve.init(); } solve.compile(); Loading Loading @@ -829,18 +834,21 @@ commandline::parser parse_commandline(int argc, const char * argv[]) { "uniform", "normal" }); cl.add_option("init_kx", false, "Initalize kx"); cl.add_option("init_kx_mean", true, "Inital kx mean"); cl.add_option("init_kx_sigma", true, "Inital kx sigma"); cl.add_option("init_ky_dist", true, "Inital ky distribution.", { "uniform", "normal" }); cl.add_option("init_ky", false, "Initalize ky"); cl.add_option("init_ky_mean", true, "Inital ky mean"); cl.add_option("init_ky_sigma", true, "Inital ky sigma"); cl.add_option("init_kz_dist", true, "Inital kz distribution.", { "uniform", "normal" }); cl.add_option("init_kz", false, "Initalize kz"); cl.add_option("init_kz_mean", true, "Inital kz mean"); cl.add_option("init_kz_sigma", true, "Inital kz sigma"); cl.add_option("init_x_dist", true, "Inital x distribution.", { Loading
graph_framework/dispersion.hpp +12 −1 Original line number Diff line number Diff line Loading @@ -1309,10 +1309,21 @@ namespace dispersion { return this->D*this->D; } //------------------------------------------------------------------------------ /// @brief Get the disperison residule. /// /// @return D*D //------------------------------------------------------------------------------ graph::shared_leaf<typename DISPERSION_FUNCTION::base, DISPERSION_FUNCTION::safe_math> get_residule() { return this->D*this->D; } //------------------------------------------------------------------------------ /// @brief Get the disperison function. /// /// @return dx/dt /// @return D(x,y,z,kx,ky,kz,w) //------------------------------------------------------------------------------ graph::shared_leaf<typename DISPERSION_FUNCTION::base, DISPERSION_FUNCTION::safe_math> Loading
graph_framework/solver.hpp +24 −0 Original line number Diff line number Diff line Loading @@ -176,6 +176,30 @@ namespace solver { return residule; } //------------------------------------------------------------------------------ /// @brief Method to initalize the rays. /// /// @returns The residule graph. //------------------------------------------------------------------------------ virtual graph::shared_leaf<typename DISPERSION_FUNCTION::base, DISPERSION_FUNCTION::safe_math> init() final { graph::input_nodes<typename DISPERSION_FUNCTION::base, DISPERSION_FUNCTION::safe_math> inputs { graph::variable_cast(this->t), graph::variable_cast(this->w), graph::variable_cast(this->x), graph::variable_cast(this->y), graph::variable_cast(this->z), graph::variable_cast(this->kx), graph::variable_cast(this->ky), graph::variable_cast(this->kz) }; residule = this->D.get_residule(); return residule; } //------------------------------------------------------------------------------ /// @brief Compile the solver function. //------------------------------------------------------------------------------ Loading