Hello Firedrakers!
I am attempting to setup a NonlinearVariationalSolver and I am encountering some difficulties which I hope someone can help with...
The problem appears to be with the form:
F = (
phi*div(v) + inner(w,v) - div(theta*w)*cp*pi + g*w[1]
)*dx + theta*cp*inner(w,n)*ds_b
I get the message: ufl.log.UFLException: Expecting all integrals in a form to share geometric dimension, got ().
The code works if I remove both the g*w[1] and the boundary term. These terms are fine in a LinearVariationalSolver.
Example code is attached... and the full error is:
Expecting all integrals in a form to share geometric dimension, got ().
Traceback (most recent call last):
File "nonlinear_hydrostatic_solver.py", line 111, in <module>
HSolver.solve()
File "<string>", line 2, in solve
File "/home/jemma/src/PyOP2/pyop2/profiling.py", line 203, in wrapper
return f(*args, **kwargs)
File "/home/jemma/src/firedrake/firedrake/variational_solver.py", line 173, in solve
self.snes.solve(None, v)
File "PETSc/SNES.pyx", line 520, in petsc4py.PETSc.SNES.solve (src/petsc4py.PETSc.c:167382)
File "PETSc/petscsnes.pxi", line 286, in petsc4py.PETSc.SNES_Jacobian (src/petsc4py.PETSc.c:33352)
File "/home/jemma/src/firedrake/firedrake/solving_utils.py", line 230, in form_jacobian
nest=problem._nest)
File "/home/jemma/src/firedrake/firedrake/assemble.py", line 68, in assemble
inverse=inverse, nest=nest)
File "/home/jemma/src/firedrake/firedrake/assemble.py", line 101, in _assemble
inverse=inverse)
File "/home/jemma/src/firedrake/firedrake/ffc_interface.py", line 267, in compile_form
fd = compute_form_data(form)
File "/usr/local/lib/python2.7/dist-packages/ufl/algorithms/compute_form_data.py", line 188, in compute_form_data
"Expecting all integrals in a form to share geometric dimension, got %s." % str(tuple(sorted(gdims))))
File "/usr/local/lib/python2.7/dist-packages/ufl/assertions.py", line 37, in ufl_assert
if not condition: error(*message)
File "/usr/local/lib/python2.7/dist-packages/ufl/log.py", line 151, in error
raise self._exception_type(self._format_raw(*message))
ufl.log.UFLException: Expecting all integrals in a form to share geometric dimension, got ().
Thanks in advance for any help!
Jemma