anuga 1.3.5__zip

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (870) hide show
  1. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/__config__.py +21 -0
  2. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/__config__.pyc +0 -0
  3. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/__init__.py +363 -0
  4. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/__init__.pyc +0 -0
  5. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/__metadata__.py +6 -0
  6. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/__metadata__.pyc +0 -0
  7. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/__init__.py +17 -0
  8. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/__init__.pyc +0 -0
  9. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/ermapper_grids.py +251 -0
  10. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/ermapper_grids.pyc +0 -0
  11. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/file_function.py +483 -0
  12. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/file_function.pyc +0 -0
  13. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/gauge.py +1080 -0
  14. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/gauge.pyc +0 -0
  15. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/general_mesh.py +865 -0
  16. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/general_mesh.pyc +0 -0
  17. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/generic_boundary_conditions.py +862 -0
  18. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/generic_boundary_conditions.pyc +0 -0
  19. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/generic_domain.py +2274 -0
  20. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/generic_domain.pyc +0 -0
  21. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/mesh_factory.py +1011 -0
  22. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/mesh_factory.pyc +0 -0
  23. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/mesh_factory_ext.pyd +0 -0
  24. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/neighbour_mesh.py +1488 -0
  25. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/neighbour_mesh.pyc +0 -0
  26. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/neighbour_mesh_ext.pyd +0 -0
  27. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/neighbour_table_ext.pyd +0 -0
  28. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/pmesh2domain.py +299 -0
  29. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/pmesh2domain.pyc +0 -0
  30. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/pmesh2domain_ext.pyd +0 -0
  31. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/quantity.py +2162 -0
  32. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/quantity.pyc +0 -0
  33. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/quantity_ext.pyd +0 -0
  34. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/region.py +321 -0
  35. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/region.pyc +0 -0
  36. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/setup.py +48 -0
  37. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/setup.pyc +0 -0
  38. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/tag_region.py +167 -0
  39. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/tag_region.pyc +0 -0
  40. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/tests/__init__.py +8 -0
  41. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/tests/show_balanced_limiters.py +87 -0
  42. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/tests/test_ermapper.py +189 -0
  43. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/tests/test_gauge.py +539 -0
  44. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/tests/test_general_mesh.py +517 -0
  45. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/tests/test_generic_boundary_conditions.py +439 -0
  46. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/tests/test_generic_domain.py +907 -0
  47. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/tests/test_ghost.py +52 -0
  48. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/tests/test_neighbour_mesh.py +1854 -0
  49. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/tests/test_pmesh2domain.py +219 -0
  50. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/tests/test_quantity.py +2859 -0
  51. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/tests/test_region.py +99 -0
  52. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/tests/test_tag_region.py +258 -0
  53. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/tests/test_util.py +1632 -0
  54. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/util.py +928 -0
  55. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/util.pyc +0 -0
  56. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/advection/__init__.py +12 -0
  57. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/advection/__init__.pyc +0 -0
  58. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/advection/advection.py +298 -0
  59. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/advection/advection.pyc +0 -0
  60. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/advection/advection_ext.pyd +0 -0
  61. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/advection/setup.py +27 -0
  62. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/advection/setup.pyc +0 -0
  63. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/advection/tests/__init__.py +8 -0
  64. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/advection/tests/test_advection.py +183 -0
  65. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/alpha_shape/__init__.py +4 -0
  66. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/alpha_shape/__init__.pyc +0 -0
  67. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/alpha_shape/alpha_shape.py +654 -0
  68. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/alpha_shape/alpha_shape.pyc +0 -0
  69. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/alpha_shape/setup.py +21 -0
  70. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/alpha_shape/setup.pyc +0 -0
  71. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/alpha_shape/tests/__init__.py +8 -0
  72. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/alpha_shape/tests/test_alpha_shape.py +402 -0
  73. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/anuga_exceptions.py +46 -0
  74. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/anuga_exceptions.pyc +0 -0
  75. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/caching/__init__.py +18 -0
  76. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/caching/__init__.pyc +0 -0
  77. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/caching/caching.py +2531 -0
  78. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/caching/caching.pyc +0 -0
  79. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/caching/dummy_classes_for_testing.py +20 -0
  80. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/caching/dummy_classes_for_testing.pyc +0 -0
  81. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/caching/setup.py +21 -0
  82. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/caching/setup.pyc +0 -0
  83. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/caching/tests/__init__.py +8 -0
  84. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/caching/tests/test_caching.py +895 -0
  85. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/compile_all.py +82 -0
  86. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/compile_all.pyc +0 -0
  87. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/config.py +273 -0
  88. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/config.pyc +0 -0
  89. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/__init__.py +6 -0
  90. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/__init__.pyc +0 -0
  91. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/geo_reference.py +478 -0
  92. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/geo_reference.pyc +0 -0
  93. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/lat_long_UTM_conversion.py +250 -0
  94. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/lat_long_UTM_conversion.pyc +0 -0
  95. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/point.py +128 -0
  96. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/point.pyc +0 -0
  97. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/redfearn.py +233 -0
  98. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/redfearn.pyc +0 -0
  99. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/setup.py +21 -0
  100. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/setup.pyc +0 -0
  101. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/tests/__init__.py +8 -0
  102. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/tests/data/projection_test_points.csv +11 -0
  103. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/tests/data/projection_test_points.lic +17 -0
  104. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/tests/data/projection_test_points_z53.csv +11 -0
  105. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/tests/data/projection_test_points_z53.lic +17 -0
  106. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/tests/data/projection_test_points_z54.csv +11 -0
  107. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/tests/data/projection_test_points_z54.lic +17 -0
  108. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/tests/data/redfearn.lic +17 -0
  109. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/tests/data/redfearn.xls +0 -0
  110. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/tests/test_geo_reference.py +716 -0
  111. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/tests/test_lat_long_UTM_conversion.py +126 -0
  112. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/tests/test_point.py +125 -0
  113. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/tests/test_redfearn.py +508 -0
  114. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/__init__.py +9 -0
  115. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/__init__.pyc +0 -0
  116. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/culvert_class.py +1627 -0
  117. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/culvert_class.pyc +0 -0
  118. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/culvert_polygons.py +114 -0
  119. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/culvert_polygons.pyc +0 -0
  120. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/culvert_routines.py +362 -0
  121. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/culvert_routines.pyc +0 -0
  122. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/new_culvert_class.py +1630 -0
  123. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/new_culvert_class.pyc +0 -0
  124. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/setup.py +21 -0
  125. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/setup.pyc +0 -0
  126. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/tests/__init__.py +8 -0
  127. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/tests/culvert_polygons_example.py +38 -0
  128. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/tests/data/example_rating_curve.csv +20 -0
  129. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/tests/data/example_rating_curve.lic +17 -0
  130. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/tests/data/example_rating_curve2.csv +20 -0
  131. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/tests/data/example_rating_curve2.lic +17 -0
  132. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/tests/data/unittests.lic +17 -0
  133. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/tests/data/unittests.xls +0 -0
  134. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/tests/run_culvert_flat_water_lev.py +173 -0
  135. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/tests/test_culvert_class.py +812 -0
  136. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/tests/test_culvert_polygons.py +84 -0
  137. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/tests/test_culvert_routines.py +586 -0
  138. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/tests/test_culvert_routines_box_10pct.py +342 -0
  139. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/tests/test_culvert_routines_box_1pct.py +342 -0
  140. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/tests/test_culvert_routines_pipe_10pct.py +338 -0
  141. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/tests/test_culvert_routines_pipe_1pct.py +338 -0
  142. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/tests/test_new_culvert_class.py +810 -0
  143. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/damage_modelling/__init__.py +9 -0
  144. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/damage_modelling/__init__.pyc +0 -0
  145. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/damage_modelling/exposure.py +223 -0
  146. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/damage_modelling/exposure.pyc +0 -0
  147. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/damage_modelling/inundation_damage.py +467 -0
  148. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/damage_modelling/inundation_damage.pyc +0 -0
  149. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/damage_modelling/setup.py +21 -0
  150. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/damage_modelling/setup.pyc +0 -0
  151. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/damage_modelling/tests/__init__.py +8 -0
  152. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/damage_modelling/tests/test_exposure.py +325 -0
  153. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/damage_modelling/tests/test_inundation_damage.py +610 -0
  154. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/error_api.py +130 -0
  155. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/error_api.pyc +0 -0
  156. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/extras.py +193 -0
  157. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/extras.pyc +0 -0
  158. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/__init__.py +54 -0
  159. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/__init__.pyc +0 -0
  160. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/csv_file.py +399 -0
  161. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/csv_file.pyc +0 -0
  162. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/mux.py +120 -0
  163. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/mux.pyc +0 -0
  164. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/netcdf.py +266 -0
  165. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/netcdf.pyc +0 -0
  166. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/pts.py +29 -0
  167. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/pts.pyc +0 -0
  168. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/setup.py +27 -0
  169. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/setup.pyc +0 -0
  170. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/sts.py +293 -0
  171. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/sts.pyc +0 -0
  172. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/sww.py +1552 -0
  173. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/sww.pyc +0 -0
  174. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/tests/__init__.py +8 -0
  175. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/tests/test_csv.py +413 -0
  176. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/tests/test_mux.py +1539 -0
  177. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/tests/test_read_sww.py +350 -0
  178. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/tests/test_sww.py +560 -0
  179. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/tests/test_ungenerate.py +283 -0
  180. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/tests/test_urs.py +217 -0
  181. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/ungenerate.py +92 -0
  182. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/ungenerate.pyc +0 -0
  183. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/urs.py +323 -0
  184. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/urs.pyc +0 -0
  185. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/urs_ext.pyd +0 -0
  186. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/__init__.py +20 -0
  187. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/__init__.pyc +0 -0
  188. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/asc2dem.py +213 -0
  189. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/asc2dem.pyc +0 -0
  190. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/calc_grid_values_ext.pyd +0 -0
  191. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/csv2sts.py +165 -0
  192. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/csv2sts.pyc +0 -0
  193. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/dem2array.py +90 -0
  194. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/dem2array.pyc +0 -0
  195. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/dem2dem.py +145 -0
  196. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/dem2dem.pyc +0 -0
  197. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/dem2pts.py +357 -0
  198. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/dem2pts.pyc +0 -0
  199. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/esri2sww.py +327 -0
  200. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/esri2sww.pyc +0 -0
  201. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/ferret2sww.py +436 -0
  202. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/ferret2sww.pyc +0 -0
  203. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/file_conversion.py +367 -0
  204. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/file_conversion.pyc +0 -0
  205. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/grd2array.py +122 -0
  206. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/grd2array.pyc +0 -0
  207. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/sdf2pts.py +181 -0
  208. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/sdf2pts.pyc +0 -0
  209. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/setup.py +29 -0
  210. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/setup.pyc +0 -0
  211. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/sts2sww_mesh.py +141 -0
  212. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/sts2sww_mesh.pyc +0 -0
  213. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/sww2array.py +321 -0
  214. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/sww2array.pyc +0 -0
  215. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/sww2dem.py +550 -0
  216. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/sww2dem.pyc +0 -0
  217. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/sww2dem_new.py +547 -0
  218. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/sww2dem_new.pyc +0 -0
  219. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/sww2pts.py +175 -0
  220. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/sww2pts.pyc +0 -0
  221. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/tests/__init__.py +8 -0
  222. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/tests/test_2pts.py +249 -0
  223. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/tests/test_csv2sts.py +118 -0
  224. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/tests/test_dem2array.py +121 -0
  225. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/tests/test_dem2dem.py +220 -0
  226. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/tests/test_dem2pts.py +411 -0
  227. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/tests/test_file_conversion.py +953 -0
  228. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/tests/test_grd2array.py +270 -0
  229. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/tests/test_sww2dem.py +1882 -0
  230. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/tests/test_urs2sts.py +2127 -0
  231. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/tests/test_urs2sww.py +628 -0
  232. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/urs2nc.py +202 -0
  233. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/urs2nc.pyc +0 -0
  234. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/urs2sts.py +316 -0
  235. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/urs2sts.pyc +0 -0
  236. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/urs2sww.py +306 -0
  237. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/urs2sww.pyc +0 -0
  238. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/urs2txt.py +71 -0
  239. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/urs2txt.pyc +0 -0
  240. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/xya2pts.py +39 -0
  241. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/xya2pts.pyc +0 -0
  242. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/__init__.py +12 -0
  243. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/__init__.pyc +0 -0
  244. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/benchmark_least_squares.py +367 -0
  245. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/benchmark_least_squares.pyc +0 -0
  246. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/fit.py +611 -0
  247. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/fit.pyc +0 -0
  248. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/fitsmooth.pyd +0 -0
  249. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/general_fit_interpolate.py +127 -0
  250. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/general_fit_interpolate.pyc +0 -0
  251. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/interpolate.py +1144 -0
  252. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/interpolate.pyc +0 -0
  253. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/interpolate2d.py +305 -0
  254. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/interpolate2d.pyc +0 -0
  255. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/profile_long_benchmark.py +79 -0
  256. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/profile_long_benchmark.pyc +0 -0
  257. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/run_long_benchmark.py +131 -0
  258. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/run_long_benchmark.pyc +0 -0
  259. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/setup.py +37 -0
  260. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/setup.pyc +0 -0
  261. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/tests/test_fit.py +1150 -0
  262. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/tests/test_interpolate.py +1952 -0
  263. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/tests/test_interpolate2d.py +469 -0
  264. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/tests/test_search_functions.py +236 -0
  265. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/ticket178_benchmark.py +66 -0
  266. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/ticket178_benchmark.pyc +0 -0
  267. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/geometry/__init__.py +11 -0
  268. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/geometry/__init__.pyc +0 -0
  269. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/geometry/aabb.py +133 -0
  270. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/geometry/aabb.pyc +0 -0
  271. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/geometry/polygon.py +1138 -0
  272. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/geometry/polygon.pyc +0 -0
  273. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/geometry/polygon_ext.pyd +0 -0
  274. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/geometry/polygon_function.py +133 -0
  275. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/geometry/polygon_function.pyc +0 -0
  276. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/geometry/quad.py +190 -0
  277. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/geometry/quad.pyc +0 -0
  278. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/geometry/setup.py +27 -0
  279. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/geometry/setup.pyc +0 -0
  280. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/geometry/tests/__init__.py +8 -0
  281. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/geometry/tests/test_geometry.py +110 -0
  282. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/geometry/tests/test_polygon.py +1994 -0
  283. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/geospatial_data/__init__.py +9 -0
  284. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/geospatial_data/__init__.pyc +0 -0
  285. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/geospatial_data/geospatial_data.py +1698 -0
  286. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/geospatial_data/geospatial_data.pyc +0 -0
  287. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/geospatial_data/setup.py +21 -0
  288. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/geospatial_data/setup.pyc +0 -0
  289. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/geospatial_data/tests/test_geospatial_data.py +1853 -0
  290. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/__init__.py +11 -0
  291. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/__init__.pyc +0 -0
  292. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/add_csv_header.py +136 -0
  293. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/add_csv_header.pyc +0 -0
  294. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/file_length.py +14 -0
  295. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/file_length.pyc +0 -0
  296. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/maxasc.py +96 -0
  297. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/maxasc.pyc +0 -0
  298. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/order_boundary.py +109 -0
  299. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/order_boundary.pyc +0 -0
  300. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/setup.py +22 -0
  301. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/setup.pyc +0 -0
  302. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/tests/__init__.py +8 -0
  303. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/tests/perthAll_stage_250m.lic +17 -0
  304. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/tests/perthAll_stage_250m_all.lic +17 -0
  305. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/tests/perthAll_stage_original.lic +17 -0
  306. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/tests/test1.asc +17 -0
  307. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/tests/test1.lic +17 -0
  308. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/tests/test1_bad_num_lines.asc +16 -0
  309. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/tests/test1_bad_num_lines.lic +17 -0
  310. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/tests/test1_header_differs.asc +17 -0
  311. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/tests/test1_header_differs.lic +17 -0
  312. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/tests/test1_wrong_num_columns.asc +17 -0
  313. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/tests/test1_wrong_num_columns.lic +17 -0
  314. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/tests/test2.asc +17 -0
  315. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/tests/test2.expected.asc +17 -0
  316. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/tests/test2.expected.lic +17 -0
  317. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/tests/test2.lic +17 -0
  318. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/tests/test3.asc +17 -0
  319. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/tests/test3.expected.asc +17 -0
  320. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/tests/test3.expected.lic +17 -0
  321. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/tests/test3.lic +17 -0
  322. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/tests/test_maxasc.py +150 -0
  323. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/tests/test_order_boundary.py +397 -0
  324. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/load_mesh/__init__.py +4 -0
  325. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/load_mesh/__init__.pyc +0 -0
  326. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/load_mesh/loadASCII.py +1073 -0
  327. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/load_mesh/loadASCII.pyc +0 -0
  328. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/load_mesh/setup.py +21 -0
  329. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/load_mesh/setup.pyc +0 -0
  330. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/load_mesh/tests/test_loadASCII.py +544 -0
  331. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/mesh_engine/__init__.py +4 -0
  332. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/mesh_engine/__init__.pyc +0 -0
  333. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/mesh_engine/compile.py +9 -0
  334. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/mesh_engine/compile.pyc +0 -0
  335. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/mesh_engine/mesh_engine.py +221 -0
  336. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/mesh_engine/mesh_engine.pyc +0 -0
  337. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/mesh_engine/mesh_engine_c_layer.pyd +0 -0
  338. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/mesh_engine/setup.py +29 -0
  339. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/mesh_engine/setup.pyc +0 -0
  340. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/mesh_engine/tests/test_generate_mesh.py +470 -0
  341. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/__init__.py +11 -0
  342. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/__init__.pyc +0 -0
  343. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/base_operator.py +125 -0
  344. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/base_operator.pyc +0 -0
  345. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/boundary_flux_integral_operator.py +79 -0
  346. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/boundary_flux_integral_operator.pyc +0 -0
  347. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/change_friction_operator.py +240 -0
  348. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/change_friction_operator.pyc +0 -0
  349. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/collect_max_quantities_operator.py +142 -0
  350. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/collect_max_quantities_operator.pyc +0 -0
  351. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/collect_max_stage_operator.py +85 -0
  352. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/collect_max_stage_operator.pyc +0 -0
  353. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/compile_all.py +16 -0
  354. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/compile_all.pyc +0 -0
  355. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/elliptic_operator.py +495 -0
  356. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/elliptic_operator.pyc +0 -0
  357. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/erosion_operators.py +859 -0
  358. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/erosion_operators.pyc +0 -0
  359. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/kinematic_viscosity_operator.py +563 -0
  360. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/kinematic_viscosity_operator.pyc +0 -0
  361. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/kinematic_viscosity_operator_ext.pyd +0 -0
  362. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/mannings_operator.py +87 -0
  363. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/mannings_operator.pyc +0 -0
  364. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/mannings_operator_ext.pyd +0 -0
  365. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/rate_operators.py +431 -0
  366. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/rate_operators.pyc +0 -0
  367. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/set_elevation.py +290 -0
  368. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/set_elevation.pyc +0 -0
  369. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/set_elevation_operator.py +148 -0
  370. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/set_elevation_operator.pyc +0 -0
  371. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/set_friction_operators.py +159 -0
  372. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/set_friction_operators.pyc +0 -0
  373. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/set_quantity.py +172 -0
  374. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/set_quantity.pyc +0 -0
  375. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/set_quantity_operator.py +158 -0
  376. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/set_quantity_operator.pyc +0 -0
  377. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/set_stage.py +131 -0
  378. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/set_stage.pyc +0 -0
  379. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/set_stage_operator.py +135 -0
  380. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/set_stage_operator.pyc +0 -0
  381. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/set_w_uh_vh_operator.py +170 -0
  382. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/set_w_uh_vh_operator.pyc +0 -0
  383. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/setup.py +33 -0
  384. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/setup.pyc +0 -0
  385. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/tests/test_base_operator.py +51 -0
  386. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/tests/test_boundary_flux_integral_operator.py +98 -0
  387. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/tests/test_erosion_operators.py +344 -0
  388. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/tests/test_kinematic_viscosity_operator.py +1366 -0
  389. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/tests/test_rate_operators.py +888 -0
  390. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/tests/test_set_elevation_operator.py +1034 -0
  391. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/tests/test_set_quantity.py +511 -0
  392. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/tests/test_set_stage_operator.py +491 -0
  393. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/tests/test_set_w_uh_vh_operators.py +211 -0
  394. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/__init__.py +31 -0
  395. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/__init__.pyc +0 -0
  396. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/config.py +14 -0
  397. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/config.pyc +0 -0
  398. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/distribute_mesh.py +1682 -0
  399. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/distribute_mesh.pyc +0 -0
  400. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_advection.py +205 -0
  401. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_advection.pyc +0 -0
  402. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_api.py +467 -0
  403. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_api.pyc +0 -0
  404. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_boyd_box_operator.py +332 -0
  405. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_boyd_box_operator.pyc +0 -0
  406. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_boyd_pipe_operator.py +283 -0
  407. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_boyd_pipe_operator.pyc +0 -0
  408. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_generic_communications.py +207 -0
  409. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_generic_communications.pyc +0 -0
  410. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_inlet.py +605 -0
  411. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_inlet.pyc +0 -0
  412. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_inlet_enquiry.py +228 -0
  413. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_inlet_enquiry.pyc +0 -0
  414. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_inlet_operator.py +281 -0
  415. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_inlet_operator.pyc +0 -0
  416. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_internal_boundary_operator.py +230 -0
  417. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_internal_boundary_operator.pyc +0 -0
  418. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_meshes.py +445 -0
  419. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_meshes.pyc +0 -0
  420. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_operator_factory.py +959 -0
  421. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_operator_factory.pyc +0 -0
  422. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_shallow_water.py +282 -0
  423. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_shallow_water.pyc +0 -0
  424. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_structure_operator.py +1241 -0
  425. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_structure_operator.pyc +0 -0
  426. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_weir_orifice_trapezoid_operator.py +281 -0
  427. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_weir_orifice_trapezoid_operator.pyc +0 -0
  428. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/print_stats.py +205 -0
  429. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/print_stats.pyc +0 -0
  430. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/pypar_ext.py +528 -0
  431. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/pypar_ext.pyc +0 -0
  432. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/sequential_distribute.py +309 -0
  433. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/sequential_distribute.pyc +0 -0
  434. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/setup.py +100 -0
  435. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/setup.pyc +0 -0
  436. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/AppShell.py +345 -0
  437. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/AppShell.pyc +0 -0
  438. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/Pmw.py +9253 -0
  439. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/Pmw.pyc +0 -0
  440. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/PmwBlt.py +671 -0
  441. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/PmwBlt.pyc +0 -0
  442. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/PmwColor.py +389 -0
  443. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/PmwColor.pyc +0 -0
  444. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/ProgressBar.py +80 -0
  445. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/ProgressBar.pyc +0 -0
  446. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/__init__.py +4 -0
  447. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/__init__.pyc +0 -0
  448. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/compile.py +24 -0
  449. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/compile.pyc +0 -0
  450. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/cursornames.py +8 -0
  451. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/cursornames.pyc +0 -0
  452. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/exesetup.py +24 -0
  453. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/exesetup.pyc +0 -0
  454. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/graphical_mesh_generator.py +1519 -0
  455. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/graphical_mesh_generator.pyc +0 -0
  456. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/addVertex.gif +0 -0
  457. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/addVertex.lic +16 -0
  458. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/autoSegGiveAlpha.gif +0 -0
  459. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/autoSegGiveAlpha.lic +16 -0
  460. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/default.gif +0 -0
  461. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/default.lic +16 -0
  462. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/edit.gif +0 -0
  463. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/edit.lic +16 -0
  464. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/hole.gif +0 -0
  465. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/hole.lic +16 -0
  466. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/joinVer.gif +0 -0
  467. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/joinVer.lic +16 -0
  468. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/meshGen.gif +0 -0
  469. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/meshGen.lic +16 -0
  470. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/no_see.gif +0 -0
  471. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/no_see.lic +16 -0
  472. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/pointer.gif +0 -0
  473. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/pointer.lic +16 -0
  474. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/region.gif +0 -0
  475. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/region.lic +16 -0
  476. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/see.gif +0 -0
  477. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/see.lic +16 -0
  478. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/segment.gif +0 -0
  479. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/segment.lic +16 -0
  480. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/sep.gif +0 -0
  481. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/sep.lic +16 -0
  482. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/vertex.gif +0 -0
  483. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/vertex.lic +16 -0
  484. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/zoom0.5.gif +0 -0
  485. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/zoom0.5.lic +16 -0
  486. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/zoom2.gif +0 -0
  487. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/zoom2.lic +16 -0
  488. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/zoomToMesh.gif +0 -0
  489. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/zoomToMesh.lic +16 -0
  490. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/mesh.py +2416 -0
  491. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/mesh.pyc +0 -0
  492. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/mesh_interface.py +373 -0
  493. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/mesh_interface.pyc +0 -0
  494. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/mesh_quadtree.py +130 -0
  495. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/mesh_quadtree.pyc +0 -0
  496. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/run_setup.py +43 -0
  497. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/run_setup.pyc +0 -0
  498. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/setup.py +22 -0
  499. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/setup.pyc +0 -0
  500. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/tests/test_mesh.py +2129 -0
  501. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/tests/test_mesh_interface.py +988 -0
  502. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/tests/test_meshquad.py +189 -0
  503. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/timing.py +150 -0
  504. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/timing.pyc +0 -0
  505. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/toolbarbutton.py +80 -0
  506. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/toolbarbutton.pyc +0 -0
  507. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/ungen_example.py +69 -0
  508. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/ungen_example.pyc +0 -0
  509. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/view_tsh.py +47 -0
  510. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/view_tsh.pyc +0 -0
  511. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/visualmesh.py +302 -0
  512. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/visualmesh.pyc +0 -0
  513. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pymetis/__init__.py +6 -0
  514. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pymetis/__init__.pyc +0 -0
  515. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pymetis/metis_ext.pyd +0 -0
  516. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pymetis/setup.py +54 -0
  517. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pymetis/setup.pyc +0 -0
  518. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pymetis/tests/__init__.py +8 -0
  519. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pymetis/tests/test_metis.py +141 -0
  520. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/setup.py +49 -0
  521. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/setup.pyc +0 -0
  522. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/__init__.py +12 -0
  523. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/__init__.pyc +0 -0
  524. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/boundaries.py +1028 -0
  525. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/boundaries.pyc +0 -0
  526. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/checkpoint.py +118 -0
  527. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/checkpoint.pyc +0 -0
  528. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/forcing.py +1339 -0
  529. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/forcing.pyc +0 -0
  530. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/most2nc.py +101 -0
  531. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/most2nc.pyc +0 -0
  532. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/setup.py +37 -0
  533. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/setup.pyc +0 -0
  534. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/shallow_water_domain.py +3114 -0
  535. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/shallow_water_domain.pyc +0 -0
  536. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/shallow_water_ext.pyd +0 -0
  537. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/swDE1_domain_ext.pyd +0 -0
  538. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/swb2_domain.py +576 -0
  539. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/swb2_domain.pyc +0 -0
  540. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/swb2_domain_ext.pyd +0 -0
  541. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/sww_interrogate.py +652 -0
  542. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/sww_interrogate.pyc +0 -0
  543. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/__init__.py +8 -0
  544. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/data/polygon_values_example.csv +46 -0
  545. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/data/polygon_values_example.lic +17 -0
  546. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/data/test_points_large.csv +7855 -0
  547. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/data/test_points_large.lic +17 -0
  548. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/data/test_points_small.csv +17 -0
  549. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/data/test_points_small.lic +17 -0
  550. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/test_DE1_domain.py +111 -0
  551. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/test_data_manager.py +879 -0
  552. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/test_forcing.py +2271 -0
  553. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/test_loadsave.py +212 -0
  554. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/test_local_extrapolation_and_flux_updating.py +114 -0
  555. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/test_most2nc.py +52 -0
  556. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/test_shallow_water_domain.py +8670 -0
  557. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/test_swb2_domain.py +106 -0
  558. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/test_sww_interrogate.py +888 -0
  559. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/test_system.py +193 -0
  560. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/1-z.grd-e-mux2 +0 -0
  561. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/1-z.grd-n-mux2 +0 -0
  562. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/1-z.grd-z-mux2 +0 -0
  563. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/1-z.lic +55 -0
  564. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/2-z.grd-e-mux2 +0 -0
  565. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/2-z.grd-n-mux2 +0 -0
  566. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/2-z.grd-z-mux2 +0 -0
  567. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/2-z.lic +55 -0
  568. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/3-z.grd-e-mux2 +0 -0
  569. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/3-z.grd-n-mux2 +0 -0
  570. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/3-z.grd-z-mux2 +0 -0
  571. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/3-z.lic +55 -0
  572. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_1_0.csv +252 -0
  573. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_1_0.lic +25 -0
  574. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_1_1.csv +252 -0
  575. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_1_1.lic +25 -0
  576. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_1_2.csv +252 -0
  577. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_1_2.lic +25 -0
  578. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_1_3.csv +252 -0
  579. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_1_3.lic +25 -0
  580. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_1_4.csv +252 -0
  581. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_1_4.lic +25 -0
  582. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_2_0.csv +252 -0
  583. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_2_0.lic +25 -0
  584. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_2_1.csv +252 -0
  585. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_2_1.lic +25 -0
  586. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_2_2.csv +252 -0
  587. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_2_2.lic +25 -0
  588. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_2_3.csv +252 -0
  589. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_2_3.lic +25 -0
  590. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_2_4.csv +252 -0
  591. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_2_4.lic +25 -0
  592. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_3_0.csv +252 -0
  593. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_3_0.lic +25 -0
  594. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_3_1.csv +252 -0
  595. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_3_1.lic +25 -0
  596. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_3_2.csv +252 -0
  597. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_3_2.lic +25 -0
  598. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_3_3.csv +252 -0
  599. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_3_3.lic +25 -0
  600. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_3_4.csv +252 -0
  601. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_3_4.lic +25 -0
  602. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_combined_0.csv +252 -0
  603. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_combined_0.lic +25 -0
  604. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_combined_1.csv +252 -0
  605. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_combined_1.lic +25 -0
  606. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_combined_2.csv +252 -0
  607. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_combined_2.lic +25 -0
  608. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_combined_3.csv +252 -0
  609. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_combined_3.lic +25 -0
  610. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_combined_4.csv +252 -0
  611. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_combined_4.lic +25 -0
  612. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_1_0.csv +252 -0
  613. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_1_0.lic +25 -0
  614. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_1_1.csv +252 -0
  615. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_1_1.lic +25 -0
  616. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_1_2.csv +252 -0
  617. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_1_2.lic +25 -0
  618. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_1_3.csv +252 -0
  619. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_1_3.lic +25 -0
  620. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_1_4.csv +252 -0
  621. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_1_4.lic +25 -0
  622. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_2_0.csv +252 -0
  623. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_2_0.lic +25 -0
  624. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_2_1.csv +252 -0
  625. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_2_1.lic +25 -0
  626. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_2_2.csv +252 -0
  627. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_2_2.lic +25 -0
  628. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_2_3.csv +252 -0
  629. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_2_3.lic +25 -0
  630. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_2_4.csv +252 -0
  631. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_2_4.lic +25 -0
  632. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_3_0.csv +252 -0
  633. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_3_0.lic +25 -0
  634. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_3_1.csv +252 -0
  635. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_3_1.lic +25 -0
  636. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_3_2.csv +252 -0
  637. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_3_2.lic +25 -0
  638. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_3_3.csv +252 -0
  639. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_3_3.lic +25 -0
  640. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_3_4.csv +252 -0
  641. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_3_4.lic +25 -0
  642. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_combined_0.csv +252 -0
  643. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_combined_0.lic +25 -0
  644. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_combined_1.csv +252 -0
  645. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_combined_1.lic +25 -0
  646. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_combined_2.csv +252 -0
  647. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_combined_2.lic +25 -0
  648. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_combined_3.csv +252 -0
  649. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_combined_3.lic +25 -0
  650. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_combined_4.csv +252 -0
  651. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_combined_4.lic +25 -0
  652. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/thinned_bound_order_test.lic +18 -0
  653. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/thinned_bound_order_test.txt +6 -0
  654. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_1_0.csv +252 -0
  655. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_1_0.lic +25 -0
  656. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_1_1.csv +252 -0
  657. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_1_1.lic +25 -0
  658. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_1_2.csv +252 -0
  659. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_1_2.lic +25 -0
  660. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_1_3.csv +252 -0
  661. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_1_3.lic +25 -0
  662. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_1_4.csv +252 -0
  663. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_1_4.lic +25 -0
  664. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_2_0.csv +252 -0
  665. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_2_0.lic +25 -0
  666. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_2_1.csv +252 -0
  667. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_2_1.lic +25 -0
  668. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_2_2.csv +252 -0
  669. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_2_2.lic +25 -0
  670. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_2_3.csv +252 -0
  671. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_2_3.lic +25 -0
  672. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_2_4.csv +252 -0
  673. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_2_4.lic +25 -0
  674. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_3_0.csv +252 -0
  675. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_3_0.lic +25 -0
  676. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_3_1.csv +252 -0
  677. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_3_1.lic +25 -0
  678. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_3_2.csv +252 -0
  679. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_3_2.lic +25 -0
  680. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_3_3.csv +252 -0
  681. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_3_3.lic +25 -0
  682. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_3_4.csv +252 -0
  683. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_3_4.lic +25 -0
  684. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_combined_0.csv +252 -0
  685. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_combined_0.lic +25 -0
  686. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_combined_1.csv +252 -0
  687. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_combined_1.lic +25 -0
  688. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_combined_2.csv +252 -0
  689. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_combined_2.lic +25 -0
  690. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_combined_3.csv +252 -0
  691. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_combined_3.lic +25 -0
  692. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_combined_4.csv +252 -0
  693. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_combined_4.lic +25 -0
  694. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tsh2sww.py +65 -0
  695. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tsh2sww.pyc +0 -0
  696. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/__init__.py +5 -0
  697. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/__init__.pyc +0 -0
  698. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/boyd_box_operator.py +380 -0
  699. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/boyd_box_operator.pyc +0 -0
  700. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/boyd_box_operator_Amended3.py +245 -0
  701. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/boyd_box_operator_Amended3.pyc +0 -0
  702. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/boyd_pipe_operator.py +305 -0
  703. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/boyd_pipe_operator.pyc +0 -0
  704. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/inlet.py +289 -0
  705. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/inlet.pyc +0 -0
  706. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/inlet_enquiry.py +146 -0
  707. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/inlet_enquiry.pyc +0 -0
  708. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/inlet_operator.py +229 -0
  709. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/inlet_operator.pyc +0 -0
  710. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/internal_boundary_functions.py +431 -0
  711. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/internal_boundary_functions.pyc +0 -0
  712. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/internal_boundary_operator.py +169 -0
  713. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/internal_boundary_operator.pyc +0 -0
  714. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/riverwall.py +738 -0
  715. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/riverwall.pyc +0 -0
  716. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/setup.py +24 -0
  717. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/setup.pyc +0 -0
  718. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/structure_operator.py +757 -0
  719. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/structure_operator.pyc +0 -0
  720. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/tests/data/hecras_bridge_table.csv +105 -0
  721. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/tests/data/inlet_operator_test1.lic +17 -0
  722. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/tests/data/inlet_operator_test1.tms +0 -0
  723. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/tests/data/inlet_operator_test2.lic +17 -0
  724. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/tests/data/inlet_operator_test2.tms +0 -0
  725. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/tests/data/test_hydrograph.tms +0 -0
  726. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/tests/test_boyd_box_operator.py +2623 -0
  727. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/tests/test_boyd_pipe_operator.py +482 -0
  728. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/tests/test_inlet_operator.py +311 -0
  729. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/tests/test_internal_boundary_functions.py +96 -0
  730. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/tests/test_riverwall_structure.py +619 -0
  731. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/tests/test_weir_orifice_trapezoid_operator.py +650 -0
  732. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/weir_orifice_trapezoid_operator.py +387 -0
  733. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/weir_orifice_trapezoid_operator.pyc +0 -0
  734. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/test_all.py +282 -0
  735. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/test_all.pyc +0 -0
  736. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/__init__.py +13 -0
  737. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/__init__.pyc +0 -0
  738. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/eqf.py +147 -0
  739. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/eqf.pyc +0 -0
  740. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/eqf_v2.py +559 -0
  741. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/eqf_v2.pyc +0 -0
  742. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/okada_tsunami.py +347 -0
  743. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/okada_tsunami.pyc +0 -0
  744. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/setup.py +27 -0
  745. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/setup.pyc +0 -0
  746. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/smf.py +467 -0
  747. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/smf.pyc +0 -0
  748. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/tests/data/fullokada_MS.lic +23 -0
  749. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/tests/data/fullokada_MS.txt +36 -0
  750. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/tests/data/fullokada_SP.lic +23 -0
  751. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/tests/data/fullokada_SP.txt +36 -0
  752. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/tests/data/fullokada_SS.lic +23 -0
  753. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/tests/data/fullokada_SS.txt +36 -0
  754. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/tests/okada_tsunami_octave_95.txt +101 -0
  755. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/tests/test_eq.py +67 -0
  756. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/tests/test_okada_tsunami.py +439 -0
  757. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/tests/test_smf.py +143 -0
  758. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/tests/test_tsunami_okada.py +303 -0
  759. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/tsunami_okada.py +1885 -0
  760. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/tsunami_okada.pyc +0 -0
  761. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/__init__.py +11 -0
  762. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/__init__.pyc +0 -0
  763. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/argparsing.py +76 -0
  764. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/argparsing.pyc +0 -0
  765. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/cg_ext.pyd +0 -0
  766. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/cg_solve.py +327 -0
  767. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/cg_solve.pyc +0 -0
  768. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/compile.py +497 -0
  769. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/compile.pyc +0 -0
  770. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/csv_tools.py +121 -0
  771. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/csv_tools.pyc +0 -0
  772. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/data_audit.py +404 -0
  773. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/data_audit.pyc +0 -0
  774. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/data_audit_wrapper.py +52 -0
  775. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/data_audit_wrapper.pyc +0 -0
  776. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/file_utils.py +308 -0
  777. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/file_utils.pyc +0 -0
  778. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/function_utils.py +117 -0
  779. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/function_utils.pyc +0 -0
  780. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/interp.py +318 -0
  781. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/interp.pyc +0 -0
  782. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/log.py +414 -0
  783. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/log.pyc +0 -0
  784. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/log_analyser.py +77 -0
  785. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/log_analyser.pyc +0 -0
  786. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/mem_time_equation.py +106 -0
  787. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/mem_time_equation.pyc +0 -0
  788. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/model_tools.py +457 -0
  789. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/model_tools.pyc +0 -0
  790. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/norms.py +16 -0
  791. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/norms.pyc +0 -0
  792. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/numerical_tools.py +397 -0
  793. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/numerical_tools.pyc +0 -0
  794. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/parallel_abstraction.py +67 -0
  795. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/parallel_abstraction.pyc +0 -0
  796. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/parse.py +26 -0
  797. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/parse.pyc +0 -0
  798. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/plot_utils.py +1237 -0
  799. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/plot_utils.pyc +0 -0
  800. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/quad_tree_ext.pyd +0 -0
  801. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/quantity_setting_functions.py +612 -0
  802. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/quantity_setting_functions.pyc +0 -0
  803. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/quickPlots.py +164 -0
  804. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/quickPlots.pyc +0 -0
  805. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/run_anuga_script.py +70 -0
  806. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/run_anuga_script.pyc +0 -0
  807. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/setup.py +39 -0
  808. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/setup.pyc +0 -0
  809. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/sparse.py +398 -0
  810. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/sparse.pyc +0 -0
  811. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/sparse_ext.pyd +0 -0
  812. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/sparse_matrix_ext.pyd +0 -0
  813. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/spatialInputUtil.py +1394 -0
  814. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/spatialInputUtil.pyc +0 -0
  815. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/sww_merge.py +820 -0
  816. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/sww_merge.pyc +0 -0
  817. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/system_tools.py +646 -0
  818. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/system_tools.pyc +0 -0
  819. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/terminal_width.py +60 -0
  820. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/terminal_width.pyc +0 -0
  821. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/tests/data/complex_polygon.csv +4 -0
  822. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/tests/data/complex_polygon.lic +17 -0
  823. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/tests/data/crc_test_file.lic +17 -0
  824. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/tests/data/crc_test_file.png +0 -0
  825. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/tests/data/mainland_only.csv +669 -0
  826. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/tests/data/mainland_only.lic +33 -0
  827. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/tests/data/non_complex_polygon.csv +5 -0
  828. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/tests/data/non_complex_polygon.lic +17 -0
  829. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/tests/test_cg_solve.py +569 -0
  830. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/tests/test_csv_tools.py +435 -0
  831. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/tests/test_data_audit.py +393 -0
  832. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/tests/test_file_utils.py +157 -0
  833. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/tests/test_function_utils.py +65 -0
  834. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/tests/test_log_analyser.py +89 -0
  835. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/tests/test_mem_time_equation.py +47 -0
  836. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/tests/test_numerical_tools.py +616 -0
  837. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/tests/test_plot_utils.py +455 -0
  838. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/tests/test_quantity_setting_functions.py +369 -0
  839. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/tests/test_sparse.py +215 -0
  840. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/tests/test_spatialInputUtil.py +418 -0
  841. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/tests/test_system_tools.py +483 -0
  842. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/tests/test_xml_tools.py +316 -0
  843. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/util_ext.pyd +0 -0
  844. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/where_close.py +219 -0
  845. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/where_close.pyc +0 -0
  846. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/xml_tools.py +326 -0
  847. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/xml_tools.pyc +0 -0
  848. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/validation_utilities/__init__.py +15 -0
  849. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/validation_utilities/__init__.pyc +0 -0
  850. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/validation_utilities/fabricate.py +1429 -0
  851. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/validation_utilities/fabricate.pyc +0 -0
  852. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/validation_utilities/parameters.py +24 -0
  853. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/validation_utilities/parameters.pyc +0 -0
  854. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/validation_utilities/produce_report.py +38 -0
  855. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/validation_utilities/produce_report.pyc +0 -0
  856. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/validation_utilities/run_validation.py +51 -0
  857. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/validation_utilities/run_validation.pyc +0 -0
  858. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/validation_utilities/save_parameters_tex.py +17 -0
  859. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/validation_utilities/save_parameters_tex.pyc +0 -0
  860. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/validation_utilities/setup.py +22 -0
  861. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/validation_utilities/setup.pyc +0 -0
  862. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/validation_utilities/typeset_report.py +55 -0
  863. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/validation_utilities/typeset_report.pyc +0 -0
  864. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/version.py +11 -0
  865. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/version.pyc +0 -0
  866. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga-1.3.5-py2.7.egg-info/PKG-INFO +117 -0
  867. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga-1.3.5-py2.7.egg-info/SOURCES.txt +1329 -0
  868. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga-1.3.5-py2.7.egg-info/dependency_links.txt +1 -0
  869. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga-1.3.5-py2.7.egg-info/not-zip-safe +1 -0
  870. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga-1.3.5-py2.7.egg-info/top_level.txt +1 -0
@@ -0,0 +1,2623 @@
1
+ #!/usr/bin/env python
2
+
3
+
4
+ import unittest
5
+
6
+
7
+ from anuga.structures.boyd_box_operator import Boyd_box_operator
8
+ from anuga.structures.boyd_box_operator import boyd_box_function
9
+
10
+ from anuga.abstract_2d_finite_volumes.mesh_factory import rectangular_cross
11
+ from anuga.shallow_water.shallow_water_domain import Domain
12
+ import numpy
13
+
14
+ verbose = False
15
+
16
+
17
+ class Test_boyd_box_operator(unittest.TestCase):
18
+ """
19
+ Test the boyd box operator, in particular the discharge_routine!
20
+ """
21
+
22
+ def setUp(self):
23
+ pass
24
+
25
+ def tearDown(self):
26
+ pass
27
+
28
+
29
+ def _create_domain(self,d_length,
30
+ d_width,
31
+ dx,
32
+ dy,
33
+ elevation_0,
34
+ elevation_1,
35
+ stage_0,
36
+ stage_1,
37
+ xvelocity_0 = 0.0,
38
+ xvelocity_1 = 0.0,
39
+ yvelocity_0 = 0.0,
40
+ yvelocity_1 = 0.0):
41
+
42
+ points, vertices, boundary = rectangular_cross(int(d_length/dx), int(d_width/dy),
43
+ len1=d_length, len2=d_width)
44
+ domain = Domain(points, vertices, boundary)
45
+ domain.set_name('Test_Outlet_Inlet') # Output name
46
+ domain.set_store()
47
+ domain.set_default_order(2)
48
+ domain.H0 = 0.01
49
+ domain.tight_slope_limiters = 1
50
+
51
+ #print 'Size', len(domain)
52
+
53
+ #------------------------------------------------------------------------------
54
+ # Setup initial conditions
55
+ #------------------------------------------------------------------------------
56
+
57
+ def elevation(x, y):
58
+ """Set up a elevation
59
+ """
60
+
61
+ z = numpy.zeros(x.shape,dtype='d')
62
+ z[:] = elevation_0
63
+
64
+ numpy.putmask(z, x > d_length/2, elevation_1)
65
+
66
+ return z
67
+
68
+ def stage(x,y):
69
+ """Set up stage
70
+ """
71
+ z = numpy.zeros(x.shape,dtype='d')
72
+ z[:] = stage_0
73
+
74
+ numpy.putmask(z, x > d_length/2, stage_1)
75
+
76
+ return z
77
+
78
+ def xmom(x,y):
79
+ """Set up xmomentum
80
+ """
81
+ z = numpy.zeros(x.shape,dtype='d')
82
+ z[:] = xvelocity_0*(stage_0-elevation_0)
83
+
84
+ numpy.putmask(z, x > d_length/2, xvelocity_1*(stage_1-elevation_1) )
85
+
86
+ return z
87
+
88
+ def ymom(x,y):
89
+ """Set up ymomentum
90
+ """
91
+ z = numpy.zeros(x.shape,dtype='d')
92
+ z[:] = yvelocity_0*(stage_0-elevation_0)
93
+
94
+ numpy.putmask(z, x > d_length/2, yvelocity_1*(stage_1-elevation_1) )
95
+
96
+ return z
97
+
98
+ #print 'Setting Quantities....'
99
+ domain.set_quantity('elevation', elevation) # Use function for elevation
100
+ domain.set_quantity('stage', stage) # Use function for elevation
101
+ domain.set_quantity('xmomentum', xmom)
102
+ domain.set_quantity('ymomentum', ymom)
103
+
104
+ return domain
105
+
106
+ def test_boyd_non_skew(self):
107
+ """test_boyd_non_skew
108
+
109
+ This tests the Boyd routine with data obtained from culvertw application 1.1 by IceMindserer BD Parkinson,
110
+ calculation code by MJ Boyd
111
+ """
112
+
113
+ stage_0 = 11.0
114
+ stage_1 = 10.0
115
+ elevation_0 = 10.0
116
+ elevation_1 = 10.0
117
+
118
+ domain_length = 200.0
119
+ domain_width = 200.0
120
+
121
+ culvert_length = 20.0
122
+ culvert_width = 3.66
123
+ culvert_height = 3.66
124
+ culvert_losses = {'inlet':0.5, 'outlet':1.0, 'bend':0.0, 'grate':0.0, 'pier': 0.0, 'other': 0.0}
125
+ culvert_mannings = 0.013
126
+
127
+ culvert_apron = 0.0
128
+ enquiry_gap = 5.0
129
+
130
+
131
+ expected_Q = 6.23
132
+ expected_v = 2.55
133
+ expected_d = 0.66
134
+
135
+
136
+ domain = self._create_domain(d_length=domain_length,
137
+ d_width=domain_width,
138
+ dx = 5.0,
139
+ dy = 5.0,
140
+ elevation_0 = elevation_0,
141
+ elevation_1 = elevation_1,
142
+ stage_0 = stage_0,
143
+ stage_1 = stage_1)
144
+
145
+
146
+ #print 'Defining Structures'
147
+
148
+ ep0 = numpy.array([domain_length/2-culvert_length/2, 100.0])
149
+ ep1 = numpy.array([domain_length/2+culvert_length/2, 100.0])
150
+
151
+
152
+ culvert = Boyd_box_operator(domain,
153
+ losses=culvert_losses,
154
+ width=culvert_width,
155
+ end_points=[ep0, ep1],
156
+ height=culvert_height,
157
+ apron=culvert_apron,
158
+ enquiry_gap=enquiry_gap,
159
+ use_momentum_jet=False,
160
+ use_velocity_head=False,
161
+ manning=culvert_mannings,
162
+ logging=False,
163
+ label='3.6x3.6RCBC',
164
+ verbose=False)
165
+
166
+ #culvert.determine_inflow_outflow()
167
+
168
+ ( Q, v, d ) = culvert.discharge_routine()
169
+
170
+ if verbose:
171
+ print 'test_boyd_non_skew'
172
+ print 'Q: ', Q, 'expected_Q: ', expected_Q
173
+
174
+
175
+ assert numpy.allclose(Q, expected_Q, rtol=1.0e-2) #inflow
176
+ assert numpy.allclose(v, expected_v, rtol=1.0e-2) #outflow velocity
177
+ assert numpy.allclose(d, expected_d, rtol=1.0e-2) #depth at outlet used to calc v
178
+
179
+
180
+
181
+
182
+
183
+
184
+ def test_boyd_skew(self):
185
+ """test_boyd_skew
186
+
187
+ This tests the Boyd routine with data obtained from culvertw application 1.1 by IceMindserer BD Parkinson,
188
+ calculation code by MJ Boyd
189
+ """
190
+
191
+ stage_0 = 11.0
192
+ stage_1 = 10.0
193
+ elevation_0 = 10.0
194
+ elevation_1 = 10.0
195
+
196
+ domain_length = 200.0
197
+ domain_width = 200.0
198
+
199
+ culvert_length = 20.0
200
+ culvert_width = 3.66
201
+ culvert_height = 3.66
202
+ culvert_losses = {'inlet':0.5, 'outlet':1.0, 'bend':0.0, 'grate':0.0, 'pier': 0.0, 'other': 0.0}
203
+ culvert_mannings = 0.013
204
+
205
+ culvert_apron = 0.0
206
+ enquiry_gap = 5.0
207
+
208
+ expected_Q = 6.23
209
+ expected_v = 2.55
210
+ expected_d = 0.66
211
+
212
+
213
+ domain = self._create_domain(d_length=domain_length,
214
+ d_width=domain_width,
215
+ dx = 5.0,
216
+ dy = 5.0,
217
+ elevation_0 = elevation_0,
218
+ elevation_1 = elevation_1,
219
+ stage_0 = stage_0,
220
+ stage_1 = stage_1)
221
+
222
+ #print 'Defining Structures'
223
+
224
+ a = domain_length/2 - culvert_length/2
225
+ b = domain_length/2 + culvert_length/2
226
+
227
+ el0 = numpy.array([[a, 100.0 - culvert_width/2], [a, 100.0 + culvert_width/2]])
228
+ el1 = numpy.array([[b, 100.0 - culvert_width/2], [b, 100.0 + culvert_width/2]])
229
+
230
+ culvert = Boyd_box_operator(domain,
231
+ losses=culvert_losses,
232
+ width=culvert_width,
233
+ exchange_lines=[el0, el1],
234
+ height=culvert_height,
235
+ apron=culvert_apron,
236
+ enquiry_gap=enquiry_gap,
237
+ use_momentum_jet=False,
238
+ use_velocity_head=False,
239
+ manning=culvert_mannings,
240
+ label='3.6x3.6RCBC',
241
+ verbose=False)
242
+
243
+ #culvert.determine_inflow_outflow()
244
+
245
+ ( Q, v, d ) = culvert.discharge_routine()
246
+
247
+ if verbose:
248
+ print 'test_boyd_skew'
249
+ print 'Q: ', Q, 'expected_Q: ', expected_Q
250
+
251
+ assert numpy.allclose(Q, expected_Q, rtol=1.0e-2) #inflow
252
+ assert numpy.allclose(v, expected_v, rtol=1.0e-2) #outflow velocity
253
+ assert numpy.allclose(d, expected_d, rtol=1.0e-2) #depth at outlet used to calc v
254
+
255
+
256
+ def test_boyd_non_skew_enquiry_points(self):
257
+ """test_boyd_skew_enquiry_points
258
+
259
+ This tests the Boyd routine with data obtained from culvertw application 1.1 by IceMindserer BD Parkinson,
260
+ calculation code by MJ Boyd
261
+ """
262
+
263
+ stage_0 = 11.0
264
+ stage_1 = 10.0
265
+ elevation_0 = 10.0
266
+ elevation_1 = 10.0
267
+
268
+ domain_length = 200.0
269
+ domain_width = 200.0
270
+
271
+ culvert_length = 20.0
272
+ culvert_width = 3.66
273
+ culvert_height = 3.66
274
+ culvert_losses = {'inlet':0.5, 'outlet':1.0, 'bend':0.0, 'grate':0.0, 'pier': 0.0, 'other': 0.0}
275
+ culvert_mannings = 0.013
276
+
277
+ culvert_apron = 0.0
278
+ enquiry_gap = 5.0
279
+
280
+ expected_Q = 6.23
281
+ expected_v = 2.55
282
+ expected_d = 0.66
283
+
284
+
285
+ # Probably no need to change below here
286
+
287
+ domain = self._create_domain(d_length=domain_length,
288
+ d_width=domain_width,
289
+ dx = 5.0,
290
+ dy = 5.0,
291
+ elevation_0 = elevation_0,
292
+ elevation_1 = elevation_1,
293
+ stage_0 = stage_0,
294
+ stage_1 = stage_1)
295
+
296
+
297
+ #print 'Defining Structures'
298
+
299
+ a = domain_length/2 - culvert_length/2
300
+ b = domain_length/2 + culvert_length/2
301
+
302
+ el0 = numpy.array([[a, 100.0 - culvert_width/2], [a, 100.0 + culvert_width/2]])
303
+ el1 = numpy.array([[b, 100.0 - culvert_width/2], [b, 100.0 + culvert_width/2]])
304
+
305
+ enquiry_points = (numpy.array([85, 100]), numpy.array([115, 100]))
306
+
307
+ culvert = Boyd_box_operator(domain,
308
+ losses=culvert_losses,
309
+ width=culvert_width,
310
+ exchange_lines=[el0, el1],
311
+ enquiry_points=enquiry_points,
312
+ height=culvert_height,
313
+ apron=culvert_apron,
314
+ enquiry_gap=enquiry_gap,
315
+ use_momentum_jet=False,
316
+ use_velocity_head=False,
317
+ manning=culvert_mannings,
318
+ label='3.6x3.6RCBC',
319
+ verbose=False)
320
+
321
+
322
+
323
+ ( Q, v, d ) = culvert.discharge_routine()
324
+
325
+ if verbose:
326
+ print 'test_boyd_non_skew_enquiry_points'
327
+ print 'Q: ', Q, 'expected_Q: ', expected_Q
328
+ print 'v: ', v, 'expected_v: ', expected_v
329
+ print 'd: ', d, 'expected_d: ', expected_d
330
+
331
+ assert numpy.allclose(Q, expected_Q, rtol=1.0e-2) #inflow
332
+ assert numpy.allclose(v, expected_v, rtol=1.0e-2) #outflow velocity
333
+ assert numpy.allclose(d, expected_d, rtol=1.0e-2) #depth at outlet used to calc v
334
+
335
+ def test_boyd_1(self):
336
+ """test_boyd_1
337
+
338
+ This tests the Boyd routine with data obtained from culvertw application 1.1 by IceMindserer BD Parkinson,
339
+ calculation code by MJ Boyd
340
+ """
341
+
342
+
343
+ g=9.81
344
+
345
+
346
+ inlet_depth=0.150
347
+ outlet_depth=0.15
348
+ inlet_velocity=1.00
349
+ outlet_velocity=0.5
350
+
351
+ culvert_length=10.0
352
+ culvert_width=3.6
353
+ culvert_height=1.20
354
+
355
+ culvert_type='box'
356
+ manning=0.013
357
+ sum_loss=1.5
358
+
359
+ inlet_specific_energy=inlet_depth + 0.5*inlet_velocity**2/g
360
+ culvert_slope=10.0 # % Downward
361
+ z_in = 10.0
362
+ z_out = z_in-culvert_length*culvert_slope/100
363
+ E_in = z_in+inlet_depth + 0.5*inlet_velocity**2/g
364
+ E_out = z_out+outlet_depth + 0.5*outlet_velocity**2/g
365
+ delta_total_energy = E_in-E_out
366
+ inlet_specific_energy=inlet_depth + 0.5*inlet_velocity**2/g
367
+
368
+
369
+ if verbose:
370
+ print 50*'='
371
+ print 'width ',culvert_width
372
+ print 'depth ',culvert_height
373
+ print 'flow_width ',culvert_width
374
+ print 'length ' ,culvert_length
375
+ print 'driving_energy ',inlet_specific_energy
376
+ print 'delta_total_energy ',delta_total_energy
377
+ print 'outlet_enquiry_depth ',outlet_depth
378
+ print 'sum_loss ',sum_loss
379
+ print 'manning ',manning
380
+
381
+
382
+ Q, v, d, flow_area, case= boyd_box_function(culvert_width,
383
+ culvert_height,
384
+ culvert_width,
385
+ culvert_length,
386
+ inlet_specific_energy,
387
+ delta_total_energy,
388
+ outlet_depth,
389
+ sum_loss,
390
+ manning)
391
+
392
+
393
+ if verbose:
394
+ print ('%s,%.2f,%.2f,%.2f' %('ANUGAcalcsTEST01 Q-v-d',Q,v,d))
395
+ print('%s,%.2f,%.2f,%.2f' %('Spreadsheet_Boydcalcs', 0.5526, 1.146, 0.1339))
396
+
397
+ assert numpy.allclose(Q, 0.5526, rtol=1.0e-1) #inflow
398
+ assert numpy.allclose(v, 1.146, rtol=1.0e-1) #outflow velocity
399
+ assert numpy.allclose(d, 0.1339, rtol=1.0e-1) #depth at outlet used to calc v
400
+
401
+
402
+
403
+
404
+ def test_boyd_1_operator(self):
405
+ """test_boyd_non_skew
406
+
407
+ This tests the Boyd routine with data obtained from culvertw application 1.1 by IceMindserer BD Parkinson,
408
+ calculation code by MJ Boyd
409
+ """
410
+
411
+ g=9.81
412
+
413
+
414
+ inlet_depth=0.150
415
+ outlet_depth=0.150
416
+ inlet_velocity=1.00
417
+ outlet_velocity=0.5
418
+
419
+ culvert_length=10.0
420
+ culvert_width=3.6
421
+ culvert_height=1.20
422
+
423
+ culvert_type='box'
424
+
425
+ #sum_loss=1.5
426
+
427
+ inlet_specific_energy=inlet_depth + 0.5*inlet_velocity**2/g
428
+ culvert_slope=10.0 # % Downward
429
+ z_in = 10.0
430
+ z_out = z_in-culvert_length*culvert_slope/100
431
+ E_in = z_in+inlet_depth + 0.5*inlet_velocity**2/g
432
+ E_out = z_out+outlet_depth + 0.5*outlet_velocity**2/g
433
+ delta_total_energy = E_in-E_out
434
+ inlet_specific_energy=inlet_depth + 0.5*inlet_velocity**2/g
435
+
436
+
437
+ elevation_0 = z_in
438
+ elevation_1 = z_out
439
+
440
+ stage_0 = elevation_0 + inlet_depth
441
+ stage_1 = elevation_1 + outlet_depth
442
+
443
+
444
+ domain_length = 200.0
445
+ domain_width = 200.0
446
+
447
+ #culvert_length = 20.0
448
+ #culvert_width = 3.66
449
+ #culvert_height = 3.66
450
+ culvert_losses = {'inlet':0.5, 'outlet':1.0, 'bend':0.0, 'grate':0.0, 'pier': 0.0, 'other': 0.0}
451
+ culvert_mannings = 0.013
452
+
453
+ culvert_apron = 0.0
454
+ enquiry_gap = 5.0
455
+
456
+
457
+ expected_Q = 0.55
458
+ expected_v = 1.15
459
+ expected_d = 0.13
460
+
461
+
462
+ domain = self._create_domain(d_length=domain_length,
463
+ d_width=domain_width,
464
+ dx = 5.0,
465
+ dy = 5.0,
466
+ elevation_0 = elevation_0,
467
+ elevation_1 = elevation_1,
468
+ stage_0 = stage_0,
469
+ stage_1 = stage_1,
470
+ xvelocity_0 = inlet_velocity,
471
+ xvelocity_1 = outlet_velocity)
472
+
473
+
474
+ #print 'Defining Structures'
475
+
476
+ ep0 = numpy.array([domain_length/2-culvert_length/2, 100.0])
477
+ ep1 = numpy.array([domain_length/2+culvert_length/2, 100.0])
478
+
479
+
480
+ culvert = Boyd_box_operator(domain,
481
+ losses=culvert_losses,
482
+ width=culvert_width,
483
+ end_points=[ep0, ep1],
484
+ height=culvert_height,
485
+ apron=culvert_apron,
486
+ enquiry_gap=enquiry_gap,
487
+ use_momentum_jet=False,
488
+ use_velocity_head=True,
489
+ manning=culvert_mannings,
490
+ logging=False,
491
+ label='3.6x1.2RCBC',
492
+ verbose=False)
493
+
494
+ #culvert.determine_inflow_outflow()
495
+
496
+ ( Q, v, d ) = culvert.discharge_routine()
497
+
498
+ if verbose:
499
+ print 'test_boyd_operator_1'
500
+ print 'expected ',expected_Q,expected_v, expected_d
501
+ print 'calc ',Q,v,d
502
+
503
+
504
+ assert numpy.allclose(Q, expected_Q, rtol=5.0e-2) #inflow
505
+ assert numpy.allclose(v, expected_v, rtol=5.0e-2) #outflow velocity
506
+ assert numpy.allclose(d, expected_d, rtol=5.0e-2) #depth at outlet used to calc v
507
+
508
+
509
+
510
+
511
+ def test_boyd_2(self):
512
+ """test_boyd_2
513
+
514
+ This tests the Boyd routine with data obtained from culvertw application 1.1 by IceMindserer BD Parkinson,
515
+ calculation code by MJ Boyd
516
+ """
517
+
518
+
519
+ g=9.81
520
+ culvert_slope=10 # Downward
521
+
522
+ inlet_depth=0.500
523
+ outlet_depth=0.700
524
+ inlet_velocity=1.0
525
+ outlet_velocity=0.50
526
+
527
+ culvert_length=10.0
528
+ culvert_width=3.60
529
+ culvert_height=1.20
530
+
531
+ culvert_type='box'
532
+ manning=0.013
533
+ sum_loss=1.5
534
+
535
+ inlet_specific_energy=inlet_depth + 0.5*inlet_velocity**2/g
536
+ z_in = 0.0
537
+ z_out = z_in-culvert_length*culvert_slope/100
538
+ E_in = z_in+inlet_depth + 0.5*inlet_velocity**2/g
539
+ E_out = z_out+outlet_depth + 0.5*outlet_velocity**2/g
540
+ delta_total_energy = E_in-E_out
541
+
542
+ Q_expected = 2.50
543
+ v_expected = 1.897
544
+ d_expected = 0.367
545
+
546
+ if verbose:
547
+ print 50*'='
548
+ print 'width ',culvert_width
549
+ print 'depth ',culvert_height
550
+ print 'flow_width ',culvert_width
551
+ print 'length ' ,culvert_length
552
+ print 'driving_energy ',inlet_specific_energy
553
+ print 'delta_total_energy ',delta_total_energy
554
+ print 'outlet_enquiry_depth ',outlet_depth
555
+ print 'sum_loss ',sum_loss
556
+ print 'manning ',manning
557
+
558
+ Q, v, d, flow_area, case= boyd_box_function(culvert_width,
559
+ culvert_height,
560
+ culvert_width,
561
+ culvert_length,
562
+ inlet_specific_energy,
563
+ delta_total_energy,
564
+ outlet_depth,
565
+ sum_loss,
566
+ manning)
567
+
568
+
569
+
570
+ if verbose:
571
+ print ('%s,%.2f,%.2f,%.2f' %('ANUGAcalcsTEST02 Q-v-d',Q,v,d))
572
+ print ('%s,%.2f,%.2f,%.2f' %('Spreadsheet_Boydcalcs', 2.508, 1.897, 0.367))
573
+
574
+ assert numpy.allclose(Q, Q_expected, rtol=1.0e-1) #inflow
575
+ assert numpy.allclose(v, v_expected, rtol=1.0e-1) #outflow velocity
576
+ assert numpy.allclose(d, d_expected, rtol=1.0e-1) #depth at outlet used to calc v
577
+
578
+
579
+ def test_boyd_2_operator(self):
580
+ """test_boyd_non_skew
581
+
582
+ This tests the Boyd routine with data obtained from culvertw application 1.1 by IceMindserer BD Parkinson,
583
+ calculation code by MJ Boyd
584
+ """
585
+
586
+ g=9.81
587
+ culvert_slope=10 # Downward
588
+
589
+ inlet_depth=0.500
590
+ outlet_depth=0.700
591
+ inlet_velocity=1.0
592
+ outlet_velocity=0.50
593
+
594
+ culvert_length=10.0
595
+ culvert_width=3.60
596
+ culvert_height=1.20
597
+
598
+ culvert_type='box'
599
+ manning=0.013
600
+ sum_loss=1.5
601
+
602
+ inlet_specific_energy=inlet_depth + 0.5*inlet_velocity**2/g
603
+ z_in = 0.0
604
+ z_out = z_in-culvert_length*culvert_slope/100
605
+ E_in = z_in+inlet_depth + 0.5*inlet_velocity**2/g
606
+ E_out = z_out+outlet_depth + 0.5*outlet_velocity**2/g
607
+ delta_total_energy = E_in-E_out
608
+
609
+
610
+
611
+ elevation_0 = z_in
612
+ elevation_1 = z_out
613
+
614
+ stage_0 = elevation_0 + inlet_depth
615
+ stage_1 = elevation_1 + outlet_depth
616
+
617
+
618
+ domain_length = 200.0
619
+ domain_width = 200.0
620
+
621
+ #culvert_length = 20.0
622
+ #culvert_width = 3.66
623
+ #culvert_height = 3.66
624
+ culvert_losses = {'inlet':0.5, 'outlet':1.0, 'bend':0.0, 'grate':0.0, 'pier': 0.0, 'other': 0.0}
625
+ culvert_mannings = 0.013
626
+
627
+ culvert_apron = 0.0
628
+ enquiry_gap = 5.0
629
+
630
+ Q_expected = 2.50
631
+ v_expected = 1.897
632
+ d_expected = 0.367
633
+
634
+
635
+ domain = self._create_domain(d_length=domain_length,
636
+ d_width=domain_width,
637
+ dx = 5.0,
638
+ dy = 5.0,
639
+ elevation_0 = elevation_0,
640
+ elevation_1 = elevation_1,
641
+ stage_0 = stage_0,
642
+ stage_1 = stage_1,
643
+ xvelocity_0 = inlet_velocity,
644
+ xvelocity_1 = outlet_velocity)
645
+
646
+
647
+ #print 'Defining Structures'
648
+
649
+ ep0 = numpy.array([domain_length/2-culvert_length/2, 100.0])
650
+ ep1 = numpy.array([domain_length/2+culvert_length/2, 100.0])
651
+
652
+
653
+ culvert = Boyd_box_operator(domain,
654
+ losses=culvert_losses,
655
+ width=culvert_width,
656
+ end_points=[ep0, ep1],
657
+ height=culvert_height,
658
+ apron=culvert_apron,
659
+ enquiry_gap=enquiry_gap,
660
+ use_momentum_jet=False,
661
+ use_velocity_head=True,
662
+ manning=culvert_mannings,
663
+ logging=False,
664
+ label='3.6x1.2RCBC',
665
+ verbose=False)
666
+
667
+ #culvert.determine_inflow_outflow()
668
+
669
+ ( Q, v, d ) = culvert.discharge_routine()
670
+
671
+ if verbose:
672
+ print 'test_boyd_operator_2'
673
+ print 'expected ',Q_expected,v_expected, d_expected
674
+ print 'calc ',Q,v,d
675
+
676
+
677
+ assert numpy.allclose(Q, Q_expected, rtol=2.0e-2) #inflow
678
+ assert numpy.allclose(v, v_expected, rtol=2.0e-2) #outflow velocity
679
+ assert numpy.allclose(d, d_expected, rtol=2.0e-2) #depth at outlet used to calc v
680
+
681
+
682
+
683
+
684
+
685
+ def test_boyd_3(self):
686
+ """test_boyd_3
687
+
688
+ This tests the Boyd routine with data obtained from culvertw application 1.1 by IceMindserer BD Parkinson,
689
+ calculation code by MJ Boyd
690
+ """
691
+
692
+
693
+ g=9.81
694
+ culvert_slope=10 # Downward
695
+
696
+ inlet_depth=1.800
697
+ outlet_depth=0.80
698
+ inlet_velocity=1.0
699
+ outlet_velocity=0.5
700
+
701
+ culvert_length=10.0
702
+ culvert_width=3.60
703
+ culvert_height=1.20
704
+
705
+ culvert_type='box'
706
+ manning=0.013
707
+ sum_loss=1.5
708
+
709
+ inlet_specific_energy=inlet_depth + 0.5*inlet_velocity**2/g
710
+ z_in = 0.0
711
+ z_out = z_in-culvert_length*culvert_slope/100
712
+ E_in = z_in+inlet_depth + 0.5*inlet_velocity**2/g
713
+ E_out = z_out+outlet_depth + 0.5*outlet_velocity**2/g
714
+ delta_total_energy = E_in-E_out
715
+
716
+
717
+ Q_expected = 13.554
718
+ v_expected = 3.329
719
+ d_expected = 1.131
720
+
721
+ if verbose:
722
+ print 50*'='
723
+ print 'width ',culvert_width
724
+ print 'depth ',culvert_height
725
+ print 'flow_width ',culvert_width
726
+ print 'length ' ,culvert_length
727
+ print 'driving_energy ',inlet_specific_energy
728
+ print 'delta_total_energy ',delta_total_energy
729
+ print 'outlet_enquiry_depth ',outlet_depth
730
+ print 'sum_loss ',sum_loss
731
+ print 'manning ',manning
732
+
733
+ Q, v, d, flow_area, case= boyd_box_function(culvert_width,
734
+ culvert_height,
735
+ culvert_width,
736
+ culvert_length,
737
+ inlet_specific_energy,
738
+ delta_total_energy,
739
+ outlet_depth,
740
+ sum_loss,
741
+ manning)
742
+
743
+
744
+
745
+
746
+ if verbose:
747
+ print ('%s,%.2f'%('SPEC_E = ',inlet_specific_energy))
748
+ print ('%s,%.2f'%('Delta E = ',delta_total_energy))
749
+ print ('%s,%.2f,%.2f,%.2f' %('ANUGAcalcsTEST03 Q-v-d',Q,v,d))
750
+ print ('%s,%.2f,%.2f,%.2f' %('Spreadsheet_Boydcalcs', 13.554, 3.329, 1.131))
751
+
752
+ assert numpy.allclose(Q, Q_expected, rtol=1.0e-2) #inflow
753
+ assert numpy.allclose(v, v_expected, rtol=1.0e-2) #outflow velocity
754
+ assert numpy.allclose(d, d_expected, rtol=1.0e-2) #depth at outlet used to calc v
755
+
756
+
757
+ def test_boyd_3_operator(self):
758
+ """test_boyd_non_skew
759
+
760
+ This tests the Boyd routine with data obtained from culvertw application 1.1 by IceMindserer BD Parkinson,
761
+ calculation code by MJ Boyd
762
+ """
763
+
764
+ g=9.81
765
+ culvert_slope=10 # Downward
766
+
767
+ inlet_depth=1.800
768
+ outlet_depth=0.80
769
+ inlet_velocity=1.0
770
+ outlet_velocity=0.5
771
+
772
+ culvert_length=10.0
773
+ culvert_width=3.60
774
+ culvert_height=1.20
775
+
776
+ culvert_type='box'
777
+ manning=0.013
778
+ sum_loss=1.5
779
+
780
+ inlet_specific_energy=inlet_depth + 0.5*inlet_velocity**2/g
781
+ z_in = 0.0
782
+ z_out = z_in-culvert_length*culvert_slope/100
783
+ E_in = z_in+inlet_depth + 0.5*inlet_velocity**2/g
784
+ E_out = z_out+outlet_depth + 0.5*outlet_velocity**2/g
785
+ delta_total_energy = E_in-E_out
786
+
787
+
788
+ Q_expected = 13.554
789
+ v_expected = 3.329
790
+ d_expected = 1.131
791
+
792
+
793
+
794
+ elevation_0 = z_in
795
+ elevation_1 = z_out
796
+
797
+ stage_0 = elevation_0 + inlet_depth
798
+ stage_1 = elevation_1 + outlet_depth
799
+
800
+
801
+ domain_length = 200.0
802
+ domain_width = 200.0
803
+
804
+ #culvert_length = 20.0
805
+ #culvert_width = 3.66
806
+ #culvert_height = 3.66
807
+ culvert_losses = {'inlet':0.5, 'outlet':1.0, 'bend':0.0, 'grate':0.0, 'pier': 0.0, 'other': 0.0}
808
+ culvert_mannings = 0.013
809
+
810
+ culvert_apron = 0.0
811
+ enquiry_gap = 5.0
812
+
813
+
814
+
815
+
816
+ domain = self._create_domain(d_length=domain_length,
817
+ d_width=domain_width,
818
+ dx = 5.0,
819
+ dy = 5.0,
820
+ elevation_0 = elevation_0,
821
+ elevation_1 = elevation_1,
822
+ stage_0 = stage_0,
823
+ stage_1 = stage_1,
824
+ xvelocity_0 = inlet_velocity,
825
+ xvelocity_1 = outlet_velocity)
826
+
827
+
828
+ #print 'Defining Structures'
829
+
830
+ ep0 = numpy.array([domain_length/2-culvert_length/2, 100.0])
831
+ ep1 = numpy.array([domain_length/2+culvert_length/2, 100.0])
832
+
833
+
834
+ culvert = Boyd_box_operator(domain,
835
+ losses=culvert_losses,
836
+ width=culvert_width,
837
+ end_points=[ep0, ep1],
838
+ height=culvert_height,
839
+ apron=culvert_apron,
840
+ enquiry_gap=enquiry_gap,
841
+ use_momentum_jet=False,
842
+ use_velocity_head=True,
843
+ manning=culvert_mannings,
844
+ logging=False,
845
+ label='3.6x1.2RCBC',
846
+ verbose=False)
847
+
848
+ #culvert.determine_inflow_outflow()
849
+
850
+ ( Q, v, d ) = culvert.discharge_routine()
851
+
852
+ if verbose:
853
+ print 'test_boyd_operator_1'
854
+ print 'expected ',Q_expected,v_expected, d_expected
855
+ print 'calc ',Q,v,d
856
+
857
+
858
+ assert numpy.allclose(Q, Q_expected, rtol=2.0e-2) #inflow
859
+ assert numpy.allclose(v, v_expected, rtol=2.0e-2) #outflow velocity
860
+ assert numpy.allclose(d, d_expected, rtol=2.0e-2) #depth at outlet used to calc v
861
+
862
+
863
+
864
+
865
+
866
+
867
+ #NOTE FROM HERE DOWN THE UNITS TEST HAVE NOT BEEN AMENDED TO ALLOW VELOCITY COMPONENT TO BE USED. ONLY ABOVE 3 TESTS WORK. PM WILL FIX THE ONES BELOW WHEN THE ABOVE 3 ARE WORKING
868
+ def test_boyd_4(self):
869
+ """test_boyd_4
870
+
871
+ This tests the Boyd routine with data obtained from culvertw application 1.1 by IceMindserer BD Parkinson,
872
+ calculation code by MJ Boyd
873
+ """
874
+ # FIXME(Ole): This test fails (20 Feb 2009)
875
+
876
+ g=9.81
877
+ culvert_slope=10 # Downward
878
+
879
+ inlet_depth=1.00
880
+ outlet_depth=0.8
881
+ inlet_velocity=1.0
882
+ outlet_velocity=0.5
883
+ culvert_length=10.0
884
+ culvert_width=3.60
885
+ culvert_height=1.20
886
+
887
+ culvert_type='box'
888
+ manning=0.013
889
+ sum_loss=1.5
890
+
891
+ inlet_specific_energy=inlet_depth + 0.5*inlet_velocity**2/g
892
+ z_in = 10.0
893
+ z_out = 10.0-culvert_length*culvert_slope/100
894
+ E_in = z_in+inlet_depth + 0.5*inlet_velocity**2/g
895
+ E_out = z_out+outlet_depth + 0.5*outlet_velocity**2/g
896
+ delta_total_energy = E_in-E_out
897
+
898
+
899
+
900
+ Q_expected = 6.609
901
+ v_expected = 2.621
902
+ d_expected = 0.70
903
+
904
+
905
+ if verbose:
906
+ print 50*'='
907
+ print 'width ',culvert_width
908
+ print 'depth ',culvert_height
909
+ print 'flow_width ',culvert_width
910
+ print 'length ' ,culvert_length
911
+ print 'driving_energy ',inlet_specific_energy
912
+ print 'delta_total_energy ',delta_total_energy
913
+ print 'outlet_enquiry_depth ',outlet_depth
914
+ print 'sum_loss ',sum_loss
915
+ print 'manning ',manning
916
+
917
+ Q, v, d, flow_area, case= boyd_box_function(culvert_width,
918
+ culvert_height,
919
+ culvert_width,
920
+ culvert_length,
921
+ inlet_specific_energy,
922
+ delta_total_energy,
923
+ outlet_depth,
924
+ sum_loss,
925
+ manning)
926
+
927
+
928
+ if verbose:
929
+ print ('%s,%.2f'%('SPEC_E = ',inlet_specific_energy))
930
+ print ('%s,%.2f'%('Delta E = ',delta_total_energy))
931
+ print ('%s,%.2f,%.2f,%.2f' %('ANUGAcalcsTEST04 Q-v-d',Q,v,d))
932
+ print ('%s,%.2f,%.2f,%.2f' %('Spreadsheet_Boydcalcs', 6.609, 2.621, 0.70))
933
+
934
+ assert numpy.allclose(Q, Q_expected, rtol=2.0e-2) #inflow
935
+ assert numpy.allclose(v, v_expected, rtol=2.0e-2) #outflow velocity
936
+ assert numpy.allclose(d, d_expected, rtol=2.0e-2) #depth at outlet used to calc v
937
+
938
+
939
+ def test_boyd_4_operator(self):
940
+ """test_boyd_non_skew
941
+
942
+ This tests the Boyd routine with data obtained from culvertw application 1.1 by IceMindserer BD Parkinson,
943
+ calculation code by MJ Boyd
944
+ """
945
+
946
+ g=9.81
947
+ culvert_slope=10 # Downward
948
+
949
+ inlet_depth=1.00
950
+ outlet_depth=0.8
951
+ inlet_velocity=1.0
952
+ outlet_velocity=0.5
953
+ culvert_length=10.0
954
+ culvert_width=3.60
955
+ culvert_height=1.20
956
+
957
+ culvert_type='box'
958
+ manning=0.013
959
+ sum_loss=1.5
960
+
961
+ inlet_specific_energy=inlet_depth + 0.5*inlet_velocity**2/g
962
+ z_in = 10.0
963
+ z_out = 10.0-culvert_length*culvert_slope/100
964
+ E_in = z_in+inlet_depth + 0.5*inlet_velocity**2/g
965
+ E_out = z_out+outlet_depth + 0.5*outlet_velocity**2/g
966
+ delta_total_energy = E_in-E_out
967
+
968
+
969
+
970
+ Q_expected = 6.609
971
+ v_expected = 2.621
972
+ d_expected = 0.70
973
+
974
+
975
+
976
+ elevation_0 = z_in
977
+ elevation_1 = z_out
978
+
979
+ stage_0 = elevation_0 + inlet_depth
980
+ stage_1 = elevation_1 + outlet_depth
981
+
982
+
983
+ domain_length = 200.0
984
+ domain_width = 200.0
985
+
986
+ #culvert_length = 20.0
987
+ #culvert_width = 3.66
988
+ #culvert_height = 3.66
989
+ culvert_losses = {'inlet':0.5, 'outlet':1.0, 'bend':0.0, 'grate':0.0, 'pier': 0.0, 'other': 0.0}
990
+ culvert_mannings = 0.013
991
+
992
+ culvert_apron = 0.0
993
+ enquiry_gap = 5.0
994
+
995
+
996
+
997
+
998
+ domain = self._create_domain(d_length=domain_length,
999
+ d_width=domain_width,
1000
+ dx = 5.0,
1001
+ dy = 5.0,
1002
+ elevation_0 = elevation_0,
1003
+ elevation_1 = elevation_1,
1004
+ stage_0 = stage_0,
1005
+ stage_1 = stage_1,
1006
+ xvelocity_0 = inlet_velocity,
1007
+ xvelocity_1 = outlet_velocity)
1008
+
1009
+
1010
+ #print 'Defining Structures'
1011
+
1012
+ ep0 = numpy.array([domain_length/2-culvert_length/2, 100.0])
1013
+ ep1 = numpy.array([domain_length/2+culvert_length/2, 100.0])
1014
+
1015
+
1016
+ culvert = Boyd_box_operator(domain,
1017
+ losses=culvert_losses,
1018
+ width=culvert_width,
1019
+ end_points=[ep0, ep1],
1020
+ height=culvert_height,
1021
+ apron=culvert_apron,
1022
+ enquiry_gap=enquiry_gap,
1023
+ use_momentum_jet=False,
1024
+ use_velocity_head=True,
1025
+ manning=culvert_mannings,
1026
+ logging=False,
1027
+ label='3.6x1.2RCBC',
1028
+ verbose=False)
1029
+
1030
+ #culvert.determine_inflow_outflow()
1031
+
1032
+ ( Q, v, d ) = culvert.discharge_routine()
1033
+
1034
+ if verbose:
1035
+ print 'test_boyd_operator_1'
1036
+ print 'expected ',Q_expected,v_expected, d_expected
1037
+ print 'calc ',Q,v,d
1038
+
1039
+
1040
+ assert numpy.allclose(Q, Q_expected, rtol=2.0e-2) #inflow
1041
+ assert numpy.allclose(v, v_expected, rtol=2.0e-2) #outflow velocity
1042
+ assert numpy.allclose(d, d_expected, rtol=2.0e-2) #depth at outlet used to calc v
1043
+
1044
+ def test_boyd_5(self):
1045
+ """test_boyd_5
1046
+
1047
+ This tests the Boyd routine with data obtained from culvertw application 1.1 by IceMindserer BD Parkinson,
1048
+ calculation code by MJ Boyd
1049
+ """
1050
+ # FIXME(Ole): This test fails (20 Feb 2009)
1051
+
1052
+ g=9.81
1053
+ culvert_slope=10 # Downward
1054
+
1055
+ inlet_depth=1.50
1056
+ inlet_velocity= 1.0
1057
+ outlet_depth=2.5
1058
+ outlet_velocity=0.5
1059
+ culvert_length=10.0
1060
+ culvert_width=3.60
1061
+ culvert_height=1.20
1062
+
1063
+ culvert_type='box'
1064
+ manning=0.013
1065
+ sum_loss=1.5
1066
+
1067
+ inlet_specific_energy=inlet_depth + 0.5*inlet_velocity**2/g
1068
+ z_in = 10.0
1069
+ z_out = 10.0-culvert_length*culvert_slope/100
1070
+ E_in = z_in+inlet_depth + 0.5*inlet_velocity**2/g
1071
+ E_out = z_out+outlet_depth + 0.5*outlet_velocity**2/g
1072
+ delta_total_energy = E_in-E_out
1073
+
1074
+ Q_expected = 2.961
1075
+ v_expected = 0.685
1076
+ d_expected = 1.20
1077
+
1078
+ if verbose:
1079
+ print 50*'='
1080
+ print 'width ',culvert_width
1081
+ print 'depth ',culvert_height
1082
+ print 'flow_width ',culvert_width
1083
+ print 'length ' ,culvert_length
1084
+ print 'driving_energy ',inlet_specific_energy
1085
+ print 'delta_total_energy ',delta_total_energy
1086
+ print 'outlet_enquiry_depth ',outlet_depth
1087
+ print 'sum_loss ',sum_loss
1088
+ print 'manning ',manning
1089
+
1090
+ Q, v, d, flow_area, case= boyd_box_function(culvert_width,
1091
+ culvert_height,
1092
+ culvert_width,
1093
+ culvert_length,
1094
+ inlet_specific_energy,
1095
+ delta_total_energy,
1096
+ outlet_depth,
1097
+ sum_loss,
1098
+ manning)
1099
+
1100
+
1101
+
1102
+ if verbose:
1103
+ print ('%s,%.3f'%('SPEC_E = ',inlet_specific_energy))
1104
+ print ('%s,%.3f'%('Delta E = ',delta_total_energy))
1105
+
1106
+ print ('%s,%.3f,%.3f,%.3f' %('ANUGAcalcsTEST05 Q-v-d',Q,v,d))
1107
+ print ('%s,%.3f,%.3f,%.3f' %('Spreadsheet_Boydcalcs',2.961, 0.685, 1.20))
1108
+
1109
+ assert numpy.allclose(Q, Q_expected, rtol=2.0e-2) #inflow
1110
+ assert numpy.allclose(v, v_expected, rtol=2.0e-2) #outflow velocity
1111
+ assert numpy.allclose(d, d_expected, rtol=2.0e-2) #depth at outlet used to calc v
1112
+
1113
+
1114
+
1115
+
1116
+ def test_boyd_5_operator(self):
1117
+ """test_boyd_non_skew
1118
+
1119
+ This tests the Boyd routine with data obtained from culvertw application 1.1 by IceMindserer BD Parkinson,
1120
+ calculation code by MJ Boyd
1121
+ """
1122
+
1123
+
1124
+ g=9.81
1125
+ culvert_slope=10 # Downward
1126
+
1127
+ inlet_depth=1.50
1128
+ inlet_velocity= 1.0
1129
+ outlet_depth=2.5
1130
+ outlet_velocity=0.5
1131
+ culvert_length=10.0
1132
+ culvert_width=3.60
1133
+ culvert_height=1.20
1134
+
1135
+ culvert_type='box'
1136
+ manning=0.013
1137
+ sum_loss=1.5
1138
+
1139
+ inlet_specific_energy=inlet_depth + 0.5*inlet_velocity**2/g
1140
+ z_in = 10.0
1141
+ z_out = 10.0-culvert_length*culvert_slope/100
1142
+ E_in = z_in+inlet_depth + 0.5*inlet_velocity**2/g
1143
+ E_out = z_out+outlet_depth + 0.5*outlet_velocity**2/g
1144
+ delta_total_energy = E_in-E_out
1145
+
1146
+ Q_expected = 2.961
1147
+ v_expected = 0.685
1148
+ d_expected = 1.20
1149
+
1150
+
1151
+
1152
+ elevation_0 = z_in
1153
+ elevation_1 = z_out
1154
+
1155
+ stage_0 = elevation_0 + inlet_depth
1156
+ stage_1 = elevation_1 + outlet_depth
1157
+
1158
+
1159
+ domain_length = 200.0
1160
+ domain_width = 200.0
1161
+
1162
+ #culvert_length = 20.0
1163
+ #culvert_width = 3.66
1164
+ #culvert_height = 3.66
1165
+ culvert_losses = {'inlet':0.5, 'outlet':1.0, 'bend':0.0, 'grate':0.0, 'pier': 0.0, 'other': 0.0}
1166
+ culvert_mannings = 0.013
1167
+
1168
+ culvert_apron = 0.0
1169
+ enquiry_gap = 5.0
1170
+
1171
+
1172
+
1173
+
1174
+ domain = self._create_domain(d_length=domain_length,
1175
+ d_width=domain_width,
1176
+ dx = 5.0,
1177
+ dy = 5.0,
1178
+ elevation_0 = elevation_0,
1179
+ elevation_1 = elevation_1,
1180
+ stage_0 = stage_0,
1181
+ stage_1 = stage_1,
1182
+ xvelocity_0 = inlet_velocity,
1183
+ xvelocity_1 = outlet_velocity)
1184
+
1185
+
1186
+ #print 'Defining Structures'
1187
+
1188
+ ep0 = numpy.array([domain_length/2-culvert_length/2, 100.0])
1189
+ ep1 = numpy.array([domain_length/2+culvert_length/2, 100.0])
1190
+
1191
+
1192
+ culvert = Boyd_box_operator(domain,
1193
+ losses=culvert_losses,
1194
+ width=culvert_width,
1195
+ end_points=[ep0, ep1],
1196
+ height=culvert_height,
1197
+ apron=culvert_apron,
1198
+ enquiry_gap=enquiry_gap,
1199
+ use_momentum_jet=False,
1200
+ use_velocity_head=True,
1201
+ manning=culvert_mannings,
1202
+ logging=False,
1203
+ label='3.6x1.2RCBC',
1204
+ verbose=False)
1205
+
1206
+ #culvert.determine_inflow_outflow()
1207
+
1208
+ ( Q, v, d ) = culvert.discharge_routine()
1209
+
1210
+ if verbose:
1211
+ print 'test_boyd_operator_1'
1212
+ print 'expected ',Q_expected,v_expected, d_expected
1213
+ print 'calc ',Q,v,d
1214
+
1215
+
1216
+ assert numpy.allclose(Q, Q_expected, rtol=2.0e-2) #inflow
1217
+ assert numpy.allclose(v, v_expected, rtol=2.0e-2) #outflow velocity
1218
+ assert numpy.allclose(d, d_expected, rtol=2.0e-2) #depth at outlet used to calc v
1219
+
1220
+
1221
+ def test_boyd_6(self):
1222
+ """test_boyd_6
1223
+
1224
+ This tests the Boyd routine with data obtained from culvertw application 1.1 by IceMindserer BD Parkinson,
1225
+ calculation code by MJ Boyd
1226
+ """
1227
+ # FIXME(Ole): This test fails (20 Feb 2009)
1228
+
1229
+ g=9.81
1230
+ culvert_slope=10 # Downward
1231
+
1232
+ inlet_depth=1.50
1233
+ inlet_velocity= 4.0
1234
+ outlet_depth=0.80
1235
+ outlet_velocity=4.0
1236
+ culvert_length=10.0
1237
+ culvert_width=3.60
1238
+ culvert_height=1.20
1239
+
1240
+ culvert_type='box'
1241
+ manning=0.013
1242
+ sum_loss=1.5
1243
+
1244
+ inlet_specific_energy=inlet_depth + 0.5*inlet_velocity**2/g
1245
+ z_in = 10.0
1246
+ z_out = 10.0-culvert_length*culvert_slope/100
1247
+ E_in = z_in+inlet_depth + 0.5*inlet_velocity**2/g
1248
+ E_out = z_out+outlet_depth + 0.5*outlet_velocity**2/g
1249
+ delta_total_energy = E_in-E_out
1250
+
1251
+ Q_expected = 15.537
1252
+ v_expected = 3.597
1253
+ d_expected = 1.20
1254
+
1255
+ if verbose:
1256
+ print 50*'='
1257
+ print 'width ',culvert_width
1258
+ print 'depth ',culvert_height
1259
+ print 'flow_width ',culvert_width
1260
+ print 'length ' ,culvert_length
1261
+ print 'driving_energy ',inlet_specific_energy
1262
+ print 'delta_total_energy ',delta_total_energy
1263
+ print 'outlet_enquiry_depth ',outlet_depth
1264
+ print 'sum_loss ',sum_loss
1265
+ print 'manning ',manning
1266
+
1267
+ Q, v, d, flow_area, case= boyd_box_function(culvert_width,
1268
+ culvert_height,
1269
+ culvert_width,
1270
+ culvert_length,
1271
+ inlet_specific_energy,
1272
+ delta_total_energy,
1273
+ outlet_depth,
1274
+ sum_loss,
1275
+ manning)
1276
+
1277
+
1278
+
1279
+
1280
+ if verbose:
1281
+ print ('%s,%.3f'%('SPEC_E = ',inlet_specific_energy))
1282
+ print ('%s,%.3f'%('Delta E = ',delta_total_energy))
1283
+
1284
+ print ('%s,%.3f,%.3f,%.3f' %('ANUGAcalcsTEST06 Q-v-d',Q,v,d))
1285
+ print ('%s,%.3f,%.3f,%.3f' %('Spreadsheet_Boydcalcs',15.537, 3.597, 1.20))
1286
+
1287
+ assert numpy.allclose(Q, Q_expected, rtol=2.0e-2) #inflow
1288
+ assert numpy.allclose(v, v_expected, rtol=2.0e-2) #outflow velocity
1289
+ assert numpy.allclose(d, d_expected, rtol=2.0e-2) #depth at outlet used to calc v
1290
+
1291
+
1292
+ def test_boyd_6_operator(self):
1293
+ """test_boyd_non_skew
1294
+
1295
+ This tests the Boyd routine with data obtained from culvertw application 1.1 by IceMindserer BD Parkinson,
1296
+ calculation code by MJ Boyd
1297
+ """
1298
+
1299
+ g=9.81
1300
+ culvert_slope=10 # Downward
1301
+
1302
+ inlet_depth=1.50
1303
+ inlet_velocity= 4.0
1304
+ outlet_depth=0.80
1305
+ outlet_velocity=4.0
1306
+ culvert_length=10.0
1307
+ culvert_width=3.60
1308
+ culvert_height=1.20
1309
+
1310
+ culvert_type='box'
1311
+ manning=0.013
1312
+ sum_loss=1.5
1313
+
1314
+ inlet_specific_energy=inlet_depth + 0.5*inlet_velocity**2/g
1315
+ z_in = 10.0
1316
+ z_out = 10.0-culvert_length*culvert_slope/100
1317
+ E_in = z_in+inlet_depth + 0.5*inlet_velocity**2/g
1318
+ E_out = z_out+outlet_depth + 0.5*outlet_velocity**2/g
1319
+ delta_total_energy = E_in-E_out
1320
+
1321
+ Q_expected = 15.537
1322
+ v_expected = 3.597
1323
+ d_expected = 1.20
1324
+
1325
+
1326
+
1327
+ elevation_0 = z_in
1328
+ elevation_1 = z_out
1329
+
1330
+ stage_0 = elevation_0 + inlet_depth
1331
+ stage_1 = elevation_1 + outlet_depth
1332
+
1333
+
1334
+ domain_length = 200.0
1335
+ domain_width = 200.0
1336
+
1337
+ #culvert_length = 20.0
1338
+ #culvert_width = 3.66
1339
+ #culvert_height = 3.66
1340
+ culvert_losses = {'inlet':0.5, 'outlet':1.0, 'bend':0.0, 'grate':0.0, 'pier': 0.0, 'other': 0.0}
1341
+ culvert_mannings = 0.013
1342
+
1343
+ culvert_apron = 0.0
1344
+ enquiry_gap = 5.0
1345
+
1346
+
1347
+
1348
+
1349
+ domain = self._create_domain(d_length=domain_length,
1350
+ d_width=domain_width,
1351
+ dx = 5.0,
1352
+ dy = 5.0,
1353
+ elevation_0 = elevation_0,
1354
+ elevation_1 = elevation_1,
1355
+ stage_0 = stage_0,
1356
+ stage_1 = stage_1,
1357
+ xvelocity_0 = inlet_velocity,
1358
+ xvelocity_1 = outlet_velocity)
1359
+
1360
+
1361
+ #print 'Defining Structures'
1362
+
1363
+ ep0 = numpy.array([domain_length/2-culvert_length/2, 100.0])
1364
+ ep1 = numpy.array([domain_length/2+culvert_length/2, 100.0])
1365
+
1366
+
1367
+ culvert = Boyd_box_operator(domain,
1368
+ losses=culvert_losses,
1369
+ width=culvert_width,
1370
+ end_points=[ep0, ep1],
1371
+ height=culvert_height,
1372
+ apron=culvert_apron,
1373
+ enquiry_gap=enquiry_gap,
1374
+ use_momentum_jet=False,
1375
+ use_velocity_head=True,
1376
+ manning=culvert_mannings,
1377
+ logging=False,
1378
+ label='3.6x1.2RCBC',
1379
+ verbose=False)
1380
+
1381
+ #culvert.determine_inflow_outflow()
1382
+
1383
+ ( Q, v, d ) = culvert.discharge_routine()
1384
+
1385
+ if verbose:
1386
+ print 'test_boyd_operator_1'
1387
+ print 'expected ',Q_expected,v_expected, d_expected
1388
+ print 'calc ',Q,v,d
1389
+
1390
+
1391
+ assert numpy.allclose(Q, Q_expected, rtol=2.0e-2) #inflow
1392
+ assert numpy.allclose(v, v_expected, rtol=2.0e-2) #outflow velocity
1393
+ assert numpy.allclose(d, d_expected, rtol=2.0e-2) #depth at outlet used to calc v
1394
+
1395
+ def test_boyd_7(self):
1396
+ """test_boyd_7
1397
+
1398
+ This tests the Boyd routine with data obtained from ??? by Petar Milevski
1399
+ """
1400
+ # FIXME(Ole): This test fails (20 Feb 2009)
1401
+
1402
+ g=9.81
1403
+
1404
+
1405
+ inlet_depth=0.150
1406
+ outlet_depth=0.15
1407
+ inlet_velocity=1.00
1408
+ outlet_velocity=0.5
1409
+
1410
+ culvert_length=10.0
1411
+ culvert_width=3.6
1412
+ culvert_height=1.20
1413
+
1414
+ culvert_type='box'
1415
+ manning=0.013
1416
+ sum_loss=1.5
1417
+
1418
+ inlet_specific_energy=inlet_depth + 0.5*inlet_velocity**2/g
1419
+ culvert_slope=1 # % Downward
1420
+ z_in = 10.0
1421
+ z_out = z_in-culvert_length*culvert_slope/100
1422
+ E_in = z_in+inlet_depth + 0.5*inlet_velocity**2/g
1423
+ E_out = z_out+outlet_depth + 0.5*outlet_velocity**2/g
1424
+ delta_total_energy = E_in-E_out
1425
+ inlet_specific_energy=inlet_depth + 0.5*inlet_velocity**2/g
1426
+
1427
+
1428
+ Q_expected = 0.5526
1429
+ v_expected = 1.146
1430
+ d_expected = 0.1339
1431
+
1432
+ if verbose:
1433
+ print 50*'='
1434
+ print 'width ',culvert_width
1435
+ print 'depth ',culvert_height
1436
+ print 'flow_width ',culvert_width
1437
+ print 'length ' ,culvert_length
1438
+ print 'driving_energy ',inlet_specific_energy
1439
+ print 'delta_total_energy ',delta_total_energy
1440
+ print 'outlet_enquiry_depth ',outlet_depth
1441
+ print 'sum_loss ',sum_loss
1442
+ print 'manning ',manning
1443
+
1444
+ Q, v, d, flow_area, case= boyd_box_function(culvert_width,
1445
+ culvert_height,
1446
+ culvert_width,
1447
+ culvert_length,
1448
+ inlet_specific_energy,
1449
+ delta_total_energy,
1450
+ outlet_depth,
1451
+ sum_loss,
1452
+ manning)
1453
+
1454
+ # Q, v, d = boyd_generalised_culvert_model(inlet_depth,
1455
+ # outlet_depth,
1456
+ # inlet_velocity,
1457
+ # outlet_velocity,
1458
+ # inlet_specific_energy,
1459
+ # delta_total_energy,
1460
+ # g,
1461
+ # culvert_length,
1462
+ # culvert_width,
1463
+ # culvert_height,
1464
+ # culvert_type,
1465
+ # manning,
1466
+ # sum_loss)
1467
+ if verbose:
1468
+ print ('%s,%.2f,%.2f,%.2f' %('ANUGAcalcsTEST01 Q-v-d',Q,v,d))
1469
+ print('%s,%.2f,%.2f,%.2f' %('Spreadsheet_Boydcalcs', Q_expected, v_expected, d_expected))
1470
+
1471
+ assert numpy.allclose(Q, Q_expected, rtol=1.0e-1) #inflow
1472
+ assert numpy.allclose(v, v_expected, rtol=1.0e-1) #outflow velocity
1473
+ assert numpy.allclose(d, d_expected, rtol=1.0e-1) #depth at outlet used to calc v
1474
+
1475
+ def test_boyd_7_operator(self):
1476
+ """test_boyd_non_skew
1477
+
1478
+ This tests the Boyd routine with data obtained from culvertw application 1.1 by IceMindserer BD Parkinson,
1479
+ calculation code by MJ Boyd
1480
+ """
1481
+
1482
+ g=9.81
1483
+
1484
+
1485
+ inlet_depth=0.150
1486
+ outlet_depth=0.15
1487
+ inlet_velocity=1.00
1488
+ outlet_velocity=0.5
1489
+
1490
+ culvert_length=10.0
1491
+ culvert_width=3.6
1492
+ culvert_height=1.20
1493
+
1494
+ culvert_type='box'
1495
+ manning=0.013
1496
+ sum_loss=1.5
1497
+
1498
+ inlet_specific_energy=inlet_depth + 0.5*inlet_velocity**2/g
1499
+ culvert_slope=1 # % Downward
1500
+ z_in = 10.0
1501
+ z_out = z_in-culvert_length*culvert_slope/100
1502
+ E_in = z_in+inlet_depth + 0.5*inlet_velocity**2/g
1503
+ E_out = z_out+outlet_depth + 0.5*outlet_velocity**2/g
1504
+ delta_total_energy = E_in-E_out
1505
+ inlet_specific_energy=inlet_depth + 0.5*inlet_velocity**2/g
1506
+
1507
+
1508
+ Q_expected = 0.5526
1509
+ v_expected = 1.146
1510
+ d_expected = 0.1339
1511
+
1512
+
1513
+
1514
+ elevation_0 = z_in
1515
+ elevation_1 = z_out
1516
+
1517
+ stage_0 = elevation_0 + inlet_depth
1518
+ stage_1 = elevation_1 + outlet_depth
1519
+
1520
+
1521
+ domain_length = 200.0
1522
+ domain_width = 200.0
1523
+
1524
+ #culvert_length = 20.0
1525
+ #culvert_width = 3.66
1526
+ #culvert_height = 3.66
1527
+ culvert_losses = {'inlet':0.5, 'outlet':1.0, 'bend':0.0, 'grate':0.0, 'pier': 0.0, 'other': 0.0}
1528
+ culvert_mannings = 0.013
1529
+
1530
+ culvert_apron = 0.0
1531
+ enquiry_gap = 5.0
1532
+
1533
+
1534
+
1535
+
1536
+ domain = self._create_domain(d_length=domain_length,
1537
+ d_width=domain_width,
1538
+ dx = 5.0,
1539
+ dy = 5.0,
1540
+ elevation_0 = elevation_0,
1541
+ elevation_1 = elevation_1,
1542
+ stage_0 = stage_0,
1543
+ stage_1 = stage_1,
1544
+ xvelocity_0 = inlet_velocity,
1545
+ xvelocity_1 = outlet_velocity)
1546
+
1547
+
1548
+ #print 'Defining Structures'
1549
+
1550
+ ep0 = numpy.array([domain_length/2-culvert_length/2, 100.0])
1551
+ ep1 = numpy.array([domain_length/2+culvert_length/2, 100.0])
1552
+
1553
+
1554
+ culvert = Boyd_box_operator(domain,
1555
+ losses=culvert_losses,
1556
+ width=culvert_width,
1557
+ end_points=[ep0, ep1],
1558
+ height=culvert_height,
1559
+ apron=culvert_apron,
1560
+ enquiry_gap=enquiry_gap,
1561
+ use_momentum_jet=False,
1562
+ use_velocity_head=True,
1563
+ manning=culvert_mannings,
1564
+ logging=False,
1565
+ label='3.6x1.2RCBC',
1566
+ verbose=False)
1567
+
1568
+ #culvert.determine_inflow_outflow()
1569
+
1570
+ ( Q, v, d ) = culvert.discharge_routine()
1571
+
1572
+ if verbose:
1573
+ print 'test_boyd_operator_1'
1574
+ print 'expected ',Q_expected,v_expected, d_expected
1575
+ print 'calc ',Q,v,d
1576
+
1577
+
1578
+ assert numpy.allclose(Q, Q_expected, rtol=2.0e-2) #inflow
1579
+ assert numpy.allclose(v, v_expected, rtol=2.0e-2) #outflow velocity
1580
+ assert numpy.allclose(d, d_expected, rtol=2.0e-2) #depth at outlet used to calc v
1581
+
1582
+
1583
+
1584
+ def test_boyd_8(self):
1585
+ """test_boyd_8
1586
+
1587
+ This tests the Boyd routine with data obtained from ??? by Petar Milevski
1588
+ """
1589
+ # FIXME(Ole): This test fails (20 Feb 2009)
1590
+
1591
+ g=9.81
1592
+ culvert_slope=1 # Downward
1593
+
1594
+ inlet_depth=0.500
1595
+ outlet_depth=0.700
1596
+ inlet_velocity=1.50
1597
+ outlet_velocity=0.50
1598
+
1599
+ culvert_length=10.0
1600
+ culvert_width=3.60
1601
+ culvert_height=1.20
1602
+
1603
+ culvert_type='box'
1604
+ manning=0.013
1605
+ sum_loss=1.5
1606
+
1607
+ inlet_specific_energy=inlet_depth + 0.5*inlet_velocity**2/g
1608
+ z_in = 0.0
1609
+ z_out = z_in-culvert_length*culvert_slope/100
1610
+ E_in = z_in+inlet_depth + 0.5*inlet_velocity**2/g
1611
+ E_out = z_out+outlet_depth + 0.5*outlet_velocity**2/g
1612
+ delta_total_energy = E_in-E_out
1613
+
1614
+
1615
+ Q_expected = 0.224
1616
+ v_expected = 0.152
1617
+ d_expected = 0.409
1618
+
1619
+ if verbose:
1620
+ print 50*'='
1621
+ print 'width ',culvert_width
1622
+ print 'depth ',culvert_height
1623
+ print 'flow_width ',culvert_width
1624
+ print 'length ' ,culvert_length
1625
+ print 'driving_energy ',inlet_specific_energy
1626
+ print 'delta_total_energy ',delta_total_energy
1627
+ print 'outlet_enquiry_depth ',outlet_depth
1628
+ print 'sum_loss ',sum_loss
1629
+ print 'manning ',manning
1630
+
1631
+ Q, v, d, flow_area, case= boyd_box_function(culvert_width,
1632
+ culvert_height,
1633
+ culvert_width,
1634
+ culvert_length,
1635
+ inlet_specific_energy,
1636
+ delta_total_energy,
1637
+ outlet_depth,
1638
+ sum_loss,
1639
+ manning)
1640
+
1641
+ # Q, v, d = boyd_generalised_culvert_model(inlet_depth,
1642
+ # outlet_depth,
1643
+ # inlet_velocity,
1644
+ # outlet_velocity,
1645
+ # inlet_specific_energy,
1646
+ # delta_total_energy,
1647
+ # g,
1648
+ # culvert_length,
1649
+ # culvert_width,
1650
+ # culvert_height,
1651
+ # culvert_type,
1652
+ # manning,
1653
+ # sum_loss)
1654
+ if verbose:
1655
+ print ('%s,%.2f,%.2f,%.2f' %('ANUGAcalcsTEST02 Q-v-d',Q,v,d))
1656
+ print('%s,%.2f,%.2f,%.2f' %('Spreadsheet_Boydcalcs', Q_expected, v_expected, d_expected))
1657
+
1658
+ assert numpy.allclose(Q, Q_expected, rtol=1.0e-1) #inflow
1659
+ assert numpy.allclose(v, v_expected, rtol=1.0e-1) #outflow velocity
1660
+ assert numpy.allclose(d, d_expected, rtol=1.0e-1) #depth at outlet used to calc v
1661
+
1662
+ def test_boyd_8_operator(self):
1663
+ """test_boyd_non_skew
1664
+
1665
+ This tests the Boyd routine with data obtained from culvertw application 1.1 by IceMindserer BD Parkinson,
1666
+ calculation code by MJ Boyd
1667
+ """
1668
+
1669
+ g=9.81
1670
+ culvert_slope=1 # Downward
1671
+
1672
+ inlet_depth=0.500
1673
+ outlet_depth=0.700
1674
+ inlet_velocity=1.50
1675
+ outlet_velocity=0.50
1676
+
1677
+ culvert_length=10.0
1678
+ culvert_width=3.60
1679
+ culvert_height=1.20
1680
+
1681
+ culvert_type='box'
1682
+ manning=0.013
1683
+ sum_loss=1.5
1684
+
1685
+ inlet_specific_energy=inlet_depth + 0.5*inlet_velocity**2/g
1686
+ z_in = 0.0
1687
+ z_out = z_in-culvert_length*culvert_slope/100
1688
+ E_in = z_in+inlet_depth + 0.5*inlet_velocity**2/g
1689
+ E_out = z_out+outlet_depth + 0.5*outlet_velocity**2/g
1690
+ delta_total_energy = E_in-E_out
1691
+
1692
+
1693
+ Q_expected = 0.224
1694
+ v_expected = 0.152
1695
+ d_expected = 0.409
1696
+
1697
+ elevation_0 = z_in
1698
+ elevation_1 = z_out
1699
+
1700
+ stage_0 = elevation_0 + inlet_depth
1701
+ stage_1 = elevation_1 + outlet_depth
1702
+
1703
+
1704
+ domain_length = 200.0
1705
+ domain_width = 200.0
1706
+
1707
+ #culvert_length = 20.0
1708
+ #culvert_width = 3.66
1709
+ #culvert_height = 3.66
1710
+ culvert_losses = {'inlet':0.5, 'outlet':1.0, 'bend':0.0, 'grate':0.0, 'pier': 0.0, 'other': 0.0}
1711
+ culvert_mannings = 0.013
1712
+
1713
+ culvert_apron = 0.0
1714
+ enquiry_gap = 5.0
1715
+
1716
+
1717
+
1718
+
1719
+ domain = self._create_domain(d_length=domain_length,
1720
+ d_width=domain_width,
1721
+ dx = 5.0,
1722
+ dy = 5.0,
1723
+ elevation_0 = elevation_0,
1724
+ elevation_1 = elevation_1,
1725
+ stage_0 = stage_0,
1726
+ stage_1 = stage_1,
1727
+ xvelocity_0 = inlet_velocity,
1728
+ xvelocity_1 = outlet_velocity)
1729
+
1730
+
1731
+ #print 'Defining Structures'
1732
+
1733
+ ep0 = numpy.array([domain_length/2-culvert_length/2, 100.0])
1734
+ ep1 = numpy.array([domain_length/2+culvert_length/2, 100.0])
1735
+
1736
+
1737
+ culvert = Boyd_box_operator(domain,
1738
+ losses=culvert_losses,
1739
+ width=culvert_width,
1740
+ end_points=[ep0, ep1],
1741
+ height=culvert_height,
1742
+ apron=culvert_apron,
1743
+ enquiry_gap=enquiry_gap,
1744
+ use_momentum_jet=False,
1745
+ use_velocity_head=True,
1746
+ manning=culvert_mannings,
1747
+ logging=False,
1748
+ label='3.6x1.2RCBC',
1749
+ verbose=False)
1750
+
1751
+ #culvert.determine_inflow_outflow()
1752
+
1753
+ ( Q, v, d ) = culvert.discharge_routine()
1754
+
1755
+ if verbose:
1756
+ print 'test_boyd_operator_1'
1757
+ print 'expected ',Q_expected,v_expected, d_expected
1758
+ print 'calc ',Q,v,d
1759
+
1760
+
1761
+ assert numpy.allclose(Q, Q_expected, rtol=1.0e-1) #inflow
1762
+ assert numpy.allclose(v, v_expected, rtol=1.0e-1) #outflow velocity
1763
+ assert numpy.allclose(d, d_expected, rtol=1.0e-1) #depth at outlet used to calc v
1764
+
1765
+
1766
+ def test_boyd_9(self):
1767
+ """test_boyd_9
1768
+
1769
+ This tests the Boyd routine with data obtained from ??? by Petar Milevski
1770
+ """
1771
+ # FIXME(Ole): This test fails (20 Feb 2009)
1772
+
1773
+ g=9.81
1774
+ culvert_slope=1 # Downward
1775
+
1776
+ inlet_depth=1.800
1777
+ outlet_depth=0.80
1778
+ inlet_velocity=1.0
1779
+ outlet_velocity=0.5
1780
+
1781
+ culvert_length=10.0
1782
+ culvert_width=3.60
1783
+ culvert_height=1.20
1784
+
1785
+ culvert_type='box'
1786
+ manning=0.013
1787
+ sum_loss=1.5
1788
+
1789
+ inlet_specific_energy=inlet_depth + 0.5*inlet_velocity**2/g
1790
+ z_in = 0.0
1791
+ z_out = z_in-culvert_length*culvert_slope/100
1792
+ E_in = z_in+inlet_depth + 0.5*inlet_velocity**2/g
1793
+ E_out = z_out+outlet_depth + 0.5*outlet_velocity**2/g
1794
+ delta_total_energy = E_in-E_out
1795
+
1796
+
1797
+ Q_expected = 13.554
1798
+ v_expected = 3.329
1799
+ d_expected = 1.131
1800
+
1801
+ if verbose:
1802
+ print 50*'='
1803
+ print 'width ',culvert_width
1804
+ print 'depth ',culvert_height
1805
+ print 'flow_width ',culvert_width
1806
+ print 'length ' ,culvert_length
1807
+ print 'driving_energy ',inlet_specific_energy
1808
+ print 'delta_total_energy ',delta_total_energy
1809
+ print 'outlet_enquiry_depth ',outlet_depth
1810
+ print 'sum_loss ',sum_loss
1811
+ print 'manning ',manning
1812
+
1813
+ Q, v, d, flow_area, case= boyd_box_function(culvert_width,
1814
+ culvert_height,
1815
+ culvert_width,
1816
+ culvert_length,
1817
+ inlet_specific_energy,
1818
+ delta_total_energy,
1819
+ outlet_depth,
1820
+ sum_loss,
1821
+ manning)
1822
+
1823
+
1824
+ # Q, v, d = boyd_generalised_culvert_model(inlet_depth,
1825
+ # outlet_depth,
1826
+ # inlet_velocity,
1827
+ # outlet_velocity,
1828
+ # inlet_specific_energy,
1829
+ # delta_total_energy,
1830
+ # g,
1831
+ # culvert_length,
1832
+ # culvert_width,
1833
+ # culvert_height,
1834
+ # culvert_type,
1835
+ # manning,
1836
+ # sum_loss)
1837
+
1838
+ if verbose:
1839
+ print ('%s,%.2f'%('SPEC_E = ',inlet_specific_energy))
1840
+ print ('%s,%.2f'%('Delta E = ',delta_total_energy))
1841
+ print ('%s,%.2f,%.2f,%.2f' %('ANUGAcalcsTEST03 Q-v-d',Q,v,d))
1842
+ print('%s,%.2f,%.2f,%.2f' %('Spreadsheet_Boydcalcs', Q_expected, v_expected, d_expected))
1843
+
1844
+ assert numpy.allclose(Q, Q_expected, rtol=1.0e-1) #inflow
1845
+ assert numpy.allclose(v, v_expected, rtol=1.0e-1) #outflow velocity
1846
+ assert numpy.allclose(d, d_expected, rtol=1.0e-1) #depth at outlet used to calc v
1847
+
1848
+ def test_boyd_9_operator(self):
1849
+ """test_boyd_non_skew
1850
+
1851
+ This tests the Boyd routine with data obtained from culvertw application 1.1 by IceMindserer BD Parkinson,
1852
+ calculation code by MJ Boyd
1853
+ """
1854
+
1855
+ g=9.81
1856
+ culvert_slope=1 # Downward
1857
+
1858
+ inlet_depth=1.800
1859
+ outlet_depth=0.80
1860
+ inlet_velocity=1.0
1861
+ outlet_velocity=0.5
1862
+
1863
+ culvert_length=10.0
1864
+ culvert_width=3.60
1865
+ culvert_height=1.20
1866
+
1867
+ culvert_type='box'
1868
+ manning=0.013
1869
+ sum_loss=1.5
1870
+
1871
+ inlet_specific_energy=inlet_depth + 0.5*inlet_velocity**2/g
1872
+ z_in = 0.0
1873
+ z_out = z_in-culvert_length*culvert_slope/100
1874
+ E_in = z_in+inlet_depth + 0.5*inlet_velocity**2/g
1875
+ E_out = z_out+outlet_depth + 0.5*outlet_velocity**2/g
1876
+ delta_total_energy = E_in-E_out
1877
+
1878
+
1879
+ Q_expected = 13.554
1880
+ v_expected = 3.329
1881
+ d_expected = 1.131
1882
+
1883
+
1884
+ elevation_0 = z_in
1885
+ elevation_1 = z_out
1886
+
1887
+ stage_0 = elevation_0 + inlet_depth
1888
+ stage_1 = elevation_1 + outlet_depth
1889
+
1890
+
1891
+ domain_length = 200.0
1892
+ domain_width = 200.0
1893
+
1894
+ #culvert_length = 20.0
1895
+ #culvert_width = 3.66
1896
+ #culvert_height = 3.66
1897
+ culvert_losses = {'inlet':0.5, 'outlet':1.0, 'bend':0.0, 'grate':0.0, 'pier': 0.0, 'other': 0.0}
1898
+ culvert_mannings = 0.013
1899
+
1900
+ culvert_apron = 0.0
1901
+ enquiry_gap = 5.0
1902
+
1903
+
1904
+
1905
+
1906
+ domain = self._create_domain(d_length=domain_length,
1907
+ d_width=domain_width,
1908
+ dx = 5.0,
1909
+ dy = 5.0,
1910
+ elevation_0 = elevation_0,
1911
+ elevation_1 = elevation_1,
1912
+ stage_0 = stage_0,
1913
+ stage_1 = stage_1,
1914
+ xvelocity_0 = inlet_velocity,
1915
+ xvelocity_1 = outlet_velocity)
1916
+
1917
+
1918
+ #print 'Defining Structures'
1919
+
1920
+ ep0 = numpy.array([domain_length/2-culvert_length/2, 100.0])
1921
+ ep1 = numpy.array([domain_length/2+culvert_length/2, 100.0])
1922
+
1923
+
1924
+ culvert = Boyd_box_operator(domain,
1925
+ losses=culvert_losses,
1926
+ width=culvert_width,
1927
+ end_points=[ep0, ep1],
1928
+ height=culvert_height,
1929
+ apron=culvert_apron,
1930
+ enquiry_gap=enquiry_gap,
1931
+ use_momentum_jet=False,
1932
+ use_velocity_head=True,
1933
+ manning=culvert_mannings,
1934
+ logging=False,
1935
+ label='3.6x1.2RCBC',
1936
+ verbose=False)
1937
+
1938
+ #culvert.determine_inflow_outflow()
1939
+
1940
+ ( Q, v, d ) = culvert.discharge_routine()
1941
+
1942
+ if verbose:
1943
+ print 'test_boyd_operator_1'
1944
+ print 'expected ',Q_expected,v_expected, d_expected
1945
+ print 'calc ',Q,v,d
1946
+
1947
+
1948
+ assert numpy.allclose(Q, Q_expected, rtol=2.0e-2) #inflow
1949
+ assert numpy.allclose(v, v_expected, rtol=2.0e-2) #outflow velocity
1950
+ assert numpy.allclose(d, d_expected, rtol=2.0e-2) #depth at outlet used to calc v
1951
+
1952
+ def test_boyd_10(self):
1953
+ """test_boyd_10
1954
+
1955
+ This tests the Boyd routine with data obtained from ??? by Petar Milevski
1956
+ """
1957
+ # FIXME(Ole): This test fails (20 Feb 2009)
1958
+
1959
+ g=9.81
1960
+ culvert_slope=1 # Downward
1961
+
1962
+ inlet_depth=1.00
1963
+ outlet_depth=0.8
1964
+ inlet_velocity=1.0
1965
+ outlet_velocity=0.5
1966
+ culvert_length=10.0
1967
+ culvert_width=3.60
1968
+ culvert_height=1.20
1969
+
1970
+ culvert_type='box'
1971
+ manning=0.013
1972
+ sum_loss=1.5
1973
+
1974
+ inlet_specific_energy=inlet_depth + 0.5*inlet_velocity**2/g
1975
+ z_in = 10.0
1976
+ z_out = 10.0-culvert_length*culvert_slope/100
1977
+ E_in = z_in+inlet_depth + 0.5*inlet_velocity**2/g
1978
+ E_out = z_out+outlet_depth + 0.5*outlet_velocity**2/g
1979
+ delta_total_energy = E_in-E_out
1980
+
1981
+
1982
+
1983
+ Q_expected = 5.164
1984
+ v_expected = 2.047
1985
+ d_expected = 0.70
1986
+
1987
+ if verbose:
1988
+ print 50*'='
1989
+ print 'width ',culvert_width
1990
+ print 'depth ',culvert_height
1991
+ print 'flow_width ',culvert_width
1992
+ print 'length ' ,culvert_length
1993
+ print 'driving_energy ',inlet_specific_energy
1994
+ print 'delta_total_energy ',delta_total_energy
1995
+ print 'outlet_enquiry_depth ',outlet_depth
1996
+ print 'sum_loss ',sum_loss
1997
+ print 'manning ',manning
1998
+
1999
+ Q, v, d, flow_area, case= boyd_box_function(culvert_width,
2000
+ culvert_height,
2001
+ culvert_width,
2002
+ culvert_length,
2003
+ inlet_specific_energy,
2004
+ delta_total_energy,
2005
+ outlet_depth,
2006
+ sum_loss,
2007
+ manning)
2008
+
2009
+ # Q, v, d = boyd_generalised_culvert_model(inlet_depth,
2010
+ # outlet_depth,
2011
+ # inlet_velocity,
2012
+ # outlet_velocity,
2013
+ # inlet_specific_energy,
2014
+ # delta_total_energy,
2015
+ # g,
2016
+ # culvert_length,
2017
+ # culvert_width,
2018
+ # culvert_height,
2019
+ # culvert_type,
2020
+ # manning,
2021
+ # sum_loss)
2022
+
2023
+ if verbose:
2024
+ print ('%s,%.2f'%('SPEC_E = ',inlet_specific_energy))
2025
+ print ('%s,%.2f'%('Delta E = ',delta_total_energy))
2026
+ print ('%s,%.2f,%.2f,%.2f' %('ANUGAcalcsTEST04 Q-v-d',Q,v,d))
2027
+ print('%s,%.2f,%.2f,%.2f' %('Spreadsheet_Boydcalcs', Q_expected, v_expected, d_expected))
2028
+
2029
+ assert numpy.allclose(Q, Q_expected, rtol=1.0e-1) #inflow
2030
+ assert numpy.allclose(v, v_expected, rtol=1.0e-1) #outflow velocity
2031
+ assert numpy.allclose(d, d_expected, rtol=1.0e-1) #depth at outlet used to calc v
2032
+
2033
+ def test_boyd_10_operator(self):
2034
+ """test_boyd_non_skew
2035
+
2036
+ This tests the Boyd routine with data obtained from culvertw application 1.1 by IceMindserer BD Parkinson,
2037
+ calculation code by MJ Boyd
2038
+ """
2039
+
2040
+ g=9.81
2041
+ culvert_slope=1 # Downward
2042
+
2043
+ inlet_depth=1.00
2044
+ outlet_depth=0.8
2045
+ inlet_velocity=1.0
2046
+ outlet_velocity=0.5
2047
+ culvert_length=10.0
2048
+ culvert_width=3.60
2049
+ culvert_height=1.20
2050
+
2051
+ culvert_type='box'
2052
+ manning=0.013
2053
+ sum_loss=1.5
2054
+
2055
+ inlet_specific_energy=inlet_depth + 0.5*inlet_velocity**2/g
2056
+ z_in = 10.0
2057
+ z_out = 10.0-culvert_length*culvert_slope/100
2058
+ E_in = z_in+inlet_depth + 0.5*inlet_velocity**2/g
2059
+ E_out = z_out+outlet_depth + 0.5*outlet_velocity**2/g
2060
+ delta_total_energy = E_in-E_out
2061
+
2062
+
2063
+
2064
+ Q_expected = 5.164
2065
+ v_expected = 2.047
2066
+ d_expected = 0.70
2067
+
2068
+
2069
+
2070
+ elevation_0 = z_in
2071
+ elevation_1 = z_out
2072
+
2073
+ stage_0 = elevation_0 + inlet_depth
2074
+ stage_1 = elevation_1 + outlet_depth
2075
+
2076
+
2077
+ domain_length = 200.0
2078
+ domain_width = 200.0
2079
+
2080
+ #culvert_length = 20.0
2081
+ #culvert_width = 3.66
2082
+ #culvert_height = 3.66
2083
+ culvert_losses = {'inlet':0.5, 'outlet':1.0, 'bend':0.0, 'grate':0.0, 'pier': 0.0, 'other': 0.0}
2084
+ culvert_mannings = 0.013
2085
+
2086
+ culvert_apron = 0.0
2087
+ enquiry_gap = 5.0
2088
+
2089
+
2090
+
2091
+
2092
+ domain = self._create_domain(d_length=domain_length,
2093
+ d_width=domain_width,
2094
+ dx = 5.0,
2095
+ dy = 5.0,
2096
+ elevation_0 = elevation_0,
2097
+ elevation_1 = elevation_1,
2098
+ stage_0 = stage_0,
2099
+ stage_1 = stage_1,
2100
+ xvelocity_0 = inlet_velocity,
2101
+ xvelocity_1 = outlet_velocity)
2102
+
2103
+
2104
+ #print 'Defining Structures'
2105
+
2106
+ ep0 = numpy.array([domain_length/2-culvert_length/2, 100.0])
2107
+ ep1 = numpy.array([domain_length/2+culvert_length/2, 100.0])
2108
+
2109
+
2110
+ culvert = Boyd_box_operator(domain,
2111
+ losses=culvert_losses,
2112
+ width=culvert_width,
2113
+ end_points=[ep0, ep1],
2114
+ height=culvert_height,
2115
+ apron=culvert_apron,
2116
+ enquiry_gap=enquiry_gap,
2117
+ use_momentum_jet=False,
2118
+ use_velocity_head=True,
2119
+ manning=culvert_mannings,
2120
+ logging=False,
2121
+ label='3.6x1.2RCBC',
2122
+ verbose=False)
2123
+
2124
+ #culvert.determine_inflow_outflow()
2125
+
2126
+ ( Q, v, d ) = culvert.discharge_routine()
2127
+
2128
+ if verbose:
2129
+ print 'test_boyd_operator_1'
2130
+ print 'expected ',Q_expected,v_expected, d_expected
2131
+ print 'calc ',Q,v,d
2132
+
2133
+
2134
+ assert numpy.allclose(Q, Q_expected, rtol=2.0e-2) #inflow
2135
+ assert numpy.allclose(v, v_expected, rtol=2.0e-2) #outflow velocity
2136
+ assert numpy.allclose(d, d_expected, rtol=2.0e-2) #depth at outlet used to calc v
2137
+
2138
+ def test_boyd_11(self):
2139
+ """test_boyd_11
2140
+
2141
+ This tests the Boyd routine with data obtained from ??? by Petar Milevski
2142
+ """
2143
+ # FIXME(Ole): This test fails (20 Feb 2009)
2144
+
2145
+ g=9.81
2146
+ culvert_slope=1 # Downward
2147
+
2148
+ inlet_depth=1.50
2149
+ inlet_velocity= 1.0
2150
+ outlet_depth=1.3
2151
+ outlet_velocity=0.5
2152
+ culvert_length=10.0
2153
+ culvert_width=3.60
2154
+ culvert_height=1.20
2155
+
2156
+ culvert_type='box'
2157
+ manning=0.013
2158
+ sum_loss=1.5
2159
+
2160
+ inlet_specific_energy=inlet_depth + 0.5*inlet_velocity**2/g
2161
+ z_in = 10.0
2162
+ z_out = 10.0-culvert_length*culvert_slope/100
2163
+ E_in = z_in+inlet_depth + 0.5*inlet_velocity**2/g
2164
+ E_out = z_out+outlet_depth + 0.5*outlet_velocity**2/g
2165
+ delta_total_energy = E_in-E_out
2166
+
2167
+
2168
+ Q_expected = 8.808
2169
+ v_expected = 2.039
2170
+ d_expected = 1.20
2171
+
2172
+ if verbose:
2173
+ print 50*'='
2174
+ print 'width ',culvert_width
2175
+ print 'depth ',culvert_height
2176
+ print 'flow_width ',culvert_width
2177
+ print 'length ' ,culvert_length
2178
+ print 'driving_energy ',inlet_specific_energy
2179
+ print 'delta_total_energy ',delta_total_energy
2180
+ print 'outlet_enquiry_depth ',outlet_depth
2181
+ print 'sum_loss ',sum_loss
2182
+ print 'manning ',manning
2183
+
2184
+ Q, v, d, flow_area, case= boyd_box_function(culvert_width,
2185
+ culvert_height,
2186
+ culvert_width,
2187
+ culvert_length,
2188
+ inlet_specific_energy,
2189
+ delta_total_energy,
2190
+ outlet_depth,
2191
+ sum_loss,
2192
+ manning)
2193
+
2194
+ # Q, v, d = boyd_generalised_culvert_model(inlet_depth,
2195
+ # outlet_depth,
2196
+ # inlet_velocity,
2197
+ # outlet_velocity,
2198
+ # inlet_specific_energy,
2199
+ # delta_total_energy,
2200
+ # g,
2201
+ # culvert_length,
2202
+ # culvert_width,
2203
+ # culvert_height,
2204
+ # culvert_type,
2205
+ # manning,
2206
+ # sum_loss)
2207
+ if verbose:
2208
+ print ('%s,%.3f'%('SPEC_E = ',inlet_specific_energy))
2209
+ print ('%s,%.3f'%('Delta E = ',delta_total_energy))
2210
+
2211
+ print ('%s,%.3f,%.3f,%.3f' %('ANUGAcalcsTEST05Q-v-d',Q,v,d))
2212
+ print('%s,%.2f,%.2f,%.2f' %('Spreadsheet_Boydcalcs', Q_expected, v_expected, d_expected))
2213
+
2214
+ assert numpy.allclose(Q, Q_expected, rtol=1.0e-1) #inflow
2215
+ assert numpy.allclose(v, v_expected, rtol=1.0e-1) #outflow velocity
2216
+ assert numpy.allclose(d, d_expected, rtol=1.0e-1) #depth at outlet used to calc v
2217
+
2218
+ def test_boyd_11_operator(self):
2219
+ """test_boyd_non_skew
2220
+
2221
+ This tests the Boyd routine with data obtained from culvertw application 1.1 by IceMindserer BD Parkinson,
2222
+ calculation code by MJ Boyd
2223
+ """
2224
+
2225
+ g=9.81
2226
+ culvert_slope=1 # Downward
2227
+
2228
+ inlet_depth=1.50
2229
+ inlet_velocity= 1.0
2230
+ outlet_depth=1.3
2231
+ outlet_velocity=0.5
2232
+ culvert_length=10.0
2233
+ culvert_width=3.60
2234
+ culvert_height=1.20
2235
+
2236
+ culvert_type='box'
2237
+ manning=0.013
2238
+ sum_loss=1.5
2239
+
2240
+ inlet_specific_energy=inlet_depth + 0.5*inlet_velocity**2/g
2241
+ z_in = 10.0
2242
+ z_out = 10.0-culvert_length*culvert_slope/100
2243
+ E_in = z_in+inlet_depth + 0.5*inlet_velocity**2/g
2244
+ E_out = z_out+outlet_depth + 0.5*outlet_velocity**2/g
2245
+ delta_total_energy = E_in-E_out
2246
+
2247
+
2248
+ Q_expected = 8.808
2249
+ v_expected = 2.039
2250
+ d_expected = 1.20
2251
+
2252
+
2253
+
2254
+ elevation_0 = z_in
2255
+ elevation_1 = z_out
2256
+
2257
+ stage_0 = elevation_0 + inlet_depth
2258
+ stage_1 = elevation_1 + outlet_depth
2259
+
2260
+
2261
+ domain_length = 200.0
2262
+ domain_width = 200.0
2263
+
2264
+ #culvert_length = 20.0
2265
+ #culvert_width = 3.66
2266
+ #culvert_height = 3.66
2267
+ culvert_losses = {'inlet':0.5, 'outlet':1.0, 'bend':0.0, 'grate':0.0, 'pier': 0.0, 'other': 0.0}
2268
+ culvert_mannings = 0.013
2269
+
2270
+ culvert_apron = 0.0
2271
+ enquiry_gap = 5.0
2272
+
2273
+
2274
+
2275
+
2276
+ domain = self._create_domain(d_length=domain_length,
2277
+ d_width=domain_width,
2278
+ dx = 5.0,
2279
+ dy = 5.0,
2280
+ elevation_0 = elevation_0,
2281
+ elevation_1 = elevation_1,
2282
+ stage_0 = stage_0,
2283
+ stage_1 = stage_1,
2284
+ xvelocity_0 = inlet_velocity,
2285
+ xvelocity_1 = outlet_velocity)
2286
+
2287
+
2288
+ #print 'Defining Structures'
2289
+
2290
+ ep0 = numpy.array([domain_length/2-culvert_length/2, 100.0])
2291
+ ep1 = numpy.array([domain_length/2+culvert_length/2, 100.0])
2292
+
2293
+
2294
+ culvert = Boyd_box_operator(domain,
2295
+ losses=culvert_losses,
2296
+ width=culvert_width,
2297
+ end_points=[ep0, ep1],
2298
+ height=culvert_height,
2299
+ apron=culvert_apron,
2300
+ enquiry_gap=enquiry_gap,
2301
+ use_momentum_jet=False,
2302
+ use_velocity_head=True,
2303
+ manning=culvert_mannings,
2304
+ logging=False,
2305
+ label='3.6x1.2RCBC',
2306
+ verbose=False)
2307
+
2308
+ #culvert.determine_inflow_outflow()
2309
+
2310
+ ( Q, v, d ) = culvert.discharge_routine()
2311
+
2312
+ if verbose:
2313
+ print 'test_boyd_operator_1'
2314
+ print 'expected ',Q_expected,v_expected, d_expected
2315
+ print 'calc ',Q,v,d
2316
+
2317
+
2318
+ assert numpy.allclose(Q, Q_expected, rtol=2.0e-2) #inflow
2319
+ assert numpy.allclose(v, v_expected, rtol=2.0e-2) #outflow velocity
2320
+ assert numpy.allclose(d, d_expected, rtol=2.0e-2) #depth at outlet used to calc v
2321
+
2322
+
2323
+ def test_boyd_12(self):
2324
+ """test_boyd_12
2325
+
2326
+ This tests the Boyd routine with data obtained from ??? by Petar Milevski
2327
+ """
2328
+ # FIXME(Ole): This test fails (20 Feb 2009)
2329
+
2330
+ g=9.81
2331
+ culvert_slope=1 # Downward
2332
+
2333
+ inlet_depth=1.50
2334
+ inlet_velocity= 4.0
2335
+ outlet_depth=0.8
2336
+ outlet_velocity=4.0
2337
+ culvert_length=10.0
2338
+ culvert_width=3.60
2339
+ culvert_height=1.20
2340
+
2341
+ culvert_type='box'
2342
+ manning=0.013
2343
+ sum_loss=1.5
2344
+
2345
+ inlet_specific_energy=inlet_depth + 0.5*inlet_velocity**2/g
2346
+ z_in = 10.0
2347
+ z_out = 10.0-culvert_length*culvert_slope/100
2348
+ E_in = z_in+inlet_depth + 0.5*inlet_velocity**2/g
2349
+ E_out = z_out+outlet_depth + 0.5*outlet_velocity**2/g
2350
+ delta_total_energy = E_in-E_out
2351
+
2352
+
2353
+ Q_expected = 13.546
2354
+ v_expected = 3.136
2355
+ d_expected = 1.20
2356
+
2357
+ if verbose:
2358
+ print 50*'='
2359
+ print 'width ',culvert_width
2360
+ print 'depth ',culvert_height
2361
+ print 'flow_width ',culvert_width
2362
+ print 'length ' ,culvert_length
2363
+ print 'driving_energy ',inlet_specific_energy
2364
+ print 'delta_total_energy ',delta_total_energy
2365
+ print 'outlet_enquiry_depth ',outlet_depth
2366
+ print 'sum_loss ',sum_loss
2367
+ print 'manning ',manning
2368
+
2369
+ Q, v, d, flow_area, case= boyd_box_function(culvert_width,
2370
+ culvert_height,
2371
+ culvert_width,
2372
+ culvert_length,
2373
+ inlet_specific_energy,
2374
+ delta_total_energy,
2375
+ outlet_depth,
2376
+ sum_loss,
2377
+ manning)
2378
+
2379
+ # Q, v, d = boyd_generalised_culvert_model(inlet_depth,
2380
+ # outlet_depth,
2381
+ # inlet_velocity,
2382
+ # outlet_velocity,
2383
+ # inlet_specific_energy,
2384
+ # delta_total_energy,
2385
+ # g,
2386
+ # culvert_length,
2387
+ # culvert_width,
2388
+ # culvert_height,
2389
+ # culvert_type,
2390
+ # manning,
2391
+ # sum_loss)
2392
+ if verbose:
2393
+ print ('%s,%.3f'%('SPEC_E = ',inlet_specific_energy))
2394
+ print ('%s,%.3f'%('Delta E = ',delta_total_energy))
2395
+
2396
+ print ('%s,%.3f,%.3f,%.3f' %('ANUGAcalcsTEST06 Q-v-d',Q,v,d))
2397
+ print('%s,%.2f,%.2f,%.2f' %('Spreadsheet_Boydcalcs', Q_expected, v_expected, d_expected))
2398
+
2399
+ assert numpy.allclose(Q, Q_expected, rtol=1.0e-1) #inflow
2400
+ assert numpy.allclose(v, v_expected, rtol=1.0e-1) #outflow velocity
2401
+ assert numpy.allclose(d, d_expected, rtol=1.0e-1) #depth at outlet used to calc v
2402
+
2403
+ def test_boyd_12_operator(self):
2404
+ """test_boyd_non_skew
2405
+
2406
+ This tests the Boyd routine with data obtained from culvertw application 1.1 by IceMindserer BD Parkinson,
2407
+ calculation code by MJ Boyd
2408
+ """
2409
+
2410
+ g=9.81
2411
+ culvert_slope=1 # Downward
2412
+
2413
+ inlet_depth=1.50
2414
+ inlet_velocity= 4.0
2415
+ outlet_depth=0.8
2416
+ outlet_velocity=4.0
2417
+ culvert_length=10.0
2418
+ culvert_width=3.60
2419
+ culvert_height=1.20
2420
+
2421
+ culvert_type='box'
2422
+ manning=0.013
2423
+ sum_loss=1.5
2424
+
2425
+ inlet_specific_energy=inlet_depth + 0.5*inlet_velocity**2/g
2426
+ z_in = 10.0
2427
+ z_out = 10.0-culvert_length*culvert_slope/100
2428
+ E_in = z_in+inlet_depth + 0.5*inlet_velocity**2/g
2429
+ E_out = z_out+outlet_depth + 0.5*outlet_velocity**2/g
2430
+ delta_total_energy = E_in-E_out
2431
+
2432
+
2433
+ Q_expected = 13.546
2434
+ v_expected = 3.136
2435
+ d_expected = 1.20
2436
+
2437
+ elevation_0 = z_in
2438
+ elevation_1 = z_out
2439
+
2440
+ stage_0 = elevation_0 + inlet_depth
2441
+ stage_1 = elevation_1 + outlet_depth
2442
+
2443
+
2444
+ domain_length = 200.0
2445
+ domain_width = 200.0
2446
+
2447
+ #culvert_length = 20.0
2448
+ #culvert_width = 3.66
2449
+ #culvert_height = 3.66
2450
+ culvert_losses = {'inlet':0.5, 'outlet':1.0, 'bend':0.0, 'grate':0.0, 'pier': 0.0, 'other': 0.0}
2451
+ culvert_mannings = 0.013
2452
+
2453
+ culvert_apron = 0.0
2454
+ enquiry_gap = 5.0
2455
+
2456
+
2457
+
2458
+
2459
+ domain = self._create_domain(d_length=domain_length,
2460
+ d_width=domain_width,
2461
+ dx = 5.0,
2462
+ dy = 5.0,
2463
+ elevation_0 = elevation_0,
2464
+ elevation_1 = elevation_1,
2465
+ stage_0 = stage_0,
2466
+ stage_1 = stage_1,
2467
+ xvelocity_0 = inlet_velocity,
2468
+ xvelocity_1 = outlet_velocity)
2469
+
2470
+
2471
+ #print 'Defining Structures'
2472
+
2473
+ ep0 = numpy.array([domain_length/2-culvert_length/2, 100.0])
2474
+ ep1 = numpy.array([domain_length/2+culvert_length/2, 100.0])
2475
+
2476
+
2477
+ culvert = Boyd_box_operator(domain,
2478
+ losses=culvert_losses,
2479
+ width=culvert_width,
2480
+ end_points=[ep0, ep1],
2481
+ height=culvert_height,
2482
+ apron=culvert_apron,
2483
+ enquiry_gap=enquiry_gap,
2484
+ use_momentum_jet=False,
2485
+ use_velocity_head=True,
2486
+ manning=culvert_mannings,
2487
+ logging=False,
2488
+ label='3.6x1.2RCBC',
2489
+ verbose=False)
2490
+
2491
+ #culvert.determine_inflow_outflow()
2492
+
2493
+ ( Q, v, d ) = culvert.discharge_routine()
2494
+
2495
+ if verbose:
2496
+ print 'test_boyd_operator_1'
2497
+ print 'expected ',Q_expected,v_expected, d_expected
2498
+ print 'calc ',Q,v,d
2499
+
2500
+
2501
+ assert numpy.allclose(Q, Q_expected, rtol=2.0e-2) #inflow
2502
+ assert numpy.allclose(v, v_expected, rtol=2.0e-2) #outflow velocity
2503
+ assert numpy.allclose(d, d_expected, rtol=2.0e-2) #depth at outlet used to calc v
2504
+
2505
+
2506
+ def test_boyd_12_operator_invert(self):
2507
+ """test_boyd_non_skew
2508
+
2509
+ This tests the Boyd routine with data obtained from culvertw application 1.1 by IceMindserer BD Parkinson,
2510
+ calculation code by MJ Boyd
2511
+ """
2512
+
2513
+ #verbose = True
2514
+ g=9.81
2515
+ culvert_slope=1 # Downward
2516
+
2517
+ inlet_depth=1.50
2518
+ inlet_velocity= 4.0
2519
+ outlet_depth=0.8
2520
+ outlet_velocity=4.0
2521
+ culvert_length=10.0
2522
+ culvert_width=3.60
2523
+ culvert_height=1.20
2524
+
2525
+ culvert_type='box'
2526
+ manning=0.013
2527
+ sum_loss=1.5
2528
+
2529
+ inlet_specific_energy=inlet_depth + 0.5*inlet_velocity**2/g
2530
+ z_in = 10.0
2531
+ z_out = 10.0-culvert_length*culvert_slope/100
2532
+ E_in = z_in+inlet_depth + 0.5*inlet_velocity**2/g
2533
+ E_out = z_out+outlet_depth + 0.5*outlet_velocity**2/g
2534
+ delta_total_energy = E_in-E_out
2535
+
2536
+ invert0 = 20.0
2537
+ invert1 = 30.0
2538
+
2539
+
2540
+ #Q_expected = 13.546
2541
+ #v_expected = 3.136
2542
+ #d_expected = 1.20
2543
+
2544
+ Q_expected = 0.0
2545
+ v_expected = 0.0
2546
+ d_expected = 0.0
2547
+
2548
+ elevation_0 = z_in
2549
+ elevation_1 = z_out
2550
+
2551
+ stage_0 = elevation_0 + inlet_depth
2552
+ stage_1 = elevation_1 + outlet_depth
2553
+
2554
+
2555
+ domain_length = 200.0
2556
+ domain_width = 200.0
2557
+
2558
+ #culvert_length = 20.0
2559
+ #culvert_width = 3.66
2560
+ #culvert_height = 3.66
2561
+ culvert_losses = {'inlet':0.5, 'outlet':1.0, 'bend':0.0, 'grate':0.0, 'pier': 0.0, 'other': 0.0}
2562
+ culvert_mannings = 0.013
2563
+
2564
+ culvert_apron = 0.0
2565
+ enquiry_gap = 5.0
2566
+
2567
+
2568
+
2569
+
2570
+ domain = self._create_domain(d_length=domain_length,
2571
+ d_width=domain_width,
2572
+ dx = 5.0,
2573
+ dy = 5.0,
2574
+ elevation_0 = elevation_0,
2575
+ elevation_1 = elevation_1,
2576
+ stage_0 = stage_0,
2577
+ stage_1 = stage_1,
2578
+ xvelocity_0 = inlet_velocity,
2579
+ xvelocity_1 = outlet_velocity)
2580
+
2581
+
2582
+ #print 'Defining Structures'
2583
+
2584
+ ep0 = numpy.array([domain_length/2-culvert_length/2, 100.0])
2585
+ ep1 = numpy.array([domain_length/2+culvert_length/2, 100.0])
2586
+
2587
+
2588
+ culvert = Boyd_box_operator(domain,
2589
+ losses=culvert_losses,
2590
+ width=culvert_width,
2591
+ end_points=[ep0, ep1],
2592
+ height=culvert_height,
2593
+ apron=culvert_apron,
2594
+ #invert_elevations=[elevation_0,elevation_1],
2595
+ invert_elevations=[invert0,invert1],
2596
+ enquiry_gap=enquiry_gap,
2597
+ use_momentum_jet=False,
2598
+ use_velocity_head=True,
2599
+ manning=culvert_mannings,
2600
+ logging=False,
2601
+ label='3.6x1.2RCBC',
2602
+ verbose=verbose)
2603
+
2604
+ #culvert.determine_inflow_outflow()
2605
+
2606
+ ( Q, v, d ) = culvert.discharge_routine()
2607
+
2608
+ if verbose:
2609
+ print 'test_boyd_operator_12_invert'
2610
+ print 'expected ',Q_expected,v_expected, d_expected
2611
+ print 'calc ',Q,v,d
2612
+
2613
+
2614
+ assert numpy.allclose(Q, Q_expected, rtol=2.0e-2) #inflow
2615
+ assert numpy.allclose(v, v_expected, rtol=2.0e-2) #outflow velocity
2616
+ assert numpy.allclose(d, d_expected, rtol=2.0e-2) #depth at outlet used to calc v
2617
+
2618
+
2619
+ # =========================================================================
2620
+ if __name__ == "__main__":
2621
+ suite = unittest.makeSuite(Test_boyd_box_operator, 'test')
2622
+ runner = unittest.TextTestRunner()
2623
+ runner.run(suite)