Hi, I am working on a problem with solution dependent property, for instance k(u)\frac{du}{dt}=\frac{d^2u}{dx^2}. I am wondering how to implement it. I saw some posts giving almost the same solution: define `u=Function(V)`

, and then define `k`

as an expression such as `k=Expression('u+1',u=u,degree=2)`

. I am confused by this implementation, since it is treating each time step as a non-linear problem (linear problem defines `TrialFunction`

first). It looks to me that `Expression`

freezes `k(u)`

at each time step based on the solution of `u`

in the previous step, thus we are solving a linear problem at each time step. Why in all examples (e.g. Material property depending on solution) we do not define `u=TrialFunction(V)`

?

I tried `u=TrialFunction(V)`

and `k=Expression('u+1',u=u,degree=2)`

. It reports error, so it seems `Expression`

does not input `TrialFunction`

. Is it designed on purpose?