There seem to be errors in the implementation. I would suggest going through the tutorials and approaching the problem step by step.
For example in the iteration loop: In the 1st problem you need to compute for a solution which would be a Function object and not a TrialFunction. So you should pass uN
instead of su
when asking to solve(because you have changed su
to a TrialFunction). After solving the 1st problem you have to split the solution to form the new sub-functions (since it is MixedFunction) and then you can proceed with updating/assigning the solution to be used as a ‘known’ in the 2nd problem, and so on.
It would be difficult to read your question this way. People who answer regularly prefer a Minimum working example to replicate your issue (see this) sure someone with more expertise will pass by to answer in detail.
Sid