Hi, I want to define inflow boundary conditions for a space-time formulation. I have a function u and the Dirichlet BC’s should be given in \Gamma_{\mathrm{I}}=\{\mathbf{x} \in \partial \Omega: \mathbf{u} \cdot \mathbf{n}<0\}. I share some minimal code:
from dolfin import *
from mshr import *
# Set parameter values
f=0
g=9.81
z0=0.1
ze=z0
L=20.0
om1=f/2+sqrt(f**2/4+2*g*z0/L**2)
T_final=2*pi/om1
PP = Constant(pi)
cylinder = Cylinder(Point(0, 0, 0), Point(0, 0, T_final), L, L)
geometry = cylinder
M = generate_mesh(geometry,10)
interpdeg = 6
degreee = 2
added = 0
deg_zeta = degreee
deg_u = degreee
deg_sig = degreee-1
V1 = FiniteElement( "DG", M.ufl_cell() ,degreee+added)
V2 = VectorElement( "DG", M.ufl_cell() ,degreee+added, dim=2)
V3 = TensorElement( "DG", M.ufl_cell() ,degreee+added, shape=(2,2))
V4 = FiniteElement( "CG", M.ufl_cell() ,deg_zeta)
V5 = VectorElement( "CG", M.ufl_cell() ,deg_u, dim=2)
V6 = TensorElement( "CG", M.ufl_cell() ,deg_sig, shape=(2,2))
V = FunctionSpace(M, MixedElement(V1,V2,V3,V4,V5,V6))
def Time_boundary(x, on_boundary):
return on_boundary and (near(x[2], 0, 1e-14))
nn = FacetNormal(M)
n = as_vector([nn[0],nn[1]])
u=Expression(('-ze*om1*sin(om1*x[2])','-ze*om1*cos(om1*x[2])'), degree=interpdeg,domain = M, ze=ze, om1=om1)
How can I define an inflow_boundary that returns on_boundary and the points in \Gamma_{\mathrm{I}}?
Thanks!