[petsc-dev] Discussion about time-dependent optimization moved from PR
Jed Brown
jed at jedbrown.org
Tue Oct 17 10:30:51 CDT 2017
Barry Smith <bsmith at mcs.anl.gov> writes:
>> On Oct 17, 2017, at 10:06 AM, Jed Brown <jed at jedbrown.org> wrote:
>>
>> Barry Smith <bsmith at mcs.anl.gov> writes:
>>
>>>> On Oct 17, 2017, at 9:47 AM, Jed Brown <jed at jedbrown.org> wrote:
>>>>
>>>> Lawrence Mitchell <wencel at gmail.com> writes:
>>>>
>>>>
>>>> When I suggested as a young child that DM be essentially just a function
>>>> space and create a new object for resolution-independent specification
>>>> of a problem (residual and Jacobian functions and related components),
>>>> Barry wanted it to be part of DM to avoid having a new object. So it's
>>>> part of DM -- make a new DM if you're solving a different problem.
>>>
>>> Of course, everything in PETSc is subject to refactorization and it
>>> may be time to do this refactorization; especially if it can
>>> dramatically decrease the ugly subtle complexities of the TSDM,
>>> SNESDM .... management. One more public object per solver level is
>>> probably better than the complexity we have now I do admit.
>>
>> I'm not opposed to refactoring (though it would take me significant time
>> without distractions),
>
> Perhaps you don't need to do it all yourself? And we could do it in
> multiple stages, like first add the new public objects get them
> working with the DM and then later remove the private objects that
> exist now?
Whomever does it will need to spend some time learning/reminding
themselves of all the functional requirements. It could be done
somewhat incrementally, but will need careful reviewing.
>> but this sort of change would have a lot more
>> consequences now because we have lots of code depending on it.
>
> True
>
>> Is there
>> a functional reason to refactor now?
>
> Is there ever? As always it is priorities.
Nonlinear preconditioning and multilevel algorithms were the impetus for
DMSNES. Prior to that, we had some kludgy void* hiding a dependency
loop (DM depending on SNES) and that was definitely not maintainable or
reasonable to extend to support the new functionality.
I don't see the current structure as a significant liability and
wouldn't consider it high priority at this time.
More information about the petsc-dev
mailing list