> On Nov 6, 2017, at 7:30 AM, Vaclav Hapla <vaclav.ha...@erdw.ethz.ch> wrote:
> 
> 
>> 6. 11. 2017 v 14:27, Matthew Knepley <knep...@gmail.com>:
>> 
>> On Mon, Nov 6, 2017 at 8:24 AM, Smith, Barry F. <bsm...@mcs.anl.gov> wrote:
>> 
>>    Vaclav,
>> 
>>       Actually you should not just do this! PETSc already has a full class 
>> for managing partitioning (that Matt ignored for no good reason)
>> 
>> Obviously, a good reason existed. All sorts of horrible Mat-specific crap 
>> was in these. It was impossible to use for mesh partitioning. In addition,
>> when partitioning meshes, you need extra things (like calculation of the 
>> dual graph), which is not used in the matrix case.
> 
> This is what I thought; mesh and matrix partitioning is quite a different 
> task to me, although typically using the same low-level libraries.

  Vaclav,

   MatPartitioning is not just for partitioning Mats, it is for partitioning 
graphs. Please look at the code, you'll see Matt duplicated tons of it in doing 
his own "mesh partitioning" stuff and all that code duplication is a sign that 
they really are not "quite a different task".

  Barry

> 
> Vaclav
> 
>> 
>>   Matt
>> 
>>  
>> see MatPartitioningCreate(). Please look at all the functionality before 
>> doing anything.
>> 
>>      Any refactorization you do needs to combine, simplify, and cleanup the 
>> two interfaces to create one simpler one. And please let us know your design 
>> ideas (with for example an issue on bitbucket) before you go ahead and write 
>> a lot of code we may end up not liking.
>> 
>>      Thanks for looking at this,
>> 
>>    Barry
>> 
>> 
>> > On Nov 6, 2017, at 7:09 AM, Vaclav Hapla <vaclav.ha...@erdw.ethz.ch> wrote:
>> >
>> > Hello
>> >
>> > The whole PetscPartitioner class sources are part of 
>> > src/dm/impls/plex/plexpartition.c, mixed together with some DMPlex* 
>> > functions.
>> > If you don't mind, I would move the PetscPartitioner* stuff into the 
>> > separate file petscpartitioner.c
>> > (in future, it could be even moved to a separate directory).
>> >
>> > I would also like to
>> > * add PetscPartitioner{Add,Set,Get}OptionsPrefix,
>> > * create the partitioner lazily in DMPlexGetPartitioner, followed by 
>> > PetscObjectIncrementTabLevel, PetscLogObjectParent and 
>> > PetscPartitionerSetOptionsPrefix calls,
>> > * edit src/dm/impls/plex/examples/tutorials/ex5.c so that it calls 
>> > DMSetFromOptions right after DMPlexCreateFromFile, in order to make the 
>> > partitioner changeable from options.
>> >
>> > Do you have anything against?
>> >
>> > Vaclav
>> 
>> 
>> 
>> 
>> -- 
>> 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
>> 
>> https://www.cse.buffalo.edu/~knepley/
> 

Reply via email to