Matt,

thank you.
The matrix arises from discretization of the Poisson equation in incompressible flow calculations.

Michele

On 08/13/2013 06:34 PM, Matthew Knepley wrote:
On Tue, Aug 13, 2013 at 8:25 PM, Michele Rosso <mro...@uci.edu <mailto:mro...@uci.edu>> wrote:

    Matt,

    thank you! I will try to reduce the number of levels and see how
    it goes.
    I asked about the speed since CG + Block Jacobi with ICC in each
    block runs faster then CG + MG, so I thought I was missing something.


What is the operator? If its the mass matrix,  we expect this.

    Could you please tell me how to get rid of Chebichev?


I believe its

  -mg_levels_ksp_type richardson

but you can check.

  matt

    Best,
    Michele

    On 08/13/2013 05:51 M, Matthew Knepley wrote:
    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




--
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

Reply via email to