By working through the advection-diffusion demo some questions come up (By the way: it currently doesn’t work for my application).
u_mid instead of
u is applied? My current weak formulation is
F = rhoU*u*v*dx \
- rhoU*u_n*v*dx \
+ E_dt*rhoU*dot(E_w,grad(u))*v*dx \
+ E_dt*lambdaU*dot(grad(cpiU*u),grad(v))*dx \
+ sum(integrals_R) + sum(integrals_N)
u_mid following from time discretisation or part of SUPG? EDIT: Seems to be Crank-Nicolson time discretization, is it? Unfortunately convergence is destroyed using u_mid even without any other change in my working code.
Is the residual correction
r = u - u0 + dt*(dot(velocity, grad(u_mid)) - c*div(grad(u_mid)) - f)
# Add SUPG stabilisation terms
vnorm = sqrt(dot(velocity, velocity))
F += (h/(2.0*vnorm))*dot(velocity, grad(v))*r*dx
still valid with Neumann and/or Robin boundary conditions?
What is the meaning of
f = Constant(0.0)? If it is just the RHS of the homogeneous PDE?
And furthermore (problably a beginner problem): From other examples I usually do:
u = TrialFunction(Q)
v = TestFunction(Q)
F = ... u ... v ...
U = Function(Q)
solve(a == L, U, bcs)
If in the weak formulation there is used
u and I call solve with
U is then
u replaced (logically) by
U? But u_n and v are taken from the original formulation. How does FEniCS know what to replace?