A big issue here is that this code is far from a minimal example, as outlined in Read before posting: How do I get my question answered?. The currently posed problem is extremely time consuming for anyone else to debug.
A few comments:
- You temporal discretization seems fully decoupled from your variational formulation, i.e.
dT
is not used anywhere. If it is supposed to be like this. Please remove any code relating to temporal discretization, including the while loop. (Which isnt needed to reproduce the error anyhow). - Similarly,
uold
andetaold
is never used, and should therefore not be defined. The only usage ofuOld
is to assign it todU
.
Please go over your code an simplify it as much as possible.
Another suggestion is to check that you are happy with the projection of the initial condition (eta). You write this to file, so you can inspect it visually.