I'm little bit confused about working of DirichletBC
in parallel. Examining the code of
void DirichletBC::apply(GenericMatrix* A,
GenericVector* b,
const GenericVector* x) const
it seems to me that when user does
u = Function(V)
bc = DirichletBC(V, uD, facet_func, 42, method='topological')
bc.apply(u.vector())
bc.gather(...)
is never called. This would cause that DOF residing on different process than corresponding boundary facet is not taken into account.
Only one who calls DirichletBC::gather
in DOLFIN ever is
void SystemAssembler::assemble(GenericMatrix* A, GenericVector* b,
const GenericVector* x0)
Is this a bug or am I missing something?