Hello everyone,
I am trying to solve a simple case, of a 3D laminar flow inside a pipe using PETSc, on FreeFEM++ v4.8. This is a part of the code used (I removed only the part with saving files):
> load "PETSc"
> macro dimension()3				//EOM
> macro def(j)[j, j#B, j#C, j#D]    //EOM
> macro init(j)[j, j, j, j]		   //EOM
> 
> include "macro_ddm.idp"
> load "iovtk" 			
> load "msh3"				
> load "medit"			
> 
> 
> mesh3 Th=readmesh3("....mesh");		
> plot(Th, wait=true);
> 
> func FES=[P2,P2,P2,P1];					
> fespace XXXXFES(Th,FES);				
> XXXXFES[u,v,w,p];						
> XXXXFES[hx,hy,hz,q];					 
> XXXXFES[up,vp,wp,pp];					
> 	
> 
> real InletVel = 1;					
> real dt = 0.01;             		    
> int iter = 3;						
> real Re = 1500.;						
> 
> i    nt Wall = 3;							
    > int Inlet = 12;							
    > int Outlet = 10;						
    > 
    > [u,v,w,p]=[0.,0.,0.,0.];					
> 
> varf LNS ([u, v, w, p],[hx, hy, hz, q])
> 	= int3d(Th)(
> 			   (1./dt)*(u*hx+v*hy+w*hz))
> 	 +int3d(Th)(
> 			   +(1./Re)*(dx(u)*dx(hx)+dy(u)*dy(hx)+dz(u)*dz(hx))		
> 			   +(1./Re)*(dx(v)*dx(hy)+dy(v)*dy(hy)+dz(v)*dz(hy))		
> 			   +(1./Re)*(dx(w)*dx(hz)+dy(w)*dy(hz)+dz(w)*dz(hz))		
> 			   -p*(dx(hx)+dy(hy)+dz(hz))								
> 			   -(dx(u)+dy(v)+dz(w))*q				  					   
> 			   -1e-10*p*q												
> 			   )
> 	 +int3d(Th)(
> 			   +(1./dt)*convect([up,vp,wp],-dt,up)*hx
>                +(1./dt)*convect([up,vp,wp],-dt,vp)*hy
> 		       +(1./dt)*convect([up,vp,wp],-dt,wp)*hz
> 		       )
> 			
> 			+ on(Wall, u=0., v=0., w=0.)
> 			+ on(Inlet, u=0., v=0., w=InletVel);
> 			
> 			
> string[int] Variables(2);
> Variables[0] = "Velocity";
> Variables[1] = "Pressure";
> 	   		
> Mat J;
> createMat(Th, J, FES);
> J = LNS(XXXXFES,XXXXFES, tgv=-1);
> real[int] Jrhs = LNS(0, XXXXFES, tgv=-1);
> set(J, sparams = "-ksp_type bicg -pc_type jacobi", fields = u[], names = Variables);
> 
> int i;
> for(i = 0; i<=iter; i++)
> {
> 	up[] = u[];
>	u[]=J^-1*Jrhs;
> }
When I set -nb 2 or more I get: FreeFEM+±mpi.exe aborted the job. abort code 50176059. I run it with -malloc_debug to see if it is a memory error and I get: FreeFEM+±mpi.exe aborted the job. abort code 70033056.
If I set -nb 1 It run but it seems that my loop is not correct as the velocity/pressure doesn’t update after each iteration.
Any guidance to fix this problem is appreciated. Thank you in advance!
Regards,
Robert
