Hi I am trying to implement an acoustic pulsating sphere in Dolfinx. The weak formulation I am working with is the following:
\int_\Omega [\nabla\chi (x)\cdot\nabla p(x) - k^2\chi (x)p(x)]d\Omega -sk\int_{\Gamma}\chi (x)Y(x)p(x)d\Gamma=sk\int_{\Gamma}\chi (x)v_S(x)d\Gamma
where s, k are constants, chi is the test function and p is the function I am trying to solve for. Y(x) is also a constant quantity describing the admittance on boundaries.
The problem with this formulation is that I would like to include a normal boundary velocity condition. v_s in the above formula should be imposed normal to the boundary. My current formulation is the following, which does not include the normal component. I am working in a 2D setting and would like to adopt the formula below:
lhs = (
(ufl.inner(ufl.grad(p), ufl.grad(xi)) * ufl.dx)
- (ks * ufl.inner(p, xi) * ufl.dx)
- (s * k * p * ufl.inner(y_top, xi) * ds(top_boundary))
- (s * k * p * ufl.inner(y_right, xi) * ds(right_boundary)))
rhs = s * k * ufl.inner(v0, xi) * ds(excitation_boundary)
where ds = ufl.Measure("ds", mesh, subdomain_data=facet_tags)
Thank you for any help/hint in advance!