SNESSetUp() and matrix-free options
Barry Smith
bsmith at mcs.anl.gov
Tue Jul 21 16:20:11 CDT 2009
On Jul 21, 2009, at 3:03 PM, Lisandro Dalcin wrote:
> First of all, I'm very sorry about this... I just didn't noticed...
> How can I have access to the nightly tests?
I use "make alltests" on my machine after I make a big change
(actually I am a bad boy and don't do this as much as I should), this
would have found the problem for you.
Regarding the nightly tests, maybe this will get Satish to get his
butt in gear and switch to buildbot. Currently I think they are dumped
on some ANL machine and you cannot access them.
> - we should discuss deeper this whole stuff of having
> SetFromOptions()/SetUp()/Solve() calls in KSP/SNES/TS; define the
> rules, and review and fix any place that does not follow the rules.
It may simply be impossible to get the model fully consistent with
all the features we want.
Barry
>
> On Tue, Jul 21, 2009 at 1:09 PM, Barry Smith<bsmith at mcs.anl.gov>
> wrote:
>>
>> Your moving of the -snes_mf options to SNESSetFromOptions() has
>> broken
>> PETSc.
>>
>
>
>
>> [bsmith-laptop:ts/examples/tests] barrysmith% make runex4_2
>> Possible problem with ex4_2, diffs above
>>
>> Please fix!
>>
>
> Done. Comments below...
>
>> This has been broken for a long time and broken things mean no
>> one checks the nightly builds which means more and more things break.
>>
>
> Too bad. I ask again: How can I access the nightly builds? Take for
> sure that If I would have access to such results, I would fix my
> faults almost immediately... I just did not know about this situation
> (BTW, many thanks).
>
>> In SNESSetFromOptions() you have
>>
>>
>> if (mf) { ierr = SNESSetUpMatrixFree_Private(snes, mf_operator,
>> mf_version);CHKERRQ(ierr); }
>>
>> as my email says in May this is a problem. I think the easiest fix
>> is to
>> save the mf flags in the SNES data structure and call
>> SNESSetUpMatrixFree_Private()
>> as it use to be called in SNESSetUp(). Perhaps there is a problem
>> with that
>> fix I do not know about.
>>
>
> Well Barry, the way you are suggesting is not going to actually 100%
> fix things, but just mask other broken parts... Let me elaborate:
>
> - SNESSetFromOptions() calls KSPSetFromOptions()
> - but before calling KSPSetFromOptions(), you sould call
> KSPSetOperators() (in order to let KSP pick good defaults)
> - then we should build the MFFD Jacobian at SNESSetFromOptions()...
>
> Do you agree with my rationale?
>
> So I pushed a quick fix that makes the TS tests pass, but IMHO you
> should follow one of:
>
> - "hg backout" my commits (first "b17fe4b08207" and next
> "6fcd5defc59c"), and forget about the whole thing.
>
> - we should discuss deeper this whole stuff of having
> SetFromOptions()/SetUp()/Solve() calls in KSP/SNES/TS; define the
> rules, and review and fix any place that does not follow the rules.
>
>
>
>>
>> Begin forwarded message:
>>
>>> From: Barry Smith <bsmith at mcs.anl.gov>
>>> Date: May 6, 2009 3:25:43 PM CDT
>>> To: For users of the development version of PETSc <petsc-dev at mcs.anl.gov
>>> >
>>> Subject: Re: SNESSetUp() and matrix-free options
>>>
>>>
>>> Lisandro,
>>>
>>> The checking of the options can be moved to
>>> SNESSetFromOptions() that
>>> then set some flag in the snes object;
>>> but the actual action of MatCreateSNESMF() etc must continue to
>>> take place
>>> in the setup.
>>>
>>> Feel free to change if you like,
>>>
>>> Barry
>>>
>>>
>>> On May 6, 2009, at 3:15 PM, Lisandro Dalcin wrote:
>>>
>>>> Currently, -snes_mf* options are handled in SNESSetUp()... I
>>>> think all
>>>> you will agree that the proper place for them is
>>>> SNESSetFromOptions()... However, perhaps I'm missing something and
>>>> things are like that for some reason... In that case I would like
>>>> to
>>>> know the reason and perhaps I could fix this...
>>>>
>>>> --
>>>> Lisandro Dalcín
>>>> ---------------
>>>> Centro Internacional de Métodos Computacionales en Ingeniería
>>>> (CIMEC)
>>>> Instituto de Desarrollo Tecnológico para la Industria Química
>>>> (INTEC)
>>>> Consejo Nacional de Investigaciones Científicas y Técnicas
>>>> (CONICET)
>>>> PTLC - Güemes 3450, (3000) Santa Fe, Argentina
>>>> Tel/Fax: +54-(0)342-451.1594
>>>
>>
>>
>
>
>
> --
> Lisandro Dalcín
> ---------------
> Centro Internacional de Métodos Computacionales en Ingeniería (CIMEC)
> Instituto de Desarrollo Tecnológico para la Industria Química (INTEC)
> Consejo Nacional de Investigaciones Científicas y Técnicas (CONICET)
> PTLC - Güemes 3450, (3000) Santa Fe, Argentina
> Tel/Fax: +54-(0)342-451.1594
More information about the petsc-dev
mailing list