[petsc-users] Why use MATMPIBAIJ?

Matthew Knepley knepley at gmail.com
Mon Jan 18 09:54:56 CST 2016


On Mon, Jan 18, 2016 at 9:42 AM, Hoang Giang Bui <hgbk2008 at gmail.com> wrote:

> Why P2/P2 is not for co-located discretization? However, it's not my
> question. The P2/P1 which I used generate variable block size at each node.
> That was fine if I used PCFieldSplitSetIS for each components,
> displacements and pressures. But how to set the block size (3) for
> displacement block?
>

P2/P1 does not generate block matrices, and is not col-located, because the
variables are located at different sets of nodes.

You can use PCFieldSplitSetIS() to specify the splits. This is the right
method for P2/P1.

Setting the block size for the P2 block is not crucial. When its working we
can do that.

  Matt


> Giang
>
> On Mon, Jan 18, 2016 at 3:58 PM, Matthew Knepley <knepley at gmail.com>
> wrote:
>
>> On Mon, Jan 18, 2016 at 8:29 AM, Hoang Giang Bui <hgbk2008 at gmail.com>
>> wrote:
>>
>>>
>>>
>>> On Thu, Jan 14, 2016 at 8:08 PM, Barry Smith <bsmith at mcs.anl.gov> wrote:
>>>
>>>>
>>>> > On Jan 14, 2016, at 12:57 PM, Jed Brown <jed at jedbrown.org> wrote:
>>>> >
>>>> > Hoang Giang Bui <hgbk2008 at gmail.com> writes:
>>>> >> One more question I like to ask, which is more on the performance of
>>>> the
>>>> >> solver. That if I have a coupled problem, says the point block is
>>>> [u_x u_y
>>>> >> u_z p] in which entries of p block in stiffness matrix is in a much
>>>> smaller
>>>> >> scale than u (p~1e-6, u~1e+8), then AMG with hypre in PETSc still
>>>> scale?
>>>> >
>>>> > You should scale the model (as Barry says).  But the names of your
>>>> > variables suggest that the system is a saddle point problem, in which
>>>> > case there's a good chance AMG won't work at all.  For example,
>>>> > BoomerAMG produces a singular preconditioner in similar contexts, such
>>>> > that the preconditioned residual drops smoothly while the true
>>>> residual
>>>> > stagnates (the equations are not solved at all).  So be vary careful
>>>> if
>>>> > you think it's "working".
>>>>
>>>>
>>>
>>> Using block size 4 with the scaling, the hypre AMG does not converge. So
>>> it's somehow right.
>>>
>>>
>>>
>>>>    The PCFIEDSPLIT preconditioner is designed for helping to solve
>>>> saddle point problems.
>>>>
>>>>
>>>>
>>>
>>> Does PCFIELDSPLIT support variable block size? For example using P2/P1
>>> discretization, the number of nodes carrying [u_x u_y u_z] is different
>>> with number of nodes carrying p. PCFieldSplitSetBlockSize would not be
>>> correct in this case.
>>>
>>
>> You misunderstand the blocking. You would put ALL velocities (P2) in one
>> block and ALL pressure (P1) in another.
>> The PCFieldSplitSetBlockSize() call is for co-located discretizations,
>> which P2/P2 is not.
>>
>>    Matt
>>
>>
>>> Giang
>>>
>>>
>>
>>
>> --
>> 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20160118/1167d86b/attachment.html>


More information about the petsc-users mailing list