Update time-dependent Dirichlet BC values for FSI Problem

I have solved this problem in a non-efficient procedure for my purposes (by adapting the solution provided in this link): Given the updated coordinates for each calculated point, I define the DirichletBC in a pointwise fashion (which means I cant define noslip for the top boundary line and then update it as pointwise values - at least in my understanding). So far I figured out that If I apply this approach, I must set the BC for the moving wall in a pointwise manner in every boundary configuration (whether its steady or moving). The code snipped inside the loop is as follows.

### Define boundary condition in pointwise manner
# Bottom boundary
noslipb  = DirichletBC(V, Constant((0, 0)), bottom)
bcu = [noslipb]

# Top boundary - no slip before moving
topBC = []
for i in range(bmesh.num_vertices()):
    if bmf[i]==1:
        xbc = bmesh.coordinates()[i,0]
        ybc = bmesh.coordinates()[i,1]
        valuex = 0
        valuey = 0
        topBC.append(DirichletBC(V, Constant((valuex, valuey)), "near(x[0],"+str(xbc)+") && near(x[1],"+str(ybc)+")", "pointwise"))

bcU = bcu + topBC

Still, any comments regarding this issue is welcome!