@@ -35,8 +35,8 @@ def AdvectionRK2(particles, fieldset): # pragma: no cover
3535 """Advection of particles using second-order Runge-Kutta integration."""
3636 dt = _constrain_dt_to_within_time_interval (fieldset .time_interval , particles .time , particles .dt )
3737 (u1 , v1 ) = fieldset .UV [particles ]
38- lon1 , lat1 = (particles .x + u1 * 0.5 * dt , particles .y + v1 * 0.5 * dt )
39- (u2 , v2 ) = fieldset .UV [particles .time + 0.5 * dt , particles .z , lat1 , lon1 , particles ]
38+ x1 , y1 = (particles .x + u1 * 0.5 * dt , particles .y + v1 * 0.5 * dt )
39+ (u2 , v2 ) = fieldset .UV [particles .time + 0.5 * dt , particles .z , y1 , x1 , particles ]
4040 particles .dx += u2 * dt
4141 particles .dy += v2 * dt
4242
@@ -45,10 +45,10 @@ def AdvectionRK2_3D(particles, fieldset): # pragma: no cover
4545 """Advection of particles using second-order Runge-Kutta integration including vertical velocity."""
4646 dt = _constrain_dt_to_within_time_interval (fieldset .time_interval , particles .time , particles .dt )
4747 (u1 , v1 , w1 ) = fieldset .UVW [particles ]
48- lon1 = particles .x + u1 * 0.5 * dt
49- lat1 = particles .y + v1 * 0.5 * dt
48+ x1 = particles .x + u1 * 0.5 * dt
49+ y1 = particles .y + v1 * 0.5 * dt
5050 z1 = particles .z + w1 * 0.5 * dt
51- (u2 , v2 , w2 ) = fieldset .UVW [particles .time + 0.5 * dt , z1 , lat1 , lon1 , particles ]
51+ (u2 , v2 , w2 ) = fieldset .UVW [particles .time + 0.5 * dt , z1 , y1 , x1 , particles ]
5252 particles .dx += u2 * dt
5353 particles .dy += v2 * dt
5454 particles .dz += w2 * dt
@@ -58,12 +58,12 @@ def AdvectionRK4(particles, fieldset): # pragma: no cover
5858 """Advection of particles using fourth-order Runge-Kutta integration."""
5959 dt = _constrain_dt_to_within_time_interval (fieldset .time_interval , particles .time , particles .dt )
6060 (u1 , v1 ) = fieldset .UV [particles ]
61- lon1 , lat1 = (particles .x + u1 * 0.5 * dt , particles .y + v1 * 0.5 * dt )
62- (u2 , v2 ) = fieldset .UV [particles .time + 0.5 * dt , particles .z , lat1 , lon1 , particles ]
63- lon2 , lat2 = (particles .x + u2 * 0.5 * dt , particles .y + v2 * 0.5 * dt )
64- (u3 , v3 ) = fieldset .UV [particles .time + 0.5 * dt , particles .z , lat2 , lon2 , particles ]
65- lon3 , lat3 = (particles .x + u3 * dt , particles .y + v3 * dt )
66- (u4 , v4 ) = fieldset .UV [particles .time + dt , particles .z , lat3 , lon3 , particles ]
61+ x1 , y1 = (particles .x + u1 * 0.5 * dt , particles .y + v1 * 0.5 * dt )
62+ (u2 , v2 ) = fieldset .UV [particles .time + 0.5 * dt , particles .z , y1 , x1 , particles ]
63+ x2 , y2 = (particles .x + u2 * 0.5 * dt , particles .y + v2 * 0.5 * dt )
64+ (u3 , v3 ) = fieldset .UV [particles .time + 0.5 * dt , particles .z , y2 , x2 , particles ]
65+ x3 , y3 = (particles .x + u3 * dt , particles .y + v3 * dt )
66+ (u4 , v4 ) = fieldset .UV [particles .time + dt , particles .z , y3 , x3 , particles ]
6767 particles .dx += (u1 + 2 * u2 + 2 * u3 + u4 ) / 6.0 * dt
6868 particles .dy += (v1 + 2 * v2 + 2 * v3 + v4 ) / 6.0 * dt
6969
@@ -72,18 +72,18 @@ def AdvectionRK4_3D(particles, fieldset): # pragma: no cover
7272 """Advection of particles using fourth-order Runge-Kutta integration including vertical velocity."""
7373 dt = _constrain_dt_to_within_time_interval (fieldset .time_interval , particles .time , particles .dt )
7474 (u1 , v1 , w1 ) = fieldset .UVW [particles ]
75- lon1 = particles .x + u1 * 0.5 * dt
76- lat1 = particles .y + v1 * 0.5 * dt
75+ x1 = particles .x + u1 * 0.5 * dt
76+ y1 = particles .y + v1 * 0.5 * dt
7777 z1 = particles .z + w1 * 0.5 * dt
78- (u2 , v2 , w2 ) = fieldset .UVW [particles .time + 0.5 * dt , z1 , lat1 , lon1 , particles ]
79- lon2 = particles .x + u2 * 0.5 * dt
80- lat2 = particles .y + v2 * 0.5 * dt
78+ (u2 , v2 , w2 ) = fieldset .UVW [particles .time + 0.5 * dt , z1 , y1 , x1 , particles ]
79+ x2 = particles .x + u2 * 0.5 * dt
80+ y2 = particles .y + v2 * 0.5 * dt
8181 z2 = particles .z + w2 * 0.5 * dt
82- (u3 , v3 , w3 ) = fieldset .UVW [particles .time + 0.5 * dt , z2 , lat2 , lon2 , particles ]
83- lon3 = particles .x + u3 * dt
84- lat3 = particles .y + v3 * dt
82+ (u3 , v3 , w3 ) = fieldset .UVW [particles .time + 0.5 * dt , z2 , y2 , x2 , particles ]
83+ x3 = particles .x + u3 * dt
84+ y3 = particles .y + v3 * dt
8585 z3 = particles .z + w3 * dt
86- (u4 , v4 , w4 ) = fieldset .UVW [particles .time + dt , z3 , lat3 , lon3 , particles ]
86+ (u4 , v4 , w4 ) = fieldset .UVW [particles .time + dt , z3 , y3 , x3 , particles ]
8787 particles .dx += (u1 + 2 * u2 + 2 * u3 + u4 ) / 6 * dt
8888 particles .dy += (v1 + 2 * v2 + 2 * v3 + v4 ) / 6 * dt
8989 particles .dz += (w1 + 2 * w2 + 2 * w3 + w4 ) / 6 * dt
@@ -120,39 +120,39 @@ def AdvectionRK45(particles, fieldset): # pragma: no cover
120120 b5 = [16.0 / 135.0 , 0.0 , 6656.0 / 12825.0 , 28561.0 / 56430.0 , - 9.0 / 50.0 , 2.0 / 55.0 ]
121121
122122 (u1 , v1 ) = fieldset .UV [particles ]
123- lon1 , lat1 = (particles .x + u1 * A [0 ][0 ] * dt , particles .y + v1 * A [0 ][0 ] * dt )
124- (u2 , v2 ) = fieldset .UV [particles .time + c [0 ] * dt , particles .z , lat1 , lon1 , particles ]
125- lon2 , lat2 = (
123+ x1 , y1 = (particles .x + u1 * A [0 ][0 ] * dt , particles .y + v1 * A [0 ][0 ] * dt )
124+ (u2 , v2 ) = fieldset .UV [particles .time + c [0 ] * dt , particles .z , y1 , x1 , particles ]
125+ x2 , y2 = (
126126 particles .x + (u1 * A [1 ][0 ] + u2 * A [1 ][1 ]) * dt ,
127127 particles .y + (v1 * A [1 ][0 ] + v2 * A [1 ][1 ]) * dt ,
128128 )
129- (u3 , v3 ) = fieldset .UV [particles .time + c [1 ] * dt , particles .z , lat2 , lon2 , particles ]
130- lon3 , lat3 = (
129+ (u3 , v3 ) = fieldset .UV [particles .time + c [1 ] * dt , particles .z , y2 , x2 , particles ]
130+ x3 , y3 = (
131131 particles .x + (u1 * A [2 ][0 ] + u2 * A [2 ][1 ] + u3 * A [2 ][2 ]) * dt ,
132132 particles .y + (v1 * A [2 ][0 ] + v2 * A [2 ][1 ] + v3 * A [2 ][2 ]) * dt ,
133133 )
134- (u4 , v4 ) = fieldset .UV [particles .time + c [2 ] * dt , particles .z , lat3 , lon3 , particles ]
135- lon4 , lat4 = (
134+ (u4 , v4 ) = fieldset .UV [particles .time + c [2 ] * dt , particles .z , y3 , x3 , particles ]
135+ x4 , y4 = (
136136 particles .x + (u1 * A [3 ][0 ] + u2 * A [3 ][1 ] + u3 * A [3 ][2 ] + u4 * A [3 ][3 ]) * dt ,
137137 particles .y + (v1 * A [3 ][0 ] + v2 * A [3 ][1 ] + v3 * A [3 ][2 ] + v4 * A [3 ][3 ]) * dt ,
138138 )
139- (u5 , v5 ) = fieldset .UV [particles .time + c [3 ] * dt , particles .z , lat4 , lon4 , particles ]
140- lon5 , lat5 = (
139+ (u5 , v5 ) = fieldset .UV [particles .time + c [3 ] * dt , particles .z , y4 , x4 , particles ]
140+ x5 , y5 = (
141141 particles .x + (u1 * A [4 ][0 ] + u2 * A [4 ][1 ] + u3 * A [4 ][2 ] + u4 * A [4 ][3 ] + u5 * A [4 ][4 ]) * dt ,
142142 particles .y + (v1 * A [4 ][0 ] + v2 * A [4 ][1 ] + v3 * A [4 ][2 ] + v4 * A [4 ][3 ] + v5 * A [4 ][4 ]) * dt ,
143143 )
144- (u6 , v6 ) = fieldset .UV [particles .time + c [4 ] * dt , particles .z , lat5 , lon5 , particles ]
144+ (u6 , v6 ) = fieldset .UV [particles .time + c [4 ] * dt , particles .z , y5 , x5 , particles ]
145145
146- lon_4th = (u1 * b4 [0 ] + u2 * b4 [1 ] + u3 * b4 [2 ] + u4 * b4 [3 ] + u5 * b4 [4 ]) * dt
147- lat_4th = (v1 * b4 [0 ] + v2 * b4 [1 ] + v3 * b4 [2 ] + v4 * b4 [3 ] + v5 * b4 [4 ]) * dt
148- lon_5th = (u1 * b5 [0 ] + u2 * b5 [1 ] + u3 * b5 [2 ] + u4 * b5 [3 ] + u5 * b5 [4 ] + u6 * b5 [5 ]) * dt
149- lat_5th = (v1 * b5 [0 ] + v2 * b5 [1 ] + v3 * b5 [2 ] + v4 * b5 [3 ] + v5 * b5 [4 ] + v6 * b5 [5 ]) * dt
146+ x_4th = (u1 * b4 [0 ] + u2 * b4 [1 ] + u3 * b4 [2 ] + u4 * b4 [3 ] + u5 * b4 [4 ]) * dt
147+ y_4th = (v1 * b4 [0 ] + v2 * b4 [1 ] + v3 * b4 [2 ] + v4 * b4 [3 ] + v5 * b4 [4 ]) * dt
148+ x_5th = (u1 * b5 [0 ] + u2 * b5 [1 ] + u3 * b5 [2 ] + u4 * b5 [3 ] + u5 * b5 [4 ] + u6 * b5 [5 ]) * dt
149+ y_5th = (v1 * b5 [0 ] + v2 * b5 [1 ] + v3 * b5 [2 ] + v4 * b5 [3 ] + v5 * b5 [4 ] + v6 * b5 [5 ]) * dt
150150
151- kappa = np .sqrt (np .pow (lon_5th - lon_4th , 2 ) + np .pow (lat_5th - lat_4th , 2 ))
151+ kappa = np .sqrt (np .pow (x_5th - x_4th , 2 ) + np .pow (y_5th - y_4th , 2 ))
152152
153153 good_particles = (kappa <= fieldset .RK45_tol ) | (np .fabs (dt ) <= np .fabs (fieldset .RK45_min_dt ))
154- particles .dx += np .where (good_particles , lon_5th , 0 )
155- particles .dy += np .where (good_particles , lat_5th , 0 )
154+ particles .dx += np .where (good_particles , x_5th , 0 )
155+ particles .dy += np .where (good_particles , y_5th , 0 )
156156
157157 increase_dt_particles = (
158158 good_particles & (kappa <= fieldset .RK45_tol / 10 ) & (np .fabs (dt * 2 ) <= np .fabs (fieldset .RK45_max_dt ))
0 commit comments