[petsc-users] import a mesh.
obonnefon at paca.inra.fr
obonnefon at paca.inra.fr
Wed Aug 21 05:25:09 CDT 2013
Hello,
Hello,I found my bug: The indices of the points are offseted in the
function DMPlexCreateFromCellList.
Using the correct indicices in the DMPlexSetLabelValue leads to the
expected behaviour.
Thanks you.
Olivier B
Quoting obonnefon at paca.inra.fr:
> Hello,
>
> Ok, I did it:
> ierr =
>
DMPlexCreateFromCellList(comm,dim,8,9,3,0,obcells,2,obvertex,dm);CHKERRQ(ierr);
> for (i=0;i<obNbBound;i++){
> ierr =DMPlexSetLabelValue(*dm, "marker", obboundary[i],
> 1);CHKERRQ(ierr);
> }
>
> but, it is not efficient: The degree of freedom are still present in the
> linear system.
> In the source of DMPlexCreateSquareBoundary, the label is set for the
> edges and for the points.
> Do I have to do something like this ?
> Thanks,
> Olivier B
>
> Quoting Matthew Knepley <knepley at gmail.com>:
>
>> On Tue, Aug 20, 2013 at 10:16 AM, Olivier Bonnefon
>> <olivier.bonnefon at avignon.inra.fr> wrote:
>>
>>> Hello,
>>>
>>> Thank-you, I'm using DMPlexCreateFromCellList(), and it works except
>>> for the boundary conditions.
>>> I'm using Dirichlet boundary conditions, and the corresponding degree
>>> of freedom are not substituted (like when I use DMPlexCreateBoxMesh).
>>> So, I do have missing a step to define the boundary ?
>>
>>
>> Yes. For the other formats, it translates boundary markers to
>> DMLabels. With the CellList you will have to label your boundary.
>> If you want it to work exactly as in the example, for every point
>> p on your boundary,
>>
>> DMPlexSetLabelValue(dm, "marker", p, 1);
>>
>> You can avoid the string lookup by using
>>
>> DMPlexCreateLabel(dm, "marker");
>> DMPlexGetLabel(dm, "marker", &label);
>> DMLabelSetValue(label, p, 1);
>>
>> Obviously, if you have multiple BC, you can use a label for each
>> condition.
>>
>> Thanks,
>>
>> Matt
>>
>>
>>> Olivier B
>>>
>>> On 08/20/2013 03:08 PM, Matthew Knepley wrote:
>>>
>>>> On Tue, Aug 20, 2013 at 7:50 AM, Olivier Bonnefon
>>>> <olivier.bonnefon at avignon.inra.fr> wrote:
>>>>
>>>>> Hello,
>>>>>
>>>>> I have modify the ex12.c example for a like diffusive problem
>>>>> (FEM+unstructured mesh+SNES).
>>>>> The next step, is to replace the square mesh by my own mesh.
>>>>> I want import my mesh from a simple file, and after distributed it
>>>>> with DMPlexDistribute.
>>>>> Is it the good way ?
>>>>> Is it possible to import a mesh in petsc ? I didn't find the answer
>>>>> in the documentation. Is there an example ?
>>>>
>>>>
>>>> There are a few formats supported:
>>>>
>>>> 1) Cell-vertex: DMPlexCreateFromCellList()
>>>>
>>>> 2) Exodus: DMPlexCreateExodus()
>>>>
>>>> 3) CGNS: DMPlexCreateCGNS()
>>>>
>>>> Thanks,
>>>>
>>>> Matt
>>>>
>>>>
>>>>> Thanks
>>>>> Olivier Bonnefon
>>>>>
>>>>> --
>>>>> Olivier Bonnefon
>>>>> INRA PACA-Avignon, Unité BioSP
>>>>> Tel: +33 (0)4 32 72 21 58[1]
>>>>>
>>>>
>>>>
>>>> --
>>>> 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
>>>
>>> -- Olivier Bonnefon INRA PACA-Avignon, Unité BioSP Tel: +33 (0)4 32
>>> 72 21 58[1]
>>
>>
>> --
>> 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
>
>
>
Links:
------
[1] tel:%2B33%20%280%294%2032%2072%2021%2058
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20130821/92d1b16d/attachment.html>
More information about the petsc-users
mailing list