[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