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

Assume that we want to solve an elasticity problem with an isotropic
elasticity tensor determined by the Lame parameters
*\lambda=\mu=1* on the unit square *\Omega=(0,1)^2* with
right-hand side *\vec{f}(x,y)\equiv (1,0)^t* and Dirichlet
boundary conditions *\vec{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 (elasticity-model-problem (n-cube-domain 2) :lambda 1.0 :mu 1.0 :force (vector #m(1.0) #m(0.0))))) (storing (solve (blackboard :problem problem :output t :success-if '(> :time 20.0)))))

(plot (^ :solution))

now plots the x-component of the solution (^ gets the solution from the blackboard *result*), whereas

(plot (^ :solution) :component 1)

plots the y-component.

A vector plot can be achieved using

(plot (^ :solution) :component 'fl.elasticity::u :rank 1 :shape 2)