mirror of
https://codeberg.org/vcbferreira/NuFI_deal.ii
synced 2026-08-12 14:33:18 +02:00
sim working correctly fully in fem
This commit is contained in:
+2
-2
@@ -76,8 +76,8 @@ inline double eval(double x, const PoissonProblem<1> &poisson,
|
||||
|
||||
x = x - Parameters::LX * std::floor(x * Parameters::LX_INV); // in domain
|
||||
|
||||
return eval_point<1>(poisson.get_mapping(), poisson.get_dof_handler(),
|
||||
solution, Point<1>(x));
|
||||
return eval_point_grad<1>(poisson.get_mapping(), poisson.get_dof_handler(),
|
||||
solution, Point<1>(x));
|
||||
}
|
||||
|
||||
inline double integral_space_vector(const PoissonProblem<1> &poisson,
|
||||
|
||||
+1
-1
@@ -36,7 +36,7 @@ constexpr double DT = 1. / 8.;
|
||||
constexpr unsigned int TMAX = 100;
|
||||
|
||||
// Plotting options
|
||||
constexpr int PLOT_FREQUENCY = 10;
|
||||
constexpr int PLOT_FREQUENCY = 4;
|
||||
constexpr size_t PLOT_NX = CALC_NX;
|
||||
constexpr double PLOT_DX = LX / PLOT_NX;
|
||||
} // namespace Parameters
|
||||
|
||||
+20
-5
@@ -33,11 +33,14 @@
|
||||
#include <deal.II/fe/fe_values.h>
|
||||
|
||||
#include <deal.II/numerics/data_out.h>
|
||||
#include <deal.II/numerics/fe_field_function.h>
|
||||
#include <deal.II/numerics/matrix_tools.h>
|
||||
#include <deal.II/numerics/vector_tools.h>
|
||||
|
||||
#include <deal.II/numerics/vector_tools_evaluate.h>
|
||||
#include <deal.II/numerics/vector_tools_interpolate.h>
|
||||
#include <deal.II/numerics/vector_tools_point_gradient.h>
|
||||
#include <deal.II/numerics/vector_tools_point_value.h>
|
||||
#include <functional>
|
||||
#include <memory>
|
||||
#include <string>
|
||||
@@ -170,14 +173,26 @@ PoissonProblem<dim>::sample_electric_potential(double x_min, double x_max,
|
||||
}
|
||||
|
||||
template <int dim>
|
||||
double eval_point(const Mapping<dim> &mapping,
|
||||
const DoFHandler<dim> &dof_handler,
|
||||
const Vector<double> &solution, const Point<dim> &point) {
|
||||
return VectorTools::point_value<dim>(mapping, dof_handler, solution, point);
|
||||
double
|
||||
eval_point_grad(const Mapping<dim> &mapping, const DoFHandler<dim> &dof_handler,
|
||||
const Vector<double> &solution, const Point<dim> &point) {
|
||||
|
||||
Tensor<1, dim> grad =
|
||||
VectorTools::point_gradient<dim>(mapping, dof_handler, solution, point);
|
||||
double Ex = grad[0];
|
||||
|
||||
return Ex;
|
||||
}
|
||||
|
||||
// dealii Poisson
|
||||
template <int dim>
|
||||
double eval_point_value(const Mapping<dim> &mapping,
|
||||
const DoFHandler<dim> &dof_handler,
|
||||
const Vector<double> &solution,
|
||||
const Point<dim> &point) {
|
||||
|
||||
return VectorTools::point_value<dim>(mapping, dof_handler, solution, point);
|
||||
}
|
||||
// dealii Poisson
|
||||
template <int dim> void PoissonProblem<dim>::create_mesh() {
|
||||
|
||||
GridGenerator::hyper_cube(triangulation, Parameters::X_DOMAIN_LEFT,
|
||||
|
||||
Reference in New Issue
Block a user