refining time calculated and saved

This commit is contained in:
Vasco C. B. Ferreira
2026-07-31 15:58:37 +02:00
parent e90b43d506
commit 348b6510ce
2 changed files with 11 additions and 5 deletions
+9 -3
View File
@@ -56,6 +56,7 @@
#include "nufi/cells.h" #include "nufi/cells.h"
#include "nufi/grids.h" #include "nufi/grids.h"
#include "nufi/parameters.h" #include "nufi/parameters.h"
#include "nufi/stopwatch.h"
#include "omp.h" #include "omp.h"
void save_space_vector(const std::vector<double> &vals, void save_space_vector(const std::vector<double> &vals,
@@ -70,8 +71,8 @@ public:
PoissonProblem(unsigned int degree); PoissonProblem(unsigned int degree);
void initialize(); void initialize();
void solve_step(size_t it, std::vector<GridStructure<1>> &grid_versions, double solve_step(size_t it, std::vector<GridStructure<1>> &grid_versions,
bool refining = false); bool refining = false);
void coarse_and_refine_grid(size_t it); void coarse_and_refine_grid(size_t it);
void setup_constraints(AffineConstraints<double> &constraints); void setup_constraints(AffineConstraints<double> &constraints);
void run(); void run();
@@ -487,16 +488,21 @@ template <int dim> void PoissonProblem<dim>::initialize() {
} }
template <int dim> template <int dim>
void PoissonProblem<dim>::solve_step( double PoissonProblem<dim>::solve_step(
size_t it, std::vector<GridStructure<1>> &grid_versions, bool refining) { size_t it, std::vector<GridStructure<1>> &grid_versions, bool refining) {
double refining_time = 0.0;
if (refining) { if (refining) {
stopwatch<double> refining_timer;
coarse_and_refine_grid(it); coarse_and_refine_grid(it);
setup_system(); setup_system();
update_grid_versions(grid_versions, *this); update_grid_versions(grid_versions, *this);
refining_time = refining_timer.elapsed();
} }
assemble_system(); assemble_system();
solve(it); solve(it);
estimate_error(); estimate_error();
return refining_time;
} }
// NuFI doesnt use this, kept only for testing PoissonProblem // NuFI doesnt use this, kept only for testing PoissonProblem
+2 -2
View File
@@ -286,8 +286,8 @@ void NuFISolver::run() {
if (it % Parameters::REFINE_FREQUENCY == 0) { if (it % Parameters::REFINE_FREQUENCY == 0) {
// if (it == 0) { // if (it == 0) {
poisson.solve_step(it, grid_versions, true); refine_time = poisson.solve_step(it, grid_versions, true);
compute_time = timer.elapsed() - compute_start; compute_time = timer.elapsed() - compute_start - refine_time;
} else { } else {
poisson.solve_step(it, grid_versions, false); poisson.solve_step(it, grid_versions, false);
compute_time = timer.elapsed() - compute_start; compute_time = timer.elapsed() - compute_start;