On Tue, Aug 13, 2013 at 7:05 PM, Michele Rosso <mro...@uci.edu
<mailto: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
<mailto: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