- Timestamp:
- Dec 27, 2007, 6:35:08 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
anuga_core/source/anuga/abstract_2d_finite_volumes/test_quantity.py
r4886 r4897 1445 1445 1446 1446 1447 def test_ vertex_limiter(self):1447 def test_limit_vertices_by_all_neighbours(self): 1448 1448 quantity = Conserved_quantity(self.mesh4) 1449 1449 … … 1453 1453 1454 1454 #Limit 1455 quantity.limit_ by_vertex()1455 quantity.limit_vertices_by_all_neighbours() 1456 1456 1457 1457 #Assert that central triangle is limited by neighbours … … 1475 1475 1476 1476 1477 def test_ edge_limiter(self):1477 def test_limit_edges_by_all_neighbours(self): 1478 1478 quantity = Conserved_quantity(self.mesh4) 1479 1479 … … 1483 1483 1484 1484 #Limit 1485 quantity.limit_ by_edge()1485 quantity.limit_edges_by_all_neighbours() 1486 1486 1487 1487 #Assert that central triangle is limited by neighbours … … 1493 1493 1494 1494 assert quantity.edge_values[1,2] <= quantity.centroid_values[2] 1495 assert quantity.edge_values[1,2] <= quantity.centroid_values[0]1495 assert quantity.edge_values[1,2] >= quantity.centroid_values[0] 1496 1496 1497 1497 … … 1503 1503 sum(quantity.vertex_values[k,:])/3) 1504 1504 1505 1506 def test_limit_edges_by_neighbour(self): 1507 quantity = Conserved_quantity(self.mesh4) 1508 1509 #Create a deliberate overshoot (e.g. from gradient computation) 1510 quantity.set_values([[3,0,3], [2,2,6], [5,3,8], [8,3,5]]) 1511 1512 1513 #Limit 1514 quantity.limit_edges_by_neighbour() 1515 1516 #Assert that central triangle is limited by neighbours 1517 assert quantity.edge_values[1,0] <= quantity.centroid_values[3] 1518 assert quantity.edge_values[1,0] >= quantity.centroid_values[1] 1519 1520 assert quantity.edge_values[1,1] <= quantity.centroid_values[2] 1521 assert quantity.edge_values[1,1] >= quantity.centroid_values[1] 1522 1523 assert quantity.edge_values[1,2] <= quantity.centroid_values[1] 1524 assert quantity.edge_values[1,2] >= quantity.centroid_values[0] 1525 1526 1527 1528 #Assert that quantities are conserved 1529 from Numeric import sum 1530 for k in range(quantity.centroid_values.shape[0]): 1531 assert allclose (quantity.centroid_values[k], 1532 sum(quantity.vertex_values[k,:])/3) 1505 1533 1506 1534 def test_limiter2(self): … … 2207 2235 assert allclose(subset, answer) 2208 2236 2237 def test_smooth_vertex_values(self): 2238 """ 2239 get values based on triangle lists. 2240 """ 2241 from mesh_factory import rectangular 2242 from shallow_water import Domain 2243 from Numeric import zeros, Float 2244 2245 #Create basic mesh 2246 points, vertices, boundary = rectangular(2, 2) 2247 2248 #print "points",points 2249 #print "vertices",vertices 2250 #print "boundary",boundary 2251 2252 #Create shallow water domain 2253 domain = Domain(points, vertices, boundary) 2254 #print "domain.number_of_elements ",domain.number_of_elements 2255 quantity = Quantity(domain,[[0,0,0],[1,1,1],[2,2,2],[3,3,3], 2256 [4,4,4],[5,5,5],[6,6,6],[7,7,7]]) 2257 2258 #print "quantity.get_values(location = 'unique vertices')", \ 2259 # quantity.get_values(location = 'unique vertices') 2260 2261 #print "quantity.get_values(location = 'unique vertices')", \ 2262 # quantity.get_values(indices=[0,1,2,3,4,5,6,7], \ 2263 # location = 'unique vertices') 2264 2265 #print quantity.get_values(location = 'unique vertices') 2266 #print quantity.domain.number_of_triangles_per_node 2267 #print quantity.vertex_values 2268 2269 #answer = [0.5, 2, 3, 3, 3.5, 4, 4, 5, 6.5] 2270 #assert allclose(answer, 2271 # quantity.get_values(location = 'unique vertices')) 2272 2273 quantity.smooth_vertex_values() 2274 2275 #print quantity.vertex_values 2276 2277 2278 answer_vertex_values = [[3,3.5,0.5],[2,0.5,3.5],[3.5,4,2],[3,2,4], 2279 [4,5,3],[3.5,3,5],[5,6.5,3.5],[4,3.5,6.5]] 2280 2281 assert allclose(answer_vertex_values, 2282 quantity.vertex_values) 2283 #print "quantity.centroid_values",quantity.centroid_values 2284 #print "quantity.get_values(location = 'centroids') ",\ 2285 # quantity.get_values(location = 'centroids') 2209 2286 2210 2287
Note: See TracChangeset
for help on using the changeset viewer.