Changeset 1824 for inundation/pyvolution/domain.py
- Timestamp:
- Sep 13, 2005, 10:52:08 AM (19 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
inundation/pyvolution/domain.py
r1753 r1824 336 336 self.number_of_first_order_steps) 337 337 338 def boundary_stats(self, quantities = None, tag = None): 339 """Output statistics about boundary forcing 340 341 342 """ 343 338 def boundary_stats(self, quantities = None, tags = None): 339 """Output statistics about boundary forcing at each timestep 340 341 Example 342 Tag 'wall': 343 stage in [2, 5.5] 344 xmomentum in [] 345 ymomentum in [] 346 Tag 'ocean' 347 348 quantities and tags can be either None, a string or a list of strings 349 350 If quantitites are specified only report on those. Otherwise take all conserved quantities. 351 If tags are specified only report on those, otherwise take all tags. 352 353 #FIXME: Should return text string 354 """ 355 356 #Input checks 357 import types 358 344 359 if quantities is None: 345 360 quantities = self.conserved_quantities 346 361 elif type(quantities) == types.StringType: 362 quantities = [quantities] #Turn it into a list 363 364 msg = 'Keyword argument quantities must be either None, ' 365 msg += 'string or list. I got %s' %str(quantitites) 366 assert type(quantities) == types.ListType, msg 367 368 369 if tag is None: 370 tags = self.get_boundary_tags() 371 elif type(tags) == types.StringType: 372 tags = [tags] #Turn it into a list 373 374 msg = 'Keyword argument tags must be either None, ' 375 msg += 'string or list. I got %s' %str(quantitites) 376 assert type(tags) == types.ListType, msg 377 378 379 #Output stats 347 380 348 381 print 'Boundary values at time %.4f:' %self.time 349 for name in quantities: 350 q = self.quantities[name] 351 352 if tag is None: 353 #Take entire boundary 354 print ' Quantity %s: min = %12.8f, max = %12.8f'\ 355 %(name, min(q.boundary_values), max(q.boundary_values)) 356 else: 357 #Take only boundary associated with tag 382 383 for tag in tags: 384 print ' Tag: %s' %tag 385 386 for name in quantities: 387 q = self.quantities[name] 388 389 #Find range of boundary values for tag and q 358 390 maxval = minval = None 359 391 for i, ((vol_id, edge_id), B) in enumerate(self.boundary_objects): … … 364 396 365 397 if minval is None or maxval is None: 366 print 'Sorry no information about tag %s ' %tag398 print 'Sorry no information about tag %s and quantity %s' %(tag, name) 367 399 else: 368 print ' Quantity %s, tag %s: min = %12.8f, max = %12.8f'\ 369 %(name, tag, minval, maxval) 400 print ' %s\t in [%12.8f, %12.8f]'\ 401 %(name, minval, maxval) 402 403 404 405 406 #for name in quantities: 407 # q = self.quantities[name] 408 # 409 # if tag is None: 410 # #Take entire boundary 411 # print ' Quantity %s: min = %12.8f, max = %12.8f'\ 412 # %(name, min(q.boundary_values), max(q.boundary_values)) 413 # else: 414 # #Take only boundary associated with tag 415 # maxval = minval = None 416 # for i, ((vol_id, edge_id), B) in enumerate(self.boundary_objects): 417 # if self.boundary[(vol_id, edge_id)] == tag: 418 # v = q.boundary_values[i] 419 # if minval is None or v < minval: minval = v 420 # if maxval is None or v > maxval: maxval = v 421 # 422 # if minval is None or maxval is None: 423 # print 'Sorry no information about tag %s' %tag 424 # else: 425 # print ' Quantity %s, tag %s: min = %12.8f, max = %12.8f'\ 426 # %(name, tag, minval, maxval) 370 427 371 428
Note: See TracChangeset
for help on using the changeset viewer.