Commit 631aea87 authored by Cianciosa, Mark's avatar Cianciosa, Mark
Browse files

Refactor output data writting to allow correct timestep when computing absoption.

parent 5603e27d
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -249,8 +249,8 @@ void calculate_power(const size_t num_times,
                     stream.str(), local_num_rays, thread_number);
            root.compile();
            
            for (size_t i = 0; i < num_steps; i++) {
                root.run(i);
            for (size_t j = 0; j < num_steps; j++) {
                root.run(j);
            }
        }, i, threads.size());
    }
@@ -274,7 +274,7 @@ int main(int argc, const char * argv[]) {

    const size_t num_times = 100000;
    const size_t sub_steps = 100;
    const size_t num_rays = 36; //100000;
    const size_t num_rays = 100000;

    const bool use_safe_math = true;

+4 −4
Original line number Diff line number Diff line
@@ -113,9 +113,9 @@ namespace absorption {
            auto kunit = kvec->unit();
            auto klen = kvec->length();

            auto kx_amp = kamp*kvec->get_x();
            auto ky_amp = kamp*kvec->get_y();
            auto kz_amp = kamp*kvec->get_z();
            auto kx_amp = kamp*kunit->get_x();
            auto ky_amp = kamp*kunit->get_y();
            auto kz_amp = kamp*kunit->get_z();

            dispersion::dispersion_interface<DISPERSION_FUNCTION> D(w, kx_amp, ky_amp, kz_amp, x, y, z, t, eq);

@@ -180,7 +180,7 @@ namespace absorption {

            work.run();
            work.wait();
            dataset.write(file);
            dataset.write(file, time_index);
        }
    };
}
+49 −37
Original line number Diff line number Diff line
@@ -305,8 +305,19 @@ namespace output {
///  @params[in] result A result file reference.
//------------------------------------------------------------------------------
        void write(const result_file &result) {
            write(result, result.get_unlimited_size());
        }

//------------------------------------------------------------------------------
///  @brief Write step.
///
///  @params[in] result A result file reference.
///  @params[in] index  Time index.
//------------------------------------------------------------------------------
                void write(const result_file &result,
                           const size_t index) {
                    const std::array<size_t, 3> start = {
                result.get_unlimited_size(), 0, 0
                        index, 0, 0
                    };

                    for (variable &var : variables) {
@@ -350,6 +361,7 @@ namespace output {
///  @brief Read step.
///
///  @params[in] result A result file reference.
///  @params[in] index  Time index.
//------------------------------------------------------------------------------
        void read(const result_file &result,
                  const size_t index) {