Hello dear FEniCS users,
I am solving a mixed formulation using DG0 and BDM1 mixed function spaces. Moreover, I have the boundary tags for different boundaries of my domain. Everything works fine and I did get the solution fields.
Now I want to extract/project solution fields only at certain boundaries of my domain in order to get the normal and tangential components of the solution fields at these boundaries. I tried to find a way of doing it on FEniCS forum, but could not find the exact post.
Any help in this regard will be highly appreciated! Below I am attaching a minimal working example of my code
from dolfin import *
mesh = Mesh("domain.xml")
domain = MeshFunction("size_t", mesh, "domain_physical_region.xml")
boundaries = MeshFunction("size_t", mesh, "domain_facet_region.xml")
bdm_elements = FiniteElement("BDM", mesh.ufl_cell(), 1)
dg_elements = FiniteElement("DG", mesh.ufl_cell(), 0)
W = FunctionSpace(mesh, bdm_elements * dg_elements)
(u, p) = TrialFunctions(W)
(v, q) = TestFunctions(W)
lhs = alpha*inner(u,v)*dx - p*div(v)*dx - q*div(u)*dx
rhs = sum([-coeff_1*inner(n,v)*ds(i+1) for i in range(6)]) - coeff_2*inner(n,v)*ds(7)
bc = DirichletBC(W.sub(0), G, boundaries, 8)
usol = Function(W)
solve(lhs == rhs, usol, bc)
(vsol,psol) = usol.split()
Now let’s say I want to extract the solution at boundaries 1-6 only. What should be the procedure?
Thanks and cheers!