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,1632 @@
1
+ #!/usr/bin/env python
2
+
3
+
4
+ import unittest
5
+ import time
6
+ import tempfile
7
+ import os
8
+ import string
9
+
10
+ import numpy as num
11
+
12
+ from csv import reader,writer
13
+ from math import sqrt, pi
14
+ from sys import platform
15
+ from os import access, F_OK,sep, removedirs,remove,mkdir,getcwd
16
+
17
+ from anuga.abstract_2d_finite_volumes.util import *
18
+ from anuga.config import epsilon
19
+ from anuga.config import netcdf_mode_r, netcdf_mode_w, netcdf_mode_a
20
+ from anuga.file_conversion.file_conversion import timefile2netcdf
21
+ from anuga.utilities.file_utils import del_dir
22
+
23
+ from anuga.utilities.numerical_tools import NAN
24
+ from anuga.pmesh.mesh import Mesh
25
+
26
+ from anuga.abstract_2d_finite_volumes.mesh_factory import rectangular
27
+ from anuga.coordinate_transforms.geo_reference import Geo_reference
28
+ from anuga.shallow_water.shallow_water_domain import Domain
29
+ from anuga.abstract_2d_finite_volumes.generic_boundary_conditions import \
30
+ Transmissive_boundary, Dirichlet_boundary
31
+ from anuga.file.sww import SWW_file
32
+
33
+
34
+ def simple_function(x, y):
35
+ return x+y
36
+
37
+ class Test_Util(unittest.TestCase):
38
+ def setUp(self):
39
+ pass
40
+
41
+ def tearDown(self):
42
+ pass
43
+
44
+
45
+
46
+
47
+ #Geometric
48
+ #def test_distance(self):
49
+ # from anuga.abstract_2d_finite_volumes.util import distance#
50
+ #
51
+ # self.assertTrue( distance([4,2],[7,6]) == 5.0,
52
+ # 'Distance is wrong!')
53
+ # self.assertTrue( allclose(distance([7,6],[9,8]), 2.82842712475),
54
+ # 'distance is wrong!')
55
+ # self.assertTrue( allclose(distance([9,8],[4,2]), 7.81024967591),
56
+ # 'distance is wrong!')
57
+ #
58
+ # self.assertTrue( distance([9,8],[4,2]) == distance([4,2],[9,8]),
59
+ # 'distance is wrong!')
60
+
61
+
62
+ def test_file_function_time1(self):
63
+ """Test that File function interpolates correctly
64
+ between given times. No x,y dependency here.
65
+ """
66
+
67
+ #Write file
68
+ import os, time
69
+ from anuga.config import time_format
70
+ from math import sin, pi
71
+
72
+ #Typical ASCII file
73
+ finaltime = 1200
74
+ filename = 'test_file_function'
75
+ fid = open(filename + '.txt', 'w')
76
+ start = time.mktime(time.strptime('2000', '%Y'))
77
+ dt = 60 #One minute intervals
78
+ t = 0.0
79
+ while t <= finaltime:
80
+ t_string = time.strftime(time_format, time.gmtime(t+start))
81
+ fid.write('%s, %f %f %f\n' %(t_string, 2*t, t**2, sin(t*pi/600)))
82
+ t += dt
83
+
84
+ fid.close()
85
+
86
+ #Convert ASCII file to NetCDF (Which is what we really like!)
87
+ timefile2netcdf(filename+'.txt')
88
+
89
+
90
+ #Create file function from time series
91
+ F = file_function(filename + '.tms',
92
+ quantities = ['Attribute0',
93
+ 'Attribute1',
94
+ 'Attribute2'])
95
+
96
+ #Now try interpolation
97
+ for i in range(20):
98
+ t = i*10
99
+ q = F(t)
100
+
101
+ #Exact linear intpolation
102
+ assert num.allclose(q[0], 2*t)
103
+ if i%6 == 0:
104
+ assert num.allclose(q[1], t**2)
105
+ assert num.allclose(q[2], sin(t*pi/600))
106
+
107
+ #Check non-exact
108
+
109
+ t = 90 #Halfway between 60 and 120
110
+ q = F(t)
111
+ assert num.allclose( (120**2 + 60**2)/2, q[1] )
112
+ assert num.allclose( (sin(120*pi/600) + sin(60*pi/600))/2, q[2] )
113
+
114
+
115
+ t = 100 #Two thirds of the way between between 60 and 120
116
+ q = F(t)
117
+ assert num.allclose( 2*120**2/3 + 60**2/3, q[1] )
118
+ assert num.allclose( 2*sin(120*pi/600)/3 + sin(60*pi/600)/3, q[2] )
119
+
120
+ os.remove(filename + '.txt')
121
+ os.remove(filename + '.tms')
122
+
123
+
124
+
125
+ def test_spatio_temporal_file_function_basic(self):
126
+ """Test that spatio temporal file function performs the correct
127
+ interpolations in both time and space
128
+ NetCDF version (x,y,t dependency)
129
+ """
130
+ import time
131
+
132
+ #Create sww file of simple propagation from left to right
133
+ #through rectangular domain
134
+
135
+ #Create basic mesh and shallow water domain
136
+ points, vertices, boundary = rectangular(3, 3)
137
+ domain1 = Domain(points, vertices, boundary)
138
+
139
+ from anuga.utilities.numerical_tools import mean
140
+ domain1.reduction = mean
141
+ domain1.smooth = True #NOTE: Mimic sww output where each vertex has
142
+ # only one value.
143
+
144
+ domain1.default_order = 2
145
+ domain1.store = True
146
+ domain1.set_datadir('.')
147
+ sww_file = 'spatio_temporal_boundary_source_%d' %(id(self))
148
+ domain1.set_name(sww_file)
149
+
150
+ #Bed-slope, friction and IC at vertices (and interpolated elsewhere)
151
+ domain1.set_quantity('elevation', 0)
152
+ domain1.set_quantity('friction', 0)
153
+ domain1.set_quantity('stage', 0)
154
+
155
+ # Boundary conditions
156
+ B0 = Dirichlet_boundary([0,0,0])
157
+ B6 = Dirichlet_boundary([0.6,0,0])
158
+ domain1.set_boundary({'left': B6, 'top': B6, 'right': B0, 'bottom': B0})
159
+ domain1.check_integrity()
160
+
161
+ finaltime = 8
162
+ #Evolution
163
+ t0 = -1
164
+ for t in domain1.evolve(yieldstep = 0.1, finaltime = finaltime):
165
+ #print 'Timesteps: %.16f, %.16f' %(t0, t)
166
+ #if t == t0:
167
+ # msg = 'Duplicate timestep found: %f, %f' %(t0, t)
168
+ # raise Exception(msg)
169
+ t0 = t
170
+
171
+ #domain1.write_time()
172
+
173
+
174
+ #Now read data from sww and check
175
+ from anuga.file.netcdf import NetCDFFile
176
+ filename = domain1.get_name() + '.sww'
177
+ fid = NetCDFFile(filename)
178
+
179
+ x = fid.variables['x'][:]
180
+ y = fid.variables['y'][:]
181
+ stage = fid.variables['stage'][:]
182
+ xmomentum = fid.variables['xmomentum'][:]
183
+ ymomentum = fid.variables['ymomentum'][:]
184
+ time = fid.variables['time'][:]
185
+
186
+ #Take stage vertex values at last timestep on diagonal
187
+ #Diagonal is identified by vertices: 0, 5, 10, 15
188
+
189
+ last_time_index = len(time)-1 #Last last_time_index
190
+ d_stage = num.reshape(num.take(stage[last_time_index, :],
191
+ [0,5,10,15],
192
+ axis=0),
193
+ (4,1))
194
+ d_uh = num.reshape(num.take(xmomentum[last_time_index, :],
195
+ [0,5,10,15],
196
+ axis=0),
197
+ (4,1))
198
+ d_vh = num.reshape(num.take(ymomentum[last_time_index, :],
199
+ [0,5,10,15],
200
+ axis=0),
201
+ (4,1))
202
+ D = num.concatenate((d_stage, d_uh, d_vh), axis=1)
203
+
204
+ #Reference interpolated values at midpoints on diagonal at
205
+ #this timestep are
206
+ r0 = (D[0] + D[1])/2
207
+ r1 = (D[1] + D[2])/2
208
+ r2 = (D[2] + D[3])/2
209
+
210
+ #And the midpoints are found now
211
+ Dx = num.take(num.reshape(x, (16,1)), [0,5,10,15], axis=0)
212
+ Dy = num.take(num.reshape(y, (16,1)), [0,5,10,15], axis=0)
213
+
214
+ diag = num.concatenate( (Dx, Dy), axis=1)
215
+ d_midpoints = (diag[1:] + diag[:-1])/2
216
+
217
+ #Let us see if the file function can find the correct
218
+ #values at the midpoints at the last timestep:
219
+ f = file_function(filename, domain1,
220
+ interpolation_points = d_midpoints)
221
+
222
+ T = f.get_time()
223
+ msg = 'duplicate timesteps: %.16f and %.16f' %(T[-1], T[-2])
224
+ assert not T[-1] == T[-2], msg
225
+ t = time[last_time_index]
226
+ q = f(t, point_id=0); assert num.allclose(r0, q)
227
+ q = f(t, point_id=1); assert num.allclose(r1, q)
228
+ q = f(t, point_id=2); assert num.allclose(r2, q)
229
+
230
+
231
+ ##################
232
+ #Now do the same for the first timestep
233
+
234
+ timestep = 0 #First timestep
235
+ d_stage = num.reshape(num.take(stage[timestep, :], [0,5,10,15], axis=0), (4,1))
236
+ d_uh = num.reshape(num.take(xmomentum[timestep, :], [0,5,10,15], axis=0), (4,1))
237
+ d_vh = num.reshape(num.take(ymomentum[timestep, :], [0,5,10,15], axis=0), (4,1))
238
+ D = num.concatenate((d_stage, d_uh, d_vh), axis=1)
239
+
240
+ #Reference interpolated values at midpoints on diagonal at
241
+ #this timestep are
242
+ r0 = (D[0] + D[1])/2
243
+ r1 = (D[1] + D[2])/2
244
+ r2 = (D[2] + D[3])/2
245
+
246
+ #Let us see if the file function can find the correct
247
+ #values
248
+ q = f(0, point_id=0); assert num.allclose(r0, q)
249
+ q = f(0, point_id=1); assert num.allclose(r1, q)
250
+ q = f(0, point_id=2); assert num.allclose(r2, q)
251
+
252
+
253
+ ##################
254
+ #Now do it again for a timestep in the middle
255
+
256
+ timestep = 33
257
+ d_stage = num.reshape(num.take(stage[timestep, :], [0,5,10,15], axis=0), (4,1))
258
+ d_uh = num.reshape(num.take(xmomentum[timestep, :], [0,5,10,15], axis=0), (4,1))
259
+ d_vh = num.reshape(num.take(ymomentum[timestep, :], [0,5,10,15], axis=0), (4,1))
260
+ D = num.concatenate((d_stage, d_uh, d_vh), axis=1)
261
+
262
+ #Reference interpolated values at midpoints on diagonal at
263
+ #this timestep are
264
+ r0 = (D[0] + D[1])/2
265
+ r1 = (D[1] + D[2])/2
266
+ r2 = (D[2] + D[3])/2
267
+
268
+ q = f(timestep/10., point_id=0); assert num.allclose(r0, q)
269
+ q = f(timestep/10., point_id=1); assert num.allclose(r1, q)
270
+ q = f(timestep/10., point_id=2); assert num.allclose(r2, q)
271
+
272
+
273
+ ##################
274
+ #Now check temporal interpolation
275
+ #Halfway between timestep 15 and 16
276
+
277
+ timestep = 15
278
+ d_stage = num.reshape(num.take(stage[timestep, :], [0,5,10,15], axis=0), (4,1))
279
+ d_uh = num.reshape(num.take(xmomentum[timestep, :], [0,5,10,15], axis=0), (4,1))
280
+ d_vh = num.reshape(num.take(ymomentum[timestep, :], [0,5,10,15], axis=0), (4,1))
281
+ D = num.concatenate((d_stage, d_uh, d_vh), axis=1)
282
+
283
+ #Reference interpolated values at midpoints on diagonal at
284
+ #this timestep are
285
+ r0_0 = (D[0] + D[1])/2
286
+ r1_0 = (D[1] + D[2])/2
287
+ r2_0 = (D[2] + D[3])/2
288
+
289
+ #
290
+ timestep = 16
291
+ d_stage = num.reshape(num.take(stage[timestep, :], [0,5,10,15], axis=0), (4,1))
292
+ d_uh = num.reshape(num.take(xmomentum[timestep, :], [0,5,10,15], axis=0), (4,1))
293
+ d_vh = num.reshape(num.take(ymomentum[timestep, :], [0,5,10,15], axis=0), (4,1))
294
+ D = num.concatenate((d_stage, d_uh, d_vh), axis=1)
295
+
296
+ #Reference interpolated values at midpoints on diagonal at
297
+ #this timestep are
298
+ r0_1 = (D[0] + D[1])/2
299
+ r1_1 = (D[1] + D[2])/2
300
+ r2_1 = (D[2] + D[3])/2
301
+
302
+ # The reference values are
303
+ r0 = (r0_0 + r0_1)/2
304
+ r1 = (r1_0 + r1_1)/2
305
+ r2 = (r2_0 + r2_1)/2
306
+
307
+ q = f((timestep - 0.5)/10., point_id=0); assert num.allclose(r0, q)
308
+ q = f((timestep - 0.5)/10., point_id=1); assert num.allclose(r1, q)
309
+ q = f((timestep - 0.5)/10., point_id=2); assert num.allclose(r2, q)
310
+
311
+ ##################
312
+ #Finally check interpolation 2 thirds of the way
313
+ #between timestep 15 and 16
314
+
315
+ # The reference values are
316
+ r0 = (r0_0 + 2*r0_1)/3
317
+ r1 = (r1_0 + 2*r1_1)/3
318
+ r2 = (r2_0 + 2*r2_1)/3
319
+
320
+ #And the file function gives
321
+ q = f((timestep - 1.0/3)/10., point_id=0); assert num.allclose(r0, q)
322
+ q = f((timestep - 1.0/3)/10., point_id=1); assert num.allclose(r1, q)
323
+ q = f((timestep - 1.0/3)/10., point_id=2); assert num.allclose(r2, q)
324
+
325
+ fid.close()
326
+ import os
327
+ os.remove(filename)
328
+
329
+
330
+
331
+ def test_spatio_temporal_file_function_different_origin(self):
332
+ """Test that spatio temporal file function performs the correct
333
+ interpolations in both time and space where space is offset by
334
+ xllcorner and yllcorner
335
+ NetCDF version (x,y,t dependency)
336
+ """
337
+ xllcorner = 2048
338
+ yllcorner = 11000
339
+ zone = 2
340
+
341
+ #Create basic mesh and shallow water domain
342
+ points, vertices, boundary = rectangular(3, 3)
343
+ domain1 = Domain(points, vertices, boundary,
344
+ geo_reference = Geo_reference(xllcorner = xllcorner,
345
+ yllcorner = yllcorner))
346
+
347
+
348
+ from anuga.utilities.numerical_tools import mean
349
+ domain1.reduction = mean
350
+ domain1.smooth = True #NOTE: Mimic sww output where each vertex has
351
+ # only one value.
352
+
353
+ domain1.default_order = 2
354
+ domain1.store = True
355
+ domain1.set_datadir('.')
356
+ domain1.set_name('spatio_temporal_boundary_source_%d' %(id(self)))
357
+
358
+ #Bed-slope, friction and IC at vertices (and interpolated elsewhere)
359
+ domain1.set_quantity('elevation', 0)
360
+ domain1.set_quantity('friction', 0)
361
+ domain1.set_quantity('stage', 0)
362
+
363
+ # Boundary conditions
364
+ B0 = Dirichlet_boundary([0,0,0])
365
+ B6 = Dirichlet_boundary([0.6,0,0])
366
+ domain1.set_boundary({'left': B6, 'top': B6, 'right': B0, 'bottom': B0})
367
+ domain1.check_integrity()
368
+
369
+ finaltime = 8
370
+ #Evolution
371
+ for t in domain1.evolve(yieldstep = 0.1, finaltime = finaltime):
372
+ pass
373
+ #domain1.write_time()
374
+
375
+
376
+ #Now read data from sww and check
377
+ from anuga.file.netcdf import NetCDFFile
378
+ filename = domain1.get_name() + '.sww'
379
+ fid = NetCDFFile(filename)
380
+
381
+ x = fid.variables['x'][:]
382
+ y = fid.variables['y'][:]
383
+ # we 'cast' to 64 bit floats to pass this test
384
+ # SWW file quantities are stored as 32 bits
385
+ x = num.array(x, num.float)
386
+ y = num.array(y, num.float)
387
+
388
+ stage = fid.variables['stage'][:]
389
+ xmomentum = fid.variables['xmomentum'][:]
390
+ ymomentum = fid.variables['ymomentum'][:]
391
+ time = fid.variables['time'][:]
392
+
393
+ #Take stage vertex values at last timestep on diagonal
394
+ #Diagonal is identified by vertices: 0, 5, 10, 15
395
+
396
+ last_time_index = len(time)-1 #Last last_time_index
397
+ d_stage = num.reshape(num.take(stage[last_time_index, :],
398
+ [0,5,10,15],
399
+ axis=0),
400
+ (4,1))
401
+ d_uh = num.reshape(num.take(xmomentum[last_time_index, :],
402
+ [0,5,10,15],
403
+ axis=0),
404
+ (4,1))
405
+ d_vh = num.reshape(num.take(ymomentum[last_time_index, :],
406
+ [0,5,10,15],
407
+ axis=0),
408
+ (4,1))
409
+ D = num.concatenate((d_stage, d_uh, d_vh), axis=1)
410
+
411
+ #Reference interpolated values at midpoints on diagonal at
412
+ #this timestep are
413
+ r0 = (D[0] + D[1])/2
414
+ r1 = (D[1] + D[2])/2
415
+ r2 = (D[2] + D[3])/2
416
+
417
+ #And the midpoints are found now
418
+ Dx = num.take(num.reshape(x, (16,1)), [0,5,10,15], axis=0)
419
+ Dy = num.take(num.reshape(y, (16,1)), [0,5,10,15], axis=0)
420
+
421
+ diag = num.concatenate((Dx, Dy), axis=1)
422
+ d_midpoints = (diag[1:] + diag[:-1])/2
423
+
424
+
425
+ #Adjust for georef - make interpolation points absolute
426
+ d_midpoints[:,0] += xllcorner
427
+ d_midpoints[:,1] += yllcorner
428
+
429
+ #Let us see if the file function can find the correct
430
+ #values at the midpoints at the last timestep:
431
+ f = file_function(filename, domain1,
432
+ interpolation_points = d_midpoints)
433
+
434
+ t = time[last_time_index]
435
+
436
+ q = f(t, point_id=0)
437
+ msg = '\nr0=%s\nq=%s' % (str(r0), str(q))
438
+ assert num.allclose(r0, q), msg
439
+
440
+ q = f(t, point_id=1)
441
+ msg = '\nr1=%s\nq=%s' % (str(r1), str(q))
442
+ assert num.allclose(r1, q), msg
443
+
444
+ q = f(t, point_id=2)
445
+ msg = '\nr2=%s\nq=%s' % (str(r2), str(q))
446
+ assert num.allclose(r2, q), msg
447
+
448
+
449
+ ##################
450
+ #Now do the same for the first timestep
451
+
452
+ timestep = 0 #First timestep
453
+ d_stage = num.reshape(num.take(stage[timestep, :],
454
+ [0,5,10,15],
455
+ axis=0),
456
+ (4,1))
457
+ d_uh = num.reshape(num.take(xmomentum[timestep, :],
458
+ [0,5,10,15],
459
+ axis=0),
460
+ (4,1))
461
+ d_vh = num.reshape(num.take(ymomentum[timestep, :],
462
+ [0,5,10,15],
463
+ axis=0),
464
+ (4,1))
465
+ D = num.concatenate( (d_stage, d_uh, d_vh), axis=1)
466
+
467
+ #Reference interpolated values at midpoints on diagonal at
468
+ #this timestep are
469
+ r0 = (D[0] + D[1])/2
470
+ r1 = (D[1] + D[2])/2
471
+ r2 = (D[2] + D[3])/2
472
+
473
+ #Let us see if the file function can find the correct
474
+ #values
475
+ q = f(0, point_id=0); assert num.allclose(r0, q)
476
+ q = f(0, point_id=1); assert num.allclose(r1, q)
477
+ q = f(0, point_id=2); assert num.allclose(r2, q)
478
+
479
+
480
+ ##################
481
+ #Now do it again for a timestep in the middle
482
+
483
+ timestep = 33
484
+ d_stage = num.reshape(num.take(stage[timestep, :],
485
+ [0,5,10,15],
486
+ axis=0),
487
+ (4,1))
488
+ d_uh = num.reshape(num.take(xmomentum[timestep, :],
489
+ [0,5,10,15],
490
+ axis=0),
491
+ (4,1))
492
+ d_vh = num.reshape(num.take(ymomentum[timestep, :],
493
+ [0,5,10,15],
494
+ axis=0),
495
+ (4,1))
496
+ D = num.concatenate( (d_stage, d_uh, d_vh), axis=1)
497
+
498
+ #Reference interpolated values at midpoints on diagonal at
499
+ #this timestep are
500
+ r0 = (D[0] + D[1])/2
501
+ r1 = (D[1] + D[2])/2
502
+ r2 = (D[2] + D[3])/2
503
+
504
+ q = f(timestep/10., point_id=0); assert num.allclose(r0, q)
505
+ q = f(timestep/10., point_id=1); assert num.allclose(r1, q)
506
+ q = f(timestep/10., point_id=2); assert num.allclose(r2, q)
507
+
508
+
509
+ ##################
510
+ #Now check temporal interpolation
511
+ #Halfway between timestep 15 and 16
512
+
513
+ timestep = 15
514
+ d_stage = num.reshape(num.take(stage[timestep, :],
515
+ [0,5,10,15],
516
+ axis=0),
517
+ (4,1))
518
+ d_uh = num.reshape(num.take(xmomentum[timestep, :],
519
+ [0,5,10,15],
520
+ axis=0),
521
+ (4,1))
522
+ d_vh = num.reshape(num.take(ymomentum[timestep, :],
523
+ [0,5,10,15],
524
+ axis=0),
525
+ (4,1))
526
+ D = num.concatenate( (d_stage, d_uh, d_vh), axis=1)
527
+
528
+ #Reference interpolated values at midpoints on diagonal at
529
+ #this timestep are
530
+ r0_0 = (D[0] + D[1])/2
531
+ r1_0 = (D[1] + D[2])/2
532
+ r2_0 = (D[2] + D[3])/2
533
+
534
+ #
535
+ timestep = 16
536
+ d_stage = num.reshape(num.take(stage[timestep, :],
537
+ [0,5,10,15],
538
+ axis=0),
539
+ (4,1))
540
+ d_uh = num.reshape(num.take(xmomentum[timestep, :],
541
+ [0,5,10,15],
542
+ axis=0),
543
+ (4,1))
544
+ d_vh = num.reshape(num.take(ymomentum[timestep, :],
545
+ [0,5,10,15],
546
+ axis=0),
547
+ (4,1))
548
+ D = num.concatenate( (d_stage, d_uh, d_vh), axis=1)
549
+
550
+ #Reference interpolated values at midpoints on diagonal at
551
+ #this timestep are
552
+ r0_1 = (D[0] + D[1])/2
553
+ r1_1 = (D[1] + D[2])/2
554
+ r2_1 = (D[2] + D[3])/2
555
+
556
+ # The reference values are
557
+ r0 = (r0_0 + r0_1)/2
558
+ r1 = (r1_0 + r1_1)/2
559
+ r2 = (r2_0 + r2_1)/2
560
+
561
+ q = f((timestep - 0.5)/10., point_id=0); assert num.allclose(r0, q)
562
+ q = f((timestep - 0.5)/10., point_id=1); assert num.allclose(r1, q)
563
+ q = f((timestep - 0.5)/10., point_id=2); assert num.allclose(r2, q)
564
+
565
+ ##################
566
+ #Finally check interpolation 2 thirds of the way
567
+ #between timestep 15 and 16
568
+
569
+ # The reference values are
570
+ r0 = (r0_0 + 2*r0_1)/3
571
+ r1 = (r1_0 + 2*r1_1)/3
572
+ r2 = (r2_0 + 2*r2_1)/3
573
+
574
+ #And the file function gives
575
+ q = f((timestep - 1.0/3)/10., point_id=0); assert num.allclose(r0, q)
576
+ q = f((timestep - 1.0/3)/10., point_id=1); assert num.allclose(r1, q)
577
+ q = f((timestep - 1.0/3)/10., point_id=2); assert num.allclose(r2, q)
578
+
579
+ fid.close()
580
+ import os
581
+ os.remove(filename)
582
+
583
+
584
+
585
+
586
+ def test_spatio_temporal_file_function_time(self):
587
+ """Test that File function interpolates correctly
588
+ between given times.
589
+ NetCDF version (x,y,t dependency)
590
+ """
591
+
592
+ #Create NetCDF (sww) file to be read
593
+ # x: 0, 5, 10, 15
594
+ # y: -20, -10, 0, 10
595
+ # t: 0, 60, 120, ...., 1200
596
+ #
597
+ # test quantities (arbitrary but non-trivial expressions):
598
+ #
599
+ # stage = 3*x - y**2 + 2*t
600
+ # xmomentum = exp( -((x-7)**2 + (y+5)**2)/20 ) * t**2
601
+ # ymomentum = x**2 + y**2 * sin(t*pi/600)
602
+
603
+ #NOTE: Nice test that may render some of the others redundant.
604
+
605
+ import os, time
606
+ from anuga.config import time_format
607
+ from anuga.abstract_2d_finite_volumes.mesh_factory import rectangular
608
+ from anuga.shallow_water.shallow_water_domain import Domain
609
+
610
+ finaltime = 1200
611
+ filename = 'test_file_function'
612
+
613
+ #Create a domain to hold test grid
614
+ #(0:15, -20:10)
615
+ points, vertices, boundary =\
616
+ rectangular(4, 4, 15, 30, origin = (0, -20))
617
+ #print "points", points
618
+
619
+ #print 'Number of elements', len(vertices)
620
+ domain = Domain(points, vertices, boundary)
621
+ domain.smooth = False
622
+ domain.default_order = 2
623
+ domain.set_datadir('.')
624
+ domain.set_name(filename)
625
+ domain.store = True
626
+
627
+ #print points
628
+ start = time.mktime(time.strptime('2000', '%Y'))
629
+ domain.starttime = start
630
+
631
+
632
+ #Store structure
633
+ domain.initialise_storage()
634
+
635
+ #Compute artificial time steps and store
636
+ dt = 60 #One minute intervals
637
+ t = 0.0
638
+ while t <= finaltime:
639
+ #Compute quantities
640
+ f1 = lambda x,y: 3*x - y**2 + 2*t + 4
641
+ domain.set_quantity('stage', f1)
642
+
643
+ f2 = lambda x,y: x+y+t**2
644
+ domain.set_quantity('xmomentum', f2)
645
+
646
+ f3 = lambda x,y: x**2 + y**2 * num.sin(t*num.pi/600)
647
+ domain.set_quantity('ymomentum', f3)
648
+
649
+ #Store and advance time
650
+ domain.time = t
651
+ domain.store_timestep()
652
+ t += dt
653
+
654
+
655
+ interpolation_points = [[0,-20], [1,0], [0,1], [1.1, 3.14], [10,-12.5]]
656
+
657
+ #Deliberately set domain.starttime to too early
658
+ domain.starttime = start - 1
659
+
660
+ #Create file function
661
+ F = file_function(filename + '.sww', domain,
662
+ quantities = domain.conserved_quantities,
663
+ interpolation_points = interpolation_points)
664
+
665
+ #Check that FF updates fixes domain starttime
666
+ assert num.allclose(domain.starttime, start)
667
+
668
+ #Check that domain.starttime isn't updated if later
669
+ domain.starttime = start + 1
670
+ F = file_function(filename + '.sww', domain,
671
+ quantities = domain.conserved_quantities,
672
+ interpolation_points = interpolation_points)
673
+ assert num.allclose(domain.starttime, start+1)
674
+ domain.starttime = start
675
+
676
+
677
+ #Check linear interpolation in time
678
+ F = file_function(filename + '.sww', domain,
679
+ quantities = domain.conserved_quantities,
680
+ interpolation_points = interpolation_points)
681
+ for id in range(len(interpolation_points)):
682
+ x = interpolation_points[id][0]
683
+ y = interpolation_points[id][1]
684
+
685
+ for i in range(20):
686
+ t = i*10
687
+ k = i%6
688
+
689
+ if k == 0:
690
+ q0 = F(t, point_id=id)
691
+ q1 = F(t+60, point_id=id)
692
+
693
+ if num.alltrue(q0 == NAN):
694
+ actual = q0
695
+ else:
696
+ actual = (k*q1 + (6-k)*q0)/6
697
+ q = F(t, point_id=id)
698
+ #print i, k, t, q
699
+ #print ' ', q0
700
+ #print ' ', q1
701
+ #print "q",q
702
+ #print "actual", actual
703
+ #print
704
+ if num.alltrue(q0 == NAN):
705
+ self.assertTrue(num.alltrue(q == actual), 'Fail!')
706
+ else:
707
+ assert num.allclose(q, actual)
708
+
709
+
710
+ #Another check of linear interpolation in time
711
+ for id in range(len(interpolation_points)):
712
+ q60 = F(60, point_id=id)
713
+ q120 = F(120, point_id=id)
714
+
715
+ t = 90 #Halfway between 60 and 120
716
+ q = F(t, point_id=id)
717
+ assert num.allclose( (q120+q60)/2, q )
718
+
719
+ t = 100 #Two thirds of the way between between 60 and 120
720
+ q = F(t, point_id=id)
721
+ assert num.allclose(q60/3 + 2*q120/3, q)
722
+
723
+
724
+
725
+ #Check that domain.starttime isn't updated if later than file starttime but earlier
726
+ #than file end time
727
+ delta = 23
728
+ domain.starttime = start + delta
729
+ F = file_function(filename + '.sww', domain,
730
+ quantities = domain.conserved_quantities,
731
+ interpolation_points = interpolation_points)
732
+ assert num.allclose(domain.starttime, start+delta)
733
+
734
+
735
+
736
+
737
+ #Now try interpolation with delta offset
738
+ for id in range(len(interpolation_points)):
739
+ x = interpolation_points[id][0]
740
+ y = interpolation_points[id][1]
741
+
742
+ for i in range(20):
743
+ t = i*10
744
+ k = i%6
745
+
746
+ if k == 0:
747
+ q0 = F(t-delta, point_id=id)
748
+ q1 = F(t+60-delta, point_id=id)
749
+
750
+ q = F(t-delta, point_id=id)
751
+ assert num.allclose(q, (k*q1 + (6-k)*q0)/6)
752
+
753
+
754
+ os.remove(filename + '.sww')
755
+
756
+
757
+
758
+ def Xtest_spatio_temporal_file_function_time(self):
759
+ # FIXME: This passes but needs some TLC
760
+ # Test that File function interpolates correctly
761
+ # When some points are outside the mesh
762
+
763
+ import os, time
764
+ from anuga.config import time_format
765
+ from anuga.abstract_2d_finite_volumes.mesh_factory import rectangular
766
+ from shallow_water import Domain
767
+ import anuga.shallow_water.data_manager
768
+ from anuga.pmesh.mesh_interface import create_mesh_from_regions
769
+ finaltime = 1200
770
+
771
+ filename = tempfile.mktemp()
772
+ #print "filename",filename
773
+ filename = 'test_file_function'
774
+
775
+ meshfilename = tempfile.mktemp(".tsh")
776
+
777
+ boundary_tags = {'walls':[0,1],'bom':[2]}
778
+
779
+ polygon_absolute = [[0,-20],[10,-20],[10,15],[-20,15]]
780
+
781
+ create_mesh_from_regions(polygon_absolute,
782
+ boundary_tags,
783
+ 10000000,
784
+ filename=meshfilename)
785
+ domain = Domain(mesh_filename=meshfilename)
786
+ domain.smooth = False
787
+ domain.default_order = 2
788
+ domain.set_datadir('.')
789
+ domain.set_name(filename)
790
+ domain.store = True
791
+
792
+ #print points
793
+ start = time.mktime(time.strptime('2000', '%Y'))
794
+ domain.starttime = start
795
+
796
+
797
+ #Store structure
798
+ domain.initialise_storage()
799
+
800
+ #Compute artificial time steps and store
801
+ dt = 60 #One minute intervals
802
+ t = 0.0
803
+ while t <= finaltime:
804
+ #Compute quantities
805
+ f1 = lambda x,y: 3*x - y**2 + 2*t + 4
806
+ domain.set_quantity('stage', f1)
807
+
808
+ f2 = lambda x,y: x+y+t**2
809
+ domain.set_quantity('xmomentum', f2)
810
+
811
+ f3 = lambda x,y: x**2 + y**2 * num.sin(t*num.pi/600)
812
+ domain.set_quantity('ymomentum', f3)
813
+
814
+ #Store and advance time
815
+ domain.time = t
816
+ domain.store_timestep()
817
+ t += dt
818
+
819
+ interpolation_points = [[1,0]]
820
+ interpolation_points = [[100,1000]]
821
+
822
+ interpolation_points = [[0,-20], [1,0], [0,1], [1.1, 3.14], [10,-12.5],
823
+ [78787,78787],[7878,3432]]
824
+
825
+ #Deliberately set domain.starttime to too early
826
+ domain.starttime = start - 1
827
+
828
+ #Create file function
829
+ F = file_function(filename + '.sww', domain,
830
+ quantities = domain.conserved_quantities,
831
+ interpolation_points = interpolation_points)
832
+
833
+ #Check that FF updates fixes domain starttime
834
+ assert num.allclose(domain.starttime, start)
835
+
836
+ #Check that domain.starttime isn't updated if later
837
+ domain.starttime = start + 1
838
+ F = file_function(filename + '.sww', domain,
839
+ quantities = domain.conserved_quantities,
840
+ interpolation_points = interpolation_points)
841
+ assert num.allclose(domain.starttime, start+1)
842
+ domain.starttime = start
843
+
844
+
845
+ #Check linear interpolation in time
846
+ # checking points inside and outside the mesh
847
+ F = file_function(filename + '.sww', domain,
848
+ quantities = domain.conserved_quantities,
849
+ interpolation_points = interpolation_points)
850
+
851
+ for id in range(len(interpolation_points)):
852
+ x = interpolation_points[id][0]
853
+ y = interpolation_points[id][1]
854
+
855
+ for i in range(20):
856
+ t = i*10
857
+ k = i%6
858
+
859
+ if k == 0:
860
+ q0 = F(t, point_id=id)
861
+ q1 = F(t+60, point_id=id)
862
+
863
+ if q0 == NAN:
864
+ actual = q0
865
+ else:
866
+ actual = (k*q1 + (6-k)*q0)/6
867
+ q = F(t, point_id=id)
868
+ #print i, k, t, q
869
+ #print ' ', q0
870
+ #print ' ', q1
871
+ #print "q",q
872
+ #print "actual", actual
873
+ #print
874
+ if q0 == NAN:
875
+ self.assertTrue( q == actual, 'Fail!')
876
+ else:
877
+ assert num.allclose(q, actual)
878
+
879
+ # now lets check points inside the mesh
880
+ interpolation_points = [[0,-20], [1,0], [0,1], [1.1, 3.14]] #, [10,-12.5]] - this point doesn't work WHY?
881
+ interpolation_points = [[10,-12.5]]
882
+
883
+ print "len(interpolation_points)",len(interpolation_points)
884
+ F = file_function(filename + '.sww', domain,
885
+ quantities = domain.conserved_quantities,
886
+ interpolation_points = interpolation_points)
887
+
888
+ domain.starttime = start
889
+
890
+
891
+ #Check linear interpolation in time
892
+ F = file_function(filename + '.sww', domain,
893
+ quantities = domain.conserved_quantities,
894
+ interpolation_points = interpolation_points)
895
+ for id in range(len(interpolation_points)):
896
+ x = interpolation_points[id][0]
897
+ y = interpolation_points[id][1]
898
+
899
+ for i in range(20):
900
+ t = i*10
901
+ k = i%6
902
+
903
+ if k == 0:
904
+ q0 = F(t, point_id=id)
905
+ q1 = F(t+60, point_id=id)
906
+
907
+ if q0 == NAN:
908
+ actual = q0
909
+ else:
910
+ actual = (k*q1 + (6-k)*q0)/6
911
+ q = F(t, point_id=id)
912
+ print "############"
913
+ print "id, x, y ", id, x, y #k, t, q
914
+ print "t", t
915
+ #print ' ', q0
916
+ #print ' ', q1
917
+ print "q",q
918
+ print "actual", actual
919
+ #print
920
+ if q0 == NAN:
921
+ self.assertTrue( q == actual, 'Fail!')
922
+ else:
923
+ assert num.allclose(q, actual)
924
+
925
+
926
+ #Another check of linear interpolation in time
927
+ for id in range(len(interpolation_points)):
928
+ q60 = F(60, point_id=id)
929
+ q120 = F(120, point_id=id)
930
+
931
+ t = 90 #Halfway between 60 and 120
932
+ q = F(t, point_id=id)
933
+ assert num.allclose( (q120+q60)/2, q )
934
+
935
+ t = 100 #Two thirds of the way between between 60 and 120
936
+ q = F(t, point_id=id)
937
+ assert num.allclose(q60/3 + 2*q120/3, q)
938
+
939
+
940
+
941
+ #Check that domain.starttime isn't updated if later than file starttime but earlier
942
+ #than file end time
943
+ delta = 23
944
+ domain.starttime = start + delta
945
+ F = file_function(filename + '.sww', domain,
946
+ quantities = domain.conserved_quantities,
947
+ interpolation_points = interpolation_points)
948
+ assert num.allclose(domain.starttime, start+delta)
949
+
950
+
951
+
952
+
953
+ #Now try interpolation with delta offset
954
+ for id in range(len(interpolation_points)):
955
+ x = interpolation_points[id][0]
956
+ y = interpolation_points[id][1]
957
+
958
+ for i in range(20):
959
+ t = i*10
960
+ k = i%6
961
+
962
+ if k == 0:
963
+ q0 = F(t-delta, point_id=id)
964
+ q1 = F(t+60-delta, point_id=id)
965
+
966
+ q = F(t-delta, point_id=id)
967
+ assert num.allclose(q, (k*q1 + (6-k)*q0)/6)
968
+
969
+
970
+ os.remove(filename + '.sww')
971
+
972
+ def test_file_function_time_with_domain(self):
973
+ """Test that File function interpolates correctly
974
+ between given times. No x,y dependency here.
975
+ Use domain with starttime
976
+ """
977
+
978
+ #Write file
979
+ import os, time, calendar
980
+ from anuga.config import time_format
981
+ from math import sin, pi
982
+
983
+ finaltime = 1200
984
+ filename = 'test_file_function'
985
+ fid = open(filename + '.txt', 'w')
986
+ start = time.mktime(time.strptime('2000', '%Y'))
987
+
988
+ #print 'start ',start
989
+
990
+ dt = 60 #One minute intervals
991
+ t = 0.0
992
+ while t <= finaltime:
993
+ t_string = time.strftime(time_format, time.gmtime(t+start))
994
+ fid.write('%s, %f %f %f\n' %(t_string, 2*t, t**2, sin(t*pi/600)))
995
+ t += dt
996
+
997
+ fid.close()
998
+
999
+
1000
+ #Convert ASCII file to NetCDF (Which is what we really like!)
1001
+ timefile2netcdf(filename+'.txt')
1002
+
1003
+
1004
+
1005
+ a = [0.0, 0.0]
1006
+ b = [4.0, 0.0]
1007
+ c = [0.0, 3.0]
1008
+
1009
+ points = [a, b, c]
1010
+ vertices = [[0,1,2]]
1011
+ domain = Domain(points, vertices)
1012
+ #print domain.starttime, start
1013
+
1014
+ # Check that domain.starttime is updated if non-existing
1015
+ F = file_function(filename + '.tms',
1016
+ domain,
1017
+ quantities = ['Attribute0', 'Attribute1', 'Attribute2'])
1018
+
1019
+
1020
+ #print domain.starttime, start
1021
+ assert num.allclose(domain.starttime, start)
1022
+
1023
+ # Check that domain.starttime is updated if too early
1024
+ domain.starttime = start - 1
1025
+ F = file_function(filename + '.tms',
1026
+ domain,
1027
+ quantities = ['Attribute0', 'Attribute1', 'Attribute2'])
1028
+ assert num.allclose(domain.starttime, start)
1029
+
1030
+ # Check that domain.starttime isn't updated if later
1031
+ domain.starttime = start + 1
1032
+ F = file_function(filename + '.tms',
1033
+ domain,
1034
+ quantities = ['Attribute0', 'Attribute1', 'Attribute2'])
1035
+ assert num.allclose(domain.starttime, start+1)
1036
+
1037
+ domain.starttime = start
1038
+ F = file_function(filename + '.tms',
1039
+ domain,
1040
+ quantities = ['Attribute0', 'Attribute1', 'Attribute2'],
1041
+ use_cache=True)
1042
+
1043
+
1044
+ #print F.precomputed_values
1045
+ #print 'F(60)', F(60)
1046
+
1047
+ #Now try interpolation
1048
+ for i in range(20):
1049
+ t = i*10
1050
+ q = F(t)
1051
+
1052
+ #Exact linear intpolation
1053
+ assert num.allclose(q[0], 2*t)
1054
+ if i%6 == 0:
1055
+ assert num.allclose(q[1], t**2)
1056
+ assert num.allclose(q[2], sin(t*pi/600))
1057
+
1058
+ #Check non-exact
1059
+
1060
+ t = 90 #Halfway between 60 and 120
1061
+ q = F(t)
1062
+ assert num.allclose( (120**2 + 60**2)/2, q[1] )
1063
+ assert num.allclose( (sin(120*pi/600) + sin(60*pi/600))/2, q[2] )
1064
+
1065
+
1066
+ t = 100 #Two thirds of the way between between 60 and 120
1067
+ q = F(t)
1068
+ assert num.allclose( 2*120**2/3 + 60**2/3, q[1] )
1069
+ assert num.allclose( 2*sin(120*pi/600)/3 + sin(60*pi/600)/3, q[2] )
1070
+
1071
+ os.remove(filename + '.tms')
1072
+ os.remove(filename + '.txt')
1073
+
1074
+ def test_file_function_time_with_domain_different_start(self):
1075
+ """Test that File function interpolates correctly
1076
+ between given times. No x,y dependency here.
1077
+ Use domain with a starttime later than that of file
1078
+
1079
+ ASCII version
1080
+ """
1081
+
1082
+ #Write file
1083
+ import os, time, calendar
1084
+ from anuga.config import time_format
1085
+ from math import sin, pi
1086
+
1087
+ finaltime = 1200
1088
+ filename = 'test_file_function'
1089
+ fid = open(filename + '.txt', 'w')
1090
+ start = time.mktime(time.strptime('2000', '%Y'))
1091
+ dt = 60 #One minute intervals
1092
+ t = 0.0
1093
+ while t <= finaltime:
1094
+ t_string = time.strftime(time_format, time.gmtime(t+start))
1095
+ fid.write('%s, %f %f %f\n' %(t_string, 2*t, t**2, sin(t*pi/600)))
1096
+ t += dt
1097
+
1098
+ fid.close()
1099
+
1100
+ #Convert ASCII file to NetCDF (Which is what we really like!)
1101
+ timefile2netcdf(filename+'.txt')
1102
+
1103
+ a = [0.0, 0.0]
1104
+ b = [4.0, 0.0]
1105
+ c = [0.0, 3.0]
1106
+
1107
+ points = [a, b, c]
1108
+ vertices = [[0,1,2]]
1109
+ domain = Domain(points, vertices)
1110
+
1111
+ #Check that domain.starttime isn't updated if later than file starttime but earlier
1112
+ #than file end time
1113
+ delta = 23
1114
+ domain.starttime = start + delta
1115
+ F = file_function(filename + '.tms', domain,
1116
+ quantities = ['Attribute0', 'Attribute1', 'Attribute2'])
1117
+ assert num.allclose(domain.starttime, start+delta)
1118
+
1119
+ assert num.allclose(F.get_time(), [-23., 37., 97., 157., 217.,
1120
+ 277., 337., 397., 457., 517.,
1121
+ 577., 637., 697., 757., 817.,
1122
+ 877., 937., 997., 1057., 1117.,
1123
+ 1177.])
1124
+
1125
+
1126
+ #Now try interpolation with delta offset
1127
+ for i in range(20):
1128
+ t = i*10
1129
+ q = F(t-delta)
1130
+
1131
+ #Exact linear intpolation
1132
+ assert num.allclose(q[0], 2*t)
1133
+ if i%6 == 0:
1134
+ assert num.allclose(q[1], t**2)
1135
+ assert num.allclose(q[2], sin(t*pi/600))
1136
+
1137
+ #Check non-exact
1138
+
1139
+ t = 90 #Halfway between 60 and 120
1140
+ q = F(t-delta)
1141
+ assert num.allclose( (120**2 + 60**2)/2, q[1] )
1142
+ assert num.allclose( (sin(120*pi/600) + sin(60*pi/600))/2, q[2] )
1143
+
1144
+
1145
+ t = 100 #Two thirds of the way between between 60 and 120
1146
+ q = F(t-delta)
1147
+ assert num.allclose( 2*120**2/3 + 60**2/3, q[1] )
1148
+ assert num.allclose( 2*sin(120*pi/600)/3 + sin(60*pi/600)/3, q[2] )
1149
+
1150
+
1151
+ os.remove(filename + '.tms')
1152
+ os.remove(filename + '.txt')
1153
+
1154
+
1155
+
1156
+ def test_file_function_time_with_domain_different_start_and_time_limit(self):
1157
+ """Test that File function interpolates correctly
1158
+ between given times. No x,y dependency here.
1159
+ Use domain with a starttime later than that of file
1160
+
1161
+ ASCII version
1162
+
1163
+ This test also tests that time can be truncated.
1164
+ """
1165
+
1166
+ # Write file
1167
+ import os, time, calendar
1168
+ from anuga.config import time_format
1169
+ from math import sin, pi
1170
+
1171
+ finaltime = 1200
1172
+ filename = 'test_file_function'
1173
+ fid = open(filename + '.txt', 'w')
1174
+ start = time.mktime(time.strptime('2000', '%Y'))
1175
+ dt = 60 #One minute intervals
1176
+ t = 0.0
1177
+ while t <= finaltime:
1178
+ t_string = time.strftime(time_format, time.gmtime(t+start))
1179
+ fid.write('%s, %f %f %f\n' %(t_string, 2*t, t**2, sin(t*pi/600)))
1180
+ t += dt
1181
+
1182
+ fid.close()
1183
+
1184
+ # Convert ASCII file to NetCDF (Which is what we really like!)
1185
+ timefile2netcdf(filename + '.txt')
1186
+
1187
+ a = [0.0, 0.0]
1188
+ b = [4.0, 0.0]
1189
+ c = [0.0, 3.0]
1190
+
1191
+ points = [a, b, c]
1192
+ vertices = [[0,1,2]]
1193
+ domain = Domain(points, vertices)
1194
+
1195
+ # Check that domain.starttime isn't updated if later than file starttime but earlier
1196
+ # than file end time
1197
+ delta = 23
1198
+ domain.starttime = start + delta
1199
+ time_limit = domain.starttime + 600
1200
+ F = file_function(filename + '.tms', domain,
1201
+ time_limit=time_limit,
1202
+ quantities=['Attribute0', 'Attribute1', 'Attribute2'])
1203
+ assert num.allclose(domain.starttime, start+delta)
1204
+
1205
+ assert num.allclose(F.get_time(), [-23., 37., 97., 157., 217.,
1206
+ 277., 337., 397., 457., 517.,
1207
+ 577.])
1208
+
1209
+
1210
+
1211
+ # Now try interpolation with delta offset
1212
+ for i in range(20):
1213
+ t = i*10
1214
+ q = F(t-delta)
1215
+
1216
+ #Exact linear intpolation
1217
+ assert num.allclose(q[0], 2*t)
1218
+ if i%6 == 0:
1219
+ assert num.allclose(q[1], t**2)
1220
+ assert num.allclose(q[2], sin(t*pi/600))
1221
+
1222
+ # Check non-exact
1223
+ t = 90 #Halfway between 60 and 120
1224
+ q = F(t-delta)
1225
+ assert num.allclose( (120**2 + 60**2)/2, q[1] )
1226
+ assert num.allclose( (sin(120*pi/600) + sin(60*pi/600))/2, q[2] )
1227
+
1228
+
1229
+ t = 100 # Two thirds of the way between between 60 and 120
1230
+ q = F(t-delta)
1231
+ assert num.allclose( 2*120**2/3 + 60**2/3, q[1] )
1232
+ assert num.allclose( 2*sin(120*pi/600)/3 + sin(60*pi/600)/3, q[2] )
1233
+
1234
+
1235
+ os.remove(filename + '.tms')
1236
+ os.remove(filename + '.txt')
1237
+
1238
+
1239
+
1240
+
1241
+
1242
+
1243
+ def test_apply_expression_to_dictionary(self):
1244
+
1245
+ #FIXME: Division is not expected to work for integers.
1246
+ #This must be caught.
1247
+ foo = num.array([[1,2,3], [4,5,6]], num.float)
1248
+
1249
+ bar = num.array([[-1,0,5], [6,1,1]], num.float)
1250
+
1251
+ D = {'X': foo, 'Y': bar}
1252
+
1253
+ Z = apply_expression_to_dictionary('X+Y', D)
1254
+ assert num.allclose(Z, foo+bar)
1255
+
1256
+ Z = apply_expression_to_dictionary('X*Y', D)
1257
+ assert num.allclose(Z, foo*bar)
1258
+
1259
+ Z = apply_expression_to_dictionary('4*X+Y', D)
1260
+ assert num.allclose(Z, 4*foo+bar)
1261
+
1262
+ # test zero division is OK
1263
+ Z = apply_expression_to_dictionary('X/Y', D)
1264
+ assert num.allclose(1/Z, 1/(foo/bar)) # can't compare inf to inf
1265
+
1266
+ # make an error for zero on zero
1267
+ # this is really an error in numeric, SciPy core can handle it
1268
+ # Z = apply_expression_to_dictionary('0/Y', D)
1269
+
1270
+ #Check exceptions
1271
+ try:
1272
+ #Wrong name
1273
+ Z = apply_expression_to_dictionary('4*X+A', D)
1274
+ except NameError:
1275
+ pass
1276
+ else:
1277
+ msg = 'Should have raised a NameError Exception'
1278
+ raise Exception(msg)
1279
+
1280
+
1281
+ try:
1282
+ #Wrong order
1283
+ Z = apply_expression_to_dictionary(D, '4*X+A')
1284
+ except AssertionError:
1285
+ pass
1286
+ else:
1287
+ msg = 'Should have raised a AssertionError Exception'
1288
+ raise Exception(msg)
1289
+
1290
+
1291
+ def test_multiple_replace(self):
1292
+ """Hard test that checks a true word-by-word simultaneous replace
1293
+ """
1294
+
1295
+ D = {'x': 'xi', 'y': 'eta', 'xi':'lam'}
1296
+ exp = '3*x+y + xi'
1297
+
1298
+ new = multiple_replace(exp, D)
1299
+
1300
+ assert new == '3*xi+eta + lam'
1301
+
1302
+
1303
+ def test_get_revision_number(self):
1304
+ """test_get_revision_number(self):
1305
+
1306
+ Test that revision number can be retrieved.
1307
+ """
1308
+ if os.environ.has_key('USER') and os.environ['USER'] == 'dgray':
1309
+ # I have a known snv incompatability issue,
1310
+ # so I'm skipping this test.
1311
+ # FIXME when SVN is upgraded on our clusters
1312
+ pass
1313
+ else:
1314
+ n = get_revision_number()
1315
+ assert n>=0
1316
+
1317
+
1318
+
1319
+ def test_add_directories(self):
1320
+
1321
+ import tempfile
1322
+ root_dir = tempfile.mkdtemp('_test_util', 'test_util_')
1323
+ directories = ['ja','ne','ke']
1324
+ kens_dir = add_directories(root_dir, directories)
1325
+ assert kens_dir == root_dir + sep + 'ja' + sep + 'ne' + \
1326
+ sep + 'ke'
1327
+ assert access(root_dir,F_OK)
1328
+
1329
+ add_directories(root_dir, directories)
1330
+ assert access(root_dir,F_OK)
1331
+
1332
+ #clean up!
1333
+ os.rmdir(kens_dir)
1334
+ os.rmdir(root_dir + sep + 'ja' + sep + 'ne')
1335
+ os.rmdir(root_dir + sep + 'ja')
1336
+ os.rmdir(root_dir)
1337
+
1338
+ def test_add_directories_bad(self):
1339
+
1340
+ import tempfile
1341
+ root_dir = tempfile.mkdtemp('_test_util', 'test_util_')
1342
+ directories = ['/\/!@#@#$%^%&*((*:*:','ne','ke']
1343
+
1344
+ try:
1345
+ kens_dir = add_directories(root_dir, directories)
1346
+ except OSError:
1347
+ pass
1348
+ else:
1349
+ msg = 'bad dir name should give OSError'
1350
+ raise Exception(msg)
1351
+
1352
+ #clean up!
1353
+ os.rmdir(root_dir)
1354
+
1355
+ def test_check_list(self):
1356
+
1357
+ check_list(['stage','xmomentum'])
1358
+
1359
+
1360
+ def test_add_directories(self):
1361
+
1362
+ import tempfile
1363
+ root_dir = tempfile.mkdtemp('_test_util', 'test_util_')
1364
+ directories = ['ja','ne','ke']
1365
+ kens_dir = add_directories(root_dir, directories)
1366
+ assert kens_dir == root_dir + sep + 'ja' + sep + 'ne' + \
1367
+ sep + 'ke'
1368
+ assert access(root_dir,F_OK)
1369
+
1370
+ add_directories(root_dir, directories)
1371
+ assert access(root_dir,F_OK)
1372
+
1373
+ #clean up!
1374
+ os.rmdir(kens_dir)
1375
+ os.rmdir(root_dir + sep + 'ja' + sep + 'ne')
1376
+ os.rmdir(root_dir + sep + 'ja')
1377
+ os.rmdir(root_dir)
1378
+
1379
+ def test_add_directories_bad(self):
1380
+
1381
+ import tempfile
1382
+ root_dir = tempfile.mkdtemp('_test_util', 'test_util_')
1383
+ directories = ['/\/!@#@#$%^%&*((*:*:','ne','ke']
1384
+
1385
+ try:
1386
+ kens_dir = add_directories(root_dir, directories)
1387
+ except OSError:
1388
+ pass
1389
+ else:
1390
+ msg = 'bad dir name should give OSError'
1391
+ raise Exception(msg)
1392
+
1393
+ #clean up!
1394
+ os.rmdir(root_dir)
1395
+
1396
+ def test_check_list(self):
1397
+
1398
+ check_list(['stage','xmomentum'])
1399
+
1400
+ ######
1401
+ # Test the remove_lone_verts() function
1402
+ ######
1403
+
1404
+ def test_remove_lone_verts_a(self):
1405
+ verts = [[0,0],[1,0],[0,1]]
1406
+ tris = [[0,1,2]]
1407
+ new_verts, new_tris = remove_lone_verts(verts, tris)
1408
+ self.assertTrue(new_verts.tolist() == verts)
1409
+ self.assertTrue(new_tris.tolist() == tris)
1410
+
1411
+ def test_remove_lone_verts_b(self):
1412
+ verts = [[0,0],[1,0],[0,1],[99,99]]
1413
+ tris = [[0,1,2]]
1414
+ new_verts, new_tris = remove_lone_verts(verts, tris)
1415
+ self.assertTrue(new_verts.tolist() == verts[0:3])
1416
+ self.assertTrue(new_tris.tolist() == tris)
1417
+
1418
+ def test_remove_lone_verts_c(self):
1419
+ verts = [[99,99],[0,0],[1,0],[99,99],[0,1],[99,99]]
1420
+ tris = [[1,2,4]]
1421
+ new_verts, new_tris = remove_lone_verts(verts, tris)
1422
+ self.assertTrue(new_verts.tolist() == [[0,0],[1,0],[0,1]])
1423
+ self.assertTrue(new_tris.tolist() == [[0,1,2]])
1424
+
1425
+ def test_remove_lone_verts_d(self):
1426
+ verts = [[0,0],[1,0],[99,99],[0,1]]
1427
+ tris = [[0,1,3]]
1428
+ new_verts, new_tris = remove_lone_verts(verts, tris)
1429
+ self.assertTrue(new_verts.tolist() == [[0,0],[1,0],[0,1]])
1430
+ self.assertTrue(new_tris.tolist() == [[0,1,2]])
1431
+
1432
+ def test_remove_lone_verts_e(self):
1433
+ verts = [[0,0],[1,0],[0,1],[99,99],[99,99],[99,99]]
1434
+ tris = [[0,1,2]]
1435
+ new_verts, new_tris = remove_lone_verts(verts, tris)
1436
+ self.assertTrue(new_verts.tolist() == verts[0:3])
1437
+ self.assertTrue(new_tris.tolist() == tris)
1438
+
1439
+ def test_remove_lone_verts_f(self):
1440
+ verts = [[0,0],[1,0],[99,99],[0,1],[99,99],[1,1],[99,99]]
1441
+ tris = [[0,1,3],[0,1,5]]
1442
+ new_verts, new_tris = remove_lone_verts(verts, tris)
1443
+ self.assertTrue(new_verts.tolist() == [[0,0],[1,0],[0,1],[1,1]])
1444
+ self.assertTrue(new_tris.tolist() == [[0,1,2],[0,1,3]])
1445
+
1446
+ ######
1447
+ #
1448
+ ######
1449
+
1450
+ def test_get_min_max_values(self):
1451
+
1452
+ list=[8,9,6,1,4]
1453
+ min1, max1 = get_min_max_values(list)
1454
+
1455
+ assert min1==1
1456
+ assert max1==9
1457
+
1458
+ def test_get_min_max_values1(self):
1459
+
1460
+ list=[-8,-9,-6,-1,-4]
1461
+ min1, max1 = get_min_max_values(list)
1462
+
1463
+ # print 'min1,max1',min1,max1
1464
+ assert min1==-9
1465
+ assert max1==-1
1466
+
1467
+ # def test_get_min_max_values2(self):
1468
+ # '''
1469
+ # The min and max supplied are greater than the ones in the
1470
+ # list and therefore are the ones returned
1471
+ # '''
1472
+ # list=[-8,-9,-6,-1,-4]
1473
+ # min1, max1 = get_min_max_values(list,-10,10)
1474
+ #
1475
+ ## print 'min1,max1',min1,max1
1476
+ # assert min1==-10
1477
+ # assert max1==10
1478
+
1479
+ def test_make_plots_from_csv_files(self):
1480
+
1481
+ # #if sys.platform == 'win32': #Windows
1482
+ # try:
1483
+ # import pylab
1484
+ # except ImportError:
1485
+ # #ANUGA don't need pylab to work so the system doesn't
1486
+ # #rely on pylab being installed
1487
+ # return
1488
+
1489
+ try:
1490
+ import matplotlib
1491
+ matplotlib.use('Agg')
1492
+ import matplotlib.pyplot as plt
1493
+ except:
1494
+ #print "Couldn't import module from matplotlib, probably you need to update matplotlib"
1495
+ return
1496
+
1497
+
1498
+ current_dir=getcwd()+sep+'abstract_2d_finite_volumes'
1499
+ temp_dir = tempfile.mkdtemp('','tmp_figures')
1500
+ # print 'temp_dir',temp_dir
1501
+ fileName = temp_dir+sep+'time_series_3.csv'
1502
+ fid = open(fileName,"w")
1503
+ fid.write("time,stage,speed,momentum,elevation\n\
1504
+ 1.0, 0, 0, 0, 10 \n\
1505
+ 2.0, 5, 2, 4, 10 \n\
1506
+ 3.0, 3, 3, 5, 10 \n")
1507
+ fid.close()
1508
+
1509
+ fileName1 = temp_dir+sep+'time_series_4.csv'
1510
+ fid1 = open(fileName1,"w")
1511
+ fid1.write("time,stage,speed,momentum,elevation\n\
1512
+ 1.0, 0, 0, 0, 5 \n\
1513
+ 2.0, -5, -2, -4, 5 \n\
1514
+ 3.0, -4, -3, -5, 5 \n")
1515
+ fid1.close()
1516
+
1517
+ fileName2 = temp_dir+sep+'time_series_5.csv'
1518
+ fid2 = open(fileName2,"w")
1519
+ fid2.write("time,stage,speed,momentum,elevation\n\
1520
+ 1.0, 0, 0, 0, 7 \n\
1521
+ 2.0, 4, -0.45, 57, 7 \n\
1522
+ 3.0, 6, -0.5, 56, 7 \n")
1523
+ fid2.close()
1524
+
1525
+ dir, name=os.path.split(fileName)
1526
+ csv2timeseries_graphs(directories_dic={dir:['gauge', 0, 0]},
1527
+ output_dir=temp_dir,
1528
+ base_name='time_series_',
1529
+ plot_numbers=['3-5'],
1530
+ quantities=['speed','stage','momentum'],
1531
+ assess_all_csv_files=True,
1532
+ extra_plot_name='test')
1533
+
1534
+ #print dir+sep+name[:-4]+'_stage_test.png'
1535
+ assert(access(dir+sep+name[:-4]+'_stage_test.png',F_OK)==True)
1536
+ assert(access(dir+sep+name[:-4]+'_speed_test.png',F_OK)==True)
1537
+ assert(access(dir+sep+name[:-4]+'_momentum_test.png',F_OK)==True)
1538
+
1539
+ dir1, name1=os.path.split(fileName1)
1540
+ assert(access(dir+sep+name1[:-4]+'_stage_test.png',F_OK)==True)
1541
+ assert(access(dir+sep+name1[:-4]+'_speed_test.png',F_OK)==True)
1542
+ assert(access(dir+sep+name1[:-4]+'_momentum_test.png',F_OK)==True)
1543
+
1544
+
1545
+ dir2, name2=os.path.split(fileName2)
1546
+ assert(access(dir+sep+name2[:-4]+'_stage_test.png',F_OK)==True)
1547
+ assert(access(dir+sep+name2[:-4]+'_speed_test.png',F_OK)==True)
1548
+ assert(access(dir+sep+name2[:-4]+'_momentum_test.png',F_OK)==True)
1549
+
1550
+ del_dir(temp_dir)
1551
+
1552
+
1553
+
1554
+ def test_greens_law(self):
1555
+
1556
+ from math import sqrt
1557
+
1558
+ d1 = 80.0
1559
+ d2 = 20.0
1560
+ h1 = 1.0
1561
+ h2 = greens_law(d1,d2,h1)
1562
+
1563
+ assert h2==sqrt(2.0)
1564
+
1565
+ def test_calc_bearings(self):
1566
+
1567
+ from math import atan, degrees
1568
+ #Test East
1569
+ uh = 1
1570
+ vh = 1.e-15
1571
+ angle = calc_bearing(uh, vh)
1572
+ if 89 < angle < 91: v=1
1573
+ assert v==1
1574
+ #Test West
1575
+ uh = -1
1576
+ vh = 1.e-15
1577
+ angle = calc_bearing(uh, vh)
1578
+ if 269 < angle < 271: v=1
1579
+ assert v==1
1580
+ #Test North
1581
+ uh = 1.e-15
1582
+ vh = 1
1583
+ angle = calc_bearing(uh, vh)
1584
+ if -1 < angle < 1: v=1
1585
+ assert v==1
1586
+ #Test South
1587
+ uh = 1.e-15
1588
+ vh = -1
1589
+ angle = calc_bearing(uh, vh)
1590
+ if 179 < angle < 181: v=1
1591
+ assert v==1
1592
+ #Test South-East
1593
+ uh = 1
1594
+ vh = -1
1595
+ angle = calc_bearing(uh, vh)
1596
+ if 134 < angle < 136: v=1
1597
+ assert v==1
1598
+ #Test North-East
1599
+ uh = 1
1600
+ vh = 1
1601
+ angle = calc_bearing(uh, vh)
1602
+ if 44 < angle < 46: v=1
1603
+ assert v==1
1604
+ #Test South-West
1605
+ uh = -1
1606
+ vh = -1
1607
+ angle = calc_bearing(uh, vh)
1608
+ if 224 < angle < 226: v=1
1609
+ assert v==1
1610
+ #Test North-West
1611
+ uh = -1
1612
+ vh = 1
1613
+ angle = calc_bearing(uh, vh)
1614
+ if 314 < angle < 316: v=1
1615
+ assert v==1
1616
+
1617
+ def test_calc_bearings_zero_vector(self):
1618
+ from math import atan, degrees
1619
+
1620
+ uh = 0
1621
+ vh = 0
1622
+ angle = calc_bearing(uh, vh)
1623
+
1624
+ assert angle == NAN
1625
+
1626
+ #-------------------------------------------------------------
1627
+
1628
+ if __name__ == "__main__":
1629
+ suite = unittest.makeSuite(Test_Util, 'test')
1630
+ # runner = unittest.TextTestRunner(verbosity=2)
1631
+ runner = unittest.TextTestRunner(verbosity=1)
1632
+ runner.run(suite)