Partial Differential Equation Toolbox    
pdenonlin

Solve nonlinear PDE problem

Syntax

Description

[u,res]=pdenonlin(b,p,e,t,c,a,f) solves the nonlinear PDE scalar PDE problem

or the nonlinear system PDE problem

where the coefficients c, a, and f may depend on u. The algorithm solves the equation by using damped Newton iteration with the Armijo-Goldstein line search strategy.

The solution u is represented as the solution vector u. For details on the representation of the solution vector, see assempde. res is the norm of the Newton step residuals.

The triangular mesh of the PDE problem is given by the mesh data p, e, and t. For details on the mesh data representation, see initmesh.

b describes the boundary conditions of the PDE problem. b can be either a Boundary Condition matrix or the name of a Boundary M-file. The formats of the Boundary Condition matrix and Boundary M-file are described in the entries on assemb and pdebound, respectively, respectively. Note that for the general call to pdebound the boundary conditions can also depend on u. A fixed-point iteration strategy is employed to solve for the nonlinear boundary conditions.

The coefficients c, a, f of the PDE problem can be given in a wide variety of ways. In the context of pdenonlin the coefficients can depend on u. The coefficients cannot depend on t, the time. For a complete listing of all format options, see assempde.

The solver can be fine-tuned by setting some of the options described below

Property Name
Property Value
Default
Description
Jacobian
fixed|lumped|full
fixed
Approximation of Jacobian
U0
string or numeric
0
Initial solution guess
Tol
positive scalar
1e-4
Residual size at termination
MaxIter
positive integer
25
Maximum Gauss-Newton iterations
MinStep
positive scalar
1/2^16
Minimum damping of search direction
Report
on|off
off
Print convergence information
Norm
string or numeric
Inf
Residual norm

There are three methods currently implemented to compute the Jacobian:

Select the desired method by setting the Jacobian property to full, lumped, or fixed, bearing in mind that the more precise methods are computationally more expensive.

U0 is the starting guess that can be given as an expression, a generic scalar, or a vector. By default it is set to 0, but this is useless in problems such as (1/uu) = 0 with Dirichlet boundary conditions u = ex+y. Tol fixes the exit criterion from the Gauss-Newton iteration, i.e., the iterations are terminated when the residual norm is less than Tol. The norm in which the residual is computed is selected through Norm. This can be any admissible MATLAB vector norm or energy for the energy norm.

MaxIter and MinStep are safeguards against infinite Gauss-Newton loops and they bound the number of iterations and the step size used in each iteration. Setting Report to on forces printing of convergence information.

Diagnostics

If the Newton iteration does not converge, the error message Too many iterations or Stepsize too small is displayed. If the initial guess produces matrices containing NaN or Inf elements, the error message Unsuitable initial guess U0 (default: U0=0) is printed.

See Also

assempde, pdebound


  pdemesh pdeplot