[petsc-users] Solving Poisson equation with multigrid

Michele Rosso mrosso at uci.edu
Fri May 17 19:45:46 CDT 2013


I noticed that the problem appears even if I use CG with the default 
preconditioner: commenting KSPSetDM() solves the problem.
So basically without a proper grid (it seems no grid with an even 
numbers of nodes qualifies) and with my own system matrix, I cannot use 
any type of multigrid
pre-conditioner?




On 05/17/2013 05:33 PM, Jed Brown wrote:
> Michele Rosso <mrosso at uci.edu> writes:
>
>> I run with
>>
>> -pc_type gamg  -options_left
>>
>> and I get the error:
>>
>> [0]PETSC ERROR: --------------------- Error Message
>> ------------------------------------
>> [0]PETSC ERROR: No support for this operation for this object type!
>> [0]PETSC ERROR: For coloring efficiency ensure number of grid points in
>> X is divisible
>>                    by 2*stencil_width + 1
>> !
>> [0]PETSC ERROR:
>> ------------------------------------------------------------------------
>> [0]PETSC ERROR: Petsc Release Version 3.3.0, Patch 3, Wed Aug 29
>> 11:26:24 CDT 2012
>> [0]PETSC ERROR: See docs/changes/index.html for recent updates.
>> [0]PETSC ERROR: See docs/faq.html for hints about trouble shooting.
>> [0]PETSC ERROR: See docs/index.html for manual pages.
>> [0]PETSC ERROR:
>> ------------------------------------------------------------------------
>> [0]PETSC ERROR: ./hit on a  named nid22318 by Unknown Fri May 17
>> 19:21:25 2013
>> [0]PETSC ERROR: Libraries linked from
>> [0]PETSC ERROR: Configure run at
>> [0]PETSC ERROR: Configure options
>> [0]PETSC ERROR:
>> ------------------------------------------------------------------------
>> [0]PETSC ERROR: DMCreateColoring_DA_3d_MPIAIJ() line 288 in
>> src/dm/impls/da/fdda.c
> You didn't provide a Jacobian.  A finite difference Jacobian is mostly
> used for initial development.  For more general problems, either
> assemble the Jacobian or choose a compatible grid.
>
> Note: this message is a consequence of using periodic boundary
> conditions.  Someone cut a corner a long time ago when implementing
> coloring for periodic and nobody has needed this enough to remove the
> assumption.  A dimension of 255 would also be divisible by 3, if it
> helps you.
>
>    if (bx == DMDA_BOUNDARY_PERIODIC && (m % col)) SETERRQ(PetscObjectComm((PetscObject)da),PETSC_ERR_SUP,"For coloring efficiency ensure number of grid points in X is divisible\n\
>                                                           by 2*stencil_width + 1\n");
>
>> [0]PETSC ERROR: DMCreateColoring_DA() line 172 in src/dm/impls/da/fdda.c
>> [0]PETSC ERROR: DMCreateColoring() line 709 in src/dm/interface/dm.c
>> [0]PETSC ERROR: DMComputeJacobian() line 2206 in src/dm/interface/dm.c
>> [0]PETSC ERROR: KSPSetUp() line 228 in src/ksp/ksp/interface/itfunc.c
> Looks like you cut the error message off short.
>
>> The code is calling
>>
>> KSPSetFromOptions()
>>
>>
>> On 05/17/2013 05:10 PM, Jed Brown wrote:
>>> Please always use "reply-all" so that your messages go to the list.
>>> This is standard mailing list etiquette.  It is important to preserve
>>> threading for people who find this discussion later and so that we do
>>> not waste our time re-answering the same questions that have already
>>> been answered in private side-conversations.  You'll likely get an
>>> answer faster that way too.
>>>
>>> Michele Rosso <mrosso at uci.edu> writes:
>>>
>>>> If you are referring to -pc_type gamg, I tried it, but I got the same
>>>> error message
>>>> (For coloring efficiency ensure number of grid points in X is divisible
>>>> by 2*stencil_width + 1)
>>> The option could not have been used.  Always send the ENTIRE error
>>> message.  Is the code calling KSPSetFromOptions()?  Run with
>>> -options_left to see if any options did not get used.
>>>
>>>> On 05/17/2013 04:49 PM, Jed Brown wrote:
>>>>> Read my first message
>>>>>
>>>>> On May 17, 2013 6:47 PM, "Michele Rosso" <mrosso at uci.edu
>>>>> <mailto:mrosso at uci.edu>> wrote:
>>>>>
>>>>>       Ok, I will give a try to AMG then. What is it exactly?
>>>>>       Thank you!
>>>>>
>>>>>       On 05/17/2013 04:25 PM, Jed Brown wrote:
>>>>>>       Michele Rosso<mrosso at uci.edu>  <mailto:mrosso at uci.edu>  writes:
>>>>>>
>>>>>>>       So should I always use an odd number of grid points?
>>>>>>>       There is no way around this?
>>>>>>       If you want to use regular geometric coarsening, then yes.  That *is*
>>>>>>       regular node-centered coarsening.  Just consider the base case of one
>>>>>>       element:
>>>>>>
>>>>>>
>>>>>>          o ------- o
>>>>>>
>>>>>>       Split that in two:
>>>>>>
>>>>>>          o -- o -- o
>>>>>>
>>>>>>       Look, an odd number of vertices, and as we keep refining, it will stay
>>>>>>       odd.
>>>>>>
>>>>>>       You can use AMG or write your own interpolation if you want irregular coarsening.
>>>>>>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20130517/eb6472cc/attachment.html>


More information about the petsc-users mailing list