This is a read only copy of the old FEniCS QA forum. Please visit the new QA forum to ask questions

How many methods are there in FEniCS to solve a pde system ?

0 votes

Hello,

I wrote a code that solve a time-dependent system of 3 pde, but it run only until Final time = 75 and for my problem it's a very small number. The problem is

*** Error:   Unable to solve nonlinear system with NewtonSolver.
*** Reason:  Newton solver did not converge.

so, i'd like to know: how many method exist in fenics to solve this kind of problem?

Kind regard
Valentina

asked Jun 12, 2015 by ValeS FEniCS Novice (330 points)

1 Answer

0 votes

Newton's method is the only black-box method for non-linear problems. Convergence
is only ensured if the starting point is sufficiently close to the solution.
Relaxation may help. That is, play with
the relaxation parameter by

n = NewtonSolver()
n.parameters["relaxation_parameter"] = 0.5

Continuation methods are common alternatives, but these methods require
problem-specific coding.

answered Jun 14, 2015 by Kent-Andre Mardal FEniCS Expert (14,380 points)

Thank you for the answer.

I tried to use the relaxation parameter but i have the same result.

I used that parameters:

    problem = NonlinearVariationalProblem(F, U, bc, dF)
    solver  = NonlinearVariationalSolver(problem)
    prm = solver.parameters
    #prm['newton_solver']['absolute_tolerance'] = 1E-8
    prm['newton_solver']['relative_tolerance'] = 1E-6
    prm['newton_solver']['convergence_criterion'] = "incremental"
    prm['newton_solver']['maximum_iterations'] = 50
    prm['newton_solver']['relaxation_parameter'] = 1.0
    set_log_level(PROGRESS)

Do you think the problem may be influenced also by the structure of the code?

...