# PETScSNESSolver example?

Are there any examples of using the PETScSNESSolver? In particular, how to set the initial guess?

## Question information

- Language:
- English Edit question

- Status:
- Solved

- For:
- DOLFIN Edit question

- Assignee:
- No assignee Edit question

- Solved by:
- Paul Constantine

- Solved:
- 2013-02-06

- Last query:
- 2013-02-06

- Last reply:
- 2013-02-06

Patrick Farrell (pefarrell) said : | #1 |

Hi,

Take a look at test/unit/

The initial guess is supplied in the same variable as the output -- e.g. if you call

solve(F == 0, u, ...)

the value of u before the call to solve is the initial guess, and the value of u after the solve is the solution of the nonlinear problem.

Turns out the Cahn-Hilliard had most of what I was looking for -- how to set up "initial conditions" and how to set up a nonlinear problem class. Otherwise the syntax looks something like:

nlp = MyNonlinearProb

solver = PETScSNESSolver()

solver.

solver.

# "ls" is line search, "tr" is trust region method

solver.

solver.

Garth Wells (garth-wells) said : | #3 |

On 6 February 2013 09:56, Paul Constantine

<email address hidden> wrote:

> Question #221146 on DOLFIN changed:

> https:/

>

> Status: Answered => Solved

>

> Paul Constantine confirmed that the question is solved:

> Turns out the Cahn-Hilliard had most of what I was looking for

Yes, it's the best example!

Garth

> -- how to

> set up "initial conditions" and how to set up a nonlinear problem class.

> Otherwise the syntax looks something like:

>

> nlp = MyNonlinearProb

> solver = PETScSNESSolver()

> solver.

> solver.

>

> # "ls" is line search, "tr" is trust region method

> solver.

> solver.

>

> --

> You received this question notification because you are a member of

> DOLFIN Team, which is an answer contact for DOLFIN.

Anders Logg (logg) said : | #4 |

On Wed, Feb 06, 2013 at 02:55:56PM -0000, Garth Wells wrote:

> Question #221146 on DOLFIN changed:

> https:/

> Garth Wells posted a new comment:

> On 6 February 2013 09:56, Paul Constantine

>> Question #221146 on DOLFIN changed:

>> https:/

>>

>> Status: Answered => Solved

>>

>> Paul Constantine confirmed that the question is solved:

>> Turns out the Cahn-Hilliard had most of what I was looking for

> Yes, it's the best example!

So why don't you make some more! ;-)

--

Anders

>> -- how to

>> set up "initial conditions" and how to set up a nonlinear problem class.

>> Otherwise the syntax looks something like:

>>

>> nlp = MyNonlinearProb

>> solver = PETScSNESSolver()

>> solver.

>> solver.

>>

>> # "ls" is line search, "tr" is trust region method

>> solver.

>> solver.

>>

Garth Wells (garth-wells) said : | #5 |

On 6 February 2013 20:45, Anders Logg

<email address hidden> wrote:

> Question #221146 on DOLFIN changed:

> https:/

>

> Anders Logg posted a new comment:

> On Wed, Feb 06, 2013 at 02:55:56PM -0000, Garth Wells wrote:

>> Question #221146 on DOLFIN changed:

>> https:/

>> Garth Wells posted a new comment:

>> On 6 February 2013 09:56, Paul Constantine

>

>

>>> Question #221146 on DOLFIN changed:

>>> https:/

>>>

>>> Status: Answered => Solved

>>>

>>> Paul Constantine confirmed that the question is solved:

>>> Turns out the Cahn-Hilliard had most of what I was looking for

>> Yes, it's the best example!

>

> So why don't you make some more! ;-)

>

Because the C-H demo already has it all . . .

Garth

> --

> Anders

>

>

>>> -- how to

>>> set up "initial conditions" and how to set up a nonlinear problem class.

>>> Otherwise the syntax looks something like:

>>>

>>> nlp = MyNonlinearProb

>>> solver = PETScSNESSolver()

>>> solver.

>>> solver.

>>>

>>> # "ls" is line search, "tr" is trust region method

>>> solver.

>>> solver.

>>>

>

> --

> You received this question notification because you are a member of

> DOLFIN Team, which is an answer contact for DOLFIN.