Normal boundary condition

When solving some (vector) BVP for 2d elasticity, I’d like to specify a Dirichlet boundary condition for the normal component of a vector field [u,v], as, say, …+on(1, u*N.x+v*N.y=0).
I understand that the syntax of on command does not allow this. Is there a good workaround? Thanks!

Hi @michaellevitin , I have run up against the same problem as yours and I got around it using a penalty-based approach.
If you are integrating your PDE on a 2D domain Th, and you are interested in imposing a homogeneous Neumann boundary condition on a portion of the boundary labelled as 1, you can try


where the normal derivative is defined via the following macro

macro dn(u)(dx(u)*N.x+dy(u)*N.y)//EOM.

I hope this helps.

1 Like

Thanks, Paolo! It is not exactly what I need - I am solving a vector eigenvalue problem for elasticity, see FreeFem manual and want to impose mixed boundary conditions: tangential component of traction to vanish (which is automatic due to the weak formulation), and the normal component of the vector field [u,v], that is u*N.x+v*N.y to vanish as well. It’s the second one I’m struggling with.

@michaellevitin Hi, do you work out this problem? I encountered the same problem with you. I also use the code on(1, unx+vny=0), but it does not work. I solve the Navier slip boundary condition at curved wall. the tangential velocity is given by 1/bvt, and the normal velocity vanishes, which means that unx+vny=0 at curved wall.
Could you tell me how to address this. I have found that the FreeFEM can handle this problem. A Ph.D. thesis entitled Effective Slip Lengths for Stokes Flow over Rough, Mixed-Slip Surfaces use the FreeFem++ to solve the Navier slip BC and no-penetration BC on curved wall. I contact the author but recieve no reply.
Many thanks.

Dear Michael

Did you find an answer for your question?
I have the same trouble as I have the BC on 1 I have a jet normal to the boundary with the amplitude of Aj.
I don’t know how to define it.

Best regards,

Dear all,

I have the same problem as @michaellevitin : I have a 3D elasticity problem with symmetry conditions on a equilateral triangle. Displacement vector is [ux,uy,uz]. On the base “1” of the triangle (y=0, x=[-a/2 a/2]) I can simply add …+on(1, uy=0). However on the other two sides of the triangle, being not aligned to x or y axis, I tried …+on(2, uxN.x+uyN.y) but of course is not working. In fact I should put into relations ux with uy and therefore it is not possible to simply putting the diagonal elements to a tgv value.
Is there a way to impose symmetry conditions (e.g., Dirichlet boundary condition for the normal component of a vector field) on boundaries that are NOT aligned to x, y and z axis?
Thanks very much in advance

The problem the put fixed (Dirichlet) boundary condition on normal componant and Neuman on tangent for example.

At math level the correct (not to bad) weak formulation is take basic fonction in space Vh0
of function with a zero on u.N =0 on boundary node. If N (the normal ) is not a parallel of axis then
you have a coupling of all componante.

You can use a kind of penalization to enforce the u.N =0 by add term like in 2d

  • int1d(Th)( penal* (N’[u1,u2])( (N’*[v1,v2]))

where penal est a big constant but not to big …

a small example for Stokes problem

and the associed example
Stokes-BC.edp (1.9 KB)

1 Like