Commit 86c52be9 authored by Cianciosa, Mark's avatar Cianciosa, Mark Committed by cianciosa
Browse files

Use EFIT equilibirum to check weak_damping.

parent 645528d7
Loading
Loading
Loading
Loading
+11 −9
Original line number Diff line number Diff line
@@ -158,7 +158,7 @@ void trace_ray(const size_t num_times,

//  Inital conditions.
            if constexpr (jit::is_float<T> ()) {
#if 0
#if 1
                init_efit<T, float, SAFE_MATH> (omega, x, y, z,
                                                ky, kz, engine,
                                                local_num_rays);
@@ -168,7 +168,7 @@ void trace_ray(const size_t num_times,
                                                local_num_rays);
#endif
            } else {
#if 0
#if 1
                init_efit<T, double, SAFE_MATH> (omega, x, y, z,
                                                 ky, kz, engine,
                                                 local_num_rays);
@@ -178,18 +178,18 @@ void trace_ray(const size_t num_times,
                                                 local_num_rays);
#endif
            }
#if 0
#if 1
            kx->set(static_cast<T> (-700.0));
#else
            kx->set(static_cast<T> (-30.0));
#endif
            auto eq = equilibrium::make_vmec<T, SAFE_MATH> (VMEC_FILE);
            //auto eq = equilibrium::make_efit<T, SAFE_MATH> (EFIT_FILE);
            //auto eq = equilibrium::make_vmec<T, SAFE_MATH> (VMEC_FILE);
            auto eq = equilibrium::make_efit<T, SAFE_MATH> (EFIT_FILE);
            //auto eq = equilibrium::make_slab_density<T, SAFE_MATH> ();
            //auto eq = equilibrium::make_slab_field<T, SAFE_MATH> ();
            //auto eq = equilibrium::make_no_magnetic_field<T, SAFE_MATH> ();

#if 0
#if 1
            const T endtime = static_cast<T> (2.0);
#else
            const T endtime = static_cast<T> (0.2);
@@ -325,8 +325,8 @@ void calculate_power(const size_t num_times,
            auto t     = graph::variable<T, SAFE_MATH> (local_num_rays, "t");
            auto kamp  = graph::variable<T, SAFE_MATH> (local_num_rays, "kamp");

            auto eq = equilibrium::make_vmec<T, SAFE_MATH> (VMEC_FILE);
            //auto eq = equilibrium::make_efit<T, SAFE_MATH> (EFIT_FILE);
            //auto eq = equilibrium::make_vmec<T, SAFE_MATH> (VMEC_FILE);
            auto eq = equilibrium::make_efit<T, SAFE_MATH> (EFIT_FILE);
            //auto eq = equilibrium::make_slab_density<T, SAFE_MATH> ();
            //auto eq = equilibrium::make_slab_field<T, SAFE_MATH> ();
            //auto eq = equilibrium::make_no_magnetic_field<T, SAFE_MATH> ();
@@ -393,7 +393,9 @@ void bin_power(const size_t num_times,
            auto power      = graph::variable<T, SAFE_MATH> (local_num_rays, static_cast<T> (1.0), "power");
            auto k_sum      = graph::variable<T, SAFE_MATH> (local_num_rays, static_cast<T> (0.0), "k_sum");

            auto eq = equilibrium::make_vmec<T, SAFE_MATH> (VMEC_FILE);
            //auto eq = equilibrium::make_vmec<T, SAFE_MATH> (VMEC_FILE);
            auto eq = equilibrium::make_efit<T, SAFE_MATH> (EFIT_FILE);

            auto x_real = eq->get_x(x, y, z);
            auto y_real = eq->get_y(x, y, z);
            auto z_real = eq->get_z(x, y, z);
+2 −0
Original line number Diff line number Diff line
@@ -1338,6 +1338,7 @@
					USE_METAL,
					"CXX_FLAGS=\\\"-g\\\"",
					"CXX=\\\"c++\\ -I/Users/m4c/Projects/graph_framework/graph_framework\\ -std=gnu++2a\\\"",
					STATIC,
					"DEBUG=1",
					"$(inherited)",
				);
@@ -1447,6 +1448,7 @@
					USE_METAL,
					"CXX_FLAGS=\\\"-gl\\\"",
					"CXX=\\\"c++\\ -I/Users/m4c/Projects/graph_framework/graph_framework\\ -std=gnu++2a\\\"",
					STATIC,
					"DEBUG=1",
					"$(inherited)",
				);
+8 −7
Original line number Diff line number Diff line
@@ -280,13 +280,14 @@ namespace absorption {
                     const size_t index=0) : 
        kamp(kamp), w(w), kx(kx), ky(ky), kz(kz), x(x), y(y), z(z), t(t),
        file(filename), dataset(file), index(index), work(index), sync([]{}) {
            auto kvec = graph::vector(kx, ky, kz);
            auto kunit = kvec->unit();
            auto kvec = kx*eq->get_esup1(x, y, z)
                      + ky*eq->get_esup2(x, y, z)
                      + kz*eq->get_esup3(x, y, z);
            auto klen = kvec->length();

            auto kx_amp = kamp*kunit->get_x();
            auto ky_amp = kamp*kunit->get_y();
            auto kz_amp = kamp*kunit->get_z();
            auto kx_amp = kamp*kx/klen;
            auto ky_amp = kamp*ky/klen;
            auto kz_amp = kamp*kz/klen;

            auto Dc = dispersion::cold_plasma<T, SAFE_MATH> ().D(w, 
                                                                 kx_amp, ky_amp, kz_amp,
@@ -376,8 +377,8 @@ namespace absorption {

            sync.join();
            work.wait();
            sync = std::thread([this] (const size_t index) -> void {
                dataset.write(file, index);
            sync = std::thread([this] (const size_t i) -> void {
                dataset.write(file, i);
            }, time_index);
        }
    };