Thanks for helping me out. I have tried the code you provided, it works fine and I appreciate it.
However, when I expand the code and run it on python3 in latest FEniCS version, it has an error on
set_local = w.vector()[set_dof][0]
TypeError: 'float' object is not subscriptable
May you give me some advice on it? I attached the code here.
from dolfin import *
msh = UnitSquareMesh(10, 10)
V1 = VectorElement("CG", msh.ufl_cell(), 2, quad_scheme="default")
V1._quad_scheme = 'default'
V2 = FiniteElement("CG", msh.ufl_cell(), 1, quad_scheme="default")
V2._quad_scheme = 'default'
V3 = FiniteElement("Real", msh.ufl_cell(), 0, quad_scheme="default")
V3._quad_scheme = 'default'
V4 = MixedElement([V3, V3, V3, V3, V3])
W = FunctionSpace(msh, MixedElement([V1,V2,V3,V4]))
w = Function(W)
comm = W.mesh().mpi_comm()
dofmap = W.sub(2).dofmap()
set_dof = dofmap.cell_dofs(0)[0]
own_range = dofmap.ownership_range()
try:
set_local = w.vector()[set_dof][0]
except IndexError:
set_local = 0
stress = MPI.sum(comm, set_local)