On 25 November 2016 at 01:41, Justin Chang <jychang48@gmail.com> wrote:
For rectangular domains and vector Lagrange elements you just need to constraint one component for the normal. For example

bc1 = DirichletBC(Z.sub(0).sub(0),value,(1,2)) #x component
bc2 = DirichletBC(Z.sub(0).sub(1),value,(3,4)) #y component

Does this actually work?  I know doing setting individual components for VFS inside Mixed is flaky, per https://github.com/firedrakeproject/firedrake/issues/920.

However, the snippet in that bug report sets multiple components one-by-one, which might be what leads to the breakage.

 

Not sure how you would do this for a more complicated geometry

Justin

On Thu, Nov 24, 2016 at 7:17 PM 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

_______________________________________________
firedrake mailing list
firedrake@imperial.ac.uk
https://mailman.ic.ac.uk/mailman/listinfo/firedrake