mirror of
https://codeberg.org/vcbferreira/NuFI_deal.ii
synced 2026-08-12 14:33:18 +02:00
correct interpolation in refinement with current gauge not working
This commit is contained in:
Binary file not shown.
+19
-20
@@ -48,7 +48,6 @@
|
|||||||
#include <fstream>
|
#include <fstream>
|
||||||
#include <functional>
|
#include <functional>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <memory>
|
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <utility>
|
#include <utility>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
@@ -56,7 +55,6 @@
|
|||||||
#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/save_results.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,
|
||||||
@@ -231,20 +229,20 @@ eval_point_grad(const Mapping<dim> &mapping, const DoFHandler<dim> &dof_handler,
|
|||||||
VectorTools::point_gradient(mapping, dof_handler, solution, point);
|
VectorTools::point_gradient(mapping, dof_handler, solution, point);
|
||||||
return Ex[0];
|
return Ex[0];
|
||||||
}
|
}
|
||||||
//
|
|
||||||
// template <int dim>
|
template <int dim>
|
||||||
// std::vector<double> eval_vector_grad(const Mapping<dim> &mapping,
|
std::vector<double> eval_vector_grad(const Mapping<dim> &mapping,
|
||||||
// const DoFHandler<dim> &dof_handler,
|
const DoFHandler<dim> &dof_handler,
|
||||||
// const Vector<double> &solution,
|
const Vector<double> &solution,
|
||||||
// const std::vector<Point<dim>> &points) {
|
const std::vector<Point<dim>> &points) {
|
||||||
// size_t p_size = points.size();
|
size_t p_size = points.size();
|
||||||
//
|
|
||||||
// std::vector<double> Ex(p_size);
|
std::vector<double> Ex(p_size);
|
||||||
// for (size_t i = 0; i < p_size; ++i)
|
for (size_t i = 0; i < p_size; ++i)
|
||||||
// Ex[i] = eval_point_grad(mapping, dof_handler, solution, points[i]);
|
Ex[i] = eval_point_grad(mapping, dof_handler, solution, points[i]);
|
||||||
//
|
|
||||||
// return Ex;
|
return Ex;
|
||||||
// }
|
}
|
||||||
|
|
||||||
template <int dim>
|
template <int dim>
|
||||||
double eval_point_value(const Mapping<dim> &mapping,
|
double eval_point_value(const Mapping<dim> &mapping,
|
||||||
@@ -264,9 +262,9 @@ void PoissonProblem<dim>::save_grid_to_file(std::string &filename) const {
|
|||||||
std::ofstream out(filename);
|
std::ofstream out(filename);
|
||||||
grid_out.write_svg(triangulation, out);
|
grid_out.write_svg(triangulation, out);
|
||||||
} else if (dim == 1) {
|
} else if (dim == 1) {
|
||||||
filename += ".gnuplot";
|
filename += ".vtu";
|
||||||
std::ofstream out(filename);
|
std::ofstream out(filename);
|
||||||
grid_out.write_gnuplot(triangulation, out);
|
grid_out.write_vtu(triangulation, out);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::cout << "Grid written to " << filename << "\n";
|
std::cout << "Grid written to " << filename << "\n";
|
||||||
@@ -475,11 +473,12 @@ template <int dim> void PoissonProblem<dim>::coarse_and_refine_grid(size_t it) {
|
|||||||
|
|
||||||
triangulation.execute_coarsening_and_refinement();
|
triangulation.execute_coarsening_and_refinement();
|
||||||
|
|
||||||
setup_system_in_refinement_before_interpolating();
|
setup_system();
|
||||||
|
// setup_system_in_refinement_before_interpolating();
|
||||||
|
|
||||||
transfer.interpolate(refined_solution, solution);
|
transfer.interpolate(refined_solution, solution);
|
||||||
|
|
||||||
setup_system_in_refinement_after_interpolating();
|
// setup_system_in_refinement_after_interpolating();
|
||||||
|
|
||||||
constraints.distribute(solution);
|
constraints.distribute(solution);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user