[petsc-dev] rename SNES methods ls, tr etc

Anton Popov popov at uni-mainz.de
Wed Dec 5 12:36:58 CST 2012


On 12/5/12 6:37 PM, Jed Brown wrote:
> On Wed, Dec 5, 2012 at 6:45 AM, Anton Popov <popov at uni-mainz.de 
> <mailto:popov at uni-mainz.de>> wrote:
>
>     Of course that is correct. The only advantage of using non
>     defect-correction form is straightforward implementation of
>     non-zero Dirichlet boundary conditions. As usual, one would just
>     remove (or zero out) corresponding rows, multiply column
>     coefficients with defined values and subtract from RHS. In defect
>     correction form one at least needs to distinguish first iteration.
>
>
> There is no extra difficulty in applying this lifting procedure in 
> defect-correction form. The basic principle is that Dirichlet boundary 
> residuals are written as f_D = u - u_D, which manifests itself as 
> zeroing a row of the Jacobian or Picard matrix. Then, if you overwrite 
> the boundary points in the local state vector with the correct 
> Dirichlet solution values, the corresponding columns of the Jacobian 
> become zero.
This is not exactly clear to me. Residuals for Dirichlet DOF should be 
(set to) zero, should they? Because those are not unknowns. What do you 
mean by Dirichlet boundary residuals? Is there any SNES example 
demonstrating usage of Newton or Picard for a problem with non-zero 
Dirichlet BC?
>
>     Skipping correction of RHS in this case most likely will cause
>     convergence problems.
>
>     Picard is equal to Newton only when following conditions hold:
>
>     1) F(u)  = R(u) which is true residual.
>     2) A(u) =  J(u) which is true Jacobian (does not necessarily
>     follow from the first condition).
>
>     In more likely case Picard is equal to Newton with A(u)
>     approximate Jacobian, or simply not applicable because residual
>     cannot be expressed in a form of a linear operator (as was
>     discussed before by you and Barry).
>
>     For general problem with zero initial guess, and non-zero
>     Dirichlet BC I would do exactly one iteration of Picard with
>     corrected RHS (no difference between defect/non defect-correction
>     forms, no matter whether A(u) or J(u), if available), and then
>     switch to Newton.
>
>
> This sounds like a terrible hack that's actually more complicated to 
> implement.
maybe you're right, but it works just fine :)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20121205/7162c59d/attachment.html>


More information about the petsc-dev mailing list