Changeset 6151
- Timestamp:
- Jan 13, 2009, 1:50:07 PM (16 years ago)
- Location:
- anuga_core/source/anuga/damage_modelling
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
anuga_core/source/anuga/damage_modelling/inundation_damage.py
r6034 r6151 7 7 from math import sqrt 8 8 from Scientific.Functions.Interpolation import InterpolatingFunction 9 from Numeric import array, ravel, Float, zeros10 9 from random import choice 11 10 from types import StringType 11 12 import Numeric as num 13 12 14 13 15 try: … … 203 205 STRUCT_COLLAPSED_TITLE = "STRUCT_COLLAPSED"#"collapsed structure if 1" 204 206 STRUCT_INUNDATED_TITLE = "STRUCT_INUNDATED"#"inundated structure if 1" 205 double_brick_damage_array = array([[-kinds.default_float_kind.MAX, 0.0],206 [0.0-depth_epsilon, 0.0],207 [0.0,0.016],208 [0.1,0.150],209 [0.3,0.425],210 [0.5,0.449],211 [1.0,0.572],212 [1.5,0.582],213 [2.0,0.587],214 [2.5,0.647],215 [kinds.default_float_kind.MAX,64.7]])207 double_brick_damage_array = num.array([[-kinds.default_float_kind.MAX, 0.0], 208 [0.0-depth_epsilon, 0.0], 209 [0.0,0.016], 210 [0.1,0.150], 211 [0.3,0.425], 212 [0.5,0.449], 213 [1.0,0.572], 214 [1.5,0.582], 215 [2.0,0.587], 216 [2.5,0.647], 217 [kinds.default_float_kind.MAX,64.7]]) 216 218 double_brick_damage_curve = InterpolatingFunction( \ 217 ( ravel(double_brick_damage_array[:,0:1]),),218 ravel(double_brick_damage_array[:,1:]))219 220 brick_veeer_damage_array = array([[-kinds.default_float_kind.MAX, 0.0],221 [0.0-depth_epsilon, 0.0],222 [0.0,0.016],223 [0.1,0.169],224 [0.3,0.445],225 [0.5,0.472],226 [1.0,0.618],227 [1.5,0.629],228 [2.0,0.633],229 [2.5,0.694],230 [kinds.default_float_kind.MAX,69.4]])219 (num.ravel(double_brick_damage_array[:,0:1]),), 220 num.ravel(double_brick_damage_array[:,1:])) 221 222 brick_veeer_damage_array = num.array([[-kinds.default_float_kind.MAX, 0.0], 223 [0.0-depth_epsilon, 0.0], 224 [0.0,0.016], 225 [0.1,0.169], 226 [0.3,0.445], 227 [0.5,0.472], 228 [1.0,0.618], 229 [1.5,0.629], 230 [2.0,0.633], 231 [2.5,0.694], 232 [kinds.default_float_kind.MAX,69.4]]) 231 233 brick_veeer_damage_curve = InterpolatingFunction( \ 232 ( ravel(brick_veeer_damage_array[:,0:1]),),233 ravel(brick_veeer_damage_array[:,1:]))234 (num.ravel(brick_veeer_damage_array[:,0:1]),), 235 num.ravel(brick_veeer_damage_array[:,1:])) 234 236 struct_damage_curve = {'Double Brick':double_brick_damage_curve, 235 237 'Brick Veneer':brick_veeer_damage_curve} 236 238 default_struct_damage_curve = brick_veeer_damage_curve 237 239 238 contents_damage_array = array([[-kinds.default_float_kind.MAX, 0.0],240 contents_damage_array = num.array([[-kinds.default_float_kind.MAX, 0.0], 239 241 [0.0-depth_epsilon, 0.0], 240 242 [0.0,0.013], … … 247 249 [kinds.default_float_kind.MAX,98.6]]) 248 250 contents_damage_curve = InterpolatingFunction( \ 249 ( ravel(contents_damage_array[:,0:1]),),250 ravel(contents_damage_array[:,1:]))251 (num.ravel(contents_damage_array[:,0:1]),), 252 num.ravel(contents_damage_array[:,1:])) 251 253 252 254 #building collapse probability … … 312 314 313 315 # the data being created 314 struct_damage = zeros(self.structure_count,Float)315 contents_damage = zeros(self.structure_count,Float)316 struct_damage = num.zeros(self.structure_count, num.Float) 317 contents_damage = num.zeros(self.structure_count, num.Float) 316 318 self.struct_inundated = ['']* self.structure_count 317 319 -
anuga_core/source/anuga/damage_modelling/test_inundation_damage.py
r5442 r6151 17 17 from anuga.shallow_water.data_manager import get_dataobject 18 18 19 from Numeric import zeros, Float, allclose 19 import Numeric as num 20 20 21 21 … … 83 83 #Initial condition - with jumps 84 84 bed = domain.quantities['elevation'].vertex_values 85 stage = zeros(bed.shape,Float)85 stage = num.zeros(bed.shape, num.Float) 86 86 87 87 h = 0.3 … … 153 153 #Initial condition - with jumps 154 154 bed = domain.quantities['elevation'].vertex_values 155 stage = zeros(bed.shape,Float)155 stage = num.zeros(bed.shape, num.Float) 156 156 157 157 h = 30. … … 308 308 #print "struct_loss",struct_loss 309 309 struct_loss = [float(x) for x in struct_loss] 310 assert allclose(struct_loss,[10,150,16.9,0])310 assert num.allclose(struct_loss,[10,150,16.9,0]) 311 311 depth = csv_handle.get_column(EventDamageModel.MAX_DEPTH_TITLE) 312 312 #print "depth",depth 313 313 depth = [float(x) for x in depth] 314 assert allclose(depth,[5.5,4.5,0.1,-0.3])314 assert num.allclose(depth,[5.5,4.5,0.1,-0.3]) 315 315 os.remove(sww.filename) 316 316 os.remove(csv_file) … … 395 395 #print "struct_loss",struct_loss 396 396 struct_loss = [float(x) for x in struct_loss] 397 assert allclose(struct_loss,[10,150,16.9,0])397 assert num.allclose(struct_loss,[10,150,16.9,0]) 398 398 depth = csv_handle.get_column(EventDamageModel.MAX_DEPTH_TITLE) 399 399 #print "depth",depth 400 400 depth = [float(x) for x in depth] 401 assert allclose(depth,[5.5,4.5,0.1,-0.3])401 assert num.allclose(depth,[5.5,4.5,0.1,-0.3]) 402 402 403 403 # Test another file … … 406 406 #print "struct_loss",struct_loss 407 407 struct_loss = [float(x) for x in struct_loss] 408 assert allclose(struct_loss,[10,150,16.9,0])408 assert num.allclose(struct_loss,[10,150,16.9,0]) 409 409 depth = csv_handle.get_column(EventDamageModel.MAX_DEPTH_TITLE) 410 410 #print "depth",depth 411 411 depth = [float(x) for x in depth] 412 assert allclose(depth,[5.5,4.5,0.1,-0.3])412 assert num.allclose(depth,[5.5,4.5,0.1,-0.3]) 413 413 os.remove(sww.filename) 414 414 os.remove(csv_file) … … 458 458 struct_costs, content_costs) 459 459 edm.calc_damage_percentages() 460 assert allclose(edm.struct_damage,[0.0,0.016,0.572,461 0.0,0.016,0.618,462 0.0,0.016,0.618])463 assert allclose(edm.contents_damage,[0.0,0.013,0.970,464 0.0,0.013,0.970,465 0.0,0.013,0.970])460 assert num.allclose(edm.struct_damage,[0.0,0.016,0.572, 461 0.0,0.016,0.618, 462 0.0,0.016,0.618]) 463 assert num.allclose(edm.contents_damage,[0.0,0.013,0.970, 464 0.0,0.013,0.970, 465 0.0,0.013,0.970]) 466 466 edm.calc_cost() 467 assert allclose(edm.struct_loss,[0.0,.16,5.72,468 0.0,.16,6.18,469 0.0,0.016,0.618])470 assert allclose(edm.contents_loss,[0.0,1.3,97,471 0.0,1.3,97,472 0.0,0.13,9.7])467 assert num.allclose(edm.struct_loss,[0.0,.16,5.72, 468 0.0,.16,6.18, 469 0.0,0.016,0.618]) 470 assert num.allclose(edm.contents_loss,[0.0,1.3,97, 471 0.0,1.3,97, 472 0.0,0.13,9.7]) 473 473 474 474 … … 476 476 edm = EventDamageModel([0.0]*17, [0.0]*17, [0.0]*17, 477 477 [0.0]*17, [0.0]*17) 478 edm.struct_damage = zeros(17,Float)479 edm.contents_damage = zeros(17,Float)478 edm.struct_damage = num.zeros(17,num.Float) 479 edm.contents_damage = num.zeros(17,num.Float) 480 480 collapse_probability = {0.4:[0], #0 481 481 0.6:[1], #1 … … 582 582 # Test values based on returned results, so not an excellent test 583 583 584 assert allclose(deps[0],0.113204555211)585 assert allclose(deps[1],11.3215)586 assert allclose(deps[2],0.0) # this value is outside both sww files584 assert num.allclose(deps[0],0.113204555211) 585 assert num.allclose(deps[1],11.3215) 586 assert num.allclose(deps[2],0.0) # this value is outside both sww files 587 587 588 588 #-------------------------------------------------------------
Note: See TracChangeset
for help on using the changeset viewer.