# Questions about ArityMismatch: Adding expressions with non-matching form arguments ('v_1',) vs ()-

I want to assemble the bilinear form `res` and linear form`L`with the boundaries composed of 5 parts. The definition of the constant functions used in `res` and `L` are

``````f=fem.Constant(domain,PETSc.ScalarType(1))
a=fem.Constant(domain,np.array([1,1],dtype=PETSc.ScalarType))
kappa=fem.Constant(domain,PETSc.ScalarType(1e-3))
boundary_zero=fem.Constant(domain,PETSc.ScalarType(0))
boundary_one=fem.Constant(domain,PETSc.ScalarType(1))
``````

and the definition of `res` and `L` are

``````res_Galerkin=dot(a,grad(u))*v*dx+kappa*dot(grad(u),grad(v))*dx+(-div(grad(u))*kappa+dot(a,grad(u))-f)*dot(coeff*a,grad(v))*h*dx
res=res_Galerkin+res_boundary

-dot(a,n)*boundary_one*v*ds(1)

``````

where n is the facet normal.
I put the res and L into `LinearProblem()` and try to solve this problem and I catch the following error

``````ArityMismatch: Adding expressions with non-matching form arguments ('v_1',) vs ().
``````

But when I try to use `res1=lhs(res+L)` and `L1=rhs(res+L)` and solve the problem, it is right.
So I want to know where is wrong with my original assembling? Thanks in advance!

The boundaries are defined as

``````boundaries=[(1,lambda x:np.logical_and(np.isclose(x[0],0),np.logical_and(x[1]>0.3-1e-10,x[1]<=1))),
(2,lambda x:np.logical_and(np.isclose(x[0],0),np.logical_and(x[1]<0.3+1e-10,x[1]>=0))),
(3,lambda x:np.isclose(x[1],0)),
(4,lambda x:np.isclose(x[0],1)),
(5,lambda x:np.isclose(x[1],1))]
facet_indices,facet_markers=[],[]
fdim=domain.topology.dim-1
for (marker,locator) in boundaries:
facets=mesh.locate_entities(domain,fdim,locator)
facet_indices.append(facets)
facet_markers.append(np.full_like(facets,marker))
facets_indices=np.hstack(facet_indices).astype(np.int32)
facets_markers=np.hstack(facet_markers).astype(np.int32)
sorted_facets=np.argsort(facets_indices)
facet_tag=mesh.meshtags(domain,fdim,facets_indices[sorted_facets],facets_markers[sorted_facets])
``````

Dear @Discoverer ,
the snippets you present are not sufficient to reproduce your error message, please make sure that you define all variables that one would need to reproduce the error message.

try calling `dolfinx.fem.form(res)` and `dolfinx.fem.form(L)`, and remove term by term from your variational form until you know what term causes the error message.
Can I ask for another question about : here I define `ds=Measure('ds',domain=domain,subdomain_data=facet_tag)`
so if I want to integrate on all of the boundary, can I still use something like `f*v*ds`?