Respected sir
Can you please help me in defining the function at each time level and use it to solve Variational form.
Define variational problem
u = TrialFunction(V)
v = TestFunction(V)
u0 = Function(V) # u_0
u1 = Function(V) # u_1
u2 = Function(V) # u_2
u0 = my_projection(u_D, V)# u_0
u1.assign(u0) # u_1
u2.assign(u0) # u_2
###“Here I want to assign function at each time level”
for n in range(num_steps):
u(n) = Function(V) # u_n
u(n).assign(u0) # u_n
print(u(n))
B1 = (u*v + dot(a*grad(u), grad(v)) )*dx
L1 = (u0 + k1*f)*v*dx
for n in range(num_steps):
B2 = (u*v + dot(a*grad(u), grad(v)) )*dx
L2 = f*v*dx
L2 += (u1-u0)*v*dx
# Time-stepping
u = Function(V)
t = 0
for n in range(num_steps-1):
# Update current time
t += dt
a.t = t
b.t = t
c.t = t
u_D.t = t
f.t = t
# Compute solution
#solve(a == L, u, bc)
if n < 2:
u0.assign(u1)
solve(B1 == L1, u, bc)
# Update previous solution
u1.assign(u)
else:
****“Here I want to use the assigned function at each time level”
u0.assign(u(n-2))
u1.assign(u(n-1))
solve(B2 == L2, u, bc)
# Update previous solution
un.assign(u)
u0.assign(u(n-1))
u1.assign(u(n))