[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: adding SNESSetLinearSolve()
- To: petsc-dev@xxxxxxxxxxx
- Subject: Re: adding SNESSetLinearSolve()
- From: "Lisandro Dalcin" <dalcinl@xxxxxxxxx>
- Date: Thu, 1 Nov 2007 11:24:48 -0300
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:message-id:date:from:to:subject:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; bh=ZsmcSAcM63wXS1veagQfTC2B1sarCGysfVqWKJJDV/U=; b=r4ooOnGPBmAcKuHdXXEiVxRu+s+11qYxLVZtrmoWixqRhJC9o3OByTkL14lezOznqLcoFjQIrJ7xugP07T8BfcecWfyTXTWh0M8OE3YBExBdDZBq4TKMf0eH5KWi3CNla9D6AWsHzJlmYhTMT5wy4TJ6sga6Hk2e9Cxpn8ftMz4=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:to:subject:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=c/jhs5pKWLUSy71abzT7bsVPmyEO88p818BcHEBei/lnYSp+N+94MJ9eTcZstC/uN48BzXcjTBEd5IWnQLWn/PH3uchhEUsbd5f2w+XcIR9a1/LNHea5Oi1D6OZukEmTsIAjzDxLdsZ1Ei8g7tymlc70iwuKoXAEOg9TLVlxUQ4=
- In-reply-to: <Pine.OSX.4.64.0710311856340.14706@bsmith.mcs.anl.gov>
- References: <e7ba66e40710291004y453e19cldd6f654d643bacfe@mail.gmail.com> <Pine.OSX.4.64.0710291214490.14706@bsmith.mcs.anl.gov> <e7ba66e40710291104v4e5c7b96k49115908dcc2957b@mail.gmail.com> <Pine.OSX.4.64.0710291308470.14706@bsmith.mcs.anl.gov> <e7ba66e40710291234j2f866f79v8588c9262e1585a0@mail.gmail.com> <Pine.OSX.4.64.0710291443100.14706@bsmith.mcs.anl.gov> <e7ba66e40710291318g261c50b9w7dfe586045906ade@mail.gmail.com> <Pine.OSX.4.64.0710291521350.14706@bsmith.mcs.anl.gov> <Pine.OSX.4.64.0710311856340.14706@bsmith.mcs.anl.gov>
- Reply-to: petsc-dev@xxxxxxxxxxx
- Sender: owner-petsc-dev@xxxxxxxxxxx
On 10/31/07, Barry Smith <bsmith@xxxxxxxxxxx> wrote:
> Lisandro,
> A followup to our previous discussion. It sounds to me like you
> are "actually" solving an n+1 unknown nonlinear problem where the
> "special" unknown is kept secret from SNES and managed somehow by the
> application code?
That's exactly the case. Furthermore, this 'special' unknown in just a
regularization parameter who tends to zero as the nonlinear solution
is reached. Unfortunatelly, this unknow is coupled with all other
degree of freedom, thus generating a full dense row and a dense column
in the Jacobian matrix. But fortunatelly, the special unknown is just
a single scalar, thus computing the schur complement is feasible, but
requires two linear solves with the other 'sparse' block of the
Jacobian.
> You can guess how I feel about this :-).
Yes, of course. I agree that PETSc API must be consistent and clean.
But I also feel that some time I need more features. Please remember I
use PETSc exclusively from Python. And then is so easy to manage
complicated application setups. But at some point I need more
low-level support from PETSc to make it working.
For example, I would love to have SNESSetPresolve/SNESSetPostSolve and
SNESSetPreStep/SNESSetPostStep, and perhaps a
SNESSetPreLinearSolve/SNESSetPostLinearSolve. Of course, this make the
API grow with features that are not frecuently needed.
> PETSc/SNES is suppose
> to be good enough to allow you to feed it the ENTIRE nonlinear problem
> in a way that would allow as efficient solution as if you "handled the
> special unknown" specially.
Even for my particular case? Can I pass-over the issue with the full
denses rows and columns?
> In particular for this problem the intended
> solution is to use the PETSc DMComposite object via DMCompositeCreate()
> You may want to look at this construct to see if it is suitable
> for your friends needs. And what we need to add (note that though DMComposite
> can be used with DMMG it does not have to be, it can be used directly
> with a SNES also.
I'll definitely take a loop ASAP.
Regards,
--
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