How to assign boundary conditions based on values of dolfinx.Function

How about using a UFL conditional (Form language — Unified Form Language (UFL) 2021.1.0 documentation)
i.e.

v = Function(V)
# Assign values 1 and 2 to v
# ...
# Add boundary condition terms to variational form
F += ufl.conditional(ufl.eq(v, 1), 1, 0) *  robin integrand * ds 
F += ufl.conditional(ufl.eq(v, 2), 1, 0) * neumann_integrand * ds
1 Like