Next: , Previous: , Up: Solving problems   [Contents][Index]


3.2.3 Elasticity problem

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 (getbb *result* :solution))

now plots the x-component of the solution, whereas

(plot (getbb *result* :solution) :component 1)

plots the y-component.

A vector plot can be achieved using

(plot (getbb *result* :solution) :component 'fl.elasticity::u :rank 1 :shape 2)