Hi Francis,
  That depends on the formulation of the equations. If you are using a streamfunction-vorticity formulation as for QG, then you need to set a zero boundary condition for the streamfunction, as a scalar. If you are using a velocity formulation based on H(div) spaces  (BDM, RT etc.) then there are only u.n DOFs on the boundary, so setting:
bcs = [DirichletBC(Z.sub(0), Constant((0, 0)), (blah,)), ...
actually only sets the normal component. That's one of the reasons that I like these spaces for GFD.

cheers
--cjc

On 25 November 2016 at 01:17, Francis Poulin <fpoulin@uwaterloo.ca> wrote:
Hello,

Sorry for the bother but I have a simple question to ask. 

I am currently developing some code to solve for wind-driven gyres and basin modes using QG and SW.  My question is how is it best to impose no-normal flow BCs,

$$\vec u \cdot \hat n = 0$$

for any boundary.  I found this in the Navier-Stokes example which says that we should impose zero on particular boundaries.  I guess that would work but if one had a more complicated geometry I imagine that would have it's problems.
bcs = [DirichletBC(Z.sub(0), Constant((1, 0)), (4,)),
       DirichletBC(Z.sub(0), Constant((0, 0)), (1, 2, 3))]

Any suggestions would be greatly appreciated.

Cheers,
Francis
------------------
Francis Poulin                    
Associate Professor
Department of Applied Mathematics
University of Waterloo

email:           fpoulin@uwaterloo.ca
Web:            https://uwaterloo.ca/poulin-research-group/
Telephone:  +1 519 888 4567 x32637




--
http://www.imperial.ac.uk/people/colin.cotter

www.cambridge.org/9781107663916