Just wrap the scalar expressions in an `as_vector`.
x = SpatialCoordinate(V.mesh())f.interpolate(as_vector(   cos(2*pi*x[0])*cos(2*pi*x[1])*cos(2*pi*x[2]),   cos(2*pi*x[0])*cos(2*pi*x[1])*cos(2*pi*x[2]),   cos(2*pi*x[0])*cos(2*pi*x[1])*cos(2*pi*x[2])))
From: firedrake-bounces@imperial.ac.uk <firedrake-bounces@imperial.ac.uk> on behalf of Alexei Colin <acolin@isi.edu>
Date: Monday, 5 April 2021 at 17:48
To: firedrake <firedrake@imperial.ac.uk>
Subject: [firedrake] How to convert tuple of C string expressions to UFL?
Hi, firedrake-bench/elasticity (from 'experiments' branch)
uses C string expressions which are no longer supported.
I read some tips for conversion here, however, the help doesn't cover
the case where there is a tuple of C string expressions:
https://www.firedrakeproject.org/interpolation.html#c-string-expressions
How to convert this?
    f = Function(V)
    f.interpolate(Expression(
         ("cos(2*pi*x[0])*cos(2*pi*x[1])*cos(2*pi*x[2])",
         "cos(2*pi*x[0])*cos(2*pi*x[1])*cos(2*pi*x[2])",
         "cos(2*pi*x[0])*cos(2*pi*x[1])*cos(2*pi*x[2])")))
Please forgive if this is obvious, I have no knowledge in this domain at
all, just trying to blindly run this code. Thank you.
_______________________________________________
firedrake mailing list
firedrake@imperial.ac.uk
https://mailman.ic.ac.uk/mailman/listinfo/firedrake