Next: Nonlinear diffusion problem, Previous: Solving problems, Up: Solving problems [Contents][Index]

Assume that we want to solve the Poisson equation *\Delta u(x,y)
= f(x,y)* on the unit square *\Omega=(0,1)^2* with right-hand
side *f(x,y)=e^{x+y}* and Dirichlet boundary conditions
*u(x,y)=0* for *(x,y) \in \partial \Omega*. The following
command solves this equation approximately on a uniformly refined mesh
using as termination criterion that the time for approximating the
solution has increased beyond 20 seconds.

(let ((problem (cdr-model-problem (n-cube-domain 2) :source #'(lambda (x) #I(exp(x[0]+x[1])))))) (storing (solve (blackboard :problem problem :success-if '(> :time 5)))))

The result of the call to `solve`

is a blackboard which we is
saved in the global variable `*result*` for later reference. We can
extract items from there using the function `getbb`

, e.g. for
plotting the solution:

(plot (getbb *result* :solution))

This can be abbreviated as

(plot (^ :solution))