mirror of
https://codeberg.org/vcbferreira/NuFI_deal.ii
synced 2026-08-12 14:33:18 +02:00
Merge branch 'hot-fix_save-refine-time' into refinement_tree_locator
This commit is contained in:
@@ -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();
|
||||||
@@ -492,16 +493,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
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user