[petsc-dev] why does this inanity exist?
Jed Brown
jed at jedbrown.org
Sun Apr 30 15:19:57 CDT 2017
Proposal: add ts->default_adapt_type. TSCreate_* sets this. Remove
TSGetAdapt from TSCreate and move it to TSSetUp and TSSetFromOptions.
Make TSGetAdapt call TSAdaptSetType(adapt,ts->default_adapt_type). Now
there is no "setbyuser", but TS implementations can select their
preferences and those will be ignored if the user calls TSGetAdapt and
changes it themselves. And -ts_adapt_type none always works.
Barry Smith <bsmith at mcs.anl.gov> writes:
>> On Apr 30, 2017, at 12:53 PM, Lisandro Dalcin <dalcinl at gmail.com> wrote:
>>
>> On 30 April 2017 at 19:09, Barry Smith <bsmith at mcs.anl.gov> wrote:
>>>
>>>> On Apr 30, 2017, at 8:39 AM, Lisandro Dalcin <dalcinl at gmail.com> wrote:
>>>>
>>>> On 30 April 2017 at 05:53, Barry Smith <bsmith at mcs.anl.gov> wrote:
>>>>> TS already had mechanisms to turn on or off adaptivity (presumably) so why would an individual type need to reproduce this functionality except to drive users insane?
>>>>
>>>> We do not have a clear mechanism for a TS subtype to decide on whether
>>>> adaptivity should be turn on or off by default. The rationale to turn
>>>> it off by default are more or less described in other related email:
>>>> the error estimator is bad quality (or lower order than the one of the
>>>> LTE of the method).
>>>
>>> Why isn't the default just switched when the subtype (with a bad adapter) is selected by the user?
>>>
>>> The reason is that the user may have already manually turned on the adapter and you don't want PETSc switching it secretly later?
>>>
>>
>> Yes, indeed. We have the usual fight between explicit API calls in
>> code interacting with SetType() and SetFromOptions().
>>
>> However, after my refactoring of TSAdapt, maybe we are closer to get
>> something that works better.
>>
>>
>>> Do we need then to have a flag in TS - adaptsetbyuser? and only change the default if that flag is not on?
>>>
>>> I prefer not to have setbyuser flags in PETSc but sometimes it seems we cannot live without them.
>>>
>>
>> I don't like any setbyuser flags either.
>>
>>>>
>>>> Please note that THETA and ALPHA do use the standard TSAdapt
>>>> infrastructure, the only thing this "use adapt" flag does is to turn
>>>> it off by default. If you consider it appropriate, I can remove all
>>>> that code for the "use adapt" flag in THETA and ALPHA, users can then
>>>> turn off adaptivity with `-ts_adapt_type none`.
>>>
>>> Yes, I don't understand why users should not just use -ts_adapt_type none.
>>>
>>
>> These "use adapt" flags were just an attempt to not surprise users
>> with TSTHETA changing previous behavior. However, as the error
>> estimator is very conservative, I don't really see a problem with
>> having adaptivity on by default in THETA and ALPHA.
>>
>> So Barry, if you are for it, and Jed has no objections, I can fire a
>> PR tomorrow removing these crappy "use adapt flags" in favor of the
>> -ts_adapt_type approach.
>
> Yes.
>
>
>
>>
>> @Stefano, this should fix for good your previous complaints/questions
>> about "How do I turn on adaptivity on these methods?".
>>
>> --
>> Lisandro Dalcin
>> ============
>> Research Scientist
>> Computer, Electrical and Mathematical Sciences & Engineering (CEMSE)
>> Extreme Computing Research Center (ECRC)
>> King Abdullah University of Science and Technology (KAUST)
>> http://ecrc.kaust.edu.sa/
>>
>> 4700 King Abdullah University of Science and Technology
>> al-Khawarizmi Bldg (Bldg 1), Office # 0109
>> Thuwal 23955-6900, Kingdom of Saudi Arabia
>> http://www.kaust.edu.sa
>>
>> Office Phone: +966 12 808-0459
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 832 bytes
Desc: not available
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20170430/c881de61/attachment.sig>
More information about the petsc-dev
mailing list