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


3.3.4 Navier-Stokes problem

The following sequence is a short excerpt from the Driven cavity demo in femlisp/src/applications/navier-stokes/driven-cavity.lisp. It solves the two-dimensional driven cavity problem with Reynolds number 10. During the approximation the velocity components at the midpoint (0.5,0.5) are printed.

(storing
  (solve 
   (blackboard
    :problem (driven-cavity 2 :reynolds 10.0) :base-level 0
    :success-if '(> :time 40.0) :output t :observe
    (append *stationary-fe-strategy-observe*
	    (list
	     (list (format nil "~{                 u~1D~}" '(1 2))
		   "~{~19,10,2E~}"
		   #'(lambda (blackboard)
		       (let ((val (fe-value (getbb blackboard :solution)
                                    #d(0.5 0.5))))
			 (loop for i below 2 collect
			      (vref (aref val i) 0))))))))))
(plot (^ :solution))

now plots the x-component of the solution, whereas

(plot (^ :solution) :component 1)

plots the y-component.

A vector plot can be achieved using

(plot (^ :solution) :component 'fl.navier-stokes::u :rank 1 :shape 2)