@@ -158,16 +158,14 @@ def update_v(a, u_old, v_old, a_old, ufl=True):
158158def update_fields (u , u_old , v_old , a_old ):
159159 """Update all fields at the end of a timestep."""
160160
161- u_vec , u0_vec = u .vector (), u_old .vector ()
162- v0_vec , a0_vec = v_old .vector (), a_old .vector ()
163-
164161 # call update functions
165- a_vec = update_a (u_vec , u0_vec , v0_vec , a0_vec , ufl = False )
166- v_vec = update_v (a_vec , u0_vec , v0_vec , a0_vec , ufl = False )
162+ a_new = update_a (u , u_old , v_old , a_old )
163+ v_new = update_v (u , u_old , v_old , a_old )
167164
168- # assign u->u_old
169- v_old .vector ()[:], a_old .vector ()[:] = v_vec , a_vec
170- u_old .vector ()[:] = u .vector ()
165+ # update values
166+ a_old .assign (project (a_new , V ))
167+ v_old .assign (project (v_new , V ))
168+ u_old .assign (u )
171169
172170
173171def avg (x_old , x_new , alpha ):
@@ -238,7 +236,6 @@ def avg(x_old, x_new, alpha):
238236 n = n_cp
239237 else :
240238 update_fields (u_np1 , u_n , v_n , a_n )
241- u_n .assign (u_np1 )
242239 t += float (dt )
243240 n += 1
244241
0 commit comments