From bd514f33ea7328af8385ed4c00fc0eae2658c0c8 Mon Sep 17 00:00:00 2001 From: "V. Ferreira" Date: Tue, 24 Feb 2026 02:22:18 +0100 Subject: [PATCH] made x dim periodic --- nufi_poisson.cc | 34 +++++++++++++++++++++++++++++----- 1 file changed, 29 insertions(+), 5 deletions(-) diff --git a/nufi_poisson.cc b/nufi_poisson.cc index 98e272f..b7fbc6a 100644 --- a/nufi_poisson.cc +++ b/nufi_poisson.cc @@ -5,6 +5,7 @@ #include #include #include +#include #include #include @@ -16,6 +17,7 @@ #include #include +#include #include #include @@ -127,6 +129,7 @@ public: void set_Nv(unsigned int new_Nv); private: + void create_mesh(); void setup_system(); void assemble_system(); void solve(); @@ -147,6 +150,7 @@ private: unsigned int Nv; }; + template void PoissonProblem::set_Nv(unsigned int new_Nv) { @@ -161,6 +165,30 @@ PoissonProblem::PoissonProblem(unsigned int degree, unsigned int Nv) {} +// =-=-=-=-= Make Grid =-=-=-=-= + +template +void PoissonProblem::create_mesh() +{ + GridGenerator::hyper_cube(triangulation, + X_DOMAIN_LEFT, + X_DOMAIN_RIGHT); + + // Make x-dim boundaries periodic + std::vector::cell_iterator>> periodicity_vector; + + GridTools::collect_periodic_faces(triangulation, + 0, + 1, + 0, + periodicity_vector); + + triangulation.add_periodicity(periodicity_vector); + + triangulation.refine_global(GLOBAL_REFINEMENT); +} + template void PoissonProblem::setup_system() { @@ -341,11 +369,7 @@ void PoissonProblem::output_results() const template void PoissonProblem::run() { - GridGenerator::hyper_cube(triangulation, - X_DOMAIN_LEFT, - X_DOMAIN_RIGHT); - - triangulation.refine_global(GLOBAL_REFINEMENT); + create_mesh(); setup_system(); assemble_system();