timflow 0.0.1__tar.gz → 0.2.0__tar.gz

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 (327) hide show
  1. timflow-0.2.0/.git-blame-ignore-revs +8 -0
  2. timflow-0.2.0/.github/workflows/ci-general.yml +41 -0
  3. timflow-0.2.0/.github/workflows/ci-steady.yml +53 -0
  4. timflow-0.2.0/.github/workflows/ci-transient.yml +53 -0
  5. timflow-0.2.0/.github/workflows/lint.yml +38 -0
  6. {timflow-0.0.1 → timflow-0.2.0}/.gitignore +41 -28
  7. timflow-0.2.0/.python-version +1 -0
  8. timflow-0.2.0/.readthedocs.yaml +26 -0
  9. timflow-0.2.0/CITATION.cff +37 -0
  10. timflow-0.2.0/PKG-INFO +141 -0
  11. timflow-0.2.0/README.md +58 -0
  12. timflow-0.2.0/docs/Makefile +20 -0
  13. timflow-0.2.0/docs/_static/css/custom.css +40 -0
  14. timflow-0.2.0/docs/_static/example_output_steady.png +0 -0
  15. timflow-0.2.0/docs/_static/example_output_transient.png +0 -0
  16. timflow-0.2.0/docs/_static/timflow_icon.png +0 -0
  17. timflow-0.2.0/docs/_static/timflow_logo.jpeg +0 -0
  18. timflow-0.2.0/docs/_templates/autoapi/index.rst +26 -0
  19. timflow-0.2.0/docs/_templates/autoapi/python/module.rst +163 -0
  20. timflow-0.2.0/docs/_templates/autosummary/class.rst +29 -0
  21. timflow-0.2.0/docs/_templates/autosummary/module.rst +68 -0
  22. timflow-0.2.0/docs/about/index.rst +24 -0
  23. timflow-0.2.0/docs/about/publications.bib +64 -0
  24. timflow-0.2.0/docs/conf.py +132 -0
  25. timflow-0.2.0/docs/index.rst +58 -0
  26. timflow-0.2.0/docs/steady/00userguide/howtos/howto_convert_timml_model.ipynb +189 -0
  27. timflow-0.2.0/docs/steady/00userguide/howtos/howto_select_a_model.ipynb +218 -0
  28. timflow-0.2.0/docs/steady/00userguide/index.rst +42 -0
  29. timflow-0.2.0/docs/steady/00userguide/tutorials/tutorial0_well_single_layer_aquifer.ipynb +313 -0
  30. timflow-0.2.0/docs/steady/00userguide/tutorials/tutorial1_well_multi_layer_aquifer.ipynb +271 -0
  31. timflow-0.2.0/docs/steady/01concepts/elements/areasinks.rst +9 -0
  32. timflow-0.2.0/docs/steady/01concepts/elements/constant.rst +11 -0
  33. timflow-0.2.0/docs/steady/01concepts/elements/index.rst +14 -0
  34. timflow-0.2.0/docs/steady/01concepts/elements/inhoms.rst +31 -0
  35. timflow-0.2.0/docs/steady/01concepts/elements/linedoublets.rst +25 -0
  36. timflow-0.2.0/docs/steady/01concepts/elements/linesinks.rst +49 -0
  37. timflow-0.2.0/docs/steady/01concepts/elements/uflow.rst +7 -0
  38. timflow-0.2.0/docs/steady/01concepts/elements/wells.rst +31 -0
  39. timflow-0.2.0/docs/steady/01concepts/elements/xsection.rst +39 -0
  40. timflow-0.2.0/docs/steady/01concepts/index.rst +12 -0
  41. timflow-0.2.0/docs/steady/02examples/00_single_layer_model.ipynb +406 -0
  42. timflow-0.2.0/docs/steady/02examples/01_well_in_uniform_flow.ipynb +236 -0
  43. timflow-0.2.0/docs/steady/02examples/02_wells_rivers_and_recharge.ipynb +225 -0
  44. timflow-0.2.0/docs/steady/02examples/03a_modeling_inhomogeneities.ipynb +432 -0
  45. timflow-0.2.0/docs/steady/02examples/03b_modeling_inhomogeneities3D.ipynb +278 -0
  46. timflow-0.2.0/docs/steady/02examples/04_horizontal_wells.ipynb +429 -0
  47. timflow-0.2.0/docs/steady/02examples/05_impermeable_walls.ipynb +124 -0
  48. timflow-0.2.0/docs/steady/02examples/building_pit.ipynb +681 -0
  49. timflow-0.2.0/docs/steady/02examples/circular_area_sink.ipynb +163 -0
  50. timflow-0.2.0/docs/steady/02examples/collector_wells.ipynb +391 -0
  51. timflow-0.2.0/docs/steady/02examples/connected_wells.ipynb +1181 -0
  52. timflow-0.2.0/docs/steady/02examples/figs/inhomogeneity_exercise3.png +0 -0
  53. timflow-0.2.0/docs/steady/02examples/figs/layout_exercise2.PNG +0 -0
  54. timflow-0.2.0/docs/steady/02examples/figs/timml_notebook2_layout.png +0 -0
  55. timflow-0.2.0/docs/steady/02examples/figs/timml_notebook2_layout_old.png +0 -0
  56. timflow-0.2.0/docs/steady/02examples/figs/timml_notebook5_layout.png +0 -0
  57. timflow-0.2.0/docs/steady/02examples/index.rst +36 -0
  58. timflow-0.2.0/docs/steady/02examples/vertical_anisotropy.ipynb +306 -0
  59. timflow-0.2.0/docs/steady/03xsections/cross_section_models.ipynb +536 -0
  60. timflow-0.2.0/docs/steady/03xsections/index.rst +45 -0
  61. timflow-0.2.0/docs/steady/04benchmarks/besselnumba_timing.ipynb +375 -0
  62. timflow-0.2.0/docs/steady/04benchmarks/index.rst +29 -0
  63. timflow-0.2.0/docs/steady/04benchmarks/large_diameter_experimental.ipynb +108 -0
  64. timflow-0.2.0/docs/steady/04benchmarks/test_circular_buildingpit.ipynb +497 -0
  65. timflow-0.2.0/docs/steady/04benchmarks/test_linesink_discharge.ipynb +749 -0
  66. timflow-0.2.0/docs/steady/04benchmarks/test_linesinkstrings.ipynb +167 -0
  67. timflow-0.2.0/docs/steady/04benchmarks/test_normal_flux.ipynb +286 -0
  68. timflow-0.2.0/docs/steady/04benchmarks/test_polygon_areasink.ipynb +106 -0
  69. timflow-0.2.0/docs/steady/04benchmarks/test_well_near_lake.ipynb +62 -0
  70. timflow-0.2.0/docs/steady/04benchmarks/test_wells.ipynb +123 -0
  71. timflow-0.2.0/docs/steady/04benchmarks/test_wells_with_resistance.ipynb +390 -0
  72. timflow-0.2.0/docs/steady/index.rst +97 -0
  73. timflow-0.2.0/docs/transient/00userguide/howtos/data/oudekorendijk_h30.dat +34 -0
  74. timflow-0.2.0/docs/transient/00userguide/howtos/data/oudekorendijk_h90.dat +35 -0
  75. timflow-0.2.0/docs/transient/00userguide/howtos/howto_convert_ttim_model.ipynb +86 -0
  76. timflow-0.2.0/docs/transient/00userguide/howtos/howto_fluctuating_head_boundary.ipynb +277 -0
  77. timflow-0.2.0/docs/transient/00userguide/howtos/howto_pumpingtest.ipynb +447 -0
  78. timflow-0.2.0/docs/transient/00userguide/howtos/howto_select_a_model.ipynb +106 -0
  79. timflow-0.2.0/docs/transient/00userguide/howtos/howto_xsection_model.ipynb +640 -0
  80. timflow-0.2.0/docs/transient/00userguide/index.rst +47 -0
  81. timflow-0.2.0/docs/transient/00userguide/tutorials/tutorial0_start_a_model.ipynb +155 -0
  82. timflow-0.2.0/docs/transient/01concepts/elements/areasinks.rst +7 -0
  83. timflow-0.2.0/docs/transient/01concepts/elements/index.rst +12 -0
  84. timflow-0.2.0/docs/transient/01concepts/elements/linedoublets.rst +19 -0
  85. timflow-0.2.0/docs/transient/01concepts/elements/linesinks.rst +30 -0
  86. timflow-0.2.0/docs/transient/01concepts/elements/wells.rst +24 -0
  87. timflow-0.2.0/docs/transient/01concepts/index.rst +12 -0
  88. timflow-0.2.0/docs/transient/01concepts/pathlines.rst +9 -0
  89. timflow-0.2.0/docs/transient/02examples/circareasink_example.ipynb +193 -0
  90. timflow-0.2.0/docs/transient/02examples/connected_wells.ipynb +589 -0
  91. timflow-0.2.0/docs/transient/02examples/higher_order_head_linesink.ipynb +76 -0
  92. timflow-0.2.0/docs/transient/02examples/horizontal_well.ipynb +184 -0
  93. timflow-0.2.0/docs/transient/02examples/index.rst +76 -0
  94. timflow-0.2.0/docs/transient/02examples/line_sink_well_sol.ipynb +200 -0
  95. timflow-0.2.0/docs/transient/02examples/meandering_river.ipynb +99 -0
  96. timflow-0.2.0/docs/transient/02examples/pathline_trace.ipynb +532 -0
  97. timflow-0.2.0/docs/transient/02examples/well_in_multilayer_system.ipynb +246 -0
  98. timflow-0.2.0/docs/transient/02examples/well_near_wall.ipynb +119 -0
  99. timflow-0.2.0/docs/transient/02examples/wells_in_different_systems.ipynb +277 -0
  100. timflow-0.2.0/docs/transient/03xsections/1d_elements.ipynb +635 -0
  101. timflow-0.2.0/docs/transient/03xsections/1d_given_linesink.ipynb +169 -0
  102. timflow-0.2.0/docs/transient/03xsections/1d_inhom_elements.ipynb +640 -0
  103. timflow-0.2.0/docs/transient/03xsections/data/mf6_ttim_xsec_riv1.txt +2 -0
  104. timflow-0.2.0/docs/transient/03xsections/data/mf6_ttim_xsec_riv2.txt +3 -0
  105. timflow-0.2.0/docs/transient/03xsections/data/watex_cross_section.png +0 -0
  106. timflow-0.2.0/docs/transient/03xsections/data/watex_example.csv +384 -0
  107. timflow-0.2.0/docs/transient/03xsections/index.rst +19 -0
  108. timflow-0.2.0/docs/transient/03xsections/river_in_cross_section.ipynb +669 -0
  109. timflow-0.2.0/docs/transient/03xsections/stripareasink.ipynb +707 -0
  110. timflow-0.2.0/docs/transient/04pumpingtests/confined1_oude_korendijk.ipynb +402 -0
  111. timflow-0.2.0/docs/transient/04pumpingtests/confined2_grindley.ipynb +474 -0
  112. timflow-0.2.0/docs/transient/04pumpingtests/confined3_sioux.ipynb +454 -0
  113. timflow-0.2.0/docs/transient/04pumpingtests/confined4_nevada.ipynb +504 -0
  114. timflow-0.2.0/docs/transient/04pumpingtests/data/dalem_p120.txt +13 -0
  115. timflow-0.2.0/docs/transient/04pumpingtests/data/dalem_p30.txt +15 -0
  116. timflow-0.2.0/docs/transient/04pumpingtests/data/dalem_p60.txt +14 -0
  117. timflow-0.2.0/docs/transient/04pumpingtests/data/dalem_p90.txt +13 -0
  118. timflow-0.2.0/docs/transient/04pumpingtests/data/dawsonville_slug.txt +22 -0
  119. timflow-0.2.0/docs/transient/04pumpingtests/data/double-porosity-110m.txt +67 -0
  120. timflow-0.2.0/docs/transient/04pumpingtests/data/double-porosity-pumpingwell.txt +73 -0
  121. timflow-0.2.0/docs/transient/04pumpingtests/data/falling_head.txt +29 -0
  122. timflow-0.2.0/docs/transient/04pumpingtests/data/gridley_well_1.txt +22 -0
  123. timflow-0.2.0/docs/transient/04pumpingtests/data/gridley_well_3.txt +15 -0
  124. timflow-0.2.0/docs/transient/04pumpingtests/data/ln-2.txt +81 -0
  125. timflow-0.2.0/docs/transient/04pumpingtests/data/ln-3.txt +81 -0
  126. timflow-0.2.0/docs/transient/04pumpingtests/data/moench_pd1.txt +15 -0
  127. timflow-0.2.0/docs/transient/04pumpingtests/data/moench_pd2.txt +15 -0
  128. timflow-0.2.0/docs/transient/04pumpingtests/data/moench_ps1.txt +15 -0
  129. timflow-0.2.0/docs/transient/04pumpingtests/data/moench_ps2.txt +15 -0
  130. timflow-0.2.0/docs/transient/04pumpingtests/data/moench_pumped.txt +15 -0
  131. timflow-0.2.0/docs/transient/04pumpingtests/data/oudekorendijk_h30.dat +34 -0
  132. timflow-0.2.0/docs/transient/04pumpingtests/data/oudekorendijk_h90.dat +35 -0
  133. timflow-0.2.0/docs/transient/04pumpingtests/data/piezometer_h30.txt +35 -0
  134. timflow-0.2.0/docs/transient/04pumpingtests/data/piezometer_h90.txt +36 -0
  135. timflow-0.2.0/docs/transient/04pumpingtests/data/pumptest_neuman.txt +72 -0
  136. timflow-0.2.0/docs/transient/04pumpingtests/data/recovery.txt +36 -0
  137. timflow-0.2.0/docs/transient/04pumpingtests/data/schroth_obs1.txt +25 -0
  138. timflow-0.2.0/docs/transient/04pumpingtests/data/schroth_obs2.txt +17 -0
  139. timflow-0.2.0/docs/transient/04pumpingtests/data/schroth_obs3.txt +11 -0
  140. timflow-0.2.0/docs/transient/04pumpingtests/data/sioux100.txt +42 -0
  141. timflow-0.2.0/docs/transient/04pumpingtests/data/sioux200.txt +64 -0
  142. timflow-0.2.0/docs/transient/04pumpingtests/data/sioux400.txt +81 -0
  143. timflow-0.2.0/docs/transient/04pumpingtests/data/slug.txt +62 -0
  144. timflow-0.2.0/docs/transient/04pumpingtests/data/syn_30_0.0.txt +34 -0
  145. timflow-0.2.0/docs/transient/04pumpingtests/data/syn_90_0.0.txt +34 -0
  146. timflow-0.2.0/docs/transient/04pumpingtests/data/syn_p30_0.02.txt +34 -0
  147. timflow-0.2.0/docs/transient/04pumpingtests/data/syn_p30_0.05.txt +34 -0
  148. timflow-0.2.0/docs/transient/04pumpingtests/data/syn_p90_0.02.txt +34 -0
  149. timflow-0.2.0/docs/transient/04pumpingtests/data/syn_p90_0.05.txt +34 -0
  150. timflow-0.2.0/docs/transient/04pumpingtests/data/texas160.txt +26 -0
  151. timflow-0.2.0/docs/transient/04pumpingtests/data/texas40.txt +26 -0
  152. timflow-0.2.0/docs/transient/04pumpingtests/data/texas80.txt +27 -0
  153. timflow-0.2.0/docs/transient/04pumpingtests/data/venne_deep.txt +30 -0
  154. timflow-0.2.0/docs/transient/04pumpingtests/data/venne_shallow.txt +20 -0
  155. timflow-0.2.0/docs/transient/04pumpingtests/figs/Dalem.png +0 -0
  156. timflow-0.2.0/docs/transient/04pumpingtests/figs/Dawsonville.png +0 -0
  157. timflow-0.2.0/docs/transient/04pumpingtests/figs/Falling_head.png +0 -0
  158. timflow-0.2.0/docs/transient/04pumpingtests/figs/Hardinxveld.png +0 -0
  159. timflow-0.2.0/docs/transient/04pumpingtests/figs/Moench.png +0 -0
  160. timflow-0.2.0/docs/transient/04pumpingtests/figs/Multi_well.png +0 -0
  161. timflow-0.2.0/docs/transient/04pumpingtests/figs/Nevada.png +0 -0
  162. timflow-0.2.0/docs/transient/04pumpingtests/figs/Pratt_County.png +0 -0
  163. timflow-0.2.0/docs/transient/04pumpingtests/figs/Schroth.png +0 -0
  164. timflow-0.2.0/docs/transient/04pumpingtests/figs/Sioux.png +0 -0
  165. timflow-0.2.0/docs/transient/04pumpingtests/figs/Texas_Hill.png +0 -0
  166. timflow-0.2.0/docs/transient/04pumpingtests/figs/Vennebulten.png +0 -0
  167. timflow-0.2.0/docs/transient/04pumpingtests/figs/gridley.png +0 -0
  168. timflow-0.2.0/docs/transient/04pumpingtests/figs/oude_korendijk.png +0 -0
  169. timflow-0.2.0/docs/transient/04pumpingtests/index.rst +70 -0
  170. timflow-0.2.0/docs/transient/04pumpingtests/leaky1_dalem.ipynb +448 -0
  171. timflow-0.2.0/docs/transient/04pumpingtests/leaky2_hardixveld.ipynb +340 -0
  172. timflow-0.2.0/docs/transient/04pumpingtests/leaky3_texashill.ipynb +464 -0
  173. timflow-0.2.0/docs/transient/04pumpingtests/slug1_pratt_county.ipynb +474 -0
  174. timflow-0.2.0/docs/transient/04pumpingtests/slug2_multiwell.ipynb +457 -0
  175. timflow-0.2.0/docs/transient/04pumpingtests/slug3_falling_head.ipynb +298 -0
  176. timflow-0.2.0/docs/transient/04pumpingtests/slug4_dawsonville.ipynb +409 -0
  177. timflow-0.2.0/docs/transient/04pumpingtests/unconfined1_moench.ipynb +285 -0
  178. timflow-0.2.0/docs/transient/05benchmarks/compare_wells_linesink.ipynb +127 -0
  179. timflow-0.2.0/docs/transient/05benchmarks/data/syn_p30_0.02.txt +34 -0
  180. timflow-0.2.0/docs/transient/05benchmarks/data/syn_p30_0.05.txt +34 -0
  181. timflow-0.2.0/docs/transient/05benchmarks/data/syn_p90_0.02.txt +34 -0
  182. timflow-0.2.0/docs/transient/05benchmarks/data/syn_p90_0.05.txt +34 -0
  183. timflow-0.2.0/docs/transient/05benchmarks/figs/neuman.png +0 -0
  184. timflow-0.2.0/docs/transient/05benchmarks/index.rst +37 -0
  185. timflow-0.2.0/docs/transient/05benchmarks/line-sink-ditch.ipynb +100 -0
  186. timflow-0.2.0/docs/transient/05benchmarks/river1d.ipynb +357 -0
  187. timflow-0.2.0/docs/transient/05benchmarks/synthetic0_data.ipynb +649 -0
  188. timflow-0.2.0/docs/transient/05benchmarks/synthetic_calibrate_2aquifers.ipynb +269 -0
  189. timflow-0.2.0/docs/transient/05benchmarks/synthetic_test_calibrate.ipynb +279 -0
  190. timflow-0.2.0/docs/transient/05benchmarks/test_line_elements.ipynb +107 -0
  191. timflow-0.2.0/docs/transient/05benchmarks/theis_storage.ipynb +233 -0
  192. timflow-0.2.0/docs/transient/05benchmarks/ttim_neuman_comparison.ipynb +140 -0
  193. timflow-0.2.0/docs/transient/05benchmarks/validation_tidal_wave_with_Bruggeman.ipynb +522 -0
  194. timflow-0.2.0/docs/transient/05benchmarks/well_benchmarks.ipynb +499 -0
  195. timflow-0.2.0/docs/transient/05benchmarks/well_near_leaky_river.ipynb +217 -0
  196. timflow-0.2.0/docs/transient/05benchmarks/well_near_river_or_wall.ipynb +150 -0
  197. timflow-0.2.0/docs/transient/index.rst +111 -0
  198. timflow-0.2.0/papers/2013_bakker_ttim_theory.pdf +0 -0
  199. timflow-0.2.0/pyproject.toml +121 -0
  200. timflow-0.2.0/tests/bessel_test_data/.gitkeep +0 -0
  201. timflow-0.2.0/tests/bessel_test_data/potld_order0_lab0.txt +20 -0
  202. timflow-0.2.0/tests/bessel_test_data/potld_order0_lab1.txt +20 -0
  203. timflow-0.2.0/tests/bessel_test_data/potld_order0_lab2.txt +20 -0
  204. timflow-0.2.0/tests/bessel_test_data/potld_order1_lab0.txt +20 -0
  205. timflow-0.2.0/tests/bessel_test_data/potld_order1_lab1.txt +20 -0
  206. timflow-0.2.0/tests/bessel_test_data/potld_order1_lab2.txt +20 -0
  207. timflow-0.2.0/tests/bessel_test_data/potld_order2_lab0.txt +20 -0
  208. timflow-0.2.0/tests/bessel_test_data/potld_order2_lab1.txt +20 -0
  209. timflow-0.2.0/tests/bessel_test_data/potld_order2_lab2.txt +20 -0
  210. timflow-0.2.0/tests/bessel_test_data/potls_order0_lab0.txt +20 -0
  211. timflow-0.2.0/tests/bessel_test_data/potls_order0_lab1.txt +20 -0
  212. timflow-0.2.0/tests/bessel_test_data/potls_order0_lab2.txt +20 -0
  213. timflow-0.2.0/tests/bessel_test_data/potls_order1_lab0.txt +20 -0
  214. timflow-0.2.0/tests/bessel_test_data/potls_order1_lab1.txt +20 -0
  215. timflow-0.2.0/tests/bessel_test_data/potls_order1_lab2.txt +20 -0
  216. timflow-0.2.0/tests/bessel_test_data/potls_order2_lab0.txt +20 -0
  217. timflow-0.2.0/tests/bessel_test_data/potls_order2_lab1.txt +20 -0
  218. timflow-0.2.0/tests/bessel_test_data/potls_order2_lab2.txt +20 -0
  219. timflow-0.2.0/tests/bessel_test_data/qxld_order0_lab0.txt +20 -0
  220. timflow-0.2.0/tests/bessel_test_data/qxld_order0_lab1.txt +20 -0
  221. timflow-0.2.0/tests/bessel_test_data/qxld_order0_lab2.txt +20 -0
  222. timflow-0.2.0/tests/bessel_test_data/qxld_order1_lab0.txt +20 -0
  223. timflow-0.2.0/tests/bessel_test_data/qxld_order1_lab1.txt +20 -0
  224. timflow-0.2.0/tests/bessel_test_data/qxld_order1_lab2.txt +20 -0
  225. timflow-0.2.0/tests/bessel_test_data/qxld_order2_lab0.txt +20 -0
  226. timflow-0.2.0/tests/bessel_test_data/qxld_order2_lab1.txt +20 -0
  227. timflow-0.2.0/tests/bessel_test_data/qxld_order2_lab2.txt +20 -0
  228. timflow-0.2.0/tests/bessel_test_data/qxls_order0_lab0.txt +20 -0
  229. timflow-0.2.0/tests/bessel_test_data/qxls_order0_lab1.txt +20 -0
  230. timflow-0.2.0/tests/bessel_test_data/qxls_order0_lab2.txt +20 -0
  231. timflow-0.2.0/tests/bessel_test_data/qxls_order1_lab0.txt +20 -0
  232. timflow-0.2.0/tests/bessel_test_data/qxls_order1_lab1.txt +20 -0
  233. timflow-0.2.0/tests/bessel_test_data/qxls_order1_lab2.txt +20 -0
  234. timflow-0.2.0/tests/bessel_test_data/qxls_order2_lab0.txt +20 -0
  235. timflow-0.2.0/tests/bessel_test_data/qxls_order2_lab1.txt +20 -0
  236. timflow-0.2.0/tests/bessel_test_data/qxls_order2_lab2.txt +20 -0
  237. timflow-0.2.0/tests/bessel_test_data/qyld_order0_lab0.txt +20 -0
  238. timflow-0.2.0/tests/bessel_test_data/qyld_order0_lab1.txt +20 -0
  239. timflow-0.2.0/tests/bessel_test_data/qyld_order0_lab2.txt +20 -0
  240. timflow-0.2.0/tests/bessel_test_data/qyld_order1_lab0.txt +20 -0
  241. timflow-0.2.0/tests/bessel_test_data/qyld_order1_lab1.txt +20 -0
  242. timflow-0.2.0/tests/bessel_test_data/qyld_order1_lab2.txt +20 -0
  243. timflow-0.2.0/tests/bessel_test_data/qyld_order2_lab0.txt +20 -0
  244. timflow-0.2.0/tests/bessel_test_data/qyld_order2_lab1.txt +20 -0
  245. timflow-0.2.0/tests/bessel_test_data/qyld_order2_lab2.txt +20 -0
  246. timflow-0.2.0/tests/bessel_test_data/qyls_order0_lab0.txt +20 -0
  247. timflow-0.2.0/tests/bessel_test_data/qyls_order0_lab1.txt +20 -0
  248. timflow-0.2.0/tests/bessel_test_data/qyls_order0_lab2.txt +20 -0
  249. timflow-0.2.0/tests/bessel_test_data/qyls_order1_lab0.txt +20 -0
  250. timflow-0.2.0/tests/bessel_test_data/qyls_order1_lab1.txt +20 -0
  251. timflow-0.2.0/tests/bessel_test_data/qyls_order1_lab2.txt +20 -0
  252. timflow-0.2.0/tests/bessel_test_data/qyls_order2_lab0.txt +20 -0
  253. timflow-0.2.0/tests/bessel_test_data/qyls_order2_lab1.txt +20 -0
  254. timflow-0.2.0/tests/bessel_test_data/qyls_order2_lab2.txt +20 -0
  255. timflow-0.2.0/tests/steady/test_steady_notebooks.py +37 -0
  256. timflow-0.2.0/tests/steady/test_well.py +48 -0
  257. timflow-0.2.0/tests/test_bessel.py +1105 -0
  258. timflow-0.2.0/tests/test_import.py +2 -0
  259. timflow-0.2.0/tests/transient/test_theis.py +153 -0
  260. timflow-0.2.0/tests/transient/test_transient_notebooks.py +39 -0
  261. timflow-0.2.0/tests/transient/test_wellstring.py +64 -0
  262. timflow-0.2.0/timflow/__init__.py +12 -0
  263. timflow-0.2.0/timflow/bessel/__init__.py +1 -0
  264. timflow-0.2.0/timflow/bessel/besselnumba.py +1758 -0
  265. timflow-0.2.0/timflow/plots/__init__.py +5 -0
  266. timflow-0.2.0/timflow/plots/plots.py +696 -0
  267. timflow-0.2.0/timflow/size_of_arrays.txt +8 -0
  268. timflow-0.2.0/timflow/steady/__init__.py +73 -0
  269. timflow-0.2.0/timflow/steady/aquifer.py +245 -0
  270. timflow-0.2.0/timflow/steady/aquifer_parameters.py +137 -0
  271. timflow-0.2.0/timflow/steady/circareasink.py +259 -0
  272. timflow-0.2.0/timflow/steady/circinhom.py +654 -0
  273. timflow-0.2.0/timflow/steady/constant.py +237 -0
  274. timflow-0.2.0/timflow/steady/controlpoints.py +39 -0
  275. timflow-0.2.0/timflow/steady/element.py +180 -0
  276. timflow-0.2.0/timflow/steady/equation.py +775 -0
  277. timflow-0.2.0/timflow/steady/inhomogeneity.py +1128 -0
  278. timflow-0.2.0/timflow/steady/inhomogeneity1d.py +502 -0
  279. timflow-0.2.0/timflow/steady/intlinesink.py +464 -0
  280. timflow-0.2.0/timflow/steady/linedoublet.py +598 -0
  281. timflow-0.2.0/timflow/steady/linedoublet1d.py +233 -0
  282. timflow-0.2.0/timflow/steady/linesink.py +1388 -0
  283. timflow-0.2.0/timflow/steady/linesink1d.py +381 -0
  284. timflow-0.2.0/timflow/steady/model.py +921 -0
  285. timflow-0.2.0/timflow/steady/plots.py +606 -0
  286. timflow-0.2.0/timflow/steady/stripareasink.py +259 -0
  287. timflow-0.2.0/timflow/steady/trace.py +368 -0
  288. timflow-0.2.0/timflow/steady/uflow.py +79 -0
  289. timflow-0.2.0/timflow/steady/well.py +1201 -0
  290. timflow-0.2.0/timflow/transient/__init__.py +51 -0
  291. timflow-0.2.0/timflow/transient/aquifer.py +351 -0
  292. timflow-0.2.0/timflow/transient/aquifer_parameters.py +164 -0
  293. timflow-0.2.0/timflow/transient/circareasink.py +201 -0
  294. timflow-0.2.0/timflow/transient/circinhom.py +656 -0
  295. timflow-0.2.0/timflow/transient/element.py +352 -0
  296. timflow-0.2.0/timflow/transient/equation.py +508 -0
  297. timflow-0.2.0/timflow/transient/fit.py +461 -0
  298. timflow-0.2.0/timflow/transient/inhom1d.py +584 -0
  299. timflow-0.2.0/timflow/transient/invlapnumba.py +328 -0
  300. timflow-0.2.0/timflow/transient/kuhlman_invlap.py +357 -0
  301. timflow-0.2.0/timflow/transient/linedoublet.py +433 -0
  302. timflow-0.2.0/timflow/transient/linedoublet1d.py +211 -0
  303. timflow-0.2.0/timflow/transient/linesink.py +1178 -0
  304. timflow-0.2.0/timflow/transient/linesink1d.py +496 -0
  305. timflow-0.2.0/timflow/transient/model.py +1128 -0
  306. timflow-0.2.0/timflow/transient/plots.py +296 -0
  307. timflow-0.2.0/timflow/transient/stripareasink.py +212 -0
  308. timflow-0.2.0/timflow/transient/trace.py +357 -0
  309. timflow-0.2.0/timflow/transient/well.py +806 -0
  310. timflow-0.2.0/timflow/version.py +32 -0
  311. timflow-0.2.0/timflow.egg-info/PKG-INFO +141 -0
  312. timflow-0.2.0/timflow.egg-info/SOURCES.txt +317 -0
  313. timflow-0.2.0/timflow.egg-info/requires.txt +37 -0
  314. timflow-0.2.0/timflow.egg-info/top_level.txt +6 -0
  315. timflow-0.2.0/utils/clear_notebooks.py +51 -0
  316. timflow-0.0.1/PKG-INFO +0 -10
  317. timflow-0.0.1/README.md +0 -1
  318. timflow-0.0.1/pyproject.toml +0 -15
  319. timflow-0.0.1/timflow/__init__.py +0 -1
  320. timflow-0.0.1/timflow/version.py +0 -1
  321. timflow-0.0.1/timflow.egg-info/PKG-INFO +0 -10
  322. timflow-0.0.1/timflow.egg-info/SOURCES.txt +0 -11
  323. timflow-0.0.1/timflow.egg-info/top_level.txt +0 -1
  324. {timflow-0.0.1 → timflow-0.2.0}/.github/workflows/pypi-publish.yml +0 -0
  325. {timflow-0.0.1 → timflow-0.2.0}/LICENSE +0 -0
  326. {timflow-0.0.1 → timflow-0.2.0}/setup.cfg +0 -0
  327. {timflow-0.0.1 → timflow-0.2.0}/timflow.egg-info/dependency_links.txt +0 -0
@@ -0,0 +1,8 @@
1
+ # Migrate code style to black
2
+ 998b86fc128e35f1506e3d4facb169c558679bde
3
+ a8aa6904034da74b91f8046e2440ebb4359d63e2
4
+
5
+ # Migrate code style to ruff
6
+ 202b5b65bdfd8fa741f8cff0377469d9cd2797ff
7
+ c1e21219503158d714f2bc8a582b098ed97852f4
8
+
@@ -0,0 +1,41 @@
1
+ name: General
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ - dev
8
+ pull_request:
9
+ branches:
10
+ - main
11
+ - dev
12
+
13
+ concurrency:
14
+ group: ${{ github.workflow }}-${{ github.ref }}
15
+ cancel-in-progress: true
16
+
17
+ jobs:
18
+ test-general:
19
+ runs-on: ubuntu-latest
20
+ strategy:
21
+ matrix:
22
+ python-version: ["3.11", "3.12", "3.13"]
23
+ steps:
24
+ - name: Checkout repository
25
+ uses: actions/checkout@v6
26
+
27
+ - name: Install uv with Python ${{ matrix.python-version }}
28
+ uses: astral-sh/setup-uv@v7
29
+ with:
30
+ enable-cache: true
31
+ python-version: ${{ matrix.python-version }}
32
+
33
+ - name: Install the project
34
+ run: uv sync --all-extras
35
+
36
+ - name: Run tests
37
+ run: uv run pytest -v ./tests/test_*.py
38
+
39
+ - name: Numba coverage
40
+ run: |
41
+ NUMBA_DISABLE_JIT=1 uv run pytest --cov-append ./tests/test_bessel.py
@@ -0,0 +1,53 @@
1
+ name: Steady
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ - dev
8
+ pull_request:
9
+ branches:
10
+ - main
11
+ - dev
12
+
13
+ concurrency:
14
+ group: ${{ github.workflow }}-${{ github.ref }}
15
+ cancel-in-progress: true
16
+
17
+ jobs:
18
+ test-steady:
19
+ runs-on: ubuntu-latest
20
+ strategy:
21
+ matrix:
22
+ python-version: ["3.11", "3.12", "3.13"]
23
+ steps:
24
+ - name: Checkout repository
25
+ uses: actions/checkout@v6
26
+
27
+ - name: Install uv with Python ${{ matrix.python-version }}
28
+ uses: astral-sh/setup-uv@v7
29
+ with:
30
+ enable-cache: true
31
+ python-version: ${{ matrix.python-version }}
32
+
33
+ - name: Install the project
34
+ run: uv sync --all-extras
35
+
36
+ - name: Run tests
37
+ run: uv run pytest -v ./tests/steady/
38
+
39
+ - name: Test tutorial notebooks
40
+ run: |
41
+ uv run pytest --nbval-lax --cov-append --dist loadscope -n auto docs/steady/00userguide/
42
+
43
+ - name: Test example notebooks
44
+ run: |
45
+ uv run pytest --nbval-lax --cov-append --dist loadscope -n auto docs/steady/02examples/
46
+
47
+ - name: Test cross-section notebooks
48
+ run: |
49
+ uv run pytest --nbval-lax --cov-append --dist loadscope -n auto docs/steady/03xsections/
50
+
51
+ - name: Test benchmark notebooks
52
+ run: |
53
+ uv run pytest --nbval-lax --cov-append --dist loadscope -n auto docs/steady/04benchmarks/
@@ -0,0 +1,53 @@
1
+ name: Transient
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ - dev
8
+ pull_request:
9
+ branches:
10
+ - main
11
+ - dev
12
+
13
+ concurrency:
14
+ group: ${{ github.workflow }}-${{ github.ref }}
15
+ cancel-in-progress: true
16
+
17
+ jobs:
18
+ test-transient:
19
+ runs-on: ubuntu-latest
20
+ strategy:
21
+ matrix:
22
+ python-version: ["3.11", "3.12", "3.13"]
23
+ steps:
24
+ - name: Checkout repository
25
+ uses: actions/checkout@v6
26
+
27
+ - name: Install uv with Python ${{ matrix.python-version }}
28
+ uses: astral-sh/setup-uv@v7
29
+ with:
30
+ enable-cache: true
31
+ python-version: ${{ matrix.python-version }}
32
+
33
+ - name: Install the project
34
+ run: uv sync --all-extras
35
+
36
+ - name: Run tests
37
+ run: uv run pytest --cov-append ./tests/transient
38
+
39
+ - name: Test userguide notebooks
40
+ run: |
41
+ uv run pytest --nbval-lax --cov-append --dist loadscope -n auto docs/transient/00userguide/howtos/
42
+ uv run pytest --nbval-lax --cov-append --dist loadscope -n auto docs/transient/00userguide/tutorials/
43
+ - name: Test example notebooks
44
+ run: |
45
+ uv run pytest --nbval-lax --cov-append --dist loadscope -n auto docs/transient/02examples/
46
+
47
+ - name: Test xsection notebooks
48
+ run: |
49
+ uv run pytest --nbval-lax --cov-append --dist loadscope -n auto docs/transient/03xsections/
50
+
51
+ - name: Test benchmark notebooks
52
+ run: |
53
+ uv run pytest --nbval-lax --cov-append --dist loadscope -n auto docs/transient/05benchmarks/
@@ -0,0 +1,38 @@
1
+ name: Lint
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ - dev
8
+ pull_request:
9
+ branches:
10
+ - main
11
+ - dev
12
+
13
+ concurrency:
14
+ group: ${{ github.workflow }}-${{ github.ref }}
15
+ cancel-in-progress: true
16
+
17
+ jobs:
18
+ lint:
19
+ name: Lint
20
+ runs-on: ubuntu-latest
21
+ steps:
22
+ - name: Checkout repository
23
+ uses: actions/checkout@v6
24
+
25
+ - name: Install uv with Python
26
+ uses: astral-sh/setup-uv@v7
27
+ with:
28
+ enable-cache: true
29
+ python-version: 3.13
30
+
31
+ - name: Install the project
32
+ run: uv sync --extra lint
33
+
34
+ - name: ruff-lint
35
+ run: uv run ruff check
36
+
37
+ - name: ruff-format
38
+ run: uv run ruff format --check
@@ -27,8 +27,8 @@ share/python-wheels/
27
27
  MANIFEST
28
28
 
29
29
  # PyInstaller
30
- # Usually these files are written by a python script from a template
31
- # before PyInstaller builds the exe, so as to inject date/other infos into it.
30
+ # Usually these files are written by a python script from a template
31
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
32
32
  *.manifest
33
33
  *.spec
34
34
 
@@ -92,34 +92,34 @@ ipython_config.py
92
92
  # However, in case of collaboration, if having platform-specific dependencies or dependencies
93
93
  # having no cross-platform support, pipenv may install dependencies that don't work, or not
94
94
  # install all needed dependencies.
95
- #Pipfile.lock
95
+ # Pipfile.lock
96
96
 
97
97
  # UV
98
98
  # Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control.
99
99
  # This is especially recommended for binary packages to ensure reproducibility, and is more
100
100
  # commonly ignored for libraries.
101
- #uv.lock
101
+ # uv.lock
102
102
 
103
103
  # poetry
104
104
  # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
105
105
  # This is especially recommended for binary packages to ensure reproducibility, and is more
106
106
  # commonly ignored for libraries.
107
107
  # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
108
- #poetry.lock
109
- #poetry.toml
108
+ # poetry.lock
109
+ # poetry.toml
110
110
 
111
111
  # pdm
112
112
  # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
113
113
  # pdm recommends including project-wide configuration in pdm.toml, but excluding .pdm-python.
114
114
  # https://pdm-project.org/en/latest/usage/project/#working-with-version-control
115
- #pdm.lock
116
- #pdm.toml
115
+ # pdm.lock
116
+ # pdm.toml
117
117
  .pdm-python
118
118
  .pdm-build/
119
119
 
120
120
  # pixi
121
121
  # Similar to Pipfile.lock, it is generally recommended to include pixi.lock in version control.
122
- #pixi.lock
122
+ # pixi.lock
123
123
  # Pixi creates a virtual environment in the .pixi directory, just like venv module creates one
124
124
  # in the .venv directory. It is recommended not to include this directory in version control.
125
125
  .pixi
@@ -131,6 +131,19 @@ __pypackages__/
131
131
  celerybeat-schedule
132
132
  celerybeat.pid
133
133
 
134
+ # Redis
135
+ *.rdb
136
+ *.aof
137
+ *.pid
138
+
139
+ # RabbitMQ
140
+ mnesia/
141
+ rabbitmq/
142
+ rabbitmq-data/
143
+
144
+ # ActiveMQ
145
+ activemq-data/
146
+
134
147
  # SageMath parsed files
135
148
  *.sage.py
136
149
 
@@ -148,6 +161,8 @@ venv.bak/
148
161
  .spyderproject
149
162
  .spyproject
150
163
 
164
+ .DS_Store
165
+
151
166
  # Rope project settings
152
167
  .ropeproject
153
168
 
@@ -169,23 +184,23 @@ dmypy.json
169
184
  cython_debug/
170
185
 
171
186
  # PyCharm
172
- # JetBrains specific template is maintained in a separate JetBrains.gitignore that can
173
- # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
174
- # and can be added to the global gitignore or merged into this file. For a more nuclear
175
- # option (not recommended) you can uncomment the following to ignore the entire idea folder.
176
- #.idea/
187
+ # JetBrains specific template is maintained in a separate JetBrains.gitignore that can
188
+ # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
189
+ # and can be added to the global gitignore or merged into this file. For a more nuclear
190
+ # option (not recommended) you can uncomment the following to ignore the entire idea folder.
191
+ # .idea/
177
192
 
178
193
  # Abstra
179
- # Abstra is an AI-powered process automation framework.
180
- # Ignore directories containing user credentials, local state, and settings.
181
- # Learn more at https://abstra.io/docs
194
+ # Abstra is an AI-powered process automation framework.
195
+ # Ignore directories containing user credentials, local state, and settings.
196
+ # Learn more at https://abstra.io/docs
182
197
  .abstra/
183
198
 
184
199
  # Visual Studio Code
185
- # Visual Studio Code specific template is maintained in a separate VisualStudioCode.gitignore
186
- # that can be found at https://github.com/github/gitignore/blob/main/Global/VisualStudioCode.gitignore
187
- # and can be added to the global gitignore or merged into this file. However, if you prefer,
188
- # you could uncomment the following to ignore the entire vscode folder
200
+ # Visual Studio Code specific template is maintained in a separate VisualStudioCode.gitignore
201
+ # that can be found at https://github.com/github/gitignore/blob/main/Global/VisualStudioCode.gitignore
202
+ # and can be added to the global gitignore or merged into this file. However, if you prefer,
203
+ # you could uncomment the following to ignore the entire vscode folder
189
204
  # .vscode/
190
205
 
191
206
  # Ruff stuff:
@@ -194,14 +209,12 @@ cython_debug/
194
209
  # PyPI configuration file
195
210
  .pypirc
196
211
 
197
- # Cursor
198
- # Cursor is an AI-powered code editor. `.cursorignore` specifies files/directories to
199
- # exclude from AI features like autocomplete and code analysis. Recommended for sensitive data
200
- # refer to https://docs.cursor.com/context/ignore-files
201
- .cursorignore
202
- .cursorindexingignore
203
-
204
212
  # Marimo
205
213
  marimo/_static/
206
214
  marimo/_lsp/
207
215
  __marimo__/
216
+
217
+ # Streamlit
218
+ .streamlit/secrets.toml
219
+
220
+ coverage/
@@ -0,0 +1 @@
1
+ 3.13
@@ -0,0 +1,26 @@
1
+ # Read the Docs configuration file
2
+ # See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
3
+
4
+ # Required
5
+ version: 2
6
+
7
+ # Set the OS, Python version, and other tools you might need
8
+ build:
9
+ os: ubuntu-24.04
10
+ tools:
11
+ python: "3.13"
12
+
13
+ # Build documentation in the "docs/" directory with Sphinx
14
+ sphinx:
15
+ configuration: docs/conf.py
16
+
17
+ # Optional but recommended, declare the Python requirements required
18
+ # to build your documentation
19
+ # See https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html
20
+
21
+ python:
22
+ install:
23
+ - method: pip
24
+ path: .
25
+ extra_requirements:
26
+ - docs
@@ -0,0 +1,37 @@
1
+ cff-version: 1.2.0
2
+ message: "If you use this software, please cite it as below."
3
+ authors:
4
+ - family-names: "Bakker"
5
+ given-names: "Mark"
6
+ orcid: "https://orcid.org/0000-0002-5629-2861"
7
+ title: "timflow"
8
+ url: "https://github.com/timflow-org/timflow"
9
+
10
+ references:
11
+ - type: article
12
+ authors:
13
+ - family-names: "Bakker"
14
+ given-names: "Mark"
15
+ orcid: "https://orcid.org/0000-0002-5629-2861"
16
+ - family-names: "Strack"
17
+ given-names: "Otto D.L."
18
+ doi: "10.1016/S0022-1694(02)00319-0"
19
+ journal: "Journal of Hydrology"
20
+ title: "Analytic elements for multiaquifer flow"
21
+ volume: 271
22
+ number: 1
23
+ start: 119
24
+ end: 129
25
+ year: 2003
26
+ - type: article
27
+ authors:
28
+ - family-names: "Bakker"
29
+ given-names: "Mark"
30
+ orcid: "https://orcid.org/0000-0002-5629-2861"
31
+ doi: "10.1007/s10040-013-0975-2"
32
+ journal: "Hydrogeology Journal"
33
+ title: "Semi-analytic modeling of transient multi-layer flow with TTim"
34
+ volume: 21
35
+ start: 935
36
+ end: 943
37
+ year: 2013
timflow-0.2.0/PKG-INFO ADDED
@@ -0,0 +1,141 @@
1
+ Metadata-Version: 2.4
2
+ Name: timflow
3
+ Version: 0.2.0
4
+ Summary: Analytic element modeling of groundwater flow
5
+ Author: Mark Bakker, Davíd Brakenhoff
6
+ Maintainer-email: Mark Bakker <markbak@gmail.com>, Davíd Brakenhoff <d.brakenhoff@artesia-water.nl>
7
+ License: MIT License
8
+
9
+ Copyright (c) 2026 timflow-org
10
+
11
+ Permission is hereby granted, free of charge, to any person obtaining a copy
12
+ of this software and associated documentation files (the "Software"), to deal
13
+ in the Software without restriction, including without limitation the rights
14
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
15
+ copies of the Software, and to permit persons to whom the Software is
16
+ furnished to do so, subject to the following conditions:
17
+
18
+ The above copyright notice and this permission notice shall be included in all
19
+ copies or substantial portions of the Software.
20
+
21
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
22
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
23
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
24
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
25
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
26
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
27
+ SOFTWARE.
28
+
29
+ Project-URL: homepage, https://github.com/timflow-org/timflow
30
+ Project-URL: repository, https://github.com/timflow-org/timflow
31
+ Project-URL: documentation, https://timflow.readthedocs.io/en/latest/
32
+ Keywords: hydrology,groundwater,model,analytic element method
33
+ Classifier: Development Status :: 4 - Beta
34
+ Classifier: Intended Audience :: Science/Research
35
+ Classifier: Intended Audience :: Other Audience
36
+ Classifier: License :: OSI Approved :: MIT License
37
+ Classifier: Operating System :: Microsoft :: Windows
38
+ Classifier: Operating System :: POSIX
39
+ Classifier: Operating System :: Unix
40
+ Classifier: Operating System :: MacOS
41
+ Classifier: Programming Language :: Python
42
+ Classifier: Programming Language :: Python :: 3
43
+ Classifier: Programming Language :: Python :: 3.11
44
+ Classifier: Programming Language :: Python :: 3.12
45
+ Classifier: Programming Language :: Python :: 3.13
46
+ Classifier: Programming Language :: Python :: 3 :: Only
47
+ Classifier: Topic :: Scientific/Engineering :: Hydrology
48
+ Requires-Python: >=3.11
49
+ Description-Content-Type: text/markdown
50
+ License-File: LICENSE
51
+ Requires-Dist: numpy
52
+ Requires-Dist: scipy
53
+ Requires-Dist: numba
54
+ Requires-Dist: matplotlib
55
+ Requires-Dist: pandas
56
+ Provides-Extra: lint
57
+ Requires-Dist: ruff; extra == "lint"
58
+ Provides-Extra: parallel
59
+ Requires-Dist: tqdm; extra == "parallel"
60
+ Provides-Extra: optional
61
+ Requires-Dist: timflow[parallel]; extra == "optional"
62
+ Requires-Dist: lmfit; extra == "optional"
63
+ Provides-Extra: ci
64
+ Requires-Dist: timflow[lint,optional]; extra == "ci"
65
+ Requires-Dist: pytest; extra == "ci"
66
+ Requires-Dist: pytest-cov; extra == "ci"
67
+ Requires-Dist: pytest-xdist; extra == "ci"
68
+ Requires-Dist: nbval; extra == "ci"
69
+ Requires-Dist: jupyter; extra == "ci"
70
+ Requires-Dist: shapely; extra == "ci"
71
+ Provides-Extra: docs
72
+ Requires-Dist: timflow[ci]; extra == "docs"
73
+ Requires-Dist: sphinx; extra == "docs"
74
+ Requires-Dist: sphinx-design; extra == "docs"
75
+ Requires-Dist: pydata-sphinx-theme; extra == "docs"
76
+ Requires-Dist: numpydoc; extra == "docs"
77
+ Requires-Dist: myst_nb; extra == "docs"
78
+ Requires-Dist: sphinxcontrib-bibtex; extra == "docs"
79
+ Requires-Dist: sphinx-autoapi; extra == "docs"
80
+ Provides-Extra: dev
81
+ Requires-Dist: timflow[docs]; extra == "dev"
82
+ Dynamic: license-file
83
+
84
+ <img src="./docs/_static/timflow_logo.jpeg" width="300">
85
+
86
+ [![PyPI - Version](https://img.shields.io/pypi/v/timflow)](https://pypi.org/project/timflow/)
87
+ [![General](https://github.com/timflow-org/timflow/actions/workflows/ci-general.yml/badge.svg)](https://github.com/timflow-org/timflow/actions/workflows/ci-general.yml)
88
+ [![Steady](https://github.com/timflow-org/timflow/actions/workflows/ci-steady.yml/badge.svg)](https://github.com/timflow-org/timflow/actions/workflows/ci-steady.yml)
89
+ [![Transient](https://github.com/timflow-org/timflow/actions/workflows/ci-transient.yml/badge.svg)](https://github.com/timflow-org/timflow/actions/workflows/ci-transient.yml)
90
+ [![Documentation Status](https://readthedocs.org/projects/timflow/badge/?version=latest)](https://timflow.readthedocs.io/en/latest/?badge=latest)
91
+ [![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
92
+
93
+ # timflow, a multi-layer analytic element model
94
+
95
+ `timflow` is a Python package for the modeling of multi-layer groundwater flow with analytic
96
+ elements. The package is split into two main submodules: `timflow.steady` for steady-state flow
97
+ and `timflow.transient` for modeling transient flow. Both modules may be applied to an
98
+ arbitrary number of aquifers and leaky layers. The head, flow, and leakage between
99
+ aquifers may be computed semi-analytically at any point in space and time.
100
+
101
+ The design
102
+ of `timflow` is object-oriented and has been kept simple and flexible.
103
+ New analytic elements may be added to the code without making any changes in the
104
+ existing part of the code. `timflow` is coded in Python and uses `numba` to speed up
105
+ evaluation of the line elements and inverse Laplace transforms.
106
+ The `transient` submodule is based on the Laplace-transform analytic element
107
+ method. The solution is computed analytically in the Laplace domain and converted back
108
+ to the time domain numerically usig the algorithm of De Hoog, Stokes, and Knight.
109
+
110
+ ## Installation
111
+
112
+ `timflow` requires Python >= 3.11 and can be installed from PyPI:
113
+
114
+ `pip install timflow`
115
+
116
+ To install all optional dependencies (for running tests and building docs):
117
+
118
+ `pip install timflow[dev]`
119
+
120
+ ## Documentation
121
+
122
+ The documentation is hosted on [readthedocs](https://timflow.readthedocs.io).
123
+
124
+ ## History
125
+
126
+ `timflow` combines the old packages [`TimML`](https://github.com/mbakker7/timml)
127
+ and [`TTim`](https://github.com/mbakker7/ttim). Git history is maintained within this new package, but the old repositories are still available for searching through old issues, pull requests, and other information.
128
+
129
+ ## Citation
130
+
131
+ Some of the papers that you may want to cite when using `timflow` are:
132
+
133
+ * Steady-state flow:
134
+ * Bakker, M., and O.D.L. Strack. 2003. Analytic Elements for Multiaquifer Flow.
135
+ Journal of Hydrology, 271(1-4), 119-129. [https://doi.org/10.1016/S0022-1694(02)00319-0](https://doi.org/10.1016/S0022-1694(02)00319-0)
136
+ * Transient flow:
137
+ * M. Bakker. 2013. Semi-analytic modeling of transient multi-layer flow with TTim.
138
+ Hydrogeology Journal, 21: 935-943. [https://doi.org/10.1007/s10040-013-0975-2](https://doi.org/10.1007/s10040-013-0975-2)
139
+ * M .Bakker. 2013. Analytic modeling of transient multi-layer flow. In: Advances in
140
+ Hydrogeology, edited by P Mishra and K Kuhlman, Springer, Heidelberg, 95-114. Available [here](https://github.com/mbakker7/timflow/blob/master/papers/2013_bakker_ttim_theory.pdf).
141
+
@@ -0,0 +1,58 @@
1
+ <img src="./docs/_static/timflow_logo.jpeg" width="300">
2
+
3
+ [![PyPI - Version](https://img.shields.io/pypi/v/timflow)](https://pypi.org/project/timflow/)
4
+ [![General](https://github.com/timflow-org/timflow/actions/workflows/ci-general.yml/badge.svg)](https://github.com/timflow-org/timflow/actions/workflows/ci-general.yml)
5
+ [![Steady](https://github.com/timflow-org/timflow/actions/workflows/ci-steady.yml/badge.svg)](https://github.com/timflow-org/timflow/actions/workflows/ci-steady.yml)
6
+ [![Transient](https://github.com/timflow-org/timflow/actions/workflows/ci-transient.yml/badge.svg)](https://github.com/timflow-org/timflow/actions/workflows/ci-transient.yml)
7
+ [![Documentation Status](https://readthedocs.org/projects/timflow/badge/?version=latest)](https://timflow.readthedocs.io/en/latest/?badge=latest)
8
+ [![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
9
+
10
+ # timflow, a multi-layer analytic element model
11
+
12
+ `timflow` is a Python package for the modeling of multi-layer groundwater flow with analytic
13
+ elements. The package is split into two main submodules: `timflow.steady` for steady-state flow
14
+ and `timflow.transient` for modeling transient flow. Both modules may be applied to an
15
+ arbitrary number of aquifers and leaky layers. The head, flow, and leakage between
16
+ aquifers may be computed semi-analytically at any point in space and time.
17
+
18
+ The design
19
+ of `timflow` is object-oriented and has been kept simple and flexible.
20
+ New analytic elements may be added to the code without making any changes in the
21
+ existing part of the code. `timflow` is coded in Python and uses `numba` to speed up
22
+ evaluation of the line elements and inverse Laplace transforms.
23
+ The `transient` submodule is based on the Laplace-transform analytic element
24
+ method. The solution is computed analytically in the Laplace domain and converted back
25
+ to the time domain numerically usig the algorithm of De Hoog, Stokes, and Knight.
26
+
27
+ ## Installation
28
+
29
+ `timflow` requires Python >= 3.11 and can be installed from PyPI:
30
+
31
+ `pip install timflow`
32
+
33
+ To install all optional dependencies (for running tests and building docs):
34
+
35
+ `pip install timflow[dev]`
36
+
37
+ ## Documentation
38
+
39
+ The documentation is hosted on [readthedocs](https://timflow.readthedocs.io).
40
+
41
+ ## History
42
+
43
+ `timflow` combines the old packages [`TimML`](https://github.com/mbakker7/timml)
44
+ and [`TTim`](https://github.com/mbakker7/ttim). Git history is maintained within this new package, but the old repositories are still available for searching through old issues, pull requests, and other information.
45
+
46
+ ## Citation
47
+
48
+ Some of the papers that you may want to cite when using `timflow` are:
49
+
50
+ * Steady-state flow:
51
+ * Bakker, M., and O.D.L. Strack. 2003. Analytic Elements for Multiaquifer Flow.
52
+ Journal of Hydrology, 271(1-4), 119-129. [https://doi.org/10.1016/S0022-1694(02)00319-0](https://doi.org/10.1016/S0022-1694(02)00319-0)
53
+ * Transient flow:
54
+ * M. Bakker. 2013. Semi-analytic modeling of transient multi-layer flow with TTim.
55
+ Hydrogeology Journal, 21: 935-943. [https://doi.org/10.1007/s10040-013-0975-2](https://doi.org/10.1007/s10040-013-0975-2)
56
+ * M .Bakker. 2013. Analytic modeling of transient multi-layer flow. In: Advances in
57
+ Hydrogeology, edited by P Mishra and K Kuhlman, Springer, Heidelberg, 95-114. Available [here](https://github.com/mbakker7/timflow/blob/master/papers/2013_bakker_ttim_theory.pdf).
58
+
@@ -0,0 +1,20 @@
1
+ # Minimal makefile for Sphinx documentation
2
+ #
3
+
4
+ # You can set these variables from the command line, and also
5
+ # from the environment for the first two.
6
+ SPHINXOPTS ?=
7
+ SPHINXBUILD ?= sphinx-build
8
+ SOURCEDIR = .
9
+ BUILDDIR = _build
10
+
11
+ # Put it first so that "make" without argument is like "make help".
12
+ help:
13
+ @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
14
+
15
+ .PHONY: help Makefile
16
+
17
+ # Catch-all target: route all unknown targets to Sphinx using the new
18
+ # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
19
+ %: Makefile
20
+ @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
@@ -0,0 +1,40 @@
1
+ tbody tr:nth-child(odd) {
2
+ background: #f5f5f5;
3
+ }
4
+
5
+ .table td, .table th {
6
+ padding: 5px;
7
+ vertical-align: middle;
8
+ border-top: 1px solid #dee2e6;
9
+ }
10
+
11
+ .table p {
12
+ padding: 0px;
13
+ margin: 5px;
14
+ }
15
+
16
+ .figure img {
17
+ margin: 0;
18
+ border: 1px solid #dee2e6;
19
+ padding: 3px;
20
+ }
21
+
22
+ .figure-img {
23
+ margin-bottom: 0.0em;
24
+ line-height: 1;
25
+ border: 1px solid #dee2e6;
26
+ padding: 3px;
27
+ }
28
+
29
+ .figure img .caption p {
30
+ padding-bottom: 0;
31
+ }
32
+
33
+ p.rubric {
34
+ font-size: 2.074em;
35
+ color: #130654;
36
+ margin: 2.75rem 0 1.05rem;
37
+ font-family: Open Sans, sans-serif;
38
+ font-weight: 400;
39
+ line-height:1.15
40
+ }