#ifndef SAVE_RESULTS_H #define SAVE_RESULTS_H #include "nufi/grids.h" #include #include #include class NuFISolver; struct DiagnosticsSnapshot { unsigned int Nx = 0; unsigned int Nv = 0; std::vector x_eval; std::vector v_eval; std::vector f; std::vector rho; std::vector E; }; DiagnosticsSnapshot compute_diagnostics(const NuFISolver &solver, unsigned int n, std::vector> &grid_struct, std::vector> &phi_history, unsigned int Nx_out, unsigned int Nv_out); void save_f(const DiagnosticsSnapshot &snap, const std::string &filepath); void save_rho(const DiagnosticsSnapshot &snap, const std::string &filepath); void save_Efield(const DiagnosticsSnapshot &snap, const std::string &filepath); double compute_int_E_squared(const DiagnosticsSnapshot &snap); void save_time_series(const std::vector &t, const std::vector &values, const std::string &filepath); #endif