On Tue, Aug 13, 2013 at 7:05 PM, Michele Rosso <mro...@uci.edu> wrote:
> Hi Matt, > > I attached the output of the commands you suggested. > The options I used are: > > -log_summary -ksp_monitor -ksp_view -ksp_converged_reason -pc_type mg > -pc_mg_galerkin -pc_mg_levels 5 -options_left > The convergence is great. I notice that your coarse solve takes no time. You could probably use fewer levels for this problem. For this problem there is no easy things left I think. We are currently debating how you can squeeze something extra out of the smoother. Here you could probably get rid of Chebychev and use only SOR. Matt > and here are the lines of codes where I setup the solution process: > > call DMDACreate3d( PETSC_COMM_WORLD , > & > & DMDA_BOUNDARY_PERIODIC , DMDA_BOUNDARY_PERIODIC, > & > & DMDA_BOUNDARY_PERIODIC , DMDA_STENCIL_STAR, > & > & N_Z , N_Y , N_X , N_B3 , N_B2 , 1_ip, 1_ip , 1_ip , > & > & NNZ ,NNY , NNX, da , ierr) > > > ! Create Global Vectors > call DMCreateGlobalVector(da,b,ierr) > call VecDuplicate(b,x,ierr) > > ! Set initial guess for first use of the module to 0 > call VecSet(x,0.0_rp,ierr) > > ! Create matrix > call DMCreateMatrix(da,MATAIJ,A,ierr) > > ! Create solver > call KSPCreate(PETSC_COMM_WORLD,ksp,ierr) > call KSPSetDM(ksp,da,ierr) > call KSPSetDMActive(ksp,PETSC_FALSE,ierr) > call KSPSetOperators(ksp,A,A,SAME_NONZERO_PATTERN,ierr) > call KSPSetType(ksp,KSPCG,ierr) > call KSPSetNormType(ksp,KSP_NORM_UNPRECONDITIONED,ierr) > call KSPSetInitialGuessNonzero(ksp,PETSC_TRUE,ierr) > call KSPSetTolerances(ksp, tol ,PETSC_DEFAULT_DOUBLE_PRECISION,& > & PETSC_DEFAULT_DOUBLE_PRECISION,PETSC_DEFAULT_INTEGER,ierr) > > ! Nullspace removal > call MatNullSpaceCreate( > PETSC_COMM_WORLD,PETSC_TRUE,PETSC_NULL_INTEGER,& > & PETSC_NULL_INTEGER,nullspace,ierr) > call KSPSetNullspace(ksp,nullspace,ierr) > call MatNullSpaceDestroy(nullspace,ierr) > > ! To allow using option from command line > call KSPSetFromOptions(ksp,ierr) > > > Hope I did not omit anything useful. > Thank you for your time. > > Best, > Michele > > > > > On 08/13/2013 04:26 PM, Matthew Knepley wrote: > > On Tue, Aug 13, 2013 at 6:09 PM, Michele Rosso <mro...@uci.edu> wrote: > >> Hi Karli, >> >> thank you for your hint: now it works. >> Now I would like to speed up the solution: I was counting on increasing >> the number of levels/the number of processors used, but now I see I cannot >> do that. >> Do you have any hint to achieve better speed? >> Thanks! >> > > "Better speed" is not very helpful for us, and thus we cannot offer much > help. You could > > 1) Send the output of -log_summary -ksp_monitor -ksp_view > > 2) Describe the operator succintly > > Matt > > >> Best, >> Michele >> >> >> > -- What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead. -- Norbert Wiener