From 356c4fe4fac1178908ef4791c47b1e64cc50f438 Mon Sep 17 00:00:00 2001 From: Erik Fabrizzi Date: Mon, 28 Apr 2025 19:03:44 +0200 Subject: [PATCH] fix: corrected bd-> result still not okay --- PoissonSolver/2D-mpi/src/main.c | 2 +- PoissonSolver/2D-mpi/src/solver.c | 17 +++++++++++------ PoissonSolver/2D-mpi/src/solver.h | 2 +- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/PoissonSolver/2D-mpi/src/main.c b/PoissonSolver/2D-mpi/src/main.c index 981cac2..bbbbe8b 100644 --- a/PoissonSolver/2D-mpi/src/main.c +++ b/PoissonSolver/2D-mpi/src/main.c @@ -35,7 +35,7 @@ int main(int argc, char** argv) } initSolver(&solver, ¶ms, 2); - solve(&solver); + solveRB(&solver); getResult(&solver); MPI_Finalize(); diff --git a/PoissonSolver/2D-mpi/src/solver.c b/PoissonSolver/2D-mpi/src/solver.c index 3431a84..4e9c9c0 100644 --- a/PoissonSolver/2D-mpi/src/solver.c +++ b/PoissonSolver/2D-mpi/src/solver.c @@ -310,12 +310,17 @@ int solveRB(Solver *solver) { } jsw = 3 - jsw; } - - for (int i = 1; i < imax + 1; i++) { - P(i, 0) = P(i, 1); - P(i, jmaxLocal + 1) = P(i, jmaxLocal); - } - + if(solver->rank==0) + for(int i = 1 ; i < imax+1 ;i++)P(i,0)=P(i,1); + + if(solver->rank== solver->size-1) + for(int i = 1; i < imax +1; i++)P(i, jmaxLocal + 1) = P(i, jmaxLocal); + + // for (int i = 1; i < imax + 1; i++) { + // P(i, 0) = P(i, 1); + // P(i, jmaxLocal + 1) = P(i, jmaxLocal); + // } + for (int j = 1; j < jmaxLocal + 1; j++) { P(0, j) = P(1, j); P(imax + 1, j) = P(imax, j); diff --git a/PoissonSolver/2D-mpi/src/solver.h b/PoissonSolver/2D-mpi/src/solver.h index 76bc29e..016456b 100644 --- a/PoissonSolver/2D-mpi/src/solver.h +++ b/PoissonSolver/2D-mpi/src/solver.h @@ -25,5 +25,5 @@ extern void debug(Solver*); extern void initSolver(Solver*, Parameter*, int problem); extern void getResult(Solver*); extern void writeResult(Solver*, double*, char*); -extern int solve(Solver*); +extern int solveRB(Solver*); #endif