Also, is it a problem that the linear part of the variational form does not depend on one of the test functions from the mixed function space (only depends on v1, v2, v3 and not v4)?
Anna.
Traceback (most recent call last):
  File "buoy-swe.py", line 89, in <module>
    F_solver = solver_F(phi0_5, eta1, mu0_5, I, w, phi0, eta0, Z0, W0, step_b, etaR, phi_t, eta_t, mu_t, I_t, v1, v2, v3, v4, dt, Hb, H0, L, dR_dt, g, rho, Mass, solvers_print);
  File "/Users/matak/Documents/Simulations/Firedrake/Ship/Modules/Mixed system/solvers.py", line 41, in solver_F
    F_solver = LinearVariationalSolver(F_problem, solver_parameters=solvers_print)
  File "/Users/matak/firedrake/lib/python2.7/site-packages/firedrake/variational_solver.py", line 264, in __init__
    super(LinearVariationalSolver, self).__init__(*args, **kwargs)
  File "/Users/matak/firedrake/lib/python2.7/site-packages/firedrake/variational_solver.py", line 127, in __init__
    ctx = solving_utils._SNESContext(problem)
  File "/Users/matak/firedrake/lib/python2.7/site-packages/firedrake/solving_utils.py", line 107, in __init__
    for problem in problems)
  File "/Users/matak/firedrake/lib/python2.7/site-packages/firedrake/solving_utils.py", line 107, in <genexpr>
    for problem in problems)
  File "/Users/matak/firedrake/lib/python2.7/site-packages/firedrake/assemble.py", line 67, in assemble
    inverse=inverse, nest=nest)
  File "<decorator-gen-294>", line 2, in _assemble
  File "/Users/matak/firedrake/lib/python2.7/site-packages/firedrake/utils.py", line 62, in wrapper
    return f(*args, **kwargs)
  File "/Users/matak/firedrake/lib/python2.7/site-packages/firedrake/assemble.py", line 101, in _assemble
    inverse=inverse)
  File "/Users/matak/firedrake/lib/python2.7/site-packages/firedrake/tsfc_interface.py", line 307, in compile_form
    number_map).kernels
  File "/Users/matak/firedrake/lib/python2.7/site-packages/pyop2/caching.py", line 198, in __new__
    obj = make_obj()
  File "/Users/matak/firedrake/lib/python2.7/site-packages/pyop2/caching.py", line 188, in make_obj
    obj.__init__(*args, **kwargs)
  File "/Users/matak/firedrake/lib/python2.7/site-packages/firedrake/tsfc_interface.py", line 212, in __init__
    tree = tsfc_compile_form(form, prefix=name, parameters=parameters)
  File "/Users/matak/firedrake/lib/python2.7/site-packages/tsfc/driver.py", line 47, in compile_form
    do_estimate_degrees=True)
  File "/Users/matak/firedrake/lib/python2.7/site-packages/ufl/algorithms/compute_form_data.py", line 386, in compute_form_data
    check_form_arity(preprocessed_form, self.original_form.arguments())  # Currently testing how fast this is
  File "/Users/matak/firedrake/lib/python2.7/site-packages/ufl/algorithms/check_arities.py", line 152, in check_form_arity
    check_integrand_arity(itg.integrand(), arguments)
  File "/Users/matak/firedrake/lib/python2.7/site-packages/ufl/algorithms/check_arities.py", line 145, in check_integrand_arity
    args = map_expr_dag(rules, expr, compress=False)
  File "/Users/matak/firedrake/lib/python2.7/site-packages/ufl/corealg/map_dag.py", line 37, in map_expr_dag
    result, = map_expr_dags(function, [expression], compress=compress)
  File "/Users/matak/firedrake/lib/python2.7/site-packages/ufl/corealg/map_dag.py", line 86, in map_expr_dags
    r = handlers[v._ufl_typecode_](v, *[vcache[u] for u in v.ufl_operands])
  File "/Users/matak/firedrake/lib/python2.7/site-packages/ufl/algorithms/check_arities.py", line 42, in sum
    raise ArityMismatch("Adding expressions with non-matching form arguments {0} vs {1}.".format(a, b))
ufl.algorithms.check_arities.ArityMismatch: Adding expressions with non-matching form arguments () vs (Argument(WithGeometry(IndexedProxyFunctionSpace(<firedrake.mesh.ExtrudedMeshTopology object
 at 0x113e6b890>, TensorProductElement(FiniteElement('Lagrange', interval, 1), FiniteElement('Lagrange', interval, 1), cell=TensorProductCell(interval, interval)), name=None, index=0, component=None), Mesh(VectorElement(TensorProductElement(FiniteElement('Lagrange',
 interval, 1), FiniteElement('Lagrange', interval, 1), cell=TensorProductCell(interval, interval)), dim=2), 4)), 1, None),).