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,1519 @@
1
+
2
+ import Pmw, AppShell, math, time, string, marshal
3
+ from toolbarbutton import ToolBarButton
4
+ import tkFileDialog
5
+ from tkSimpleDialog import Dialog
6
+ import mesh
7
+ from mesh import SEG_COLOUR
8
+ from Tkinter import FALSE,TRUE, Frame,X, LEFT,YES,BOTH,ALL,Widget,CURRENT, \
9
+ Label,W, Entry, E, StringVar, END, Checkbutton, Radiobutton, IntVar, \
10
+ DISABLED, NORMAL
11
+ #from cursornames import TLC,TRC, BLC, BRC, TS, RS, LS, BS
12
+ from tkMessageBox import showerror, _show, QUESTION,YESNOCANCEL
13
+ import types
14
+ import visualmesh
15
+ import os, sys
16
+ import profile
17
+ import anuga.load_mesh.loadASCII
18
+ from anuga.alpha_shape.alpha_shape import AlphaError
19
+ import anuga.utilities.log as log
20
+
21
+ # CONSTANTS
22
+ VERT_SELECT_ADDING_SEG_COLOR = 'orange'
23
+ SELECT_COLOR = 'red'
24
+ TRIANGLE_COLOUR = 'green'
25
+ APPLICATION_NAME = 'Pmesh'
26
+
27
+ #for alpha shapes
28
+ NO_SELECTION = 0
29
+ AUTO = 1
30
+ SET_ALPHA = 2
31
+
32
+ HOME_DIR = os.path.dirname(os.path.abspath(__file__))
33
+
34
+
35
+ class Draw(AppShell.AppShell):
36
+ usecommandarea = 1
37
+ appname = APPLICATION_NAME
38
+ frameWidth = 840
39
+ frameHeight = 600
40
+
41
+
42
+
43
+
44
+ def createButtons(self):
45
+ """
46
+ Add buttons to the bottom of the GUI
47
+ """
48
+ self.buttonAdd('Postscript',
49
+ helpMessage='Save current drawing (as PostScript)',
50
+ statusMessage='',
51
+ command=self.ipostscript)
52
+ self.buttonAdd('Clear', helpMessage='Delete the mesh',
53
+ statusMessage='', command=self.clearMesh)
54
+ self.buttonAdd('Close', helpMessage='Close Screen',
55
+ statusMessage='', command=self.close)
56
+
57
+ def createBase(self):
58
+ """
59
+ Create the GUI framework. Set up the GUI
60
+ """
61
+ self.toolbar = self.createcomponent('toolbar', (), None,
62
+ Frame, (self.interior(),), background="gray90")
63
+ self.toolbar.pack(fill=X)
64
+
65
+ self.scrolledcanvas = self.createcomponent('ScrolledCanvas', (), None,
66
+ Pmw.ScrolledCanvas, (self.interior(),)
67
+ ,borderframe = 1
68
+ ,labelpos = 'n'
69
+ )
70
+ self.scrolledcanvas.configure(hscrollmode = 'dynamic')
71
+ self.scrolledcanvas.configure(vscrollmode = 'dynamic')
72
+ self.scrolledcanvas.pack(side=LEFT, expand=YES, fill=BOTH)
73
+ self.canvas = self.scrolledcanvas.component('canvas')
74
+ self.canvas.configure( background="white" )
75
+
76
+ self.canvas.pack(side=LEFT, expand=YES, fill=BOTH)
77
+
78
+ Widget.bind(self.canvas, "<Button-1>", self.mouseDown)
79
+ Widget.bind(self.canvas, "<Button3-ButtonRelease>", self.rightMouseUp)
80
+ Widget.bind(self.canvas, "<Button2-ButtonRelease>",self.DeleteSelectedMeshObject)
81
+ # "<Delete>" didn't work..
82
+ #Widget.bind(self.canvas, "<Delete>", self.DeleteSelectedMeshObject)
83
+
84
+ #self.root.bind("<KeyPress>", self.setRegular)
85
+ #self.root.bind("<KeyRelease>", self.setRegular)
86
+
87
+ self.scrolledcanvas.resizescrollregion()
88
+
89
+ # def setRegular(self, event):
90
+ # if event.type == '2' and event.keysym == 'Shift_L':
91
+ # self.regular = TRUE
92
+ # else:
93
+ # self.regular = FALSE
94
+
95
+ def createMenus(self):
96
+ """
97
+ Add menus to the top of the GUI
98
+ """
99
+ self.menuBar.deletemenuitems('File',0)
100
+ self.menuBar.addmenuitem('File', 'command', 'New mesh',
101
+ label='New', command=self.clearMesh)
102
+ self.menuBar.addmenuitem('File', 'command', 'Open mesh',
103
+ label='Open...', command=self.importFile)
104
+ self.menuBar.addmenuitem('File', 'command', 'Save mesh',
105
+ label='Save', command=self.saveDrawing)
106
+ self.menuBar.addmenuitem('File', 'command', 'Save mesh',
107
+ label='SaveAs...', command=self.saveAsDrawing)
108
+
109
+ self.menuBar.addmenuitem('File', 'separator')
110
+ self.menuBar.addmenuitem('File', 'command',
111
+ 'Add ungenerated file from arcGIS',
112
+ label='Add ungenerated file...',
113
+ command=self.ImportUngenerate)
114
+
115
+ #self.menuBar.addmenuitem('File', 'command',
116
+ # 'Export ASCII obj',
117
+ # label='Export ASCII obj',
118
+ # command=self.exportObj)
119
+
120
+ self.menuBar.addmenuitem('File', 'command',
121
+ 'Export ASCII segment outline',
122
+ label='Export ASCII segment outline...',
123
+ command=self.exportASCIIsegmentoutlinefile)
124
+
125
+ self.menuBar.addmenuitem('File', 'command',
126
+ 'Export ASCII csv file',
127
+ label='Export ASCII csv file...',
128
+ command=self.exportPointsFile)
129
+
130
+ self.menuBar.addmenuitem('File', 'command',
131
+ 'add Segments to connect all vertices' ,
132
+ label='join vertices',
133
+ command=self.joinVertices)
134
+ self.menuBar.addmenuitem('File', 'command',
135
+ 'add Segments to form alpha shape' ,
136
+ label='Auto segment',
137
+ command=self.auto_segment)
138
+ self.menuBar.addmenuitem('File', 'command',
139
+ 'modify the alpha boundary by applying filters',
140
+ label='filter alpha boundary',
141
+ command=self.auto_segmentFilter)
142
+ #self.menuBar.addmenuitem('File', 'command', 'Normalise mesh',
143
+ # label='Normalise mesh', command=self.normaliseMesh)
144
+ #self.menuBar.addmenuitem('File', 'command', 'Normalise mesh for glutobj',
145
+ # label='Normalise mesh for glutobj', command=self.normalise4ObjMesh)
146
+ self.menuBar.addmenuitem('File', 'separator')
147
+ self.menuBar.addmenuitem('File', 'command', '',
148
+ label='Print geo reference', command=self.printGeoReference)
149
+ self.menuBar.addmenuitem('File', 'separator')
150
+ self.menuBar.addmenuitem('File', 'command', 'Exit program',
151
+ label='Exit', command=self.quit)
152
+
153
+ def createTools(self):
154
+ """
155
+ Add buttons to the top of the GUI
156
+ """
157
+ self.mouseDownFunc = {}
158
+ self.modeClass = {}
159
+ ToolBarButton(self, self.toolbar, 'sep', 'sep.gif',
160
+ width=10, state='disabled',home_dir=HOME_DIR)
161
+ for key, balloon, mouseDownFunc, Mode in [
162
+ ('pointer','Edit drawing eventually. Right now this does nothing', self.drag, None)
163
+ ,('vertex', 'Vertex mode', self.drawVertex, mesh.Vertex)
164
+ ,('segment', 'Segment mode',self.selectSegmentPoint, mesh.Segment)
165
+ ,('hole', 'hole mode',self.drawHole, mesh.Hole)
166
+ ,('region', 'region mode',self.drawRegion, mesh.Region)
167
+ ]:
168
+ t = ToolBarButton(self, self.toolbar, key, '%s.gif' % key,
169
+ command=self.selectFunc, balloonhelp=balloon,
170
+ statushelp='', home_dir=HOME_DIR)
171
+ t.cycle("DrawMode")
172
+ if key == 'pointer': #FIXME- this is specified in line 1062 as well
173
+ # self.selectFunc('pointer')
174
+ self.curFunc = self.drawVertex
175
+ t.setInitialSunkenButton("DrawMode")
176
+ self.modeClass[key] = Mode
177
+ # for actions that occur when the mouse goes down
178
+ self.mouseDownFunc[key] = mouseDownFunc
179
+
180
+ def createZooms(self):
181
+ """
182
+ Add zoom buttons to the top of the GUI
183
+ """
184
+ ToolBarButton(self, self.toolbar, 'sep', 'sep.gif', width=10,
185
+ state='disabled', home_dir=HOME_DIR)
186
+ zoom = '0.5'
187
+ ToolBarButton(self, self.toolbar, zoom, 'zoom%s.gif' %
188
+ zoom, command=self.selectZoom,
189
+ balloonhelp='*%s zoom' % zoom,
190
+ statushelp='', home_dir=HOME_DIR)
191
+
192
+ ToolBarButton(self, self.toolbar,'1.0', 'zoomToMesh.gif',
193
+ command=self.ResizeToFitWrapper,
194
+ balloonhelp='Zooms to mesh size',
195
+ statushelp='', home_dir=HOME_DIR)
196
+ zoom = '2'
197
+ ToolBarButton(self, self.toolbar, zoom, 'zoom%s.gif' %
198
+ zoom, command=self.selectZoom,
199
+ balloonhelp='*%s zoom' % zoom,
200
+ statushelp='', home_dir=HOME_DIR)
201
+
202
+ def createEdits(self):
203
+ """
204
+ Add Edit buttons to the top of the GUI
205
+ """
206
+ ToolBarButton(self, self.toolbar, 'sep', 'sep.gif', width=10,
207
+ state='disabled', home_dir=HOME_DIR)
208
+ for key, func, balloon in [
209
+ ('addVertex', self.windowAddVertex, 'add Vertex'),
210
+ ('edit', self.windowEdit, 'edit selected object'),
211
+ ('default', self.windowDefault, 'set default value for selected mode'),
212
+ ('joinVer', self.joinVerticesButton, 'add Segments to connect all vertices'),
213
+ # ('autoSeg', self.auto_segmentButton, 'add Segments to form alpha shape'),
214
+ ('autoSegGiveAlpha', self.auto_segmentGiveAlphaButton, 'add Segments to form alpha shape, specify alpha'),
215
+ ('meshGen', self.windowMeshGen, 'Generate Mesh')]:
216
+ ToolBarButton(self, self.toolbar, key, '%s.gif' % key,
217
+ command=func, balloonhelp=balloon,
218
+ statushelp='', home_dir=HOME_DIR)
219
+
220
+
221
+ def createVisualiseIcons(self):
222
+ """
223
+ Add Edit buttons to the top of the GUI
224
+ """
225
+ ToolBarButton(self, self.toolbar, 'sep', 'sep.gif', width=10,
226
+ state='disabled', home_dir=HOME_DIR)
227
+ for key, func, balloon in [
228
+ ('see', self.visualise, 'Visualise mesh triangles'),
229
+ ('no_see', self.unvisualise, 'Do not visualise mesh triangles (for large meshes)')]:
230
+ ToolBarButton(self, self.toolbar, key, '%s.gif' %key,
231
+ command=func, balloonhelp=balloon,
232
+ statushelp='', home_dir=HOME_DIR)
233
+
234
+
235
+ def clearSelection(self,parent):
236
+ #FIXME looks like self.clearSelections - change name (Peter)
237
+ """
238
+ """
239
+ self.canvas.delete(ALL)
240
+ self.selSet = self.mesh.clearSelection()
241
+ self.visualiseMesh(self.mesh)
242
+
243
+ def visualise(self,parent):
244
+ self.canvas.delete(ALL)
245
+ self.Visualise = True
246
+ self.visualiseMesh(self.mesh)
247
+
248
+ def unvisualise(self,parent):
249
+ self.canvas.delete(ALL)
250
+ self.Visualise = False
251
+ self.visualiseMesh(self.mesh)
252
+
253
+ def createMesh(self):
254
+ """
255
+ Build the data structures for storing the mesh objects
256
+ """
257
+ self.mesh = mesh.Mesh()
258
+
259
+ self.Vertices = visualmesh.vPoints(mesh.Vertex)
260
+ self.Segments = visualmesh.vSegments(mesh.Segment)
261
+ self.Holes = visualmesh.vPoints(mesh.Hole)
262
+ self.Regions = visualmesh.vRegions(mesh.Region)
263
+ self.UserMesh = visualmesh.vMesh([self.Vertices,self.Segments,self.Holes,self.Regions])
264
+
265
+
266
+ def deleteMesh(self):
267
+ """
268
+ Delete the data structures for storing the mesh objects
269
+ """
270
+ self.mesh = None
271
+ self.Vertices = None
272
+ self.Segments = None
273
+
274
+ def addCylinders(self):
275
+ """
276
+ Automatically add some verts and segs to the mesh.Used in Debugging
277
+
278
+ center and radius
279
+
280
+ """
281
+ from anuga.coordinate_transforms.geo_reference import Geo_reference, \
282
+ DEFAULT_ZONE
283
+ offset_x = 30
284
+ offset_y = 40
285
+
286
+ x_origin = 10-offset_x
287
+ y_origin = 20-offset_y
288
+ r = 10
289
+ pi = math.pi
290
+ num_of_cuts = 100
291
+ cuts = []
292
+ factor = 2* math.pi/num_of_cuts
293
+ for cut in range(num_of_cuts):
294
+ cuts.append(cut*factor)
295
+
296
+ for radius in cuts:
297
+ x = x_origin + r * math.cos(radius)
298
+ y = y_origin + r * math.sin(radius)
299
+ v = self.drawVertex(x,y,None)
300
+ if not radius == 0.0: # FIXME
301
+ self.drawSegment(v,v_old)
302
+ else:
303
+ v_first = v
304
+ v_old = v
305
+ self.drawSegment(v,v_first)
306
+ region = self.drawRegion(x_origin, y_origin, 0)
307
+ region.setTag("setheight5")
308
+
309
+
310
+ x_origin = 30-offset_x
311
+ y_origin = 30-offset_y
312
+ r = 5
313
+ pi = math.pi
314
+ num_of_cuts = 100
315
+ cuts = []
316
+ factor = 2* math.pi/num_of_cuts
317
+ for cut in range(num_of_cuts):
318
+ cuts.append(cut*factor)
319
+
320
+ for radius in cuts:
321
+ x = x_origin + r * math.cos(radius)
322
+ y = y_origin + r * math.sin(radius)
323
+ v = self.drawVertex(x,y,None)
324
+ if not radius == 0.0: # FIXME
325
+ self.drawSegment(v,v_old)
326
+ else:
327
+ v_first = v
328
+ v_old = v
329
+ self.drawSegment(v,v_first)
330
+ region = self.drawRegion(x_origin, y_origin, 0)
331
+ region.setTag("setheight10")
332
+ self.mesh.geo_reference = Geo_reference(zone=DEFAULT_ZONE,
333
+ xllcorner=offset_x,
334
+ yllcorner=offset_y)
335
+
336
+ #Since the new vertex may be off screen
337
+ self.scrolledcanvas.resizescrollregion()
338
+
339
+ def selectFunc(self, tag):
340
+ """
341
+ Change the current mode class
342
+ When changing from one mode to another
343
+ """
344
+ self.mouseDownCurFunc = self.mouseDownFunc[tag]
345
+ self.curModeClass = self.modeClass[tag]
346
+ self.clearSelections()
347
+ self.canvas.config(cursor='arrow')
348
+ # I can make it arrow, but it will change back to pointer, after
349
+ # adding an object
350
+ # if self.curFunc == self.func['pointer']:
351
+ # self.canvas.config(cursor='arrow')
352
+ # else:
353
+ # self.canvas.config(cursor='crosshair')
354
+
355
+ def clearSelections(self):
356
+ """
357
+ deselect objects that have been selected
358
+ """
359
+ if self.selMeshObject:
360
+ self.deselectMeshObject(self.selMeshObject, self.selMeshTag)
361
+ if self.selVertex:
362
+ self.deselectVertex(self.selVertex, self.selVertexTag)
363
+
364
+
365
+ def selectZoom(self, tag):
366
+ """
367
+ Zoom in or out of the current mesh view
368
+ """
369
+ fraction = string.atof(tag)
370
+ self.SCALE *= fraction
371
+ self.scrolledcanvas.scale(ALL, 0, 0, fraction, fraction)
372
+
373
+ # Redraw all of the vertices, holes and regions,
374
+ #so the squares representing vertices
375
+ # don't get bigger
376
+ vertices = self.mesh.getUserVertices()
377
+ holes = self.mesh.getHoles()
378
+ regions = self.mesh.getRegions()
379
+ MeshObjects = vertices + holes + regions
380
+
381
+ # make a list of tags to delete
382
+ guiIDs = [getattr(MeshObjects[i],'guiID') for i in xrange(len(MeshObjects))]
383
+ apply(self.canvas.delete, guiIDs)
384
+ for obj in MeshObjects:
385
+ if self.selVertex == obj:
386
+ obj.draw(self.canvas,obj.guiID, scale =self.SCALE ,colour= VERT_SELECT_ADDING_SEG_COLOR)
387
+ elif self.selMeshObject == obj:
388
+ obj.draw(self.canvas,obj.guiID, scale =self.SCALE ,colour= SELECT_COLOR)
389
+ else:
390
+ obj.draw(self.canvas,obj.guiID, scale =self.SCALE )
391
+ top, bottom = self.scrolledcanvas.xview()
392
+ xcenter = (top + bottom)/2
393
+ xdiff = xcenter - top
394
+ xcnew = xcenter - xdiff/fraction
395
+
396
+ top, bottom = self.scrolledcanvas.yview()
397
+ ycenter = (top + bottom)/2
398
+ ydiff = ycenter - top
399
+ ycnew = ycenter - ydiff/fraction
400
+
401
+ self.scrolledcanvas.resizescrollregion()
402
+ # update so the moveto calls will work...
403
+ self.scrolledcanvas.update()
404
+ # but calling update now does make things jerky
405
+ self.canvas.xview_moveto(xcnew)
406
+ self.canvas.yview_moveto(ycnew)
407
+
408
+
409
+ def windowAddVertex (self, parent):
410
+ """
411
+ add a vertex using a window and entering x y values.
412
+
413
+ the parent attribute isn't used by this function.
414
+ need to userstand toolbarbutton.py to know how to
415
+ get rid of it.
416
+ """
417
+
418
+ dialog = AddVertexDialog(self.canvas)
419
+ if dialog.xyValuesOk:
420
+ log.critical(str(dialog.x))
421
+ log.critical(str(dialog.y))
422
+ self.drawVertex(dialog.x*self.SCALE,dialog.y*self.SCALE,None)
423
+ #Since the new vertex may be off screen
424
+ self.ResizeToFit()
425
+ else:
426
+ log.critical("bad values")
427
+
428
+ def windowDefault (self, parent):
429
+ """
430
+
431
+ the parent attribute isn't used by this function.
432
+ need to userstand toolbarbutton.py to know how to
433
+ get rid of it.
434
+ """
435
+ # self.UserMesh is a vMesh instance
436
+ self.UserMesh.defaultWindow(self.canvas, self.curModeClass)
437
+
438
+ def windowEdit (self, parent):
439
+ """
440
+
441
+ the parent attribute isn't used by this function.
442
+ need to userstand toolbarbutton.py to know how to
443
+ get rid of it.
444
+ """
445
+ if self.selMeshObject:
446
+ self.UserMeshChanged = self.UserMesh.editWindow(self.canvas,
447
+ self.selMeshObject,
448
+ self.UserMeshChanged)
449
+
450
+ def auto_segmentButton (self, parent):
451
+ self.auto_segment()
452
+
453
+
454
+ def auto_segmentGiveAlphaButton (self, parent):
455
+ dialog = auto_segmentDialog(self.canvas, self.meshLastAlpha)
456
+ if dialog.use_optimum.get() == SET_ALPHA:
457
+ if dialog.alphaValueOk:
458
+ self.auto_segment(alpha = dialog.alpha,
459
+ raw_boundary=dialog.raw_boundary.get(),
460
+ remove_holes=dialog.remove_holes.get(),
461
+ smooth_indents=dialog.smooth_indents.get(),
462
+ expand_pinch=dialog.expand_pinch.get())
463
+ else:
464
+ showerror('pMesh',
465
+ 'Bad alpha value.')
466
+ else:
467
+ self.auto_segment(raw_boundary=dialog.raw_boundary.get(),
468
+ remove_holes=dialog.remove_holes.get(),
469
+ smooth_indents=dialog.smooth_indents.get(),
470
+ expand_pinch=dialog.expand_pinch.get())
471
+
472
+
473
+ def auto_segment (self, alpha = None,
474
+ raw_boundary=True,
475
+ remove_holes=False,
476
+ smooth_indents=False,
477
+ expand_pinch=False ):
478
+ """
479
+ add Segments to bound all vertices
480
+
481
+ """
482
+ if len(self.mesh.getUserVertices()) >= 3:
483
+ try:
484
+ newsegs, ObjectsToVisuallyDelete, self.meshLastAlpha = \
485
+ self.mesh.auto_segment(alpha=alpha,
486
+ remove_holes=remove_holes,
487
+ smooth_indents=smooth_indents,
488
+ expand_pinch=expand_pinch)
489
+ except AlphaError:
490
+ showerror('pMesh',
491
+ 'Unable to auto_segment.')
492
+ else:
493
+
494
+ for drawOb in ObjectsToVisuallyDelete:
495
+ self.UserMesh.unvisualise(drawOb, self.canvas)
496
+
497
+ for segment in newsegs:
498
+ self.serial +=1
499
+ self.uniqueID = 'M*%d' % self.serial
500
+ self.Segments.visualise(segment,
501
+ self.uniqueID,
502
+ self.canvas,
503
+ self.SCALE)
504
+
505
+ else:
506
+ showerror('pMesh',
507
+ 'Three or more vetices are needed to be able to auto_segment.')
508
+
509
+
510
+ def auto_segmentFilter (self):
511
+ dialog = auto_segmentFilterDialog(self.canvas)
512
+ newsegs, ObjectsToVisuallyDelete, self.meshLastAlpha = \
513
+ self.mesh.auto_segmentFilter(raw_boundary=dialog.raw_boundary.get(),
514
+ remove_holes=dialog.remove_holes.get(),
515
+ smooth_indents=dialog.smooth_indents.get(),
516
+ expand_pinch=dialog.expand_pinch.get())
517
+
518
+ for drawOb in ObjectsToVisuallyDelete:
519
+ self.UserMesh.unvisualise(drawOb, self.canvas)
520
+
521
+ for segment in newsegs:
522
+ self.serial +=1
523
+ self.uniqueID = 'M*%d' % self.serial
524
+ self.Segments.visualise(segment,
525
+ self.uniqueID,
526
+ self.canvas,
527
+ self.SCALE)
528
+
529
+ def joinVerticesButton (self, parent):
530
+ self.joinVertices()
531
+
532
+ def joinVertices (self):
533
+ """
534
+ add Segments to connect all vertices
535
+
536
+ the parent attribute isn't used by this function.
537
+ need to userstand toolbarbutton.py to know how to
538
+ get rid of it.
539
+ """
540
+ if len(self.mesh.getUserVertices()) >= 3:
541
+ newsegs = self.mesh.joinVertices()
542
+ for segment in newsegs:
543
+ self.serial +=1
544
+ self.uniqueID = 'M*%d' % self.serial
545
+ self.Segments.visualise(segment,
546
+ self.uniqueID,
547
+ self.canvas,
548
+ self.SCALE)
549
+ else:
550
+ showerror('pMesh',
551
+ 'Three or more vetices are needed to be able to join vertices.')
552
+
553
+ def windowMeshGen (self, parent):
554
+ """
555
+ The parent attribute isn't used by this function.
556
+ need to understand toolbarbutton.py to know how to
557
+ get rid of it.
558
+ """
559
+ # Put exceptions round things.
560
+ #catch failure in self.mesh.generateMesh
561
+ dialog = MeshGenDialog(self.canvas,
562
+ self.MeshMinAngle,
563
+ self.MeshMaxArea,
564
+ self.MeshnumTriangles,
565
+ self.MeshMaxAreaLast)
566
+
567
+ if dialog.ValuesOk:
568
+ log.critical(str(dialog.minAngle))
569
+ log.critical(str(dialog.maxArea))
570
+
571
+ self.clearSelections()
572
+ self.canvas.delete(ALL)
573
+ if dialog.goodMaxArea == True:
574
+ self.MeshMinAngle = dialog.minAngle
575
+ self.MeshMaxArea = dialog.maxArea
576
+ self.MeshMaxAreaLast = True
577
+
578
+ self.mesh = self.MeshGenAreaAngle (dialog.minAngle,
579
+ dialog.maxArea,
580
+ self.mesh)
581
+ elif dialog.goodNumTriangles == True:
582
+ self.MeshMinAngle = dialog.minAngle
583
+ self.MeshnumTriangles = dialog.numTriangles
584
+ self.MeshMaxAreaLast = False
585
+
586
+ self.mesh = self.MeshGenAreaNumTriangles (dialog.minAngle,
587
+ dialog.numTriangles,
588
+ self.mesh)
589
+ else:
590
+ pass
591
+ log.critical("userMeshChanged = False")
592
+ self.UserMeshChanged = False
593
+ self.visualiseMesh(self.mesh)
594
+ log.critical("Mesh Generation finished")
595
+
596
+ def MeshGenAreaAngle (self, minAngle, maxArea, mesh):
597
+ """
598
+ Generate a mesh, given a minAngle and max area
599
+ """
600
+ tempMesh = mesh
601
+ try:
602
+ tempMesh.generateMesh(mode = "pzq"+str(minAngle)
603
+ +"a"+str(maxArea)
604
+ +"a") #So areas for regions will be used
605
+ except AttributeError : # can't catch PyEval_RestoreThread
606
+ # This doesn't catch tempMesh.generateMesh failing
607
+ tempMesh = mesh
608
+ return tempMesh
609
+
610
+
611
+ def MeshGenAreaNumTriangles (self, minAngle, numTriangles, mesh):
612
+ """
613
+ Generate a mesh, given a minAngle and rough # of triangles
614
+ """
615
+ #get big triangles
616
+ #calc area
617
+ #calc max triangle area
618
+ #
619
+ tempMesh = mesh
620
+ try:
621
+ tempMesh.generateMesh("pzq1")
622
+ except AttributeError : # can't catch PyEval_RestoreThread
623
+ # This doesn't catch tempMesh.generateMesh failing
624
+ pass
625
+ meshArea = 0
626
+ meshArea = tempMesh.tri_mesh.calc_mesh_area()
627
+ maxArea = meshArea/numTriangles
628
+
629
+
630
+ return self.MeshGenAreaAngle (minAngle,
631
+ maxArea,
632
+ self.mesh)
633
+
634
+ def mouseDown(self, event):
635
+ """
636
+ On a mouse down event, depending on the current state,
637
+ either add a vertex or a seg etc
638
+ """
639
+ self.curObject = None
640
+ self.lastx = self.startx = self.canvas.canvasx(event.x)
641
+ #The screen canvas has y 'flipped'. -1* unflips it
642
+ self.lasty = self.starty = -1*self.canvas.canvasy(event.y)
643
+ log.critical("----------------------")
644
+ self.mouseDownCurFunc( self.lastx,
645
+ self.lasty,event) #!!! remove the event?
646
+ # do last
647
+
648
+ def rightMouseUp(self, event):
649
+ """
650
+ On a right mouse button up event select the nearest object.
651
+ """
652
+ found=False
653
+ if event.widget.find_withtag(CURRENT): # if there's a widget with a tag
654
+ [tag,string] = self.canvas.gettags(CURRENT) # get a list of them
655
+ log.critical("tag %s" % str(tag)) #tags ('M*1008', 'current')
656
+ if tag[:2] == 'M*': #!!! this can be removed when there are
657
+ # only mesh objects on screen
658
+ #key, value = string.split(tag, '*')
659
+ objectID = tag
660
+ log.critical("Found!! objectID: %s" % str(objectID))
661
+
662
+ meshObjects = self.getAllUserMeshObjects()
663
+ # It may be a triangle, which is ignored
664
+ if meshObjects.hasKey(objectID):
665
+ selMeshObject = meshObjects.getMeshObject(objectID)
666
+ found = True
667
+ log.critical("Found! selMeshObject: %s"
668
+ % str(selMeshObject))
669
+ #Only select one object at a time
670
+ if self.selMeshObject:
671
+ self.deselectMeshObject(self.selMeshObject, self.selMeshTag)
672
+ self.selectMeshObject(selMeshObject,objectID)
673
+
674
+ def getAllUserMeshObjects(self):
675
+ return self.UserMesh
676
+
677
+ def DeleteSelectedMeshObject(self, event):
678
+ """
679
+ if an object is selected, delete it.
680
+ """
681
+ if self.selMeshObject:
682
+ #an object is selected
683
+ #first deselect the vertex, for selecting a segment
684
+ if self.selVertex:
685
+ self.deselectVertex(self.selVertex, self.selVertexTag)
686
+ ObjectsToVisuallyDelete = self.mesh.deleteMeshObject (self.selMeshObject)
687
+ for drawOb in ObjectsToVisuallyDelete:
688
+ self.UserMesh.unvisualise(drawOb, self.canvas)
689
+
690
+ self.selMeshObject = None
691
+ self.selMeshTag = None
692
+
693
+ def selectMeshObject(self, meshObject, objectID):
694
+ """
695
+ selected a mesh object.
696
+ """
697
+ self.canvas.delete(objectID)
698
+ self.selMeshObject = meshObject
699
+ self.selMeshTag = objectID
700
+ meshObject.draw(self.canvas,objectID, scale =self.SCALE ,colour = SELECT_COLOR)
701
+
702
+ def deselectMeshObject(self, meshObject, objectID):
703
+ """
704
+ deselected a mesh object.
705
+ """
706
+ self.canvas.delete(objectID)
707
+ self.selMeshObject = None
708
+ self.selMeshTag = None
709
+ if isinstance(meshObject, mesh.Segment):
710
+ meshObject.draw(self.canvas,objectID,
711
+ scale =self.SCALE ,colour = SEG_COLOUR)
712
+ else:
713
+ meshObject.draw(self.canvas,objectID,
714
+ scale =self.SCALE )
715
+
716
+ def drag(self,x,y,event):
717
+ """
718
+ Hack function. called when in select and left mouse goes down
719
+ """
720
+ pass
721
+
722
+
723
+ def drawEastingNorthingVertex(self,x,y,event):
724
+ """
725
+ draw a vertex object, plus add it to the mesh data structure
726
+
727
+ event isn't used
728
+ """
729
+ self.serial +=1
730
+ self.uniqueID = 'M*%d' % self.serial
731
+ #x_scaled = self.SCALE*x
732
+ #y_scaled = -1*self.SCALE*y
733
+ vert = self.Vertices.draw(x-self.mesh.geo_reference.get_xllcorner,
734
+ y-self.mesh.geo_reference.get_yllcorner,
735
+ self.mesh,
736
+ self.uniqueID,
737
+ self.SCALE,
738
+ self.canvas,
739
+ event) #FIXME why is event passed on.
740
+ self.UserMeshChanged = True
741
+ return vert
742
+
743
+ def drawVertex(self,x,y,event):
744
+ """
745
+ draw a vertex object, plus add it to the mesh data structure
746
+
747
+ event isn't used
748
+ """
749
+ self.serial +=1
750
+ self.uniqueID = 'M*%d' % self.serial
751
+ #x_scaled = self.SCALE*x
752
+ #y_scaled = -1*self.SCALE*y
753
+ vert = self.Vertices.draw(x,y,self.mesh,self.uniqueID,self.SCALE,self.canvas,event)
754
+ self.UserMeshChanged = True
755
+ return vert
756
+
757
+ def drawHole(self,x,y,event):
758
+ """
759
+ draw a hole object, plus add it to the mesh data structure
760
+
761
+ event isn't used
762
+ """
763
+ self.serial +=1
764
+ self.uniqueID = 'M*%d' % self.serial
765
+ self.userMeshChanged = True
766
+ hole = self.Holes.draw(x,y,self.mesh,self.uniqueID,self.SCALE,self.canvas,event)
767
+ return hole
768
+
769
+ def drawRegion(self,x,y,event):
770
+ """
771
+ draw a region object, plus add it to the mesh data structure
772
+
773
+ event isn't used
774
+ """
775
+ self.serial +=1
776
+ self.uniqueID = 'M*%d' % self.serial
777
+ region = self.Regions.draw(x,y,self.mesh,self.uniqueID,self.SCALE,self.canvas,event)
778
+ return region
779
+
780
+ def selectSegmentPoint(self,x,y, event):
781
+ """
782
+ logic when selecting a vertex object to add a segment
783
+ """
784
+ found=False
785
+ if event.widget.find_withtag(CURRENT): # if there's a widget with a tag
786
+ [tag,string] = self.canvas.gettags(CURRENT) # get a list of them
787
+ log.critical("tag %s" % str(tag)) #tags ('M*1008', 'current')
788
+ objectID = tag
789
+ if self.Vertices.hasKey(objectID): #isinstance(self.meshObjects[objectID],mesh.Vertex):
790
+ vertex = self.Vertices.getMeshObject(objectID)
791
+ found = True
792
+ log.critical("Found! vertex: %s" % str(vertex))
793
+
794
+ if found and self.selVertex == vertex:
795
+ log.critical("The selected vertex has already been selected")
796
+ #The selected vertex has already been selected
797
+ # therefore deselect it
798
+ self.deselectVertex(self.selVertex, self.selVertexTag)
799
+ found = False
800
+
801
+ if found:
802
+ #A vertex has been selected!
803
+ if self.selVertex:
804
+ if self.mesh.isUserSegmentNew(self.selVertex,vertex):
805
+ #vertex is the 2nd vertex
806
+ self.drawSegment(vertex,self.selVertex)
807
+ self.deselectVertex(self.selVertex, self.selVertexTag)
808
+ self.selectVertex(vertex,objectID)
809
+ else:
810
+ log.critical("vertex is the 1st vertex")
811
+ #vertex is the 1st vertex
812
+ self.selectVertex(vertex,objectID)
813
+ else:
814
+ log.critical(" There are no widgets. This happen's too much")
815
+
816
+
817
+ def selectVertex(self, vertex,objectID):
818
+ """
819
+ select a vertex object when adding a segment
820
+ """
821
+ self.canvas.delete(objectID)
822
+ self.selVertex = vertex
823
+ self.selVertexTag = objectID
824
+ vertex.draw(self.canvas,objectID, scale =self.SCALE ,colour = VERT_SELECT_ADDING_SEG_COLOR)
825
+
826
+ def deselectVertex(self, vertex,objectID):
827
+ """
828
+ deselect a vertex object when adding a segment
829
+ """
830
+ self.canvas.delete(objectID)
831
+ self.selVertex = None
832
+ self.selVertexTag = None
833
+ vertex.draw(self.canvas,objectID, scale =self.SCALE )
834
+
835
+ def drawSegment(self,v1,v2):
836
+ """
837
+ Create a seg object, draw it and add it to the mesh data structure
838
+ """
839
+ self.serial +=1
840
+ self.uniqueID = 'M*%d' % self.serial
841
+ self.userMeshChanged = True
842
+ seg = self.Segments.draw(v1,v2,self.mesh,self.uniqueID,self.SCALE,self.canvas,None)
843
+ return seg
844
+ def printGeoReference(self):
845
+ try:
846
+ log.critical("geo reference %s" % str(self.mesh.geo_reference))
847
+ except:
848
+ log.critical("no geo reference")
849
+
850
+ def visualiseMesh(self,mesh):
851
+ """
852
+ visualise vertices, segments, triangulation, holes
853
+ """
854
+ if self.Visualise:
855
+ mesh.tri_mesh.draw_triangulation(self.canvas,
856
+ scale = self.SCALE)
857
+
858
+ for segment in mesh.getUserSegments():
859
+ self.serial +=1
860
+ self.uniqueID = 'M*%d' % self.serial
861
+ self.Segments.visualise(segment,
862
+ self.uniqueID,
863
+ self.canvas,
864
+ self.SCALE)
865
+ for vertex in mesh.getUserVertices():
866
+ self.serial +=1
867
+ self.uniqueID = 'M*%d' % self.serial
868
+ self.Vertices.visualise(vertex,
869
+ self.uniqueID,
870
+ self.canvas,
871
+ self.SCALE)
872
+
873
+ for hole in mesh.getHoles():
874
+ self.serial +=1
875
+ self.uniqueID = 'M*%d' % self.serial
876
+ self.Holes.visualise(hole,
877
+ self.uniqueID,
878
+ self.canvas,
879
+ self.SCALE)
880
+ for region in mesh.getRegions():
881
+ self.serial +=1
882
+ self.uniqueID = 'M*%d' % self.serial
883
+ self.Regions.visualise(region,
884
+ self.uniqueID,
885
+ self.canvas,
886
+ self.SCALE)
887
+ def obsolete_normalise4ObjMesh(self):
888
+ if self.mesh:
889
+ self.clearSelections()
890
+ self.canvas.delete(ALL)
891
+ self.mesh.normaliseMesh(400,-200,20)
892
+ self.visualiseMesh(self.mesh)
893
+ self.ResizeToFit()
894
+ self.ResizeToFit()
895
+
896
+ def obsolete_nnormaliseMesh(self):
897
+ if self.mesh:
898
+ self.clearSelections()
899
+ self.canvas.delete(ALL)
900
+ self.mesh.normaliseMesh(1,0,1)
901
+ self.visualiseMesh(self.mesh)
902
+ self.ResizeToFit()
903
+ self.ResizeToFit()
904
+
905
+
906
+ def clearMesh(self):
907
+ """Clear the current mesh object, and the canvas """
908
+
909
+ self.clearSelections()
910
+ self.canvas.delete(ALL)
911
+ self.deleteMesh()
912
+ self.initData()
913
+ self.createMesh()
914
+
915
+ def exportObj(self):
916
+ fileType = "obj"
917
+ fileTypeDesc = "obj mesh"
918
+
919
+ ofile = tkFileDialog.asksaveasfilename(filetypes=[(fileTypeDesc,
920
+ fileType),
921
+ ("All Files", "*")])
922
+ if ofile:
923
+ addOn = "." + fileType
924
+ jumpback = - len(addOn)
925
+ if ofile[jumpback:] != addOn:
926
+ ofile = ofile + addOn
927
+ try:
928
+ self.mesh.exportASCIIobj(ofile)
929
+ except IOError:
930
+ showerror('Export ASCII file',
931
+ 'Can not write to file.')
932
+ except RuntimeError:
933
+ showerror('Export ASCII file',
934
+ 'No triangulation to export.')
935
+
936
+
937
+
938
+ def ImportUngenerate(self):
939
+ ofile = tkFileDialog.askopenfilename(initialdir=self.currentPath,
940
+ filetypes=[ ("ungenerated polygon information", "txt"),
941
+ ("All Files", "*")])
942
+ if ofile == "":
943
+ # The user cancelled the loading action
944
+ return
945
+
946
+ try:
947
+ self.clearSelections()
948
+ self.canvas.delete(ALL)
949
+ dict = mesh.importUngenerateFile(ofile)
950
+ self.mesh.addVertsSegs(dict)
951
+
952
+ except SyntaxError:
953
+ # This is assuming that the SyntaxError is thrown in
954
+ # importUngenerateFile
955
+ showerror('File error',
956
+ ofile + ' is not in the correct format.')
957
+ except IOError:
958
+ #!!! this error type can not be thrown?
959
+ showerror('File error',
960
+ 'file ' + ofile + ' could not be found.')
961
+ except RuntimeError:
962
+ showerror('File error',
963
+ 'file ' + ofile + ' has an unknown file type.')
964
+
965
+ self.visualiseMesh(self.mesh)
966
+ self.ResizeToFit()
967
+
968
+ def exportASCIIsegmentoutlinefile(self):
969
+
970
+ ofile = tkFileDialog.asksaveasfilename(initialdir=self.currentPath,
971
+ filetypes=[("mesh", "*.tsh *.msh"),
972
+ ("All Files", "*")])
973
+
974
+ if ofile:
975
+ # .tsh is the default file format
976
+ if (ofile[-4:] == ".tsh" or ofile[-4:] == ".msh"):
977
+ self.currentFilePathName = ofile
978
+ else:
979
+ self.currentFilePathName = ofile + ".tsh"
980
+
981
+ try:
982
+ self.mesh.exportASCIIsegmentoutlinefile(ofile)
983
+ except IOError: #FIXME should this function be throwing any errors?
984
+ showerror('Export ASCII file',
985
+ 'Can not write to file.')
986
+
987
+ def exportPointsFile(self):
988
+ ofile = tkFileDialog.asksaveasfilename(initialdir=self.currentPath,
989
+ filetypes=[("point files",
990
+ "*.csv *.txt *.pts"),
991
+ ("All Files", "*")])
992
+ if ofile:
993
+ # .csv is the default file format
994
+ if (ofile[-4:] == ".csv" or ofile[-4:] == ".pts"):
995
+ self.currentFilePathName = ofile
996
+ else:
997
+ self.currentFilePathName = ofile + ".csv"
998
+
999
+ try:
1000
+ self.mesh.exportPointsFile(ofile)
1001
+ except IOError:
1002
+ showerror('Export ASCII file',
1003
+ 'Can not write to file.')
1004
+
1005
+ def importFile(self):
1006
+ """
1007
+ import mesh data from a variety of formats (currently 2!)
1008
+ """
1009
+ log.critical("self.currentPath %s" % str(self.currentPath))
1010
+ ofile = tkFileDialog.askopenfilename(initialdir=self.currentPath,
1011
+ filetypes=[ ("text Mesh",
1012
+ "*.tsh *.msh"),
1013
+ ("points",
1014
+ "*.csv *.txt *.pts"),
1015
+ ("All Files", "*")])
1016
+ if ofile == "":
1017
+ # The user cancelled the loading action
1018
+ return
1019
+
1020
+ try:
1021
+ newmesh = mesh.importMeshFromFile(ofile)
1022
+ self.currentPath, dummy = os.path.split(ofile)
1023
+ self.currentFilePathName = ofile
1024
+ self.clearMesh()
1025
+ self.mesh = newmesh
1026
+
1027
+ #FIXME - to speed things up, don't visualise the mesh
1028
+ # use ResizeToFitWrapper
1029
+ self.visualiseMesh(self.mesh)
1030
+ self.ResizeToFit()
1031
+
1032
+ except IOError:
1033
+ #!!! this error type can not be thrown?
1034
+ showerror('File error',
1035
+ 'file ' + ofile + ' could not be loaded.')
1036
+
1037
+ except RuntimeError:
1038
+ showerror('File error',
1039
+ 'file ' + ofile + ' has an unknown file type.')
1040
+ # Could not get the file name to showup in the title
1041
+ #appname = ofile + " - " + APPLICATION_NAME
1042
+
1043
+ except load_mesh.loadASCII.TitleAmountError:
1044
+ showerror('File error',
1045
+ 'file ' + ofile + ' has a bad title line (first line).')
1046
+
1047
+
1048
+ def ResizeToFitWrapper(self, Parent):
1049
+ """
1050
+ The parent attribute isn't used by this function.
1051
+ need to understand toolbarbutton.py to know how to
1052
+ get rid of it.
1053
+ """
1054
+ self.ResizeToFit()
1055
+
1056
+ def ResizeToFit(self):
1057
+ """Visualise the mesh so it fits in the window"""
1058
+ if self.mesh.getUserVertices() == []:
1059
+ return #There are no vertices!
1060
+ # Resize the window
1061
+ self.scrolledcanvas.resizescrollregion()
1062
+ # I need this so the xview values are correct
1063
+ self.scrolledcanvas.update()
1064
+
1065
+ xtop, xbottom = self.scrolledcanvas.xview()
1066
+ ytop, ybottom = self.scrolledcanvas.yview()
1067
+ xdiff = xbottom-xtop
1068
+ ydiff = ybottom-ytop
1069
+ if xdiff == 1 and xdiff == 1:
1070
+ #The mesh might be too small.
1071
+ #Make it too large, then resize
1072
+ #!!! Recursive hack. Should be a better way
1073
+ fraction = 50
1074
+ self.SCALE *= fraction
1075
+ self.scrolledcanvas.scale(ALL, 0, 0, fraction, fraction)
1076
+ self.ResizeToFit()
1077
+ else:
1078
+ # without 0.99 some of the mesh may be off screen
1079
+ fraction = 0.99*min(xdiff,ydiff)
1080
+ self.selectZoom(fraction)
1081
+
1082
+ def saveDrawing(self):
1083
+ """
1084
+ Save the current drawing
1085
+ """
1086
+ if (self.currentFilePathName[-4:] != ".tsh" or
1087
+ self.currentFilePathName[-4:] != ".msh"):
1088
+ # force user to choose a name
1089
+ self.saveAsDrawing()
1090
+ else:
1091
+ self.exportASCIItriangulationfile(self.currentFilePathName)
1092
+
1093
+ def saveAsDrawing(self):
1094
+ """
1095
+ Save the current drawing, prompting for a file name
1096
+ """
1097
+ ofile = tkFileDialog.asksaveasfilename(initialdir=self.currentPath,
1098
+ filetypes=[("mesh", "*.tsh *.msh"),
1099
+ ("All Files", "*")])
1100
+
1101
+ if ofile:
1102
+ # .tsh is the default file format
1103
+ if (ofile[-4:] == ".tsh" or ofile[-4:] == ".msh"):
1104
+ self.currentFilePathName = ofile
1105
+ else:
1106
+ self.currentFilePathName = ofile + ".tsh"
1107
+ self.exportASCIItriangulationfile(self.currentFilePathName)
1108
+
1109
+ def exportASCIItriangulationfile(self,currentFilePathName):
1110
+ """
1111
+ Have a warning prompt when saving a mesh where the generated mesh is
1112
+ different from the user mesh - eg boundary tags that aren't carried
1113
+ thru. Warning ~"Mesh not generated after changes. Generate mesh? "
1114
+ - cancel, don't gen, don't save. Yes - generate mesh, go to save
1115
+ screen. No - goto save screen. To implement this need to know when
1116
+ the user has done a change, and the mesh hasn't been generated. If
1117
+ there is no generated mesh do not prompt.
1118
+ """
1119
+ if (self.UserMeshChanged) and self.mesh.isTriangulation():
1120
+
1121
+ m = _show("Warning",
1122
+ "A triangulation has not been generated, after mesh changes. Generate triangulation before saving?",
1123
+ icon=QUESTION,
1124
+ type=YESNOCANCEL)
1125
+ if m == "no":
1126
+ self.mesh.export_mesh_file(currentFilePathName)
1127
+ self.UserMeshChanged = False
1128
+ elif m == "cancel":
1129
+ pass
1130
+ elif m == "yes":
1131
+ self.windowMeshGen(None)
1132
+ self.mesh.export_mesh_file(currentFilePathName)
1133
+ else:
1134
+ self.mesh.export_mesh_file(currentFilePathName)
1135
+ self.UserMeshChanged = False
1136
+
1137
+ def initData(self):
1138
+ """
1139
+ Initialise various lists and flags
1140
+ """
1141
+ self.serial = 1000
1142
+ self.currentFilePathName = 'untitled'
1143
+
1144
+ # these are attributes I've added
1145
+ self.SCALE = 1
1146
+ self.selVertex = None #The last vertex selected, in draw seg mode
1147
+ self.selVertexTag = None # The selected vertex drawn object tag
1148
+ self.mesh = None
1149
+ self.MeshMinAngle = 20
1150
+ self.MeshMaxArea = 200
1151
+ self.MeshnumTriangles = 20
1152
+ self.MeshMaxAreaLast = False
1153
+ self.selMeshObject = None # The mesh object selected in the current mode
1154
+ self.selMeshTag = None
1155
+ mesh.Segment.set_default_tag("")
1156
+ self.UserMeshChanged = False
1157
+ self.meshLastAlpha = None
1158
+
1159
+ self.Visualise = True #Is the mesh shown or not?
1160
+
1161
+ def ipostscript(self):
1162
+ """
1163
+ Print the canvas as a postscript file
1164
+ """
1165
+ ofile = tkFileDialog.asksaveasfilename(initialdir=self.currentPath,
1166
+ filetypes=[("postscript", "ps"),
1167
+ ("All Files", "*")])
1168
+ if ofile:
1169
+ if ofile[-3:] != ".ps":
1170
+ ofile = ofile + ".ps"
1171
+ postscript = self.canvas.postscript()
1172
+ fd = open(ofile, 'w')
1173
+ fd.write(postscript)
1174
+ fd.close()
1175
+
1176
+ def close(self):
1177
+ self.quit()
1178
+
1179
+ def createInterface(self):
1180
+ """
1181
+ Call all functions that create the GUI interface
1182
+ """
1183
+ self.initData()
1184
+ self.createMesh()
1185
+ AppShell.AppShell.createInterface(self)
1186
+ self.createButtons()
1187
+ self.createMenus()
1188
+ self.createBase()
1189
+ self.createTools()
1190
+ self.createZooms()
1191
+ self.createEdits()
1192
+ self.createVisualiseIcons()
1193
+ #print "FIX THIS BEFORE "
1194
+ #self.addCylinders() # !!!DSG start pmesh with a triangle
1195
+ self.selectFunc('pointer')
1196
+ self.currentPath = os.getcwd()
1197
+
1198
+ def loadtestmesh(self,ofile):
1199
+ """
1200
+ debugging script to test loading a file
1201
+ """
1202
+ fd = open(ofile)
1203
+ a = mesh.Vertex (-10.0, 0.0)
1204
+ d = mesh.Vertex (0.0, 4.0)
1205
+ f = mesh.Vertex (4.0,0.0)
1206
+ g = mesh.Vertex (-5.0,5.0)
1207
+
1208
+ s1 = mesh.Segment(a,d)
1209
+ s2 = mesh.Segment(d,f)
1210
+ s3 = mesh.Segment(a,f)
1211
+
1212
+ r1 = mesh.Region(0.3, 0.3)
1213
+
1214
+ m = mesh.Mesh(userVertices=[a,d,f,g], userSegments=[s1,s2,s3], regions=[r1] )
1215
+
1216
+ fd.close()
1217
+ log.critical('returning m')
1218
+ return oadtestmesh(ofile)
1219
+
1220
+ class AddVertexDialog(Dialog):
1221
+ """
1222
+ Dialog box for adding a vertex by entering co-ordindates
1223
+ """
1224
+ def body(self, master):
1225
+ """
1226
+ GUI description
1227
+ """
1228
+ self.title("Add New Vertex")
1229
+
1230
+ Label(master, text='X position:').grid(row=0, sticky=W)
1231
+ Label(master, text='Y position:').grid(row=1, sticky=W)
1232
+
1233
+ self.xstr = Entry(master, width = 16, name ="entry")
1234
+ self.ystr = Entry(master, width = 16)
1235
+
1236
+ self.xstr.grid(row=0, column=1, sticky=W)
1237
+ self.ystr.grid(row=1, column=1, sticky=W)
1238
+ self.xstr.focus_force()
1239
+ self.x = 0
1240
+ self.y = 0
1241
+ self.xyValuesOk = False
1242
+
1243
+
1244
+ def apply(self):
1245
+ """
1246
+ check entered values
1247
+ """
1248
+ try:
1249
+ self.x = float(self.xstr.get())
1250
+ self.y = float(self.ystr.get())
1251
+ self.xyValuesOk = True
1252
+
1253
+ except ValueError:
1254
+ showerror('Bad Vertex values',
1255
+ 'X Y values are not numbers.')
1256
+
1257
+
1258
+ class auto_segmentDialog(Dialog):
1259
+ """
1260
+ Dialog box for adding segments
1261
+ """
1262
+ def __init__(self, parent, alpha):
1263
+ self.alpha = alpha
1264
+ Dialog.__init__(self, parent)
1265
+
1266
+ def body(self, master):
1267
+ """
1268
+ GUI description
1269
+ """
1270
+ self.title("Automatically Add Segments")
1271
+
1272
+ self.use_optimum = IntVar()
1273
+ self.use_optimum.set(AUTO) # should initialise the radio buttons.
1274
+ # It doesn't
1275
+
1276
+ #self.use_optimum.set(NO_SELECTION)
1277
+ self.ck = Radiobutton(master, value = AUTO, variable=self.use_optimum)
1278
+ self.ck.grid(row=1, column=0)
1279
+ Label(master, text='Use optimum alpha').grid(row=1, column=1, sticky=W)
1280
+
1281
+ self.ck2 = Radiobutton(master, value = SET_ALPHA,
1282
+ variable=self.use_optimum)
1283
+ self.ck2.grid(row=2, column=0)
1284
+
1285
+ Label(master, text='alpha:').grid(row=2, column=1, sticky=W)
1286
+ if (self.alpha):
1287
+ alphaVar = StringVar()
1288
+ alphaVar.set(self.alpha)
1289
+ self.alpha_str = Entry(master,
1290
+ textvariable = alphaVar,
1291
+ width = 16, name ="entry")
1292
+ else:
1293
+ self.alpha_str = Entry(master, width = 16, name ="entry")
1294
+
1295
+ self.alpha_str.grid(row=2, column=3, sticky=W)
1296
+
1297
+ #boundary type buttons
1298
+ self.raw_boundary = IntVar()
1299
+ self.remove_holes = IntVar()
1300
+ self.smooth_indents = IntVar()
1301
+ self.expand_pinch = IntVar()
1302
+ self.ck3 = Checkbutton(master, state=NORMAL,
1303
+ variable=self.raw_boundary)
1304
+ self.ck3.grid(row=3, column=0)
1305
+ Label(master, text='Raw boundary').grid(row=3, column=1, sticky=W)
1306
+ #
1307
+ self.ck4 = Checkbutton(master, state=NORMAL,
1308
+ variable=self.remove_holes)
1309
+ self.ck4.grid(row=4, column=0)
1310
+ Label(master, text='Remove small holes').grid(row=4,column=1, sticky=W)
1311
+ #
1312
+ self.ck5 = Checkbutton(master,state=NORMAL,
1313
+ variable=self.smooth_indents)
1314
+ self.ck5.grid(row=5, column=0)
1315
+ Label(master,
1316
+ text='Remove sharp indents').grid(row=5, column=1, sticky=W)
1317
+ #
1318
+ self.ck6 = Checkbutton(master,state=NORMAL,
1319
+ variable=self.expand_pinch)
1320
+ self.ck6.grid(row=6, column=0)
1321
+ Label(master,
1322
+ text='Remove pinch off').grid(row=6, column=1, sticky=W)
1323
+
1324
+
1325
+ self.alpha = 0
1326
+ self.alphaValueOk = False
1327
+
1328
+
1329
+ def apply(self):
1330
+ """
1331
+ check entered values
1332
+ """
1333
+ try:
1334
+ self.alpha = float(self.alpha_str.get())
1335
+ self.alphaValueOk = True
1336
+
1337
+ except ValueError:
1338
+ pass
1339
+ #showerror('Bad Alpha value',
1340
+ # 'Alpha is negative.')
1341
+
1342
+
1343
+ class auto_segmentFilterDialog(Dialog):
1344
+ """
1345
+ Dialog box for adding segments
1346
+ """
1347
+ def __init__(self, parent):
1348
+ Dialog.__init__(self, parent)
1349
+
1350
+ def body(self, master):
1351
+ """
1352
+ GUI description
1353
+ """
1354
+ self.title("Automatically Add Segments")
1355
+
1356
+ self.use_optimum = IntVar()
1357
+ self.use_optimum.set(AUTO) # should initialise the radio buttons.
1358
+ # It doesn't
1359
+ self.boundary_type = IntVar()
1360
+
1361
+ #boundary type buttons
1362
+ self.raw_boundary = IntVar()
1363
+ self.remove_holes = IntVar()
1364
+ self.smooth_indents = IntVar()
1365
+ self.expand_pinch = IntVar()
1366
+
1367
+ self.ck3 = Checkbutton(master, state=NORMAL,
1368
+ variable=self.raw_boundary)
1369
+ self.ck3.grid(row=3, column=0)
1370
+ Label(master, text='Raw boundary').grid(row=3, column=1, sticky=W)
1371
+ #
1372
+ self.ck4 = Checkbutton(master, state=NORMAL,
1373
+ variable=self.remove_holes)
1374
+ self.ck4.grid(row=4, column=0)
1375
+ Label(master, text='Remove small holes').grid(row=4,column=1, sticky=W)
1376
+ #
1377
+ self.ck5 = Checkbutton(master,state=NORMAL,
1378
+ variable=self.smooth_indents)
1379
+ self.ck5.grid(row=5, column=0)
1380
+ Label(master,
1381
+ text='Remove sharp indents').grid(row=5, column=1, sticky=W)
1382
+ #
1383
+ self.ck6 = Checkbutton(master,state=NORMAL,
1384
+ variable=self.expand_pinch)
1385
+ self.ck6.grid(row=6, column=0)
1386
+ Label(master,
1387
+ text='Remove pinch off').grid(row=6, column=1, sticky=W)
1388
+
1389
+
1390
+
1391
+
1392
+ class MeshGenDialog(Dialog):
1393
+ """
1394
+ Dialog box for generating a mesh
1395
+ """
1396
+ # initial values, hard coded.
1397
+ # should be values associated with the current mesh
1398
+ lastMinAngle = 20
1399
+ lastMaxArea = 100
1400
+
1401
+
1402
+ def __init__(self,
1403
+ parent,
1404
+ minAngle,
1405
+ maxArea,
1406
+ numTriangles,
1407
+ MeshMaxAreaLast):
1408
+ self.minAngle = minAngle
1409
+ self.maxArea = maxArea
1410
+ self.numTriangles = numTriangles
1411
+ self.MeshMaxAreaLast = MeshMaxAreaLast
1412
+
1413
+ Dialog.__init__(self, parent)
1414
+
1415
+
1416
+ def body(self, master):
1417
+ """
1418
+ GUI description
1419
+ """
1420
+ self.title("Generate Mesh")
1421
+
1422
+ Label(master,
1423
+ text='Minimum Angle(0 - 40):').grid(row=0, sticky=W)
1424
+ Label(master,
1425
+ text='Angles>33 may not converge').grid(row=1, sticky=W)
1426
+ Label(master, text='Maximum Area:').grid(row=2, sticky=W)
1427
+ Label(master, text='OR # of triangles:').grid(row=3, sticky=W)
1428
+
1429
+
1430
+ minAngleVar = StringVar()
1431
+ minAngleVar.set(self.minAngle)
1432
+ self.minAnglestr = Entry(master,
1433
+ width = 16,
1434
+ textvariable = minAngleVar,
1435
+ takefocus=1)
1436
+ if (self.MeshMaxAreaLast):
1437
+ maxAreaVar = StringVar()
1438
+ maxAreaVar.set(self.maxArea)
1439
+ self.maxAreastr = Entry(master,
1440
+ textvariable = maxAreaVar,
1441
+ width = 16)
1442
+ self.numTrianglesstr = Entry(master,
1443
+ width = 16)
1444
+ else:
1445
+ self.maxAreastr = Entry(master,
1446
+ width = 16)
1447
+ self.maxAreastr.focus_force()
1448
+ numTrianglesVar = StringVar()
1449
+ numTrianglesVar.set(self.numTriangles)
1450
+ self.numTrianglesstr = Entry(master,
1451
+ textvariable = numTrianglesVar,
1452
+ width = 16)
1453
+
1454
+
1455
+ self.minAnglestr.grid(row=0, column=1, sticky=W)
1456
+ self.maxAreastr.grid(row=2, column=1, sticky=W)
1457
+ self.numTrianglesstr.grid(row=3, column=1, sticky=W)
1458
+
1459
+ self.numTriangles = 0
1460
+ self.minAngle = 0
1461
+ self.maxArea = 0
1462
+ self.ValuesOk = False
1463
+
1464
+
1465
+ def apply(self):
1466
+ """
1467
+ check entered values
1468
+ """
1469
+ self.goodMaxArea = self.goodNumTriangles = True
1470
+ self.ValuesOk = True
1471
+ try:
1472
+ self.minAngle = float(self.minAnglestr.get())
1473
+ MeshGenDialog.lastMinAngle =self.minAngle
1474
+ except ValueError:
1475
+ self.ValuesOk = False
1476
+ showerror('Bad mesh generation values',
1477
+ ' Values are not numbers.')
1478
+
1479
+ try:
1480
+ self.maxArea = float(self.maxAreastr.get())
1481
+ MeshGenDialog.lastMaxArea =self.maxArea
1482
+ except ValueError:
1483
+ self.goodMaxArea = False
1484
+
1485
+ try:
1486
+ self.numTriangles = int(self.numTrianglesstr.get())
1487
+ MeshGenDialog.lastNumTriangles =self.numTriangles
1488
+ except ValueError:
1489
+ self.goodNumTriangles= False
1490
+
1491
+ if self.goodMaxArea == False and self.goodNumTriangles == False:
1492
+ self.ValuesOk = False
1493
+ showerror('Bad mesh generation values',
1494
+ 'Values are not numbers.')
1495
+
1496
+ if self.goodMaxArea == True and self.goodNumTriangles == True:
1497
+ self.ValuesOk = False
1498
+ showerror('Bad mesh generation values',
1499
+ 'Give a maximum area OR number of triangles, not both.')
1500
+
1501
+ try:
1502
+ # value checking
1503
+ if self.minAngle <0.0 or self.minAngle >40.0:
1504
+ raise IOError
1505
+ if self.goodMaxArea == True and self.maxArea <0.0:
1506
+ raise IOError
1507
+ if self.goodNumTriangles == True and self.numTriangles <=0:
1508
+ raise IOError
1509
+
1510
+ except IOError:
1511
+ self.ValuesOk = False
1512
+ showerror('Bad mesh generation values',
1513
+ 'Values are out of range.')
1514
+
1515
+ if __name__ == '__main__':
1516
+ draw = Draw()
1517
+ draw.run()
1518
+ #profile.run('draw.run()', 'pmeshprof')
1519
+