where phi0, eta0, Hb are functions and the rest are scalars.
E0_w = 0.5*rho*assemble( (Hb*abs(grad(phi0))**2 + g*eta0**2)*dx ) # Energy of the water
File "/Users/matak/firedrake/lib/python2.7/site-packages/firedrake/assemble.py", line 70, in assemble
return assemble_expressions.assemble_expression(f)
File "/Users/matak/firedrake/lib/python2.7/site-packages/firedrake/assemble_expressions.py", line 592, in assemble_expression
evaluate_expression(Assign(result, expr), subset)
File "/Users/matak/firedrake/lib/python2.7/site-packages/firedrake/assemble_expressions.py", line 577, in evaluate_expression
k = expression_kernel(e, args)
File "/Users/matak/firedrake/lib/python2.7/site-packages/firedrake/assemble_expressions.py", line 524, in expression_kernel
ast_expr = _ast(expr)
File "/Users/matak/firedrake/lib/python2.7/site-packages/firedrake/assemble_expressions.py", line 44, in _ast
return expr.ast
File "/Users/matak/firedrake/lib/python2.7/site-packages/firedrake/assemble_expressions.py", line 128, in ast
return self._ast(_ast(self.ufl_operands[0]), _ast(self.ufl_operands[1]))
File "/Users/matak/firedrake/lib/python2.7/site-packages/firedrake/assemble_expressions.py", line 48, in _ast
return f(expr)
File "/Users/matak/firedrake/lib/python2.7/site-packages/firedrake/assemble_expressions.py", line 603, in <lambda>
ufl.algebra.Product: (lambda e: ast.Par(_to_prod(e.ufl_operands))),
File "/Users/matak/firedrake/lib/python2.7/site-packages/firedrake/assemble_expressions.py", line 597, in <lambda>
_to_prod = lambda o: ast.Prod(_ast(o[0]), _to_sum(o[1:])) if len(o) > 1 else _ast(o[0])
File "/Users/matak/firedrake/lib/python2.7/site-packages/firedrake/assemble_expressions.py", line 596, in <lambda>
_to_sum = lambda o: ast.Sum(_ast(o[0]), _to_sum(o[1:])) if len(o) > 1 else _ast(o[0])
File "/Users/matak/firedrake/lib/python2.7/site-packages/firedrake/assemble_expressions.py", line 48, in _ast
return f(expr)
File "/Users/matak/firedrake/lib/python2.7/site-packages/firedrake/assemble_expressions.py", line 602, in <lambda>
ufl.algebra.Sum: (lambda e: ast.Par(_to_sum(e.ufl_operands))),
File "/Users/matak/firedrake/lib/python2.7/site-packages/firedrake/assemble_expressions.py", line 596, in <lambda>
_to_sum = lambda o: ast.Sum(_ast(o[0]), _to_sum(o[1:])) if len(o) > 1 else _ast(o[0])
File "/Users/matak/firedrake/lib/python2.7/site-packages/firedrake/assemble_expressions.py", line 596, in <lambda>
_to_sum = lambda o: ast.Sum(_ast(o[0]), _to_sum(o[1:])) if len(o) > 1 else _ast(o[0])
File "/Users/matak/firedrake/lib/python2.7/site-packages/firedrake/assemble_expressions.py", line 48, in _ast
return f(expr)
File "/Users/matak/firedrake/lib/python2.7/site-packages/firedrake/assemble_expressions.py", line 603, in <lambda>
ufl.algebra.Product: (lambda e: ast.Par(_to_prod(e.ufl_operands))),
File "/Users/matak/firedrake/lib/python2.7/site-packages/firedrake/assemble_expressions.py", line 597, in <lambda>
_to_prod = lambda o: ast.Prod(_ast(o[0]), _to_sum(o[1:])) if len(o) > 1 else _ast(o[0])
File "/Users/matak/firedrake/lib/python2.7/site-packages/firedrake/assemble_expressions.py", line 596, in <lambda>
_to_sum = lambda o: ast.Sum(_ast(o[0]), _to_sum(o[1:])) if len(o) > 1 else _ast(o[0])
File "/Users/matak/firedrake/lib/python2.7/site-packages/firedrake/assemble_expressions.py", line 49, in _ast
raise TypeError("No ast handler for %s" % str(type(expr)))
TypeError: No ast handler for <class 'ufl.tensoralgebra.Inner’>
-----------------
and then I tried to write instead
E = 0.5*rho*assemble( (Hb*abs(grad(phi0))*abs(grad(phi0)) + g*eta0*eta0)*dx )
and got a different error:
-----------------
E0_w = 0.5*rho*assemble( (Hb*abs(grad(phi0))*abs(grad(phi0)) + g*eta0*eta0)*dx ) # Energy of the water
File "/Users/matak/firedrake/lib/python2.7/site-packages/ufl/exproperators.py", line 166, in _mul
return _mult(self, o)
File "/Users/matak/firedrake/lib/python2.7/site-packages/ufl/exproperators.py", line 144, in _mult
error("Invalid ranks {0} and {1} in product.".format(r1, r2))
File "/Users/matak/firedrake/lib/python2.7/site-packages/ufl/log.py", line 158, in error
raise self._exception_type(self._format_raw(*message))
ufl.log.UFLException: Invalid ranks 1 and 1 in product.
-----------------
I don’t understand what’s going wrong. It was working on Friday.
Thank you.
Best, Anna.