Good morning everyone. I have been practising with FreeFem++ (Windows 11) for a couple of months and now i’m catching up with expert tutorial 2022 made by Professor Pierre Joliviet in order to learn parallel computing. I am trying to launch a script on freefemMPI and using PETSc. It gives me no problems when using 3 or less MPI processes. But when i ask to use 4 or more processes, the script is compiled but execution gets stuck. It shows no error at all but it just keeps computing and never gives the output. I tried debugging and the problem seems to come from the createMat function. How can i solve this problem?
The script is the following. It is a very simple problem from the tutorial.
border circle(t=0,2*pi){x=cos(t); y=sin(t);}
int n=200;
mesh Th=buildmesh(circle(n));
fespace Ph(Th,P0);
Ph partitioning;
include "macro_ddm.idp" // includo la idp con le macro
buildDmesh(Th);
load "PETSc"
Ph outputForParaview = mpirank;
savevtk("C:/Users/Utente/Desktop/tirocinio e tesi portatile/free fem/esercizi freefem/decomposition/pierre8/rank.vtu",Th, outputForParaview);
fespace Vh(Th,P1);
tgv=-1.0;
varf vPb(u,v)=int2d(Th)(dx(u)*dy(v)+dy(u)*dy(v))+int2d(Th)(v)+on(1, u=1.0);
real[int] rhs=vPb(0,Vh);
Mat A;
createMat(Th,A,P1);
A=vPb(Vh,Vh);
set(A, sparams="-prefix_push myFirstSolve_ -ksp_converged_reason -ksp_type gmres -pc_type lu -prefix_pop", prefix = "myFirstSolve_");
real[int] sol=A^-1*rhs;
Vh solForOutput;
solForOutput[]=sol;
int[int] one(1);
one=1;
savevtk("C:/Users/Utente/Desktop/tirocinio e tesi portatile/free fem/esercizi freefem/decomposition/pierre7/rank.vtu",Th, solForOutput, order=one, append=true);
Thanks for the help.
Best regards
OCT