better save results method, to test

This commit is contained in:
Vasco C. B. Ferreira
2026-07-25 19:42:10 +02:00
parent 2f202ee871
commit bc30cf3859
5 changed files with 108 additions and 98 deletions
+6 -16
View File
@@ -17,13 +17,9 @@ inline std::vector<double> make_x_eval(size_t Nx) {
double dx = (Parameters::X_DOMAIN_RIGHT - Parameters::X_DOMAIN_LEFT) / Nx;
for (unsigned int i = 0; i < Nx; ++i) {
for (unsigned int i = 0; i < Nx; ++i)
x_eval_E.push_back(Parameters::X_DOMAIN_LEFT + (i + 0.5) * dx);
}
// std::vector<double> x_eval(Nx);
// const double dx = Parameters::LX / Nx;
// for (size_t i = 0; i < Nx; ++i)
// x_eval[i] = Parameters::X_DOMAIN_LEFT + i * dx;
return x_eval_E;
}
@@ -75,13 +71,10 @@ inline std::vector<double> eval(std::vector<double> &X,
inline double integral_space_vector(const GridStructure<1> &grid,
const Vector<double> &solution,
double dx = Parameters::PLOT_DX,
size_t Nx = Parameters::PLOT_NX) {
double integral = 0.0;
double xmin = Parameters::X_DOMAIN_LEFT;
std::vector<double> x_eval(Nx);
for (size_t i = 0; i < Nx; ++i)
x_eval[i] = xmin + i * dx;
std::vector<double> x_eval = make_x_eval(Nx);
const double dx = Parameters::LX / Nx;
std::vector<double> tmp = eval(x_eval, grid, solution);
for (size_t i = 0; i < Nx; ++i)
@@ -91,13 +84,10 @@ inline double integral_space_vector(const GridStructure<1> &grid,
inline double integral_space_vector_squared(const GridStructure<1> &grid,
const Vector<double> &solution,
double dx = Parameters::PLOT_DX,
size_t Nx = Parameters::PLOT_NX) {
double integral = 0.0;
double xmin = Parameters::X_DOMAIN_LEFT;
std::vector<double> x_eval(Nx);
for (size_t i = 0; i < Nx; ++i)
x_eval[i] = xmin + i * dx;
std::vector<double> x_eval = make_x_eval(Nx);
const double dx = Parameters::LX / Nx;
std::vector<double> tmp = eval(x_eval, grid, solution);
for (size_t i = 0; i < Nx; ++i)
+13 -8
View File
@@ -2,17 +2,25 @@
#define SAVE_RESULTS_H
#include "nufi/grids.h"
#include "nufi/poisson_problem.h"
#include <deal.II/lac/vector.h>
#include <string>
#include <vector>
class NuFISolver;
void save_f(const NuFISolver &solver, unsigned int n,
std::vector<GridStructure<1>> &grid_struct,
std::vector<SolutionSnapshot<1>> &phi_history, unsigned int Nx_out,
unsigned int Nv_out, const std::string &filename);
void save_field_1d(const std::vector<double> &x,
const std::vector<double> &values,
const std::string &filepath);
void save_time_series(const std::vector<double> &t,
const std::vector<double> &values,
const std::string &filepath);
void save_f_binary(const NuFISolver &solver, unsigned int n,
std::vector<GridStructure<1>> &grid_struct,
std::vector<SolutionSnapshot<1>> &phi_history,
unsigned int Nx_out, unsigned int Nv_out,
const std::string &filepath);
void save_rho(const NuFISolver &solver, unsigned int n,
std::vector<GridStructure<1>> &grid_struct,
@@ -23,7 +31,4 @@ void save_Efield(unsigned int it, std::vector<GridStructure<1>> &grid_versions,
std::vector<SolutionSnapshot<1>> &phi_history,
unsigned int Nx_out = Parameters::PLOT_NX);
void save_space_vector(const std::vector<double> &vals,
const std::string &filename, size_t it);
#endif