pyDeltaRCM 2.2.0__tar.gz → 2.2.1a0__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 (150) hide show
  1. {pydeltarcm-2.2.0/pyDeltaRCM.egg-info → pydeltarcm-2.2.1a0}/PKG-INFO +1 -1
  2. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/reference/model/model_hooks.rst +1 -0
  3. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/pyDeltaRCM/_version.py +1 -1
  4. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/pyDeltaRCM/init_tools.py +6 -0
  5. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/pyDeltaRCM/sed_tools.py +19 -7
  6. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0/pyDeltaRCM.egg-info}/PKG-INFO +1 -1
  7. pydeltarcm-2.2.1a0/tests/imgs_baseline/test_plot_domain_cell_type.png +0 -0
  8. pydeltarcm-2.2.1a0/tests/imgs_baseline/test_plot_domain_cell_type_list_index.png +0 -0
  9. pydeltarcm-2.2.1a0/tests/imgs_baseline/test_plot_domain_cell_type_list_mix_tuple_index.png +0 -0
  10. pydeltarcm-2.2.1a0/tests/imgs_baseline/test_plot_domain_cell_type_list_tuple.png +0 -0
  11. pydeltarcm-2.2.1a0/tests/imgs_baseline/test_plot_domain_cell_type_multiple_diff_args.png +0 -0
  12. pydeltarcm-2.2.1a0/tests/imgs_baseline/test_plot_domain_cell_type_multiple_diff_kwargs.png +0 -0
  13. pydeltarcm-2.2.1a0/tests/imgs_baseline/test_plot_domain_cell_type_multiple_index_calls.png +0 -0
  14. pydeltarcm-2.2.1a0/tests/imgs_baseline/test_plot_domain_cell_type_no_grid.png +0 -0
  15. pydeltarcm-2.2.1a0/tests/imgs_baseline/test_plot_domain_cell_type_single_index.png +0 -0
  16. pydeltarcm-2.2.1a0/tests/imgs_baseline/test_plot_domain_cell_type_single_tuple.png +0 -0
  17. pydeltarcm-2.2.1a0/tests/imgs_baseline/test_plot_domain_velocity.png +0 -0
  18. pydeltarcm-2.2.1a0/tests/imgs_baseline/test_plot_domain_withlabel.png +0 -0
  19. pydeltarcm-2.2.1a0/tests/imgs_baseline/test_plot_iwalk.png +0 -0
  20. pydeltarcm-2.2.1a0/tests/imgs_baseline/test_plot_multiple_subplots.png +0 -0
  21. pydeltarcm-2.2.1a0/tests/imgs_baseline/test_show_line_pts_Nx2_array.png +0 -0
  22. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/tests/imgs_baseline/test_show_line_set_points.png +0 -0
  23. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/tests/test_init_tools.py +10 -0
  24. pydeltarcm-2.2.0/tests/imgs_baseline/test_plot_domain_cell_type.png +0 -0
  25. pydeltarcm-2.2.0/tests/imgs_baseline/test_plot_domain_cell_type_list_index.png +0 -0
  26. pydeltarcm-2.2.0/tests/imgs_baseline/test_plot_domain_cell_type_list_mix_tuple_index.png +0 -0
  27. pydeltarcm-2.2.0/tests/imgs_baseline/test_plot_domain_cell_type_list_tuple.png +0 -0
  28. pydeltarcm-2.2.0/tests/imgs_baseline/test_plot_domain_cell_type_multiple_diff_args.png +0 -0
  29. pydeltarcm-2.2.0/tests/imgs_baseline/test_plot_domain_cell_type_multiple_diff_kwargs.png +0 -0
  30. pydeltarcm-2.2.0/tests/imgs_baseline/test_plot_domain_cell_type_multiple_index_calls.png +0 -0
  31. pydeltarcm-2.2.0/tests/imgs_baseline/test_plot_domain_cell_type_no_grid.png +0 -0
  32. pydeltarcm-2.2.0/tests/imgs_baseline/test_plot_domain_cell_type_single_index.png +0 -0
  33. pydeltarcm-2.2.0/tests/imgs_baseline/test_plot_domain_cell_type_single_tuple.png +0 -0
  34. pydeltarcm-2.2.0/tests/imgs_baseline/test_plot_domain_velocity.png +0 -0
  35. pydeltarcm-2.2.0/tests/imgs_baseline/test_plot_domain_withlabel.png +0 -0
  36. pydeltarcm-2.2.0/tests/imgs_baseline/test_plot_iwalk.png +0 -0
  37. pydeltarcm-2.2.0/tests/imgs_baseline/test_plot_multiple_subplots.png +0 -0
  38. pydeltarcm-2.2.0/tests/imgs_baseline/test_show_line_pts_Nx2_array.png +0 -0
  39. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/LICENSE +0 -0
  40. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/MANIFEST.in +0 -0
  41. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/README.rst +0 -0
  42. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/.nojekyll +0 -0
  43. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/_resources/checkpoint/checkpoint.npz +0 -0
  44. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/_resources/checkpoint.yaml +0 -0
  45. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/_static/style.css +0 -0
  46. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/_templates/page.html +0 -0
  47. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/conf.py +0 -0
  48. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/examples/basic_runs.rst +0 -0
  49. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/examples/custom_class_preprocessor.rst +0 -0
  50. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/examples/custom_saving.rst +0 -0
  51. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/examples/custom_yaml.rst +0 -0
  52. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/examples/gotcha_simulataneous_models.rst +0 -0
  53. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/examples/index.rst +0 -0
  54. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/examples/modelzoo.rst +0 -0
  55. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/examples/overwrite_topo_diffusion.rst +0 -0
  56. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/examples/resume_from_checkpoint.rst +0 -0
  57. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/examples/simple_example.ipynb +0 -0
  58. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/examples/slight_slope.rst +0 -0
  59. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/examples/subsidence_region.rst +0 -0
  60. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/examples/updating_boundary_conditions.rst +0 -0
  61. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/examples/variable_bedload.rst +0 -0
  62. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/examples/variable_velocity.rst +0 -0
  63. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/guides/10min.rst +0 -0
  64. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/guides/advanced_configuration_guide.inc +0 -0
  65. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/guides/developer_guide.rst +0 -0
  66. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/guides/getting_started.rst +0 -0
  67. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/guides/subsidence_guide.inc +0 -0
  68. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/guides/user_guide.rst +0 -0
  69. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/index.rst +0 -0
  70. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/info/hydrodynamics.rst +0 -0
  71. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/info/index.rst +0 -0
  72. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/info/initialization.rst +0 -0
  73. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/info/modeltime.rst +0 -0
  74. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/info/morphodynamics.rst +0 -0
  75. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/info/outputfile.rst +0 -0
  76. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/info/yamlparameters.rst +0 -0
  77. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/meta/citing.rst +0 -0
  78. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/meta/conduct.rst +0 -0
  79. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/meta/contributing.rst +0 -0
  80. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/meta/installing.rst +0 -0
  81. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/meta/license.rst +0 -0
  82. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/meta/usedby.rst +0 -0
  83. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/pyplots/debug_tools/debug_demo.py +0 -0
  84. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/pyplots/guides/10min_demo.py +0 -0
  85. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/pyplots/guides/cover.py +0 -0
  86. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/pyplots/guides/output_file.py +0 -0
  87. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/pyplots/init_tools/domain_basin_inlet_depth.py +0 -0
  88. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/pyplots/init_tools/domain_inlet_geometry.py +0 -0
  89. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/pyplots/init_tools/domain_parameters.py +0 -0
  90. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/pyplots/init_tools/domain_size_compare.py +0 -0
  91. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/pyplots/modeltime/_base.py +0 -0
  92. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/pyplots/modeltime/four_year_condensed_plot.py +0 -0
  93. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/pyplots/modeltime/four_year_plot.py +0 -0
  94. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/pyplots/modeltime/one_year_plot.py +0 -0
  95. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/pyplots/sed_tools/_initial_bed_state.py +0 -0
  96. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/pyplots/sed_tools/route_all_mud_parcels.py +0 -0
  97. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/pyplots/sed_tools/route_all_sand_parcels.py +0 -0
  98. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/pyplots/sed_tools/sediment_weights_examples.py +0 -0
  99. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/pyplots/sed_tools/topo_diffusion.py +0 -0
  100. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/pyplots/water_tools/_accumulate_free_surface_walks.py +0 -0
  101. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/pyplots/water_tools/_check_for_loops.py +0 -0
  102. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/pyplots/water_tools/_smooth_free_surface.py +0 -0
  103. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/pyplots/water_tools/compute_free_surface_inputs.py +0 -0
  104. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/pyplots/water_tools/compute_free_surface_outputs.py +0 -0
  105. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/pyplots/water_tools/flooding_correction.py +0 -0
  106. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/pyplots/water_tools/run_water_iteration.py +0 -0
  107. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/pyplots/water_tools/water_weights_examples.py +0 -0
  108. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/reference/debug_tools/index.rst +0 -0
  109. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/reference/hook_tools/index.rst +0 -0
  110. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/reference/index.rst +0 -0
  111. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/reference/init_tools/index.rst +0 -0
  112. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/reference/iteration_tools/index.rst +0 -0
  113. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/reference/model/index.rst +0 -0
  114. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/reference/model/yaml_defaults.rst +0 -0
  115. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/reference/preprocessor/index.rst +0 -0
  116. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/reference/sed_tools/index.rst +0 -0
  117. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/reference/shared_tools/index.rst +0 -0
  118. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/docs/source/reference/water_tools/index.rst +0 -0
  119. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/pyDeltaRCM/__init__.py +0 -0
  120. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/pyDeltaRCM/__main__.py +0 -0
  121. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/pyDeltaRCM/debug_tools.py +0 -0
  122. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/pyDeltaRCM/default.yml +0 -0
  123. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/pyDeltaRCM/hook_tools.py +0 -0
  124. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/pyDeltaRCM/iteration_tools.py +0 -0
  125. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/pyDeltaRCM/model.py +0 -0
  126. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/pyDeltaRCM/preprocessor.py +0 -0
  127. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/pyDeltaRCM/shared_tools.py +0 -0
  128. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/pyDeltaRCM/water_tools.py +0 -0
  129. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/pyDeltaRCM.egg-info/SOURCES.txt +0 -0
  130. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/pyDeltaRCM.egg-info/dependency_links.txt +0 -0
  131. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/pyDeltaRCM.egg-info/entry_points.txt +0 -0
  132. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/pyDeltaRCM.egg-info/requires.txt +0 -0
  133. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/pyDeltaRCM.egg-info/top_level.txt +0 -0
  134. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/pyproject.toml +0 -0
  135. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/setup.cfg +0 -0
  136. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/tests/__init__.py +0 -0
  137. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/tests/integration/__init__.py +0 -0
  138. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/tests/integration/test_checkpointing.py +0 -0
  139. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/tests/integration/test_cli.py +0 -0
  140. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/tests/integration/test_consistent_outputs.py +0 -0
  141. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/tests/integration/test_timing_triggers.py +0 -0
  142. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/tests/test_debug_tools.py +0 -0
  143. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/tests/test_iteration_tools.py +0 -0
  144. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/tests/test_logging.py +0 -0
  145. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/tests/test_model.py +0 -0
  146. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/tests/test_preprocessor.py +0 -0
  147. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/tests/test_sed_tools.py +0 -0
  148. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/tests/test_shared_tools.py +0 -0
  149. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/tests/test_water_tools.py +0 -0
  150. {pydeltarcm-2.2.0 → pydeltarcm-2.2.1a0}/tests/utilities.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyDeltaRCM
3
- Version: 2.2.0
3
+ Version: 2.2.1a0
4
4
  Summary: Python version of original Matlab DeltaRCM.
5
5
  Author-email: Andrew Moodie <amoodie@tamu.edu>
6
6
  Maintainer-email: Andrew Moodie <amoodie@tamu.edu>
@@ -61,4 +61,5 @@ A complete list of behavior-modifying arrays in the model follows:
61
61
  `mod_water_weight`, modifies the neighbor-weighting of water parcels during routing according to ``(depth * mod_water_weight)**theta_water``, 1
62
62
  `mod_sed_weight`, modifies the neighbor-weighting of the sediment parcel routing according to ``(depth * mod_sed_weight)**theta_sed``, 1
63
63
  `mod_erosion`, linearly modifies the "erodibility" of cells according to ``mod_erosion * Vp_sed * (U_loc**beta - U_ero**beta) / U_ero**beta``, 1
64
+ `mod_stable_weight`, linearly modifies the maximum change in volume of a cell during erosion and deposition (default = 1 / 4) according to ``mod_stable_weight * depth / 4 * (dx * dx)``, 1
64
65
 
@@ -3,4 +3,4 @@ def __version__() -> str:
3
3
  Private version declaration, gets assigned to pyDeltaRCM.__version__
4
4
  during import
5
5
  """
6
- return "2.2.0"
6
+ return "2.2.1a"
@@ -530,6 +530,8 @@ class init_tools(abc.ABC):
530
530
  self.mod_water_weight = np.ones_like(self.depth)
531
531
  self.mod_sed_weight = np.ones_like(self.depth)
532
532
  self.mod_erosion = np.ones_like(self.depth)
533
+ #add array of ones to make stability parameter weighting mutable
534
+ self.mod_stable_weight = np.ones_like(self.depth)
533
535
 
534
536
  # ---- domain ----
535
537
  cell_land = -2
@@ -578,6 +580,10 @@ class init_tools(abc.ABC):
578
580
  self.inlet = np.array(np.unique(np.where(self.cell_type == 1)[1]))
579
581
  self.eta[:] = self.stage - self.depth
580
582
 
583
+ # update eta trackers with initial bed elevation
584
+ self.eta0[:] = self.eta[:]
585
+ self.eta_init[:] = self.eta[:]
586
+
581
587
  def init_sediment_routers(self) -> None:
582
588
  """Initialize the sediment router object here.
583
589
 
@@ -142,6 +142,7 @@ class sed_tools(abc.ABC):
142
142
  self.qy,
143
143
  self.qs,
144
144
  self.mod_sed_weight,
145
+ self.mod_stable_weight,
145
146
  )
146
147
 
147
148
  # These are the variables updated at the end of the `SandRouter`. If
@@ -209,6 +210,7 @@ class sed_tools(abc.ABC):
209
210
  self.qx,
210
211
  self.qy,
211
212
  self.mod_sed_weight,
213
+ self.mod_stable_weight,
212
214
  )
213
215
 
214
216
  # These are the variables updated at the end of the `MudRouter`. If
@@ -356,6 +358,7 @@ r_spec = [
356
358
  ("mod_erosion", float32[:, :]),
357
359
  ("mod_sed_weight", float32[:, :]),
358
360
  ("pad_mod_sed_weight", float32[:, :]),
361
+ ("mod_stable_weight", float32[:, :]),
359
362
  ]
360
363
 
361
364
 
@@ -540,7 +543,8 @@ class BaseRouter:
540
543
  """
541
544
  return mod_erosion * Vp_sed * (U_loc**beta - U_ero**beta) / U_ero**beta
542
545
 
543
- def _limit_Vp_change(self, Vp, stage, eta, dx: float, dep_ero: int):
546
+ def _limit_Vp_change(self, Vp, stage, eta, dx: float, dep_ero: int,
547
+ mod_stable_weight: float):
544
548
  """Limit change in volume to 1/4 of a cell volume.
545
549
 
546
550
  Function is used by multiple pathways in `mud_dep_ero` and `sand_dep_ero`
@@ -553,10 +557,10 @@ class BaseRouter:
553
557
  if dep_ero == 0:
554
558
  return 0
555
559
  else:
556
- fourth = np.abs(depth) / 4 * (dx * dx)
560
+ fourth = mod_stable_weight * np.abs(depth) / 4 * (dx * dx)
557
561
  return np.minimum(Vp, fourth)
558
562
  else:
559
- fourth = depth / 4 * (dx * dx)
563
+ fourth = mod_stable_weight * depth / 4 * (dx * dx)
560
564
  return np.minimum(Vp, fourth)
561
565
 
562
566
 
@@ -642,6 +646,7 @@ class SandRouter(BaseRouter):
642
646
  qy,
643
647
  qs,
644
648
  mod_sed_weight,
649
+ mod_stable_weight,
645
650
  ) -> None:
646
651
  """The main function to route and deposit/erode sand parcels.
647
652
 
@@ -684,6 +689,7 @@ class SandRouter(BaseRouter):
684
689
  self.pad_depth = shared_tools.custom_pad(depth)
685
690
  self.pad_cell_type = shared_tools.custom_pad(cell_type)
686
691
  self.pad_mod_sed_weight = shared_tools.custom_pad(mod_sed_weight)
692
+ self.mod_stable_weight = mod_stable_weight
687
693
  self.Vp_dep_mud = Vp_dep_mud
688
694
  self.Vp_dep_sand = Vp_dep_sand
689
695
  self.qw = qw
@@ -790,7 +796,8 @@ class SandRouter(BaseRouter):
790
796
  # transport capacity of the cell (`qs_cap`), sediment needs to
791
797
  # deposit on the bed.
792
798
  Vp_change = self._limit_Vp_change(
793
- self.Vp_res, self.stage[px, py], self.eta[px, py], self._dx, 0
799
+ self.Vp_res, self.stage[px, py], self.eta[px, py], self._dx, 0,
800
+ self.mod_stable_weight[px, py]
794
801
  )
795
802
 
796
803
  elif (U_loc > self.U_ero_sand) and (qs_loc < qs_cap):
@@ -802,7 +809,8 @@ class SandRouter(BaseRouter):
802
809
  self.Vp_sed, U_loc, self.U_ero_sand, self._beta, ero_mod_loc
803
810
  )
804
811
  Vp_change = self._limit_Vp_change(
805
- Vp_change, self.stage[px, py], self.eta[px, py], self._dx, 1
812
+ Vp_change, self.stage[px, py], self.eta[px, py], self._dx, 1,
813
+ self.mod_stable_weight[px, py]
806
814
  )
807
815
  Vp_change = Vp_change * -1
808
816
 
@@ -893,6 +901,7 @@ class MudRouter(BaseRouter):
893
901
  qx,
894
902
  qy,
895
903
  mod_sed_weight,
904
+ mod_stable_weight,
896
905
  ) -> None:
897
906
  """The main function to route and deposit/erode mud parcels."""
898
907
 
@@ -907,6 +916,7 @@ class MudRouter(BaseRouter):
907
916
  self.pad_depth = shared_tools.custom_pad(depth)
908
917
  self.pad_cell_type = shared_tools.custom_pad(cell_type)
909
918
  self.pad_mod_sed_weight = shared_tools.custom_pad(mod_sed_weight)
919
+ self.mod_stable_weight = mod_stable_weight
910
920
  self.Vp_dep_mud = Vp_dep_mud
911
921
  self.Vp_dep_sand = Vp_dep_sand
912
922
  self.qw = qw
@@ -962,7 +972,8 @@ class MudRouter(BaseRouter):
962
972
  / (self.U_dep_mud**self._beta)
963
973
  )
964
974
  Vp_change = self._limit_Vp_change(
965
- Vp_change, self.stage[px, py], self.eta[px, py], self._dx, 0
975
+ Vp_change, self.stage[px, py], self.eta[px, py], self._dx, 0,
976
+ self.mod_stable_weight[px, py]
966
977
  )
967
978
 
968
979
  if U_loc > self.U_ero_mud:
@@ -970,7 +981,8 @@ class MudRouter(BaseRouter):
970
981
  self.Vp_sed, U_loc, self.U_ero_mud, self._beta, ero_mod_loc
971
982
  )
972
983
  Vp_change = self._limit_Vp_change(
973
- Vp_change, self.stage[px, py], self.eta[px, py], self._dx, 1
984
+ Vp_change, self.stage[px, py], self.eta[px, py], self._dx, 1,
985
+ self.mod_stable_weight[px, py]
974
986
  )
975
987
  Vp_change = Vp_change * -1
976
988
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyDeltaRCM
3
- Version: 2.2.0
3
+ Version: 2.2.1a0
4
4
  Summary: Python version of original Matlab DeltaRCM.
5
5
  Author-email: Andrew Moodie <amoodie@tamu.edu>
6
6
  Maintainer-email: Andrew Moodie <amoodie@tamu.edu>
@@ -150,6 +150,16 @@ class TestModelDomainSetup:
150
150
  delta = DeltaModel(input_file=p)
151
151
  assert np.any(delta.sfc_sum) == 0
152
152
 
153
+ def test_eta_init(self, tmp_path: Path) -> None:
154
+ p = utilities.yaml_from_dict(tmp_path, "input.yaml")
155
+ delta = DeltaModel(input_file=p)
156
+ assert np.all(delta.eta_init == delta.eta)
157
+
158
+ def test_eta0(self, tmp_path: Path) -> None:
159
+ p = utilities.yaml_from_dict(tmp_path, "input.yaml")
160
+ delta = DeltaModel(input_file=p)
161
+ assert np.all(delta.eta0 == delta.eta)
162
+
153
163
 
154
164
  class TestCreateBoundaryConditions:
155
165
  # base case during init is covered by tests elsewhere!
File without changes
File without changes
File without changes
File without changes
File without changes