Hi,
I am solving a compressible Stokes problem with a prescribed pressure on a hexagon with the following BCs on each face i:
- u.ni =0
- ti.(sigma.ni) = gi
But in my scheme the 2nd condition is not imposed to a satisfactory degree.
As explained here, I am using penalization for the first condition and projection on the tangent to impose the 2nd condition.
problem stokes([ux,uy],[vx,vy], solver=sparsesolver) =
- int2d(Th)( grad(pr)'*[vx, vy] ) // pressure
- int2d(Th)( eta*Strain(ux, uy)'*Grad(vx, vy) ) // viscosity
- int2d(Th)( xi*[ux, uy]'*[vx, vy] ) // friction
- int1d(Th,1)( g1 * [T1[0], T1[1]]'*[vx, vy] ) // ti.(sigma.ni) = gi
- int1d(Th,2)( g2 * [T2[0], T2[1]]'*[vx, vy] )
- int1d(Th,3)( g3 * [T3[0], T3[1]]'*[vx, vy] )
- int1d(Th,4)( g4 * [T4[0], T4[1]]'*[vx, vy] )
- int1d(Th,5)( g5 * [T5[0], T5[1]]'*[vx, vy] )
- int1d(Th,6)( g6 * [T6[0], T6[1]]'*[vx, vy] )
- int1d(Th)( penal * (N'*[ux, uy]) * (N'*[vx, vy]) ); // penalize u.n
Note: each gi is defined as P1 on a line with tangent Ti (precomputed). The line meshes coincide with the Hexagon boundaries. The issue persists also if g are defined in 2D, and regardless of interpolation order.
The discrepancy between the actual ti.(sigma.ni) (after solving for u) and the input gi is what I am struggling to fix. The problem is mostly concentrated near the edges of each line but not only.
I appreciate the help. Thanks.
ffbctest.edp (5.3 KB)