- Timestamp:
- Aug 27, 2010, 2:30:30 PM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/anuga_core/source/anuga/structures/culvert_operator.py
r7977 r7978 3 3 import anuga.utilities.log as log 4 4 import box_culvert 5 import culvert_routines 5 6 6 7 class Culvert_operator: … … 17 18 def __init__(self, 18 19 domain, 19 end_point0 =None,20 end_point1 =None,21 width =None,20 end_point0, 21 end_point1, 22 width, 22 23 height=None, 23 24 verbose=False): … … 43 44 timestep = self.domain.get_timestep() 44 45 45 inflow = self.inlets[0] 46 outflow = self.inlets[1] 47 48 # Determine flow direction based on total energy difference 49 delta_total_energy = inflow.get_average_total_energy() - outflow.get_average_total_energy() 50 51 if delta_total_energy < 0: 52 inflow = self.inlets[1] 53 outflow = self.inlets[0] 54 delta_total_energy = -delta_total_energy 55 56 delta_z = inflow.get_average_elevation() - outflow.get_average_elevation() 57 culvert_slope = delta_z/self.culvert.get_culvert_length() 58 59 # Determine controlling energy (driving head) for culvert 60 if inflow.get_average_specific_energy() > delta_total_energy: 61 # Outlet control 62 driving_head = delta_total_energy 63 else: 64 # Inlet control 65 driving_head = inflow.get_average_specific_energy() 66 67 # Transfer 68 from culvert_routines import boyd_box, boyd_circle 69 Q, barrel_velocity, culvert_outlet_depth =\ 70 boyd_circle(inflow.get_average_height(), 71 outflow.get_average_height(), 72 inflow.get_average_speed(), 73 outflow.get_average_speed(), 74 inflow.get_average_specific_energy(), 75 delta_total_energy, 76 culvert_length=self.culvert.get_culvert_length(), 77 culvert_width=self.width, 78 culvert_height=self.height, 79 manning=0.01) 46 from culvert_routines import Culvert_routines 47 culvert_routine = culvert_routines.Culvert_routines(self.culvert) 48 49 Q, barrel_velocity, culvert_outlet_depth = culvert_routine.boyd_circle() 80 50 81 51 transfer_water = Q*timestep 52 53 inflow = culvert_routine.get_inflow() 54 outflow = culvert_routine.get_outflow() 82 55 83 56 inflow.set_heights(inflow.get_average_height() - transfer_water)
Note: See TracChangeset
for help on using the changeset viewer.