Replies: 3 comments
-
|
I am sorry to report that this code is not longer available as it was based on a very old version of TimML (well before TimML was even merged to github). Thank you for your interest. |
Beta Was this translation helpful? Give feedback.
-
|
Hello team, import numpy as np Global parameters https://github.com/DataClass --- mutable state ---strength: float --- timml object ---timml_element: Optional[tml.HeadLineSink] = None class CollectorWellArm: Segments are ordered from tip (index 0) to caisson (index n-1)self.segments = self._create_segments() def _create_segments(self) -> List[ArmSegment]: def _get_cumulative_inflow(self, segment_index: int) -> float: def calculate_head_losses(self, caisson_head: float): def calculate_friction_loss(self, m: int) -> float: def _calculate_exit_loss(self) -> float: def get_total_arm_discharge(self) -> float: def _create_arms(self, n_arms, arm_length, arm_radius, friction_factor, n_segments, layer) -> List[CollectorWellArm]: def solve(self, max_iterations: int = 50, tolerance: float = 1e-2): def _setup_timml_model(self): def _update_strengths_from_timml(self, relaxation=0.5): def _update_target_heads(self): def get_total_discharge(self) -> float: def plot_results(self): def run_simulation(): ml = tml.Model3D(kaq=kaq, z=layer_tops,kzoverkh = kzoverkh , topboundary='conf', hstar=0) tml.Constant(ml, xr=200, yr=0, hr=24 , layer = 0) cw = CollectorWell( Solve and visualizecw.solve(max_iterations=200, tolerance=1e-4) cw.plot_results() |
Beta Was this translation helpful? Give feedback.
-
|
I think the main reason you were not able to reproduce the multi-layer results of the Bakker, Kelson, Luther (2005) paper is that in TimML the control points are placed on the line-sinks, while in the paper the control points are placed away from the line-sinks at a distance equal to the radius of the arms. I made a few additions on the controlpoints_off_linesink branch to allow the user to specify the distance between the control points and the line-sink (the In the notebook bakker_kelson_luther_2005 click here I simulated the first two examples of the paper and get the same results. For the case with flow resistance in the arms, you have to iterate (as mentioned in the paper and in the script you submitted above). Feel free to add iteration to the above notebook and submit a PR. Thanks for bringing this to our attention. I hope this helps. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Hello team,
I have been exploring this repo for some research purposes. I studied the paper titled "Multilayer Analytic Element Modeling of Radial Collector Wells". The paper was very insightful and I have been trying to recreate the results from the paper. However I did not find any implementation of friction factor in the linesink elements code associated with the paper are not uploaded here. Can I go through those codes if it isn't confidential. I assure you if our work makes its way to publication, the respective authors or team will be thoroughly acknowledged and cited.
Beta Was this translation helpful? Give feedback.
All reactions