[petsc-users] DMPlex : Assemble global stiffness matrix problem
Matthew Knepley
knepley at gmail.com
Tue Mar 8 11:47:21 CST 2016
On Tue, Mar 8, 2016 at 7:10 AM, Matthew Knepley <knepley at gmail.com> wrote:
> On Mon, Mar 7, 2016 at 1:28 PM, Morten Nobel-Jørgensen <mono at mek.dtu.dk>
> wrote:
>
>> I have some problems using DMPlex on unstructured grids in 3D.
>>
>> After I have created the DMPlex and assigned dofs (3 dofs on each node),
>> I run into some problems when assembling the global stiffness matrix. I
>> have created a small example in the attached cc file. My problems are:
>>
>> - It seems like the matrix (created using DMCreateMatrix) contains no
>> non-zero elements. I was under the impression that the sparsity pattern of
>> the matrix would be created automatically when the dofs has been assigned
>> to the default section.
>> - (Probably as a consequence of this) when assigning values to the
>> matrix I get an: "Argument of of range. New nonzero at (0,0) caused a
>> malloc. Use MatSetOption(A, MAT_NEW_NONZERO_ALLOCATION_ERR,
>> PETSC_FALSE) to turn off this check"
>> - Finally, I'm reading the nodes of each element using the
>> get-transitive-clojure (where I test if each point is inside the node
>> range), but I have a hard time understanding if the returned values are
>> sorted. And if not, how to sort the values (e.g. using orientation which
>> the get-transitive-clojure function also returns).
>>
>> I hope someone can guide me in the right direction :)
>>
>
> I will take a look today or tomorrow. The first thing to do is to look at
> the nonzero pattern of the Jacobian. I use -mat_view draw -draw_pause -1
>
I admit that this problem is counter-intuitive, and I will think about a
good error check. The problem is that I allow "inconsistent"
sections, meaning that the dof for each field do not add up to the total
dof. In your code, when you call
ierr = PetscSectionSetDof(s, v, 3);CHKERRQ(ierr);
you should also call
ierr = PetscSectionSetFieldDof(s, v, 0, 3);CHKERRQ(ierr);
Then everything works. I am attaching my slight rewrite of your code.
Thanks,
Matt
> Thanks,
>
> Matt
>
>
>> Kind regards,
>> Morten
>>
>
>
>
> --
> 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/20160308/adb56854/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ex18.c
Type: text/x-csrc
Size: 4252 bytes
Desc: not available
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20160308/adb56854/attachment.c>
More information about the petsc-users
mailing list