Commit 49037a67 authored by cianciosa's avatar cianciosa
Browse files

Enable the ability for a fixed initalization.

parent 2cca349f
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -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
+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
+11 −3
Original line number Diff line number Diff line
@@ -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();

@@ -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.", {
+12 −1
Original line number Diff line number Diff line
@@ -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>
+24 −0
Original line number Diff line number Diff line
@@ -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.
//------------------------------------------------------------------------------