[petsc-users] import a mesh.

obonnefon at paca.inra.fr obonnefon at paca.inra.fr
Wed Aug 21 04:28:34 CDT 2013


  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/1760bf8e/attachment.html>


More information about the petsc-users mailing list