@@ -40,8 +40,8 @@ def test_openberg_constant_forcing():
4040 o .set_config ('drift:coriolis' , False )
4141 o .seed_elements (4 , 60 , time = datetime .now ())
4242 o .run (steps = 2 )
43- np .testing .assert_almost_equal (o .result .lon [ 0 ][ 1 ] , 4.0 , 3 )
44- np .testing .assert_almost_equal (o .result .lat [ 0 ][ 1 ] , 60.031 , 3 )
43+ np .testing .assert_almost_equal (o .result .lon . isel ( time = - 1 ) , 4.0 , 3 )
44+ np .testing .assert_almost_equal (o .result .lat . isel ( time = - 1 ) , 60.063 , 3 )
4545
4646 # Northwards current, no wind, with Coriolis
4747 o = OpenBerg (loglevel = 50 )
@@ -53,11 +53,11 @@ def test_openberg_constant_forcing():
5353 o .set_config ('drift:coriolis' , True )
5454 o .seed_elements (4 , 60 , time = datetime .now ())
5555 o .run (steps = 2 )
56- np .testing .assert_almost_equal (o .result .lon [ 0 ][ 1 ] , 4.017 , 3 )
57- np .testing .assert_almost_equal (o .result .lat [ 0 ][ 1 ] , 60.031 , 3 )
56+ np .testing .assert_almost_equal (o .result .lon . isel ( time = - 1 ) , 4.034 , 3 )
57+ np .testing .assert_almost_equal (o .result .lat . isel ( time = - 1 ) , 60.060 , 3 )
5858
5959 # Northwards current, eastwards wind, with Coriolis
60- o = OpenBerg (loglevel = 0 )
60+ o = OpenBerg (loglevel = 50 )
6161 o .set_config ('environment:constant:x_sea_water_velocity' , 0 )
6262 o .set_config ('environment:constant:y_sea_water_velocity' , 1 )
6363 o .set_config ('environment:constant:x_wind' , 10 )
@@ -66,8 +66,77 @@ def test_openberg_constant_forcing():
6666 o .set_config ('drift:coriolis' , True )
6767 o .seed_elements (4 , 60 , time = datetime .now ())
6868 o .run (steps = 2 )
69- np .testing .assert_almost_equal (o .result .lon [0 ][1 ], 4.018 , 3 )
70- np .testing .assert_almost_equal (o .result .lat [0 ][1 ], 60.057 , 3 )
69+ np .testing .assert_almost_equal (o .result .lon .isel (time = - 1 ), 4.114 , 3 )
70+ np .testing .assert_almost_equal (o .result .lat .isel (time = - 1 ), 60.058 , 3 )
71+
72+ # No current, eastwards wind
73+ o = OpenBerg (loglevel = 0 )
74+ o .set_config ('environment:constant:x_sea_water_velocity' , 0 )
75+ o .set_config ('environment:constant:y_sea_water_velocity' , 0 )
76+ o .set_config ('environment:constant:x_wind' , 10 )
77+ o .set_config ('environment:constant:y_wind' , 0 )
78+ o .set_config ('drift:horizontal_diffusivity' , 0 )
79+ o .set_config ('drift:coriolis' , False )
80+ o .seed_elements (4 , 60 , time = datetime .now ())
81+ o .run (steps = 2 )
82+ np .testing .assert_almost_equal (o .result .lon .isel (time = - 1 ), 4.107 , 3 )
83+ np .testing .assert_almost_equal (o .result .lat .isel (time = - 1 ), 60.000 , 3 )
84+
85+ # No current, weaker eastwards wind
86+ o = OpenBerg (loglevel = 0 )
87+ o .set_config ('environment:constant:x_sea_water_velocity' , 0 )
88+ o .set_config ('environment:constant:y_sea_water_velocity' , 0 )
89+ o .set_config ('environment:constant:x_wind' , 5 )
90+ o .set_config ('environment:constant:y_wind' , 0 )
91+ o .set_config ('drift:horizontal_diffusivity' , 0 )
92+ o .set_config ('drift:coriolis' , False )
93+ o .seed_elements (4 , 60 , time = datetime .now ())
94+ o .run (steps = 2 )
95+ # TODO: Half wind gives only 25% of eastwards movement. Should be checked.
96+ np .testing .assert_almost_equal (o .result .lon .isel (time = - 1 ), 4.028 , 3 )
97+ np .testing .assert_almost_equal (o .result .lat .isel (time = - 1 ), 60.000 , 3 )
98+
99+ # No current, westwards wind
100+ o = OpenBerg (loglevel = 0 )
101+ o .set_config ('environment:constant:x_sea_water_velocity' , 0 )
102+ o .set_config ('environment:constant:y_sea_water_velocity' , 0 )
103+ o .set_config ('environment:constant:x_wind' , - 10 )
104+ o .set_config ('environment:constant:y_wind' , 0 )
105+ o .set_config ('drift:horizontal_diffusivity' , 0 )
106+ o .set_config ('drift:coriolis' , False )
107+ o .seed_elements (4 , 60 , time = datetime .now ())
108+ o .run (steps = 2 )
109+ np .testing .assert_almost_equal (o .result .lon .isel (time = - 1 ), 3.892 , 3 )
110+ np .testing .assert_almost_equal (o .result .lat .isel (time = - 1 ), 60.000 , 3 )
111+
112+ # No current, northwards wind
113+ o = OpenBerg (loglevel = 0 )
114+ o .set_config ('environment:constant:x_sea_water_velocity' , 0 )
115+ o .set_config ('environment:constant:y_sea_water_velocity' , 0 )
116+ o .set_config ('environment:constant:x_wind' , 0 )
117+ o .set_config ('environment:constant:y_wind' , 10 )
118+ o .set_config ('drift:horizontal_diffusivity' , 0 )
119+ o .set_config ('drift:coriolis' , False )
120+ o .seed_elements (4 , 60 , time = datetime .now ())
121+ o .run (steps = 2 )
122+ np .testing .assert_almost_equal (o .result .lon .isel (time = - 1 ), 4 , 3 )
123+ np .testing .assert_almost_equal (o .result .lat .isel (time = - 1 ), 60.054 , 3 )
124+
125+ # No current, southwards wind
126+ o = OpenBerg (loglevel = 0 )
127+ o .set_config ('environment:constant:x_sea_water_velocity' , 0 )
128+ o .set_config ('environment:constant:y_sea_water_velocity' , 0 )
129+ o .set_config ('environment:constant:x_wind' , 0 )
130+ o .set_config ('environment:constant:y_wind' , - 10 )
131+ o .set_config ('drift:horizontal_diffusivity' , 0 )
132+ o .set_config ('drift:coriolis' , False )
133+ o .seed_elements (4 , 60 , time = datetime .now ())
134+ o .run (steps = 2 )
135+ np .testing .assert_almost_equal (o .result .lon .isel (time = - 1 ), 4 , 3 )
136+ np .testing .assert_almost_equal (o .result .lat .isel (time = - 1 ), 59.946 , 3 )
137+
138+
139+
71140
72141
73142def test_openberg_norkyst ():
0 commit comments