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,2129 @@
1
+ #!/usr/bin/env python
2
+ #
3
+ import tempfile
4
+ import unittest
5
+
6
+ #try:
7
+ from anuga.pmesh.mesh import *
8
+ #except ImportError:
9
+ # from mesh import *
10
+
11
+
12
+ from anuga.load_mesh.loadASCII import *
13
+ from anuga.coordinate_transforms.geo_reference import Geo_reference
14
+ from anuga.geospatial_data.geospatial_data import Geospatial_data
15
+ from anuga.geometry.polygon import is_inside_polygon ### inside_polygon
16
+
17
+ import numpy as num
18
+
19
+ class meshTestCase(unittest.TestCase):
20
+ def setUp(self):
21
+ pass
22
+
23
+ def tearDown(self):
24
+ pass
25
+
26
+ def testPointDistance(self):
27
+ a = Point(0.0, 0.0)
28
+ b = Point(0.0, 10.0)
29
+
30
+ self.assertTrue( a.DistanceToPoint(b) == 10.0,
31
+ 'Point DistanceToPoint is wrong!')
32
+
33
+ def testVertexDistance(self):
34
+ a = Vertex (0.0, 0.0)
35
+ b = Vertex (0.0, 10.0)
36
+
37
+ self.assertTrue( a.DistanceToPoint(b) == 10.0,
38
+ 'Point DistanceToPoint is wrong!')
39
+
40
+
41
+ def testSegment(self):
42
+ a = Vertex (0.0, 0.0)
43
+ b = Vertex (0.0, 10.0)
44
+ s = Segment(a,b, tag = 20)
45
+
46
+ self.assertTrue( s.vertices[0].DistanceToPoint(s.vertices[1]) == 10.0,
47
+ 'vertices in a segment are wrong')
48
+
49
+ self.assertTrue( s.tag == 20.0,
50
+ 'tag in a segment are wrong')
51
+
52
+ def testdeleteUserVertex(self):
53
+
54
+
55
+ mesh = Mesh()
56
+ a = mesh.addUserVertex(0.0, 0.0)
57
+ b = mesh.addUserVertex (0.0, 2.0)
58
+ c = mesh.addUserVertex (2.0,0.0)
59
+
60
+ s1 = mesh.addUserSegment(a,b)
61
+ s2 = mesh.addUserSegment(a,c)
62
+ s3 = mesh.addUserSegment(c,b)
63
+
64
+ mesh.deleteMeshObject (a)
65
+ self.assertTrue(mesh.userSegments[0] == s3,
66
+ 'Bad segment. ')
67
+ self.assertTrue(len(mesh.userSegments) == 1,
68
+ 'Segments not deleted.')
69
+ self.assertTrue(len(mesh.userVertices) == 2,
70
+ 'Vertex not deleted.')
71
+
72
+
73
+ # FIXME add test for minAngle
74
+ def testgenerateMesh(self):
75
+ a = Vertex (0.0, 0.0)
76
+ d = Vertex (0.0, 4.0)
77
+ f = Vertex (4.0,0.0)
78
+
79
+ s1 = Segment(a,d)
80
+ s2 = Segment(d,f)
81
+ s3 = Segment(a,f)
82
+
83
+ r1 = Region(0.3, 0.3, tag = 1.3, maxArea = .6)
84
+ #print r1
85
+ m = Mesh(userVertices=[a,d,f], userSegments=[s1,s2,s3], regions=[r1] )
86
+
87
+ m.generateMesh("Q", maxArea = 2.1 )
88
+
89
+ #print m
90
+
91
+ #m.plotMeshTriangle()
92
+
93
+ result = 1.414214
94
+ delta = 0.00001
95
+ tri = m.getTriangulation()
96
+ verts = m.getMeshVertices()
97
+ x = verts[tri[1][0]][0]
98
+ #self.assertTrue((m.meshTriangles[1].vertices[0].x < result + delta) or
99
+ # (m.meshTriangles[1].vertices[0].x > result - delta),
100
+ # 'generated mesh is wrong!')
101
+
102
+ self.assertTrue((x < result + delta) or
103
+ (x > result - delta),
104
+ 'generated mesh is wrong!')
105
+
106
+ def test_regionalMaxArea(self):
107
+ v0 = Vertex (0.0, 0.0)
108
+ v1 = Vertex (6.0, 0.0)
109
+ v2 = Vertex (6.0,6.0)
110
+ v3 = Vertex (0.0,6.0)
111
+
112
+ s1 = Segment(v0,v1)
113
+ s2 = Segment(v1,v2)
114
+ s3 = Segment(v3,v2)
115
+ s4 = Segment(v3,v0)
116
+ s5 = Segment(v2,v0)
117
+
118
+ r1 = Region(3, 1,tag = 1.3)
119
+ #print r1
120
+ m = Mesh(userVertices=[v0,v1,v2,v3], userSegments=[s1,s2,s3,s4,s5], regions=[r1] )
121
+
122
+ m.generateMesh("Q", maxArea = 36 )
123
+
124
+ #m.plotMeshTriangle()
125
+ #print "len(m.meshTriangles)",len(m.meshTriangles)
126
+
127
+ self.assertTrue(len(m.getTriangulation()) == 2,
128
+ 'test_regionalMaxArea 1:generated mesh is wrong!')
129
+
130
+ ## Another test case
131
+ r1 = Region(3, 1,tag = 1.3)
132
+ r2 = Region(1, 3,tag = 1.3, maxArea = 8)
133
+ m = Mesh(userVertices=[v0,v1,v2,v3], userSegments=[s1,s2,s3,s4,s5],
134
+ regions=[r1,r2] )
135
+ m.generateMesh("Q", maxArea = 36 )
136
+
137
+ self.assertTrue(len(m.getTriangulation()) >= 6,
138
+ 'testregion_with_maxarea 2: # of tris is wrong!')
139
+
140
+
141
+ ## Another test case
142
+ r1 = Region(3, 1, tag = 1.3, maxArea = 8)
143
+ r2 = Region(1, 3, tag = 1.3, maxArea = 8)
144
+ m = Mesh(userVertices=[v0,v1,v2,v3], userSegments=[s1,s2,s3,s4,s5],
145
+ regions=[r1,r2] )
146
+ m.generateMesh("Q", maxArea = 36 )
147
+ #print "len(m.meshTriangles)",len(m.meshTriangles)
148
+
149
+ self.assertTrue(len(m.getTriangulation()) >= 8,
150
+ 'testregion_with_maxarea 3: # of tris is wrong!')
151
+
152
+
153
+ ## Another test case
154
+ r1 = Region(3, 1, tag = 1.3 )
155
+ r2 = Region(1, 3, tag = 1.3, maxArea = 8)
156
+ m = Mesh(userVertices=[v0,v1,v2,v3], userSegments=[s1,s2,s3,s4,s5],
157
+ regions=[r1,r2] )
158
+ m.generateMesh("Q", maxArea = 8 )
159
+ self.assertTrue(len(m.getTriangulation()) >= 8,
160
+ 'testregion_with_maxarea 4: # of tris is wrong!')
161
+
162
+
163
+ ## Another test case
164
+ r1 = Region(3, 1,tag = 1.3, maxArea = 8)
165
+ r2 = Region(1, 3,tag = 1.3, maxArea = 8)
166
+ m = Mesh(userVertices=[v0,v1,v2,v3], userSegments=[s1,s2,s3,s4,s5],
167
+ regions=[r1,r2] )
168
+ m.generateMesh("Q", maxArea = 36,isRegionalMaxAreas = False )
169
+ self.assertTrue(len(m.getTriangulation()) == 2,
170
+ 'test_regionalMaxArea 5:generated mesh is wrong!')
171
+
172
+ ## Another test case
173
+ r1 = Region(3, 1,tag = 1.3, maxArea = 8)
174
+ r2 = Region(1, 3,tag = 1.3, maxArea = 8)
175
+ m = Mesh(userVertices=[v0,v1,v2,v3], userSegments=[s1,s2,s3,s4,s5],
176
+ regions=[r1,r2] )
177
+ m.generateMesh("Q",isRegionalMaxAreas = False )
178
+ self.assertTrue(len(m.getTriangulation()) == 2,
179
+ 'test_regionalMaxArea 5:generated mesh is wrong!')
180
+
181
+ def test_generate_mesh(self):
182
+ v0 = Vertex (0.0, 0.0)
183
+ v1 = Vertex (6.0, 0.0)
184
+ v2 = Vertex (6.0,6.0)
185
+ v3 = Vertex (0.0,6.0)
186
+
187
+ s1 = Segment(v0,v1)
188
+ s2 = Segment(v1,v2)
189
+ s3 = Segment(v3,v2)
190
+ s4 = Segment(v3,v0)
191
+ s5 = Segment(v2,v0)
192
+
193
+ r1 = Region(3, 1,tag = 1.3)
194
+ #print r1
195
+ m = Mesh(userVertices=[v0,v1,v2,v3], userSegments=[s1,s2,s3,s4,s5],
196
+ regions=[r1] )
197
+
198
+ m.generate_mesh(maximum_triangle_area=36,verbose=False)
199
+
200
+ self.assertTrue(len(m.getTriangulation()) == 2,
201
+ 'test_regionalMaxArea 1:generated mesh is wrong!')
202
+
203
+ ## Another test case
204
+ r1 = Region(3, 1,tag = 1.3)
205
+ r2 = Region(1, 3,tag = 1.3, maxArea = 8)
206
+ m = Mesh(userVertices=[v0,v1,v2,v3], userSegments=[s1,s2,s3,s4,s5],
207
+ regions=[r1,r2] )
208
+ m.generate_mesh(maximum_triangle_area=36,verbose=False)
209
+
210
+ self.assertTrue(len(m.getTriangulation()) >= 6,
211
+ 'testregion_with_maxarea 2: # of tris is wrong!')
212
+
213
+ ## Another test case
214
+ r1 = Region(3, 1, tag = 1.3, maxArea = 8)
215
+ r2 = Region(1, 3, tag = 1.3, maxArea = 8)
216
+ m = Mesh(userVertices=[v0,v1,v2,v3], userSegments=[s1,s2,s3,s4,s5],
217
+ regions=[r1,r2] )
218
+ m.generate_mesh(maximum_triangle_area=36,verbose=False)
219
+ #print "len(m.getTriangulation())",len(m.getTriangulation())
220
+
221
+ self.assertTrue(len(m.getTriangulation()) >= 8,
222
+ 'testregion_with_maxarea 3: # of tris is wrong!')
223
+
224
+ ## Another test case
225
+ r1 = Region(3, 1, tag = 1.3 )
226
+ r2 = Region(1, 3, tag = 1.3, maxArea = 8)
227
+ m = Mesh(userVertices=[v0,v1,v2,v3], userSegments=[s1,s2,s3,s4,s5],
228
+ regions=[r1,r2] )
229
+ m.generate_mesh(maximum_triangle_area=8,verbose=False)
230
+ self.assertTrue(len(m.getTriangulation()) >= 8,
231
+ 'testregion_with_maxarea 4: # of tris is wrong!')
232
+
233
+ ## Another test case r1 = Region(3, 1,tag = 1.3, maxArea = 8)
234
+ r2 = Region(1, 3,tag = 1.3, maxArea = 8)
235
+ m = Mesh(userVertices=[v0,v1,v2,v3],
236
+ userSegments=[s1,s2,s3,s4,s5], regions=[r1,r2] )
237
+ m.generate_mesh(verbose=False)
238
+ #print "en(m.getTriangulation())", len(m.getTriangulation())
239
+ self.assertTrue(len(m.getTriangulation()) >= 8,
240
+ 'You have issues!')
241
+
242
+ def testdeleteUserVertex(self):
243
+ mesh = Mesh()
244
+ a = mesh.addUserVertex(0.0, 0.0)
245
+ b = mesh.addUserVertex (0.0, 2.0)
246
+ c = mesh.addUserVertex (2.0,0.0)
247
+
248
+ s1 = mesh.addUserSegment(a,b)
249
+ s2 = mesh.addUserSegment(a,c)
250
+ s3 = mesh.addUserSegment(c,b)
251
+
252
+ mesh.deleteMeshObject (s2)
253
+
254
+ #print ",s2 in mesh.userSegments" ,s2 in mesh.userSegments
255
+ self.assertTrue(not(s2 in mesh.userSegments),
256
+ 'Bad segment. ')
257
+ self.assertTrue(len(mesh.userSegments) ==2,
258
+ 'Segments not deleted.')
259
+ self.assertTrue(len(mesh.userVertices) == 3,
260
+ 'Vertex deleted, instead of segment.')
261
+
262
+ def testisUserSegmentNew (self):
263
+ mesh = Mesh()
264
+ a = mesh.addUserVertex(0.0, 0.0)
265
+ b = mesh.addUserVertex (0.0, 2.0)
266
+ c = mesh.addUserVertex (2.0,0.0)
267
+ d = mesh.addUserVertex (2.0,3.0)
268
+
269
+ s1 = mesh.addUserSegment(a,b)
270
+ s2 = mesh.addUserSegment(a,c)
271
+ s3 = mesh.addUserSegment(c,b)
272
+
273
+ self.assertTrue(mesh.isUserSegmentNew(a,d) ,
274
+ 'Segment should be new. ')
275
+ self.assertTrue(not(mesh.isUserSegmentNew(a,b)) ,
276
+ 'Segment should not be new. ')
277
+
278
+
279
+ def testisUserSegmentNewII (self):
280
+ mesh = Mesh()
281
+ a = mesh.addUserVertex(0.0, 0.0)
282
+ b = mesh.addUserVertex (0.0, 2.0)
283
+ c = mesh.addUserVertex (2.0,0.0)
284
+ d = mesh.addUserVertex (2.0,3.0)
285
+
286
+ s1 = mesh.addUserSegment(a,b)
287
+ s2 = mesh.addUserSegment(a,c)
288
+ s3 = mesh.addUserSegment(c,b)
289
+
290
+ self.assertTrue(mesh.representedUserSegment(a,d) == None,
291
+ 'Segment should be new. ')
292
+ self.assertTrue(mesh.representedUserSegment(a,b) == s1 ,
293
+ 'Segment should not be new. ')
294
+
295
+ def testauto_segment(self):
296
+ p0 = Vertex (0.0, 0.0)
297
+ p1 = Vertex (0.0, 4.0)
298
+ p2 = Vertex (4.0,4.0)
299
+ p3 = Vertex (4.0,0.0)
300
+
301
+ s1 = Segment(p0,p1)
302
+
303
+ m = Mesh(userVertices=[p0, p1, p2, p3], userSegments=[s1] )
304
+ m.auto_segment()
305
+
306
+ #print 'Len', len(m.userSegments)
307
+ self.assertTrue(len(m.getUserSegments()) == 4 ,
308
+ 'userSegments is wrong!')
309
+
310
+ m.auto_segment()
311
+ self.assertTrue(len(m.getUserSegments()) == 4 ,
312
+ 'userSegments is wrong!')
313
+
314
+ def testauto_segmentII(self):
315
+ p1 = Vertex (3.0, 4.0)
316
+ p2 = Vertex (3.0,2.0)
317
+ p3 = Vertex (3.0,0.0)
318
+ p4 = Vertex (6.0, 4.0)
319
+ p5 = Vertex (6.0,2.0)
320
+ p0 = Vertex (6.0,0.0)
321
+
322
+
323
+ s1 = Segment(p2,p3)
324
+ s2 = Segment(p4,p5)
325
+
326
+ m = Mesh(userVertices=[p0, p1, p2, p3, p4, p5],
327
+ userSegments=[s1, s2])
328
+
329
+ m.auto_segment()
330
+
331
+ s3 = m.representedAlphaUserSegment(p3,p0)
332
+ self.assertTrue(not (s3 == None) ,
333
+ 'userSegments is wrong!')
334
+
335
+
336
+ s6 = m.representedAlphaUserSegment(p1,p4)
337
+ self.assertTrue(not (s6 == None) ,
338
+ 'userSegments is wrong!')
339
+
340
+ # remove a segment, add a point, auto_segment
341
+ m.alphaUserSegments.remove(s3)
342
+ p6 = Vertex (1.0, 2.0)
343
+ m.userVertices.append(p6)
344
+
345
+ m.auto_segment()
346
+
347
+ s1_now = m.representedUserSegment(p3,p2)
348
+ self.assertTrue(s1_now == s1 ,
349
+ 'userSegments is wrong!')
350
+
351
+ s2_now = m.representedUserSegment(p5,p4)
352
+ self.assertTrue(s2_now == s2 ,
353
+ 'userSegments is wrong!')
354
+
355
+ s3 = m.representedAlphaUserSegment(p3,p6)
356
+ self.assertTrue(not (s3 == None) ,
357
+ 'userSegments is wrong!')
358
+
359
+ s4 = m.representedAlphaUserSegment(p3,p6)
360
+ self.assertTrue(not (s4 == None) ,
361
+ 'userSegments is wrong!')
362
+
363
+ s5 = m.representedAlphaUserSegment(p4,p6)
364
+ self.assertTrue(s5 == None ,
365
+ 'userSegments is wrong!')
366
+ #print m
367
+
368
+ def testRegions(self):
369
+ a = Vertex (0.0, 0.0)
370
+ b = Vertex (0.0, 2.0)
371
+ c = Vertex (2.0,0.0)
372
+ d = Vertex (0.0, 4.0)
373
+ e = Vertex (2.0, 2.0)
374
+ f = Vertex (4.0,0.0)
375
+ g = Vertex (0.0,-2.0)
376
+
377
+ Segment.set_default_tag("")
378
+ s1 = Segment(a,b)
379
+ s2 = Segment(b,e)
380
+ s3 = Segment(e,c)
381
+ s4 = Segment(c,a)
382
+ s5 = Segment(b,d)
383
+ s6 = Segment(e,d)
384
+ s7 = Segment(e,f)
385
+ s8 = Segment(c,f)
386
+ s9 = Segment(g,c)
387
+ s10 = Segment(g,a)
388
+
389
+ r1 = Region(0.1,0.1,tag="22")
390
+ r2 = Region(0.1,2.1,tag="11")
391
+ r3 = Region(2.1,0.1)
392
+
393
+ m = Mesh(userVertices=[a,b,c,d,e,f,g], userSegments=[s1,s2,s3,s4,s5,s6,s7,s8,s9,s10], regions=[r1,r2,r3] )
394
+ m.generateMesh("Q", maxArea = 2.1 )
395
+
396
+ # FIXME test the region
397
+ #Triangulation = m.getTriangulation()
398
+ Triangulation = m.tri_mesh.triangle_tags
399
+ #print Triangulation[0].attribute
400
+ #print Triangulation[1].attribute
401
+ #print Triangulation[2].attribute
402
+ #print Triangulation[3].attribute
403
+ #print Triangulation[4].attribute
404
+
405
+ self.assertTrue(Triangulation[0] == "" and
406
+ Triangulation[1] == "22" and
407
+ Triangulation[2] == "" and
408
+ Triangulation[3] == "11" and
409
+ Triangulation[4] == "22" ,
410
+ 'region attributes are wrong!')
411
+
412
+ def test_vertexAttribs(self):
413
+ a = Vertex (0.0, 0.0, attributes = [12.0,2.0])
414
+ d = Vertex (0.0, 4.0, attributes = [9.0,7.0])
415
+ f = Vertex (4.0,0.0, attributes = [14.0,3.0])
416
+
417
+ Segment.set_default_tag("")
418
+ s1 = Segment(a,d)
419
+ s2 = Segment(d,f)
420
+ s3 = Segment(a,f)
421
+
422
+ r1 = Region(0.3, 0.3, tag = 88.9)
423
+
424
+ m = Mesh(userVertices=[a,d,f], userSegments=[s1,s2,s3], regions=[r1])
425
+
426
+ m.generateMesh("Q", maxArea = 2.1)
427
+
428
+ vert = m.getMeshVerticeAttributes()
429
+
430
+ self.assertTrue(num.all(vert[0] == [12.0, 2.0]) and
431
+ num.all(vert[1] == [9.0, 7.0]) and
432
+ num.all(vert[2] == [14.0,3.0]) and
433
+ num.all(vert[3] == [12.232233047033631,
434
+ 4.4142135623730949]) and
435
+ num.all(vert[4] == [13.0, 2.5]) ,
436
+ 'vertex attributes are wrong!')
437
+
438
+
439
+ def test_vertexAttribs2(self):
440
+
441
+ a = Vertex (0.0, 0.0)
442
+ d = Vertex (0.0, 4.0)
443
+ f = Vertex (4.0,0.0)
444
+
445
+ Segment.set_default_tag("")
446
+ s1 = Segment(a,d)
447
+ s2 = Segment(d,f)
448
+ s3 = Segment(a,f)
449
+
450
+ r1 = Region(0.3, 0.3, tag = 88.9)
451
+
452
+ m = Mesh(userVertices=[a,d,f], userSegments=[s1,s2,s3], regions=[r1])
453
+
454
+ m.generateMesh("Q", maxArea = 2.1 )
455
+
456
+ vert = m.getMeshVerticeAttributes()
457
+ #print "vert", vert
458
+ self.assertTrue(vert == [],
459
+ 'vertex attributes are wrong!')
460
+
461
+ def test_segtag(self):
462
+
463
+ a = Vertex (0.0, 0.0)
464
+ d = Vertex (0.0, 4.0)
465
+ f = Vertex (4.0,0.0)
466
+
467
+ s1 = Segment(a,d,tag = 5)
468
+ s2 = Segment(d,f,tag = 7)
469
+ s3 = Segment(a,f,tag = 9)
470
+
471
+ m = Mesh(userVertices=[a,d,f], userSegments=[s1,s2,s3])
472
+
473
+ m.generateMesh("Q", maxArea = 2.1 )
474
+
475
+ #m.export_mesh_file("from_test_mesh.tsh")
476
+ seg = m.getMeshSegmentTags()
477
+ #print "seg",seg
478
+ #print "seg[0].tag"
479
+ #print seg[0].tag
480
+ #print "seg[0].tag"
481
+
482
+ self.assertTrue(seg[0] == 5 and
483
+ seg[1] == 7 and
484
+ seg[2] == 9 and
485
+ seg[3] == 7 and
486
+ seg[4] == 9,
487
+ 'seg tags are wrong')
488
+
489
+
490
+ def test_segtag2(self):
491
+
492
+ a = Vertex (0.0, 0.0)
493
+ d = Vertex (0.0, 4.0)
494
+ f = Vertex (4.0,0.0)
495
+ e = Vertex (1.0,1.0)
496
+
497
+ s1 = Segment(a,d)
498
+ s2 = Segment(d,f)
499
+ s3 = Segment(a,f)
500
+ s4 = Segment(a,e)
501
+
502
+ m = Mesh(userVertices=[a,d,f,e], userSegments=[s1,s2,s3,s4])
503
+
504
+ m.generateMesh("Q", maxArea = 2.1)
505
+
506
+ seg = m.getMeshSegmentTags()
507
+ self.assertTrue(seg[0] == "exterior" and
508
+ seg[1] == "exterior" and
509
+ seg[2] == "exterior" and
510
+ seg[3] == "" and
511
+ seg[4] == "exterior",
512
+ '2nd seg tags are wrong')
513
+
514
+ def test_asciiFile(self):
515
+
516
+ a = Vertex (0.0, 0.0) #, attributes = [1.1])
517
+ d = Vertex (0.0, 4.0) #, attributes = [1.2])
518
+ f = Vertex (4.0,0.0) #, attributes = [1.3])
519
+ e = Vertex (1.0,1.0) #, attributes = [1.4])
520
+
521
+ s1 = Segment(a,d)
522
+ s2 = Segment(d,f)
523
+ s3 = Segment(a,f)
524
+ s4 = Segment(a,e)
525
+
526
+ m = Mesh(userVertices=[a,d,f,e], userSegments=[s1,s2,s3,s4])
527
+
528
+ m.generateMesh("Q", maxArea = 2.1 )
529
+ seg = m.getMeshSegments()
530
+
531
+ fileName = tempfile.mktemp(".tsh")
532
+ m.export_mesh_file(fileName)
533
+ file = open(fileName)
534
+ lFile = file.read().split('\n')
535
+ file.close()
536
+ os.remove(fileName)
537
+
538
+ #print "@^@^"
539
+ #for l in lFile:
540
+ # print l,"<"
541
+ #print "@^@^"
542
+
543
+ # no need to check the title again
544
+ #self.assertTrue(lFile[0] == "5 0 # <vertex #> <x> <y> [attributes] ...Triangulation Vertices..."
545
+ # ,'Ascii file is wrong, vertex title')
546
+ self.assertTrue(lFile[1] == "0 0.0 0.0 " and #1.1 " and
547
+ lFile[2] == "1 0.0 4.0 " and #1.2 " and
548
+ lFile[3] == "2 4.0 0.0 " and #1.3 " and
549
+ lFile[4] == "3 1.0 1.0 " and #1.4 " and
550
+ lFile[5] == "4 2.0 2.0 " #1.25 "
551
+ ,
552
+ 'Ascii file is wrong, vertex')
553
+
554
+ #self.assertTrue(lFile[6] == "# attribute column titles ...Triangulation Vertex Titles..."
555
+ # ,'Ascii file is wrong, attribute column title')
556
+ self.assertTrue(lFile[8] == "0 3 2 4 -1 2 3 " and
557
+ lFile[9] == "1 1 0 3 3 2 -1 " and
558
+ lFile[10] == "2 3 4 1 -1 1 0 " and
559
+ lFile[11] == "3 2 3 0 1 -1 0 "
560
+ ,
561
+ 'Ascii file is wrong, triangle')
562
+
563
+ self.assertTrue( lFile[13] == "0 0 1 exterior" and
564
+ lFile[14] == "1 1 4 exterior" and
565
+ lFile[15] == "2 2 0 exterior" and
566
+ lFile[16] == "3 0 3 " and
567
+ lFile[17] == "4 4 2 exterior" ,
568
+ 'Ascii file is wrong, segment')
569
+
570
+ # self.assertTrue(lFile[18] == '4 0 # <vertex #> <x> <y> [attributes] ...Mesh Vertices...',
571
+ # 'Ascii file is wrong, Mesh Vertices Title')
572
+
573
+ self.assertTrue(lFile[19] == '0 0.0 0.0 ' and #1.1 ' and
574
+ lFile[20] == '1 0.0 4.0 ' and #1.2 ' and
575
+ lFile[21] == '2 4.0 0.0 ' and #1.3 ' and
576
+ lFile[22] == '3 1.0 1.0 ' #1.4 '
577
+ ,
578
+ 'Ascii file is wrong, Mesh Vertices II')
579
+
580
+ self.assertTrue(lFile[24] == '0 0 1 ' and
581
+ lFile[25] == '1 1 2 ' and
582
+ lFile[26] == '2 0 2 ' and
583
+ lFile[27] == '3 0 3 '
584
+ ,'Ascii file is wrong, Mesh Segments')
585
+
586
+
587
+ def test_ascii_file(self):
588
+
589
+ a = Vertex (0.0, 0.0) #, attributes = [1.1])
590
+ d = Vertex (0.0, 4.0) #, attributes = [1.2])
591
+ f = Vertex (4.0,0.0) #, attributes = [1.3])
592
+ e = Vertex (1.0,1.0) #, attributes = [1.4])
593
+
594
+ s1 = Segment(a,d)
595
+ s2 = Segment(d,f)
596
+ s3 = Segment(a,f)
597
+ s4 = Segment(a,e)
598
+
599
+ m = Mesh(userVertices=[a,d,f,e], userSegments=[s1,s2,s3,s4])
600
+
601
+ m.generateMesh("Q", maxArea = 2.1 )
602
+
603
+ seg = m.getMeshSegments()
604
+
605
+ fileName = tempfile.mktemp(".tsh")
606
+ m.export_mesh_file(fileName)
607
+ file = open(fileName)
608
+ lFile = file.read().split('\n')
609
+ file.close()
610
+ os.remove(fileName)
611
+
612
+ #print "@^@^"
613
+ #for l in lFile:
614
+ # print l,"<"
615
+ #print "@^@^"
616
+ self.assertTrue(lFile[0] == "5 0 # <# of verts> <# of vert attributes>, next lines <vertex #> <x> <y> [attributes] ...Triangulation Vertices..."
617
+ ,
618
+ 'Ascii file is wrong, vertex title')
619
+ self.assertTrue(lFile[1] == "0 0.0 0.0 " and #1.1 " and
620
+ lFile[2] == "1 0.0 4.0 " and #1.2 " and
621
+ lFile[3] == "2 4.0 0.0 " and #1.3 " and
622
+ lFile[4] == "3 1.0 1.0 " and #1.4 " and
623
+ lFile[5] == "4 2.0 2.0 " #1.25 "
624
+ ,
625
+ 'Ascii file is wrong, vertex')
626
+
627
+ self.assertTrue(lFile[6] == "# attribute column titles ...Triangulation Vertex Titles..."
628
+ ,
629
+ 'Ascii file is wrong, attribute column title')
630
+ self.assertTrue(lFile[7] == "4 # <# of triangles>, next lines <triangle #> [<vertex #>] [<neigbouring triangle #>] [attribute of region] ...Triangulation Triangles..." and
631
+ lFile[8] == "0 3 2 4 -1 2 3 " and
632
+ lFile[9] == "1 1 0 3 3 2 -1 " and
633
+ lFile[10] == "2 3 4 1 -1 1 0 " and
634
+ lFile[11] == "3 2 3 0 1 -1 0 "
635
+ ,
636
+ 'Ascii file is wrong, triangle')
637
+
638
+ self.assertTrue(lFile[12] == "5 # <# of segments>, next lines <segment #> <vertex #> <vertex #> [boundary tag] ...Triangulation Segments..." and
639
+ lFile[13] == "0 0 1 exterior" and
640
+ lFile[14] == "1 1 4 exterior" and
641
+ lFile[15] == "2 2 0 exterior" and
642
+ lFile[16] == "3 0 3 " and
643
+ lFile[17] == "4 4 2 exterior" ,
644
+ 'Ascii file is wrong, segment')
645
+
646
+ self.assertTrue(lFile[18] == '4 0 # <# of verts> <# of vert attributes>, next lines <vertex #> <x> <y> [attributes] ...Mesh Vertices...',
647
+ 'Ascii file is wrong, Mesh Vertices Title')
648
+
649
+ self.assertTrue(lFile[19] == '0 0.0 0.0 ' and #1.1 ' and
650
+ lFile[20] == '1 0.0 4.0 ' and #1.2 ' and
651
+ lFile[21] == '2 4.0 0.0 ' and #1.3 ' and
652
+ lFile[22] == '3 1.0 1.0 ' #1.4 '
653
+ ,
654
+ 'Ascii file is wrong, Mesh Vertices II')
655
+
656
+ self.assertTrue(lFile[23] == '4 # <# of segments>, next lines <segment #> <vertex #> <vertex #> [boundary tag] ...Mesh Segments...' and
657
+ lFile[24] == '0 0 1 ' and
658
+ lFile[25] == '1 1 2 ' and
659
+ lFile[26] == '2 0 2 ' and
660
+ lFile[27] == '3 0 3 ' and
661
+ lFile[28] == '0 # <# of holes>, next lines <Hole #> <x> <y> ...Mesh Holes...' and
662
+ lFile[29] == '0 # <# of regions>, next lines <Region #> <x> <y> <tag>...Mesh Regions...'
663
+ ,
664
+ 'Ascii file is wrong, Mesh Segments')
665
+
666
+
667
+ def test_thinoutVertices(self):
668
+
669
+ v1 = Vertex(-20,-20)
670
+ v2 = Vertex(-11,-11)
671
+ v3 = Vertex(-10,-10)
672
+ v4 = Vertex(-9,-1)
673
+ v5 = Vertex(-8,2)
674
+ v6 = Vertex(6,3)
675
+ v7 = Vertex(12,9)
676
+ v8 = Vertex(15,3)
677
+ v9 = Vertex(24,3)
678
+ m = Mesh(userVertices = [v1,v2,v3,v4,v5,v6,v7,v8,v9])
679
+ m.thinoutVertices(10)
680
+
681
+ self.assertTrue(v1 in m.userVertices,
682
+ 'test_thinoutVertices, test 1 failed')
683
+ self.assertTrue(v3 in m.userVertices,
684
+ 'test_thinoutVertices, test 2 failed')
685
+ self.assertTrue(v4 in m.userVertices,
686
+ 'test_thinoutVertices, test 3 failed')
687
+ self.assertTrue(v6 in m.userVertices,
688
+ 'test_thinoutVertices, test 4 failed')
689
+ self.assertTrue(v7 in m.userVertices,
690
+ 'test_thinoutVertices, test 5 failed')
691
+ self.assertTrue(v9 in m.userVertices,
692
+ 'test_thinoutVertices, test 6 failed')
693
+ self.assertTrue(v5 not in m.userVertices,
694
+ 'test_thinoutVertices, test 7 failed')
695
+ self.assertTrue(v2 not in m.userVertices,
696
+ 'test_thinoutVertices, test 8 failed')
697
+ self.assertTrue(v8 not in m.userVertices,
698
+ 'test_thinoutVertices, test 9 failed')
699
+
700
+ def test_same_x_y(self):
701
+ v = Point(7,8)
702
+ f = Point(7,8)
703
+ f.same_x_y(v)
704
+
705
+ self.assertTrue(f.same_x_y(v),
706
+ 'same_x_y True failed')
707
+ e = Point(7,9)
708
+ self.assertTrue(not f.same_x_y(e),
709
+ 'same_x_y False failed')
710
+
711
+ def test_import_tsh(self):
712
+
713
+ a_att = [5.0,2.0]
714
+ d_att =[4.0,2.0]
715
+ f_att = [3.0,2.0]
716
+ e_att = [2.0,2.0]
717
+ a_xy = [0.0, 0.0]
718
+ a = Vertex ( a_xy[0],a_xy[1]) #, attributes =a_att)
719
+ d = Vertex (0.0, 4.0) #, attributes =d_att)
720
+ f = Vertex (4.0,0.0) #, attributes =f_att)
721
+ e = Vertex (1.0,1.0) #, attributes =e_att)
722
+
723
+ s1 = Segment(a,d, tag = "50")
724
+ s2 = Segment(d,f, tag = "40")
725
+ s3 = Segment(a,f, tag = "30")
726
+ s4 = Segment(a,e, tag = "20")
727
+
728
+ r1 = Region(0.3, 0.3,tag = "1.3")
729
+ geo = Geo_reference(8.9,8.9,65)
730
+ m = Mesh(userVertices=[a,d,f,e],
731
+ userSegments=[s1,s2,s3,s4],
732
+ regions=[r1],
733
+ geo_reference=geo)
734
+
735
+ m.generateMesh("Q", maxArea = 2.1)
736
+ fileName = tempfile.mktemp(".tsh")
737
+ #print "dgs!!!"
738
+ #print "****************** fileName", fileName
739
+ m.export_mesh_file(fileName)
740
+ #print "******************"
741
+ #print "m", m
742
+ #print "******************"
743
+ m_returned = importMeshFromFile(fileName)
744
+ #print "m_returned",m_returned
745
+ #print "******************"
746
+ #print "****************** fileName", fileName
747
+ os.remove(fileName)
748
+ self.assertTrue(0 == m.__cmp__(m_returned),
749
+ 'loading and saving of a mesh failed')
750
+ # do this when .msh supports geo_refs
751
+ #self.assertTrue(m.geo_reference == m_returned.geo_reference,
752
+ # 'loading and saving of a mesh geo refs failed')
753
+
754
+ def test_import_mesh(self):
755
+
756
+ a_att = [5.0,2.0]
757
+ d_att =[4.0,2.0]
758
+ f_att = [3.0,2.0]
759
+ e_att = [2.0,2.0]
760
+ a_xy = [0.0, 0.0]
761
+ a = Vertex ( a_xy[0],a_xy[1]) #, attributes =a_att)
762
+ d = Vertex (0.0, 4.0) #, attributes =d_att)
763
+ f = Vertex (4.0,0.0) #, attributes =f_att)
764
+ e = Vertex (1.0,1.0) #, attributes =e_att)
765
+
766
+ s1 = Segment(a,d, tag = "50")
767
+ s2 = Segment(d,f, tag = "40")
768
+ s3 = Segment(a,f, tag = "30")
769
+ s4 = Segment(a,e, tag = "20")
770
+
771
+ r1 = Region(0.3, 0.3,tag = "1.3")
772
+ geo = Geo_reference(65,8.9,8.9)
773
+ m = Mesh(userVertices=[a,d,f,e],
774
+ userSegments=[s1,s2,s3,s4],
775
+ regions=[r1],
776
+ geo_reference=geo)
777
+
778
+ m.generateMesh("Q", maxArea = 2.1)
779
+ fileName = tempfile.mktemp(".msh")
780
+ #print "dgs!!!"
781
+ #print "****************** fileName", fileName
782
+ m.export_mesh_file(fileName)
783
+ #print "******************"
784
+ #print "m", m
785
+ #print "******************"
786
+ m_returned = importMeshFromFile(fileName)
787
+ #print "m_returned",m_returned
788
+ #print "******************"
789
+ #print "****************** fileName", fileName
790
+ os.remove(fileName)
791
+ #print "m.geo_reference",m.geo_reference
792
+ #print "m_returned.geo_reference,",m_returned.geo_reference
793
+ self.assertTrue(0 == m.__cmp__(m_returned),
794
+ 'loading and saving of a mesh failed')
795
+ self.assertTrue(m.geo_reference == m_returned.geo_reference,
796
+ 'loading and saving of a mesh geo refs failed')
797
+
798
+ def DONTtest_normaliseMesh(self):
799
+
800
+ a_att = [5.0,2.0]
801
+ d_att =[4.0,2.0]
802
+ f_att = [3.0,2.0]
803
+ e_att = [2.0,2.0]
804
+ a_xy = [10.0, 10.0]
805
+ a = Vertex ( a_xy[0],a_xy[1], attributes =a_att)
806
+ d = Vertex (15.0, 10.0, attributes =d_att)
807
+ f = Vertex (10.0,20.0, attributes =f_att)
808
+ e = Vertex (15.0,20.0, attributes =e_att)
809
+
810
+ s1 = Segment(a,d, tag = 50)
811
+ s2 = Segment(d,e, tag = 40)
812
+ s3 = Segment(e,f, tag = 30)
813
+ s4 = Segment(f,a, tag = 20)
814
+
815
+ r1 = Region(0.3, 0.3,tag = 1.3)
816
+ m = Mesh(userVertices=[a,d,f,e],
817
+ userSegments=[s1,s2,s3,s4],
818
+ regions=[r1])
819
+ m.normaliseMesh(1,0,1)
820
+ [xmin, ymin, xmax, ymax] = m.boxsize()
821
+ [attmin, attmax] = m.maxMinVertAtt(0)
822
+ self.assertTrue(attmin == 0.0 and attmax == 1.0,
823
+ 'normalise failed')
824
+ self.assertTrue(xmin == 0.0 and ymin == 0.0 and xmax == 0.5 and ymax == 1.0,
825
+ 'normalise failed')
826
+ m.normaliseMesh(200,-100,5)
827
+ [xmin, ymin, xmax, ymax] = m.boxsize()
828
+ [attmin, attmax] = m.maxMinVertAtt(0)
829
+ self.assertTrue(attmin == 0.0 and attmax == 5.0,
830
+ 'normalise failed')
831
+ self.assertTrue(xmin == -100.0 and ymin == -100.0 and xmax == 0.0 and ymax == 100.0,
832
+ 'normalise failed')
833
+
834
+ def test_exportASCIIsegmentoutlinefile(self):
835
+ a = Vertex (0,0)
836
+ b = Vertex (0,3)
837
+ c = Vertex (3,3)
838
+ d = Vertex (1,2)
839
+ e = Vertex (3,1)
840
+
841
+ s1 = Segment(a,b, tag = "50")
842
+ s2 = Segment(b,c, tag = "40")
843
+ s3 = Segment(c,a, tag = "30")
844
+
845
+ r1 = Region(2, 1,tag = "1.3")
846
+ h1 = Hole(1,4)
847
+ m = Mesh(userVertices=[a,b,c,d,e],
848
+ userSegments=[s1,s2,s3],
849
+ regions=[r1],
850
+ holes = [h1])
851
+
852
+ # vertex e is outside of the outline, so
853
+ # it is a loner and it is removed.
854
+ m.generateMesh("Q", maxArea = 2.1)
855
+ #print "mesh ***************dsg*", m
856
+
857
+ fileName = tempfile.mktemp(".tsh")
858
+ m.exportASCIIsegmentoutlinefile(fileName)
859
+
860
+ m_returned = importMeshFromFile(fileName)
861
+
862
+ #print "m_returned ****",m_returned
863
+ #print "****************** fileName", fileName
864
+ os.remove(fileName)
865
+
866
+ #Trim mesh, so it should like like m_returned
867
+ m.tri_mesh = None
868
+ m.userVertices=[a,b,c]
869
+ #print "mesh ***************dsg*", m
870
+ #print "(m.__cmp__(m_returned)", m.__cmp__(m_returned)
871
+ self.assertTrue(0 == m.__cmp__(m),
872
+ 'test_exportASCIIsegmentoutlinefile:loading and saving of a mesh failed')
873
+ # Having problems with this on linux.
874
+ #The ordering of the dictionary values wasn't the same as the windows
875
+ #returned value (verts.values())
876
+ #self.assertTrue(0 == m.__cmp__(m_returned),
877
+ # 'test_exportASCIIsegmentoutlinefile:loading and saving of a mesh failed')
878
+
879
+ self.assertTrue(3 == len(m_returned.userVertices),
880
+ 'segmentoutlinefile:IO of a mesh failed')
881
+ self.assertTrue(len(m.userSegments) == len(m_returned.userSegments),
882
+ 'segmentoutlinefile:IO of a mesh failed')
883
+ for i in range(len(m.userSegments)):
884
+ self.assertTrue(m.userSegments[i].vertices[0].x ==
885
+ m_returned.userSegments[i].vertices[0].x,
886
+ 'loading and saving of a mesh outline fialed')
887
+ self.assertTrue(m.userSegments[i].vertices[0].y ==
888
+ m_returned.userSegments[i].vertices[0].y,
889
+ 'loading and saving of a mesh outline fialed')
890
+ self.assertTrue(m.userSegments[i].vertices[1].x ==
891
+ m_returned.userSegments[i].vertices[1].x,
892
+ 'loading and saving of a mesh outline fialed')
893
+ self.assertTrue(m.userSegments[i].vertices[1].y ==
894
+ m_returned.userSegments[i].vertices[1].y,
895
+ 'loading and saving of a mesh outline fialed')
896
+
897
+
898
+ def test_exportASCIIsegmentoutlinefile2(self):
899
+ a = Vertex (0,0)
900
+ b = Vertex (0,1)
901
+ c = Vertex (1,0)
902
+ d = Vertex (1,1)
903
+ e = Vertex (0.5,0.5)
904
+ f = Vertex (0.6,0.6)
905
+
906
+ s1 = Segment(a,e, tag = "50")
907
+ s2 = Segment(b,e, tag = "40")
908
+ s3 = Segment(c,e, tag = "30")
909
+ s4 = Segment(d,e, tag = "30")
910
+
911
+ r1 = Region(2, 1,tag = "1.3")
912
+ h1 = Hole(1,4)
913
+ m = Mesh(userVertices=[a,b,c,d,e],
914
+ userSegments=[s1,s2,s3,s4],
915
+ regions=[r1],
916
+ holes = [h1])
917
+
918
+ fileName = tempfile.mktemp(".tsh")
919
+ m.exportASCIIsegmentoutlinefile(fileName)
920
+
921
+ m_returned = importMeshFromFile(fileName)
922
+ #print "****************** fileName", fileName
923
+ os.remove(fileName)
924
+
925
+ #Trim mesh, so it should look like m_returned
926
+ m.meshVertices = []
927
+ m.meshTriangles = []
928
+ m.meshSegments = []
929
+ m.userVertices=[a,e,d,b,c]
930
+ #print "mesh ***************dsg*", m
931
+ #print "(m.__cmp__(m_returned)", m.__cmp__(m_returned)
932
+ self.assertTrue(0 == m.__cmp__(m),
933
+ 'loading and saving of a mesh failed')
934
+
935
+ self.assertTrue(5 == len(m_returned.userVertices),
936
+ 'segmentoutlinefile:IO of a mesh failed')
937
+ self.assertTrue(len(m.userSegments) == len(m_returned.userSegments),
938
+ 'segmentoutlinefile:IO of a mesh failed')
939
+ for i in range(len(m.userSegments)):
940
+ self.assertTrue(m.userSegments[i].vertices[0].x ==
941
+ m_returned.userSegments[i].vertices[0].x,
942
+ 'loading and saving of a mesh outline fialed')
943
+ self.assertTrue(m.userSegments[i].vertices[0].y ==
944
+ m_returned.userSegments[i].vertices[0].y,
945
+ 'loading and saving of a mesh outline fialed')
946
+ self.assertTrue(m.userSegments[i].vertices[1].x ==
947
+ m_returned.userSegments[i].vertices[1].x,
948
+ 'loading and saving of a mesh outline fialed')
949
+ self.assertTrue(m.userSegments[i].vertices[1].y ==
950
+ m_returned.userSegments[i].vertices[1].y,
951
+ 'loading and saving of a mesh outline fialed')
952
+
953
+
954
+ def test_load_csv(self):
955
+ """
956
+ To test the mesh side of loading csv files.
957
+ Not the loading of csv files
958
+ """
959
+ import os
960
+ import tempfile
961
+
962
+ fileName = tempfile.mktemp(".csv")
963
+ file = open(fileName,"w")
964
+ file.write("x,y,elevation, speed \n\
965
+ 1.0, 0.0, 10.0, 0.0\n\
966
+ 0.0, 1.0, 0.0, 10.0\n\
967
+ 1.0, 0.0, 10.4, 40.0\n")
968
+ file.close()
969
+ #print fileName
970
+ m = importMeshFromFile(fileName)
971
+ os.remove(fileName)
972
+ self.assertTrue(m.userVertices[0].x == 1.0,
973
+ 'loadxy, test 1 failed')
974
+ self.assertTrue(m.userVertices[0].y == 0.0,
975
+ 'loadxy, test 2 failed')
976
+ #self.assertTrue(m.userVertices[0].attributes == [10.0,0.0],
977
+ # 'loadxy, test 2.2 failed')
978
+ self.assertTrue(m.userVertices[1].x == 0.0,
979
+ 'loadxy, test 3 failed')
980
+ self.assertTrue(m.userVertices[1].y == 1.0,
981
+ 'loadxy, test 4 failed')
982
+ #self.assertTrue(m.userVertices[1].attributes == [0.0,10.0],
983
+ # 'loadxy, test 5 failed')
984
+
985
+ def test_exportPointsFile(self):
986
+ a = Vertex (0,0)
987
+ b = Vertex (0,3)
988
+ c = Vertex (3,3)
989
+ d = Vertex (1,2)
990
+ e = Vertex (3,1)
991
+ #f = Vertex (3,1)
992
+
993
+ s1 = Segment(a,b, tag = 50)
994
+ s2 = Segment(b,c, tag = 40)
995
+ s3 = Segment(c,a, tag = 30)
996
+
997
+ r1 = Region(2, 1,tag = 1.3)
998
+ h1 = Hole(1,4)
999
+ # Warning mesh can't produce this type of data structure its self
1000
+ m = Mesh(userVertices=[a,b,c,d,e],
1001
+ userSegments=[s1,s2,s3],
1002
+ regions=[r1],
1003
+ holes = [h1])
1004
+
1005
+ fileName = tempfile.mktemp(".txt")
1006
+ #fileName = 't.csv'
1007
+ #os.remove(fileName)
1008
+ m.exportPointsFile(fileName)
1009
+ file = open(fileName)
1010
+ lFile = file.read().split('\n')
1011
+ file.close()
1012
+ os.remove(fileName)
1013
+ self.assertTrue(lFile[0] == "x,y," and
1014
+ lFile[1] == "0.0,0.0" and
1015
+ lFile[2] == "0.0,3.0" and
1016
+ lFile[3] == "3.0,3.0"
1017
+ ,
1018
+ 'exported Ascii csv file is wrong')
1019
+ self.assertTrue(lFile[4] == "1.0,2.0" and
1020
+ lFile[5] == "3.0,1.0"
1021
+ ,
1022
+ 'exported Ascii csv file is wrong')
1023
+
1024
+ # vertex e is outside of the outline, so
1025
+ # it is a loner and it is removed.
1026
+ m.generateMesh("Q", maxArea = 2.1)
1027
+ fileName = tempfile.mktemp(".txt")
1028
+ #fileName = 't.csv'
1029
+ #m.export_mesh_file('m.tsh')
1030
+ m.exportPointsFile(fileName)
1031
+ file = open(fileName)
1032
+ lFile = file.read().split('\n')
1033
+ file.close()
1034
+ os.remove(fileName)
1035
+
1036
+ self.assertTrue(lFile[0] == "x,y," and
1037
+ lFile[1] == "0.0,0.0" and
1038
+ lFile[2] == "0.0,3.0" and
1039
+ lFile[3] == "3.0,3.0" and
1040
+ lFile[4] == "1.0,2.0"
1041
+ ,
1042
+ 'exported Ascii csv file is wrong')
1043
+
1044
+ def to_be_lone_vert_in_mesh_gen_c_layer(self):
1045
+ # currently just a copy of the above test
1046
+ a = Vertex (0,0)
1047
+ b = Vertex (0,3)
1048
+ c = Vertex (3,3)
1049
+ d = Vertex (1,2)
1050
+ e = Vertex (3,1)
1051
+ #f = Vertex (3,1)
1052
+
1053
+ s1 = Segment(a,b, tag = 50)
1054
+ s2 = Segment(b,c, tag = 40)
1055
+ s3 = Segment(c,a, tag = 30)
1056
+
1057
+ r1 = Region(2, 1,tag = 1.3)
1058
+ h1 = Hole(1,4)
1059
+ # Warning mesh can't produce this type of data structure its self
1060
+ m = Mesh(userVertices=[a,b,c,d,e],
1061
+ userSegments=[s1,s2,s3],
1062
+ regions=[r1],
1063
+ holes = [h1])
1064
+
1065
+ fileName = tempfile.mktemp(".csv")
1066
+ #fileName = 't.csv'
1067
+ #os.remove(fileName)
1068
+ m.exportPointsFile(fileName)
1069
+ file = open(fileName)
1070
+ lFile = file.read().split('\n')
1071
+ file.close()
1072
+
1073
+ os.remove(fileName)
1074
+ self.assertTrue(lFile[0] == "x,y" and
1075
+ lFile[1] == "0,0" and
1076
+ lFile[2] == "0,3" and
1077
+ lFile[3] == "3,3"
1078
+ ,
1079
+ 'exported Ascii csv file is wrong')
1080
+ self.assertTrue(lFile[4] == "1,2" and
1081
+ lFile[5] == "3,1"
1082
+ ,
1083
+ 'exported Ascii csv file is wrong')
1084
+
1085
+ # vertex e is outside of the outline, so
1086
+ # it is a loner and it is removed.
1087
+ m.generateMesh("Q", maxArea = 2.1)
1088
+ fileName = tempfile.mktemp(".csv")
1089
+ #fileName = 't.csv'
1090
+ #m.export_mesh_file('m.tsh')
1091
+ m.exportPointsFile(fileName)
1092
+ file = open(fileName)
1093
+ lFile = file.read().split('\n')
1094
+ file.close()
1095
+ os.remove(fileName)
1096
+
1097
+ self.assertTrue(lFile[0] == "x,y" and
1098
+ lFile[1] == "0.0,0.0" and
1099
+ lFile[2] == "0.0,3.0" and
1100
+ lFile[3] == "3.0,3.0" and
1101
+ lFile[4] == "1.0,2.0"
1102
+ ,
1103
+ 'exported Ascii csv file is wrong')
1104
+
1105
+ def NOTtest_exportPointsFilefile2(self):
1106
+ #geospatial needs at least one point
1107
+ m = Mesh()
1108
+
1109
+ fileName = tempfile.mktemp(".csv")
1110
+ m.exportPointsFile(fileName)
1111
+ file = open(fileName)
1112
+ lFile = file.read().split('\n')
1113
+ file.close()
1114
+
1115
+ os.remove(fileName)
1116
+ #print "************* test_mesh exportPointsFilefile"
1117
+ #print "lFile",lFile
1118
+ #print "************* test_mesh exportPointsFilefile"
1119
+ self.assertTrue(lFile[0] == ""
1120
+ ,
1121
+ 'exported Ascii csv file is wrong')
1122
+
1123
+ def test_strings2ints(self):
1124
+ list = ["sea","river inlet","","sea","","moat"]
1125
+ preset = ["moat", "internal boundary"]
1126
+ [intlist, converter] = segment_strings2ints(list,preset )
1127
+ self.assertTrue(intlist == [2,3 ,0 ,2 ,0 ,0 ]
1128
+ ,
1129
+ 'test_strings2ints produces bad intlist')
1130
+ self.assertTrue(converter == ['moat', 'internal boundary',
1131
+ 'sea', 'river inlet']
1132
+ ,
1133
+ 'test_strings2ints produces bad converter')
1134
+
1135
+ def test_ints2strings(self):
1136
+ list = ["internal boundary","sea","river inlet",
1137
+ "","sea","","moat","internal boundary"]
1138
+ outlist = ['internal boundary', 'sea', 'river inlet', 'moat',
1139
+ 'sea', 'moat', 'moat', 'internal boundary']
1140
+ preset = ["moat", "internal boundary"]
1141
+ [intlist, converter] = segment_strings2ints(list,preset )
1142
+ newlist = segment_ints2strings(intlist, converter)
1143
+ self.assertTrue(outlist == newlist
1144
+ ,
1145
+ 'test_strings2ints produces bad intlist')
1146
+ self.assertTrue(converter == ['moat', 'internal boundary',
1147
+ 'sea', 'river inlet']
1148
+ ,
1149
+ 'test_strings2ints produces bad converter')
1150
+
1151
+ def test_ints2strings2(self):
1152
+ list = ["","",""]
1153
+ preset = ["moat", "internal boundary"]
1154
+ [intlist, converter] = segment_strings2ints(list,preset )
1155
+ newlist = segment_ints2strings(intlist, converter)
1156
+ outlist = ['moat', 'moat', 'moat']
1157
+ self.assertTrue(outlist == newlist
1158
+ ,
1159
+ 'test_strings2ints produces bad intlist')
1160
+ self.assertTrue(converter == ['moat', 'internal boundary']
1161
+ ,
1162
+ 'test_strings2ints produces bad converter')
1163
+
1164
+
1165
+ def test_removeDuplicatedVertices(self):
1166
+ a = Vertex (0,0)
1167
+ a.index = 0
1168
+ b = Vertex (0,3)
1169
+ b.index = 1
1170
+ c = Vertex (3,3)
1171
+ c.index = 2
1172
+ d = Vertex (1,1)
1173
+ d.index = 3
1174
+ e = Vertex (3,1)
1175
+ e.index = 4
1176
+ f = Vertex (1,1)
1177
+ f.index = 5
1178
+ g = Vertex (1,1)
1179
+ g.index = 6
1180
+ inputVerts_noDups = [a,b,c,d,e]
1181
+
1182
+ m = Mesh(userVertices=[a,b,c,d,e,f,g])
1183
+ counter = m.removeDuplicatedUserVertices()
1184
+ UserVerts = m.getUserVertices()
1185
+
1186
+
1187
+ self.assertTrue(UserVerts == inputVerts_noDups,
1188
+ 'duplicate verts not removed')
1189
+ #for userVert, inputVert in map(None, UserVerts, inputVerts_noDups):
1190
+ # self.assertTrue(userVert.x == inputVert.x,
1191
+ # 'x duplicate verts not removed')
1192
+ # self.assertTrue(userVert.y == inputVert.y,
1193
+ # 'y duplicate verts not removed')
1194
+
1195
+
1196
+ def test_addVertsSegs(self):
1197
+ m = Mesh()
1198
+ Segment.set_default_tag("food")
1199
+ dict = {}
1200
+ dict['points'] = [[0.0, 0.0], [1.0, 0.0], [1.0, 1.0]]
1201
+ dict['segments'] = [[0, 1], [1, 2]]
1202
+ dict['segment_tags'] = ['','do-op']
1203
+ m.addVertsSegs(dict)
1204
+ # have to reset this , since it's a class attribute
1205
+ Segment.set_default_tag("")
1206
+
1207
+
1208
+ self.assertTrue(len(m.userSegments) ==2,
1209
+ 'Wrong segment list length.')
1210
+ self.assertTrue(len(m.userVertices) == 3,
1211
+ 'Wrong vertex list length.')
1212
+ self.assertTrue(m.userSegments[0].tag =='food',
1213
+ 'Wrong segment tag length.')
1214
+ self.assertTrue(m.userSegments[1].tag =='do-op',
1215
+ 'Wrong segment tag.')
1216
+
1217
+ def test_addVertsSegs2(self):
1218
+ geo = Geo_reference(56,5,10)
1219
+ m = Mesh(geo_reference=geo)
1220
+ dict = {}
1221
+ dict['points'] = [[2.0, 1.0], [3.0, 1.0], [2.0, 2.0]]
1222
+ dict['segments'] = [[0, 1], [1, 2], [2,0]]
1223
+ dict['segment_tags'] = ['','do-op','']
1224
+ m.addVertsSegs(dict)
1225
+
1226
+ def test_addVertsSegs_done_twice(self):
1227
+ m = Mesh()
1228
+ dict = {}
1229
+ dict['points'] = [[0.0, 0.0], [5.0, 0.0], [5.0, 5.0]]
1230
+ dict['segments'] = [[0, 1], [1, 2], [2,0]]
1231
+ dict['segment_tags'] = ['0','1','2']
1232
+ m.addVertsSegs(dict)
1233
+
1234
+ dict = {}
1235
+ dict['points'] = [[2.0, 1.0], [4.0, 1.0], [4.0, 3.0]]
1236
+ dict['segments'] = [[0, 1], [1, 2], [2,0]]
1237
+ dict['segment_tags'] = ['3','4','5']
1238
+ m.addVertsSegs(dict)
1239
+
1240
+
1241
+ self.assertTrue(m.userSegments[5].vertices[0].y == 3,
1242
+ 'Wrong vertex connected.')
1243
+ self.assertTrue(m.userSegments[5].vertices[1].y == 1,
1244
+ 'Wrong vertex connected.')
1245
+
1246
+ def test_add_points_and_segments(self):
1247
+ m = Mesh()
1248
+ Segment.set_default_tag("food")
1249
+ dict = {}
1250
+ points = [[0.0, 0.0], [1.0, 0.0], [1.0, 1.0]]
1251
+ segments = [[0, 1], [1, 2]]
1252
+ segment_tags = {'hair':[1]}
1253
+ m.add_points_and_segments(points,
1254
+ segments, segment_tags)
1255
+ # have to reset this , since it's a class attribute
1256
+ Segment.set_default_tag("")
1257
+
1258
+
1259
+ self.assertTrue(len(m.userSegments) ==2,
1260
+ 'Wrong segment list length.')
1261
+ self.assertTrue(len(m.userVertices) == 3,
1262
+ 'Wrong vertex list length.')
1263
+ self.assertTrue(m.userSegments[0].tag =='food',
1264
+ 'Wrong segment tag length.')
1265
+ self.assertTrue(m.userSegments[1].tag =='hair',
1266
+ 'Wrong segment tag.')
1267
+
1268
+ def test_add_points_and_segmentsII(self):
1269
+ m = Mesh()
1270
+ Segment.set_default_tag("food")
1271
+ dict = {}
1272
+ points = [[0.0, 0.0], [1.0, 0.0], [1.0, 1.0]]
1273
+ segments = None #[[0, 1], [1, 2]]
1274
+ segment_tags = {'hair':[1]}
1275
+ m.add_points_and_segments(points,
1276
+ segments, segment_tags)
1277
+ # have to reset this , since it's a class attribute
1278
+ Segment.set_default_tag("")
1279
+
1280
+
1281
+ self.assertTrue(len(m.userSegments) ==2,
1282
+ 'Wrong segment list length.')
1283
+ self.assertTrue(len(m.userVertices) == 3,
1284
+ 'Wrong vertex list length.')
1285
+ self.assertTrue(m.userSegments[0].tag =='food',
1286
+ 'Wrong segment tag length.')
1287
+ self.assertTrue(m.userSegments[1].tag =='hair',
1288
+ 'Wrong segment tag.')
1289
+
1290
+ def test_exportASCIImeshfile(self):
1291
+
1292
+ #a_att = [5,2]
1293
+ #d_att =[4,2]
1294
+ #f_att = [3,2]
1295
+ #e_att = [2,2]
1296
+ a_xy = [0.0, 0.0]
1297
+ a = Vertex ( a_xy[0],a_xy[1]) #, attributes =a_att)
1298
+ d = Vertex (0.0, 4.0) #, attributes =d_att)
1299
+ f = Vertex (4.0,0.0) #, attributes =f_att)
1300
+ e = Vertex (1.0,1.0) #, attributes =e_att)
1301
+
1302
+ s1 = Segment(a,d, tag = "50")
1303
+ s2 = Segment(d,f, tag = "40")
1304
+ s3 = Segment(a,f, tag = "30")
1305
+ s4 = Segment(a,e, tag = "20")
1306
+
1307
+ r1 = Region(0.3, 0.3,tag = "1.3", maxArea = 36)
1308
+
1309
+
1310
+ h1 = Hole(0.2,0.6)
1311
+
1312
+ m = Mesh(userVertices=[a,d,f,e],
1313
+ userSegments=[s1,s2,s3,s4],
1314
+ regions=[r1],
1315
+ holes=[h1])
1316
+
1317
+ seg = m.getUserSegments()
1318
+ points = m.getUserVertices()
1319
+ holes = m.getHoles()
1320
+ regions = m.getRegions()
1321
+ fileName = tempfile.mktemp(".tsh")
1322
+ m.export_mesh_file(fileName)
1323
+ #print "***************************fileName", fileName
1324
+ new_m = importMeshFromFile(fileName)
1325
+ os.remove(fileName)
1326
+
1327
+
1328
+ #print '**@@@@@******'
1329
+ #print "new_m",new_m
1330
+ #print '**@@@@@******'
1331
+ #print "m",m
1332
+ #print '**@@@@@******'
1333
+
1334
+ self.assertTrue( new_m == m,
1335
+ 'loadASCIITestCase failed. test new 1')
1336
+
1337
+ def test_Mesh2MeshList(self):
1338
+
1339
+ a_att = [5,2]
1340
+ d_att =[4,2]
1341
+ f_att = [3,2]
1342
+ e_att = [2,2]
1343
+ a_xy = [0.0, 0.0]
1344
+ a = Vertex ( a_xy[0],a_xy[1]) #, attributes =a_att)
1345
+ d = Vertex (0.0, 4.0) #, attributes =d_att)
1346
+ f = Vertex (4.0,0.0) #, attributes =f_att)
1347
+ e = Vertex (1.0,1.0) #, attributes =e_att)
1348
+
1349
+ s1 = Segment(a,d, tag = "50")
1350
+ s2 = Segment(d,f, tag = "40")
1351
+ s3 = Segment(a,f, tag = "30")
1352
+ s4 = Segment(a,e, tag = "20")
1353
+
1354
+ r1 = Region(0.3, 0.3,tag = "1.3", maxArea = 45)
1355
+ m = Mesh(userVertices=[a,d,f,e],
1356
+ userSegments=[s1,s2,s3,s4],
1357
+ regions=[r1])
1358
+
1359
+ m.generateMesh("Qa2.1")
1360
+
1361
+ seg = m.getMeshSegments()
1362
+ points = m.getMeshVertices()
1363
+ dict = m.Mesh2MeshList()
1364
+ #print "dict",dict
1365
+ # test not finished...
1366
+
1367
+ def test_Mesh2IOTriangulationDict(self):
1368
+
1369
+ a_att = [5,2]
1370
+ d_att =[4,2]
1371
+ f_att = [3,2]
1372
+ e_att = [2,2]
1373
+ a_xy = [0.0, 0.0]
1374
+ a = Vertex ( a_xy[0],a_xy[1] , attributes =a_att)
1375
+ d = Vertex (0.0, 4.0 , attributes =d_att)
1376
+ f = Vertex (4.0,0.0 , attributes =f_att)
1377
+ e = Vertex (1.0,1.0 , attributes =e_att)
1378
+
1379
+ s1 = Segment(a,d, tag = "50")
1380
+ s2 = Segment(d,f, tag = "40")
1381
+ s3 = Segment(a,f, tag = "30")
1382
+ s4 = Segment(a,e, tag = "20")
1383
+
1384
+ r1 = Region(0.3, 0.3,tag = "1.3", maxArea = 45)
1385
+ m = Mesh(userVertices=[a,d,f,e],
1386
+ userSegments=[s1,s2,s3,s4],
1387
+ regions=[r1])
1388
+ titles = ['ele','friction'] #Feed in directly!
1389
+ m.attributeTitles = titles
1390
+ m.generateMesh("Qa2.1")
1391
+
1392
+ seg = m.getMeshSegments()
1393
+ verts = m.getMeshVertices()
1394
+ vert_as = m.getMeshVerticeAttributes()
1395
+ seg_tags = m.getMeshSegmentTags()
1396
+ dict = m.Mesh2IOTriangulationDict()
1397
+ #print "dict",dict
1398
+
1399
+ self.assertTrue( dict['vertex_attribute_titles'] == titles,
1400
+ 'test_Mesh2IOTriangulationDict failed. test 1')
1401
+ answer = [a_xy,[0.0, 4.0],[4.0,0.0], [1.0,1.0], [2.0,2.0]]
1402
+ #print "answer",answer
1403
+ #print "dict['vertices']",dict['vertices']
1404
+
1405
+ self.assertTrue(num.alltrue(dict['vertices'] == answer),
1406
+ 'test_Mesh2IOTriangulationDict failed. test 2')
1407
+
1408
+ self.assertTrue(num.alltrue(dict['vertices'].flatten() ==
1409
+ verts.flatten()),
1410
+ 'test_Mesh2IOTriangulationDict failed. test vert')
1411
+ self.assertTrue(num.alltrue(dict['vertex_attributes'].flatten() ==
1412
+ vert_as.flatten()),
1413
+ 'test_Mesh2IOTriangulationDict failed. test vert ats')
1414
+
1415
+ self.assertTrue(num.alltrue(dict['segments'][0] == [0,1]),
1416
+ 'test_Mesh2IODict failed. test 3')
1417
+
1418
+ self.assertTrue( dict['segment_tags'] == seg_tags,
1419
+ 'test_Mesh2IODict failed. test 3')
1420
+ #print " dict['triangles'][0]", dict['triangles'][0]
1421
+ self.assertTrue(num.alltrue(dict['triangles'][0] == [3,2,4]),
1422
+ 'test_Mesh2IODict failed. test 5')
1423
+ self.assertTrue(num.alltrue(dict['triangle_neighbors'][0] == [-1,2,3]),
1424
+ 'test_Mesh2IODict failed. test 6')
1425
+ #print "dict['triangle_tags'][0]", dict['triangle_tags'][0]
1426
+ self.assertTrue( dict['triangle_tags'][0] == "1.3",
1427
+ 'test_Mesh2IODict failed. test 7')
1428
+
1429
+
1430
+ def test_Mesh2IODict(self):
1431
+
1432
+ a_att = [5,2]
1433
+ d_att =[4,2]
1434
+ f_att = [3,2]
1435
+ e_att = [2,2]
1436
+ a_xy = [0.0, 0.0]
1437
+ a = Vertex ( a_xy[0],a_xy[1] , attributes =a_att)
1438
+ d = Vertex (0.0, 4.0 , attributes =d_att)
1439
+ f = Vertex (4.0,0.0 , attributes =f_att)
1440
+ e = Vertex (1.0,1.0 , attributes =e_att)
1441
+
1442
+ s1 = Segment(a,d, tag = "50")
1443
+ s2 = Segment(d,f, tag = "40")
1444
+ s3 = Segment(a,f, tag = "30")
1445
+ s4 = Segment(a,e, tag = "20")
1446
+
1447
+ r1 = Region(0.3, 0.3,tag = "1.3", maxArea = 45)
1448
+ m = Mesh(userVertices=[a,d,f,e],
1449
+ userSegments=[s1,s2,s3,s4],
1450
+ regions=[r1])
1451
+ titles = ['ele','friction']
1452
+ m.attributeTitles = titles
1453
+ m.generateMesh("Qa2.1")
1454
+
1455
+ seg = m.getMeshSegments()
1456
+ verts = m.getMeshVertices()
1457
+ vert_as = m.getMeshVerticeAttributes()
1458
+ dict = m.Mesh2IODict()
1459
+ seg_tags = m.getMeshSegmentTags()
1460
+ #print "dict",dict
1461
+
1462
+ self.assertTrue( dict['vertex_attribute_titles'] == titles,
1463
+ 'test_Mesh2IOTriangulationDict failed. test 1')
1464
+ answer = [a_xy,[0.0, 4.0],[4.0,0.0], [1.0,1.0], [2.0,2.0]]
1465
+ #print "answer",answer
1466
+ #print "dict['vertices']",dict['vertices']
1467
+
1468
+ self.assertTrue(num.alltrue(dict['vertices'] == answer),
1469
+ 'test_Mesh2IOTriangulationDict failed. test 2')
1470
+
1471
+ self.assertTrue(num.alltrue(dict['vertices'] == verts),
1472
+ 'test_Mesh2IOTriangulationDict failed. test vert')
1473
+ self.assertTrue(num.alltrue(dict['vertex_attributes'] == vert_as),
1474
+ 'test_Mesh2IOTriangulationDict failed. test vert ats')
1475
+
1476
+ self.assertTrue(num.alltrue(dict['segments'][0] == [0,1]),
1477
+ 'test_Mesh2IODict failed. test 3')
1478
+
1479
+ self.assertTrue(dict['segment_tags'] == seg_tags,
1480
+ 'test_Mesh2IODict failed. test 3')
1481
+ #print " dict['triangles'][0]", dict['triangles'][0]
1482
+ self.assertTrue(num.alltrue(dict['triangles'][0] == [3,2,4]),
1483
+ 'test_Mesh2IODict failed. test 5')
1484
+ self.assertTrue(num.alltrue(dict['triangle_neighbors'][0] == [-1,2,3]),
1485
+ 'test_Mesh2IODict failed. test 6')
1486
+ #print "dict['triangle_tags'][0]", dict['triangle_tags'][0]
1487
+ self.assertTrue(dict['triangle_tags'][0] == "1.3",
1488
+ 'test_Mesh2IODict failed. test 7')
1489
+
1490
+ seg = m.getUserSegments()
1491
+ points = m.getUserVertices()
1492
+ holes = m.getHoles()
1493
+ regions = m.getRegions()
1494
+
1495
+ for pimport,pactual,pimpatt in map(None,dict['points'],points,dict['point_attributes']):
1496
+ self.assertTrue( pimport == [pactual.x,pactual.y],
1497
+ 'test_Mesh2IODict failed. test 1')
1498
+ self.assertTrue( pimpatt == pactual.attributes,
1499
+ 'test_Mesh2IODict failed. test 1.1')
1500
+ self.assertTrue( dict['outline_segments'][0] == [0,1],
1501
+ 'test_Mesh2IODict failed. test 3')
1502
+ for segimp,segactual in map(None,dict['outline_segment_tags'],seg):
1503
+ self.assertTrue( segimp == segactual.tag,
1504
+ 'test_Mesh2IODict failed. test 4')
1505
+ for holeimp,holeactual in map(None,dict['holes'],holes):
1506
+ self.assertTrue( holeimp == [holeactual.x,holeactual.y],
1507
+ 'test_Mesh2IODict failed. test 5')
1508
+
1509
+ for regimp,regactual,regattimp, regmaxarea in map(None,dict['regions'],regions, dict['region_tags'], dict['region_max_areas']):
1510
+ self.assertTrue( regimp == [regactual.x,regactual.y],
1511
+ 'loadASCIITestCase failed. test 6')
1512
+ self.assertTrue( regattimp == regactual.getTag(),
1513
+ 'loadASCIITestCase failed. test 7')
1514
+ self.assertTrue( regmaxarea == regactual.getMaxArea(),
1515
+ 'loadASCIITestCase failed. test 7')
1516
+
1517
+
1518
+
1519
+ def test_Mesh2IOOutlineDict(self):
1520
+
1521
+ a_att = [5,2]
1522
+ d_att =[4,2]
1523
+ f_att = [3,2]
1524
+ e_att = [2,2]
1525
+ a_xy = [0.0, 0.0]
1526
+ a = Vertex ( a_xy[0],a_xy[1] , attributes =a_att)
1527
+ d = Vertex (0.0, 4.0 , attributes =d_att)
1528
+ f = Vertex (4.0,0.0 , attributes =f_att)
1529
+ e = Vertex (1.0,1.0 , attributes =e_att)
1530
+
1531
+ s1 = Segment(a,d, tag = "50")
1532
+ s2 = Segment(d,f, tag = "40")
1533
+ s3 = Segment(a,f, tag = "30")
1534
+ s4 = Segment(a,e, tag = "20")
1535
+
1536
+ r1 = Region(0.3, 0.3,tag = "1.3", maxArea = 45)
1537
+ m = Mesh(userVertices=[a,d,f,e],
1538
+ userSegments=[s1,s2,s3,s4],
1539
+ regions=[r1])
1540
+ titles = ['ele','friction']
1541
+ m.attributeTitles = titles
1542
+ m.generateMesh("Qa2.1")
1543
+
1544
+ seg = m.getMeshSegments()
1545
+ verts = m.getMeshVertices()
1546
+ dict = m.Mesh2IOOutlineDict()
1547
+
1548
+ seg = m.getUserSegments()
1549
+ points = m.getUserVertices()
1550
+ holes = m.getHoles()
1551
+ regions = m.getRegions()
1552
+
1553
+ for pimport,pactual,pimpatt in map(None,dict['points'],points,dict['point_attributes']):
1554
+ self.assertTrue( pimport == [pactual.x,pactual.y],
1555
+ 'loadASCIITestCase failed. test 1')
1556
+ self.assertTrue( pimpatt == pactual.attributes,
1557
+ 'loadASCIITestCase failed. test 1.1')
1558
+ self.assertTrue( dict['outline_segments'][0] == [0,1],
1559
+ 'loadASCIITestCase failed. test 3')
1560
+ for segimp,segactual in map(None,dict['outline_segment_tags'],seg):
1561
+ self.assertTrue( segimp == segactual.tag,
1562
+ 'loadASCIITestCase failed. test 4')
1563
+ for holeimp,holeactual in map(None,dict['holes'],holes):
1564
+ self.assertTrue( holeimp == [holeactual.x,holeactual.y],
1565
+ 'loadASCIITestCase failed. test 5')
1566
+ #for regimp,regactual in map(None,dict['regions'],regions):
1567
+ # self.assertTrue( [regimp[0],regimp[1]]==[regactual.x,regactual.y],
1568
+ # 'loadASCIITestCase failed. test 6')
1569
+ # self.assertTrue( regimp[2] == regactual.getTag(),
1570
+ # 'loadASCIITestCase failed. test 7')
1571
+ #self.assertTrue( regimp[3] == regactual.getMaxArea(),
1572
+ # 'loadASCIITestCase failed. test 7')
1573
+
1574
+
1575
+ for regimp,regactual,regattimp, regmaxarea in map(None,dict['regions'],regions, dict['region_tags'], dict['region_max_areas']):
1576
+ self.assertTrue( regimp == [regactual.x,regactual.y],
1577
+ 'loadASCIITestCase failed. test 6')
1578
+ self.assertTrue( regattimp == regactual.getTag(),
1579
+ 'loadASCIITestCase failed. test 7')
1580
+ self.assertTrue( regmaxarea == regactual.getMaxArea(),
1581
+ 'loadASCIITestCase failed. test 7')
1582
+
1583
+
1584
+ def test_add_region_from_polygon(self):
1585
+ m=Mesh()
1586
+ region = m.add_region_from_polygon([[0,0],[1,0],[0,1]],
1587
+ max_triangle_area = 88,
1588
+ region_tag='cassady')
1589
+ self.assertTrue(len(m.regions)==1,
1590
+ 'FAILED!')
1591
+ self.assertTrue(region.getMaxArea()==88,
1592
+ 'FAILED!')
1593
+ self.assertTrue(len(m.getUserSegments())==3,
1594
+ 'FAILED!')
1595
+ self.assertTrue(len(m.userVertices)==3,
1596
+ 'FAILED!')
1597
+ self.assertTrue(region.getTag()=='cassady',
1598
+ 'FAILED!')
1599
+
1600
+ def test_add_region_from_polygon2(self):
1601
+ m=Mesh()
1602
+ m.add_region_from_polygon([[0,0],[1,0],[1,1],[0,1]],
1603
+ {'tagin':[0,1],'bom':[2]},
1604
+ max_triangle_area=10)
1605
+ self.assertTrue(len(m.regions)==1,
1606
+ 'FAILED!')
1607
+ segs = m.getUserSegments()
1608
+ self.assertTrue(len(segs)==4,
1609
+ 'FAILED!')
1610
+ self.assertTrue(len(m.userVertices)==4,
1611
+ 'FAILED!')
1612
+ self.assertTrue(segs[0].tag=='tagin',
1613
+ 'FAILED!')
1614
+ self.assertTrue(segs[1].tag=='tagin',
1615
+ 'FAILED!')
1616
+
1617
+ self.assertTrue(segs[2].tag=='bom',
1618
+ 'FAILED!')
1619
+ self.assertTrue(segs[3].tag=='',
1620
+ 'FAILED!')
1621
+
1622
+ def test_add_region_from_polygon3(self):
1623
+ x=-500
1624
+ y=-1000
1625
+ m=Mesh(geo_reference=Geo_reference(56,x,y))
1626
+
1627
+ # These are the absolute values
1628
+ polygon_absolute = [[0,0],[1,0],[1,1],[0,1]]
1629
+
1630
+ x_p = -10
1631
+ y_p = -40
1632
+ geo_ref_poly = Geo_reference(56, x_p, y_p)
1633
+ polygon = geo_ref_poly.change_points_geo_ref(polygon_absolute)
1634
+
1635
+ poly_point = m.add_region_from_polygon(polygon,
1636
+ {'tagin':[0,1],'bom':[2]},
1637
+ geo_reference=geo_ref_poly,
1638
+ max_triangle_area=10)
1639
+ # poly_point values are relative to the mesh geo-ref
1640
+ # make them absolute
1641
+ self.assertTrue(is_inside_polygon([poly_point.x+x,poly_point.y+y],
1642
+ polygon_absolute, closed = False),
1643
+ 'FAILED!')
1644
+
1645
+ self.assertTrue(len(m.regions)==1,
1646
+ 'FAILED!')
1647
+ segs = m.getUserSegments()
1648
+ self.assertTrue(len(segs)==4,
1649
+ 'FAILED!')
1650
+ self.assertTrue(len(m.userVertices)==4,
1651
+ 'FAILED!')
1652
+ self.assertTrue(segs[0].tag=='tagin',
1653
+ 'FAILED!')
1654
+ self.assertTrue(segs[1].tag=='tagin',
1655
+ 'FAILED!')
1656
+
1657
+ self.assertTrue(segs[2].tag=='bom',
1658
+ 'FAILED!')
1659
+ self.assertTrue(segs[3].tag=='',
1660
+ 'FAILED!')
1661
+ verts = m.getUserVertices()
1662
+ #print "User verts",verts
1663
+ #print 'polygon',polygon
1664
+ #vert values are relative
1665
+ for point,new_point in map(None,polygon,verts):
1666
+ point_x = point[0] + geo_ref_poly.get_xllcorner()
1667
+ new_point_x = new_point.x + m.geo_reference.get_xllcorner()
1668
+ point_y = point[1] + geo_ref_poly.get_yllcorner()
1669
+ #print "new_point.y",new_point.y
1670
+ #print "m.geo_ref.get_yllcorner()",m.geo_reference.get_yllcorner()
1671
+ new_point_y = new_point.y + m.geo_reference.get_yllcorner()
1672
+ #print "point_y",point_y
1673
+ #print "new_point_y",new_point_y
1674
+
1675
+ self.assertTrue(point_x == new_point_x, ' failed')
1676
+ self.assertTrue(point_y == new_point_y, ' failed')
1677
+
1678
+
1679
+ def test_add_region_from_polygon4(self):
1680
+ x=50000
1681
+ y=1000
1682
+ m=Mesh(geo_reference=Geo_reference(56,x,y))
1683
+ polygon = [[0,0],[1,0],[1,1],[0,1]]
1684
+
1685
+ m.add_region_from_polygon(polygon,
1686
+ {'tagin':[0,1],'bom':[2]},
1687
+ max_triangle_area=10)
1688
+ self.assertTrue(len(m.regions)==1,
1689
+ 'FAILED!')
1690
+ segs = m.getUserSegments()
1691
+ self.assertTrue(len(segs)==4,
1692
+ 'FAILED!')
1693
+ self.assertTrue(len(m.userVertices)==4,
1694
+ 'FAILED!')
1695
+ self.assertTrue(segs[0].tag=='tagin',
1696
+ 'FAILED!')
1697
+ self.assertTrue(segs[1].tag=='tagin',
1698
+ 'FAILED!')
1699
+
1700
+ self.assertTrue(segs[2].tag=='bom',
1701
+ 'FAILED!')
1702
+ self.assertTrue(segs[3].tag=='',
1703
+ 'FAILED!')
1704
+ verts = m.getUserVertices()
1705
+ #print "User verts",verts
1706
+ #print 'polygon',polygon
1707
+ #vert values are relative
1708
+ for point,new_point in map(None,polygon,verts):
1709
+ point_x = point[0]
1710
+ new_point_x = new_point.x + m.geo_reference.get_xllcorner()
1711
+ #print "point_x",point_x
1712
+ #print "new_point_x",new_point_x
1713
+ point_y = point[1]
1714
+ new_point_y = new_point.y + m.geo_reference.get_yllcorner()
1715
+
1716
+ self.assertTrue(point_x == new_point_x, ' failed')
1717
+ self.assertTrue(point_y == new_point_y, ' failed')
1718
+
1719
+
1720
+ def test_add_hole_from_polygon(self):
1721
+ x=-500
1722
+ y=-1000
1723
+ m=Mesh(geo_reference=Geo_reference(56,x,y))
1724
+
1725
+ # These are the absolute values
1726
+ polygon_absolute = [[0,0],[1,0],[1,1],[0,1]]
1727
+
1728
+ x_p = -10
1729
+ y_p = -40
1730
+ geo_ref_poly = Geo_reference(56, x_p, y_p)
1731
+ polygon = geo_ref_poly.change_points_geo_ref(polygon_absolute)
1732
+
1733
+ poly_point = m.add_hole_from_polygon(polygon,
1734
+ {'tagin':[0,1],'bom':[2]},
1735
+ geo_reference=geo_ref_poly)
1736
+ # poly_point values are relative to the mesh geo-ref
1737
+ # make them absolute
1738
+ #print "poly_point.x+x",poly_point.x+x
1739
+ #print "poly_point.y+y",poly_point.y+y
1740
+ #print "polygon_absolute", polygon_absolute
1741
+ self.assertTrue(is_inside_polygon([poly_point.x+x,poly_point.y+y],
1742
+ polygon_absolute, closed = False),
1743
+ 'FAILED!')
1744
+
1745
+ self.assertTrue(len(m.holes)==1,
1746
+ 'FAILED!')
1747
+ segs = m.getUserSegments()
1748
+ self.assertTrue(len(segs)==4,
1749
+ 'FAILED!')
1750
+ self.assertTrue(len(m.userVertices)==4,
1751
+ 'FAILED!')
1752
+ self.assertTrue(segs[0].tag=='tagin',
1753
+ 'FAILED!')
1754
+ self.assertTrue(segs[1].tag=='tagin',
1755
+ 'FAILED!')
1756
+
1757
+ self.assertTrue(segs[2].tag=='bom',
1758
+ 'FAILED!')
1759
+ self.assertTrue(segs[3].tag=='interior',
1760
+ 'FAILED!')
1761
+ verts = m.getUserVertices()
1762
+ #print "User verts",verts
1763
+ #print 'polygon',polygon
1764
+ #vert values are relative
1765
+ for point,new_point in map(None,polygon,verts):
1766
+ point_x = point[0] + geo_ref_poly.get_xllcorner()
1767
+ new_point_x = new_point.x + m.geo_reference.get_xllcorner()
1768
+ point_y = point[1] + geo_ref_poly.get_yllcorner()
1769
+ #print "new_point.y",new_point.y
1770
+ #print "m.geo_ref.get_yllcorner()",m.geo_reference.get_yllcorner()
1771
+ new_point_y = new_point.y + m.geo_reference.get_yllcorner()
1772
+ #print "point_y",point_y
1773
+ #print "new_point_y",new_point_y
1774
+
1775
+ self.assertTrue(point_x == new_point_x, ' failed')
1776
+ self.assertTrue(point_y == new_point_y, ' failed')
1777
+
1778
+
1779
+
1780
+
1781
+ def test_add_hole_from_polygon_none_tag(self):
1782
+ x=-500
1783
+ y=-1000
1784
+ m=Mesh(geo_reference=Geo_reference(56,x,y))
1785
+
1786
+ # These are the absolute values
1787
+ polygon_absolute = [[0,0],[1,0],[1,1],[0,1]]
1788
+
1789
+ x_p = -10
1790
+ y_p = -40
1791
+ geo_ref_poly = Geo_reference(56, x_p, y_p)
1792
+ polygon = geo_ref_poly.change_points_geo_ref(polygon_absolute)
1793
+
1794
+ poly_point = m.add_hole_from_polygon(polygon,
1795
+ None,
1796
+ geo_reference=geo_ref_poly)
1797
+ # poly_point values are relative to the mesh geo-ref
1798
+ # make them absolute
1799
+ #print "poly_point.x+x",poly_point.x+x
1800
+ #print "poly_point.y+y",poly_point.y+y
1801
+ #print "polygon_absolute", polygon_absolute
1802
+ self.assertTrue(is_inside_polygon([poly_point.x+x,poly_point.y+y],
1803
+ polygon_absolute, closed = False),
1804
+ 'FAILED!')
1805
+
1806
+ self.assertTrue(len(m.holes)==1,
1807
+ 'FAILED!')
1808
+ segs = m.getUserSegments()
1809
+ self.assertTrue(len(segs)==4,
1810
+ 'FAILED!')
1811
+ self.assertTrue(len(m.userVertices)==4,
1812
+ 'FAILED!')
1813
+
1814
+ self.assertTrue(segs[0].tag=='interior',
1815
+ 'FAILED!')
1816
+ self.assertTrue(segs[1].tag=='interior',
1817
+ 'FAILED!')
1818
+
1819
+ self.assertTrue(segs[2].tag=='interior',
1820
+ 'FAILED!')
1821
+ self.assertTrue(segs[3].tag=='interior',
1822
+ 'FAILED!')
1823
+ verts = m.getUserVertices()
1824
+ #print "User verts",verts
1825
+ #print 'polygon',polygon
1826
+ #vert values are relative
1827
+ for point,new_point in map(None,polygon,verts):
1828
+ point_x = point[0] + geo_ref_poly.get_xllcorner()
1829
+ new_point_x = new_point.x + m.geo_reference.get_xllcorner()
1830
+ point_y = point[1] + geo_ref_poly.get_yllcorner()
1831
+ #print "new_point.y",new_point.y
1832
+ #print "m.geo_ref.get_yllcorner()",m.geo_reference.get_yllcorner()
1833
+ new_point_y = new_point.y + m.geo_reference.get_yllcorner()
1834
+ #print "point_y",point_y
1835
+ #print "new_point_y",new_point_y
1836
+
1837
+ self.assertTrue(point_x == new_point_x, ' failed')
1838
+ self.assertTrue(point_y == new_point_y, ' failed')
1839
+
1840
+ def test_add_circle(self):
1841
+ x=-500
1842
+ y=-1000
1843
+ m=Mesh(geo_reference=Geo_reference(56,x,y))
1844
+
1845
+ # These are the absolute values
1846
+ tag = 'hey'
1847
+ segment_count = 104
1848
+ radius = 30
1849
+ circle_center_absolute = [100,80]
1850
+ x_p = -.666
1851
+ y_p = -.777
1852
+ geo_ref_poly = Geo_reference(56, x_p, y_p)
1853
+ circle_center = \
1854
+ geo_ref_poly.change_points_geo_ref(circle_center_absolute)
1855
+ circle_center = circle_center[0] #make a list of lists a list
1856
+ poly_point = m.add_circle(circle_center, radius, segment_count,
1857
+ tag=tag,
1858
+ region=True,
1859
+ center_geo_reference=geo_ref_poly)
1860
+ # poly_point values are relative to the mesh geo-ref
1861
+ # make them absolute
1862
+ #print "poly_point.x+x",poly_point.x+x
1863
+ #print "polygon_absolute", polygon_absolute
1864
+
1865
+
1866
+ #m.export_mesh_file("aaat.msh")
1867
+
1868
+ self.assertTrue(len(m.regions)==1,
1869
+ 'FAILED!')
1870
+ segs = m.getUserSegments()
1871
+ self.assertTrue(len(segs)==segment_count,
1872
+ 'FAILED!')
1873
+ self.assertTrue(len(m.userVertices)==segment_count,
1874
+ 'FAILED!')
1875
+ self.assertTrue(segs[0].tag==tag,
1876
+ 'FAILED!')
1877
+ self.assertTrue(segs[1].tag==tag,
1878
+ 'FAILED!')
1879
+
1880
+ verts = m.getUserVertices()
1881
+
1882
+ #m.export_mesh_file("aaat.msh")
1883
+
1884
+ def NOTIMPLEMENTEDtest_auto_set_geo_reference(self):
1885
+ x=50000
1886
+ y=1000
1887
+ m=Mesh(geo_reference=Geo_reference(56,x,y))
1888
+ polygon = [[0,0],[1,0],[1,1],[0,1]]
1889
+
1890
+ m.add_region_from_polygon(polygon,
1891
+ {'tagin':[0,1],'bom':[2]},
1892
+ max_triangle_area=10)
1893
+ m.auto_set_geo_reference()
1894
+
1895
+
1896
+ def test_duplicat_verts_are_removed(self):
1897
+
1898
+
1899
+ a = Vertex ( 0.0 ,0.0)
1900
+ b = Vertex (0.0, 4.0)
1901
+ c = Vertex (4.0,4.0)
1902
+ d = Vertex (4.0,0.0)
1903
+ e = Vertex (4.0,0.0) # duplicate point
1904
+
1905
+ s1 = Segment(a,b, tag = "50")
1906
+ s2 = Segment(b,c, tag = "40")
1907
+ s3 = Segment(c,d, tag = "30")
1908
+ s4 = Segment(d,e, tag = "no where seg")
1909
+ s5 = Segment(e,a, tag = "20")
1910
+
1911
+
1912
+ m = Mesh(userVertices=[a,b,c,d,e],
1913
+ userSegments=[s1,s2,s3,s4,s5])
1914
+
1915
+ seg = m.getUserSegments()
1916
+ points = m.getUserVertices()
1917
+ holes = m.getHoles()
1918
+ regions = m.getRegions()
1919
+ #fileName = tempfile.mktemp(".tsh")
1920
+ #fileName = "badmesh.tsh"
1921
+ #m.export_mesh_file(fileName)
1922
+ #print "***************************fileName", fileName
1923
+ #new_m = importMeshFromFile(fileName)
1924
+ #os.remove(fileName)
1925
+
1926
+ m.generateMesh("Q", maxArea = 2000.1 )
1927
+
1928
+ #m.export_mesh_file("from_test_mesh.tsh")
1929
+ seg = m.getMeshSegments()
1930
+ self.assertTrue(4==len(seg),
1931
+ 'FAILED!')
1932
+
1933
+ vert = m.getMeshVertices()
1934
+ self.assertTrue(4==len(vert),
1935
+ 'FAILED!')
1936
+
1937
+ def test_duplicat_verts_are_removedII(self):
1938
+
1939
+
1940
+ a = Vertex ( 0.0 ,0.0)
1941
+ b = Vertex (0.0, 4.0)
1942
+ c = Vertex (4.0,4.0)
1943
+ d = Vertex (4.0,0.0)
1944
+ e = Vertex (4.0,0.0) # duplicate point
1945
+ f = Vertex (49.0,0.0) # unused point
1946
+
1947
+ s1 = Segment(a,b, tag = "50")
1948
+ s2 = Segment(b,c, tag = "40")
1949
+ s3 = Segment(c,d, tag = "30")
1950
+ s4 = Segment(d,e, tag = "no where seg")
1951
+ s5 = Segment(e,a, tag = "20")
1952
+
1953
+
1954
+ m = Mesh(userVertices=[a,b,c,d,e,f],
1955
+ userSegments=[s1,s2,s3,s4,s5])
1956
+
1957
+ seg = m.getUserSegments()
1958
+ points = m.getUserVertices()
1959
+ holes = m.getHoles()
1960
+ regions = m.getRegions()
1961
+ #fileName = tempfile.mktemp(".tsh")
1962
+ #fileName = "badmesh.tsh"
1963
+ #m.export_mesh_file(fileName)
1964
+ #print "***************************fileName", fileName
1965
+ #new_m = importMeshFromFile(fileName)
1966
+ #os.remove(fileName)
1967
+
1968
+ m.generateMesh("Q", maxArea = 2000.1 )
1969
+
1970
+ #m.export_mesh_file("from_test_mesh.tsh")
1971
+ seg = m.getMeshSegments()
1972
+ self.assertTrue(4==len(seg),
1973
+ 'FAILED!')
1974
+
1975
+ vert = m.getMeshVertices()
1976
+ self.assertTrue(4==len(vert),
1977
+ 'FAILED!')
1978
+
1979
+ def test_add_vertices(self):
1980
+ points_ab = [[0.1,1],[0.4,.2],[7,5],[10,5]]
1981
+ geo = Geo_reference(56,23,21)
1982
+ points = geo.change_points_geo_ref(points_ab)
1983
+ spat = Geospatial_data(points, geo_reference=geo)
1984
+
1985
+ geo_mesh = Geo_reference(56,100,200)
1986
+ m = Mesh(geo_reference=geo_mesh)
1987
+ m.add_vertices(spat)
1988
+
1989
+ vert = m.getUserVertices()
1990
+ #print "vert",vert
1991
+ self.assertTrue(4==len(vert),
1992
+ 'FAILED!')
1993
+ vert= m.get_user_vertices(absolute=True)
1994
+
1995
+ self.assertTrue(num.allclose(vert, points_ab),
1996
+ 'FAILED!')
1997
+
1998
+
1999
+ def test_add_vertices_more(self):
2000
+ points = [[0.1,1],[0.4,.2],[7,5],[10,5]]
2001
+ #spat = Geospatial_data(points)
2002
+
2003
+ m = Mesh()
2004
+ m.add_vertices(points)
2005
+
2006
+ vert = m.getUserVertices()
2007
+ #print "vert",vert
2008
+ self.assertTrue(4==len(vert),
2009
+ 'FAILED!')
2010
+ vert = m.get_user_vertices(absolute=True)
2011
+
2012
+ self.assertTrue(num.alltrue(vert.flatten() ==
2013
+ num.array(points).flatten()),
2014
+ 'FAILED!')
2015
+
2016
+ def test_add_verticesII(self):
2017
+ points_lat_long = [[-33,152],[-35,152],[-35,150],[-33,150]]
2018
+
2019
+ spat = Geospatial_data(data_points=points_lat_long,
2020
+ points_are_lats_longs=True)
2021
+ points_ab = spat.get_data_points( absolute = True)
2022
+ m = Mesh()
2023
+ m.add_vertices(spat)
2024
+
2025
+ vert = m.getUserVertices()
2026
+ #print "vert",vert
2027
+ self.assertTrue(4==len(vert),
2028
+ 'FAILED!')
2029
+ vert= m.get_user_vertices(absolute=True)
2030
+
2031
+ self.assertTrue(num.allclose(vert, points_ab),
2032
+ 'FAILED!')
2033
+
2034
+ spat = Geospatial_data(data_points=points_lat_long,
2035
+ points_are_lats_longs=True)
2036
+ points_ab = spat.get_data_points( absolute = True)
2037
+ geo = Geo_reference(56,400000,6000000)
2038
+ spat.set_geo_reference(geo)
2039
+ m = Mesh()
2040
+ m.add_vertices(spat)
2041
+
2042
+ vert = m.getUserVertices()
2043
+ #print "vert",vert
2044
+ self.assertTrue(4==len(vert),
2045
+ 'FAILED!')
2046
+ vert= m.get_user_vertices(absolute=True)
2047
+
2048
+ self.assertTrue(num.allclose(vert, points_ab),
2049
+ 'FAILED!')
2050
+
2051
+ #geo = Geo_reference(56,23,21)
2052
+ #points = geo.change_points_geo_ref(points_ab)
2053
+
2054
+ def test_get_user_vertices(self):
2055
+ points_ab = [[0.1,1],[0.4,.2],[7,5],[10,5]]
2056
+ geo = Geo_reference(56,23,21)
2057
+ points = geo.change_points_geo_ref(points_ab)
2058
+ spat = Geospatial_data(points, geo_reference=geo)
2059
+
2060
+ geo_mesh = Geo_reference(56,100,200)
2061
+ m = Mesh(geo_reference=geo_mesh)
2062
+ m.add_vertices(spat)
2063
+
2064
+ vert = m.getUserVertices()
2065
+ #print "vert",vert
2066
+ self.assertTrue(4==len(vert),
2067
+ 'FAILED!')
2068
+ vert= m.get_user_vertices(absolute=True)
2069
+ self.assertTrue(num.allclose(vert, points_ab),
2070
+ 'FAILED!')
2071
+ vert= m.get_user_vertices(absolute=False)
2072
+ points_new = m.geo_reference.get_absolute(vert)
2073
+
2074
+ self.assertTrue(num.allclose(points_ab, points_new),
2075
+ 'FAILED!')
2076
+
2077
+ def mode_string_float_problems(self):
2078
+ numbers = [0.0000000001,1000000000000.0, 1e-19,1e19, 1e-25,1e30,1e40,
2079
+ 1e41,'0.00001','0.000000000000000000000000000000000001']
2080
+ numbers = [1e-21,1e-20,1e30,1e35,1e40]
2081
+ for n in numbers:
2082
+ mode = 'a' + str(n)
2083
+ #print " mode += 'a' + str(n)", mode
2084
+ print "====================="
2085
+
2086
+ try:
2087
+ mode = 'a' + '%20.20f' %n
2088
+ except TypeError:
2089
+ mode = 'a' + str(n)
2090
+ print "mode += 'a' + '%20.20f' %n", mode
2091
+ #print "", mode
2092
+
2093
+
2094
+
2095
+ def testgenerateMesh_calc_mesh_area(self):
2096
+ a = Vertex (0.0, 0.0)
2097
+ d = Vertex (0.0, 4.0)
2098
+ f = Vertex (4.0,0.0)
2099
+
2100
+ s1 = Segment(a,d)
2101
+ s2 = Segment(d,f)
2102
+ s3 = Segment(a,f)
2103
+
2104
+ r1 = Region(0.3, 0.3,tag = 1.3,maxArea = .6)
2105
+ #print r1
2106
+ m = Mesh(userVertices=[a,d,f], userSegments=[s1,s2,s3], regions=[r1] )
2107
+
2108
+ m.generateMesh("Q", maxArea = 2.1 )
2109
+ calc_mesh_area = m.tri_mesh.calc_mesh_area()
2110
+ #print "calc_mesh_area", calc_mesh_area
2111
+ delta = 0.0000000001
2112
+ self.assertTrue((8.0 < calc_mesh_area + delta) or
2113
+ (8.0 > calc_mesh_area - delta),
2114
+ 'generated mesh is wrong!')
2115
+
2116
+ def list_comp(A,B):
2117
+ yes = len(A)==len(B)
2118
+ for item in A:
2119
+ if not item in B:
2120
+ yes = False
2121
+ return yes
2122
+
2123
+ ################################################################################
2124
+
2125
+ if __name__ == "__main__":
2126
+ suite = unittest.makeSuite(meshTestCase,'test')
2127
+ runner = unittest.TextTestRunner() #verbosity=2)
2128
+ runner.run(suite)
2129
+