@@ -158,16 +158,14 @@ def update_v(a, u_old, v_old, a_old, ufl=True):
158
158
def update_fields (u , u_old , v_old , a_old ):
159
159
"""Update all fields at the end of a timestep."""
160
160
161
- u_vec , u0_vec = u .vector (), u_old .vector ()
162
- v0_vec , a0_vec = v_old .vector (), a_old .vector ()
163
-
164
161
# 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 )
167
164
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 )
171
169
172
170
173
171
def avg (x_old , x_new , alpha ):
@@ -238,7 +236,6 @@ def avg(x_old, x_new, alpha):
238
236
n = n_cp
239
237
else :
240
238
update_fields (u_np1 , u_n , v_n , a_n )
241
- u_n .assign (u_np1 )
242
239
t += float (dt )
243
240
n += 1
244
241
0 commit comments