diff --git a/Ausgleichsbecken/Ausgleichsbecken_class_file.py b/Ausgleichsbecken/Ausgleichsbecken_class_file.py index 85f0c94..b00d957 100644 --- a/Ausgleichsbecken/Ausgleichsbecken_class_file.py +++ b/Ausgleichsbecken/Ausgleichsbecken_class_file.py @@ -33,6 +33,9 @@ class Ausgleichsbecken_class: velocity_unit_print = 'm/s' volume_unit_print = 'm³' + g = 9.81 # m/s² + rho = 1000 # kg/m³ + # init def __init__(self,area,outflux_area,level_min = 0,level_max = np.inf ,timestep = 1): self.area = area # base area of the rectangular structure @@ -67,6 +70,16 @@ class Ausgleichsbecken_class: self.pressure = pressure self.pressure_unit = pressure_unit self.pressure_unit_print = display_pressure_unit + + def set_steady_state(self,ss_influx,ss_level,pressure_unit,display_pressure_unit): + ss_outflux = ss_influx + ss_outflux_vel = ss_outflux/self.area_outflux + ss_pressure = self.rho*self.g*ss_level-ss_outflux_vel**2*self.rho/2 + + self.set_initial_level(ss_level) + self.set_influx(ss_influx) + self.set_outflux(ss_outflux) + self.set_pressure(ss_pressure,pressure_unit,display_pressure_unit) # getter def get_info(self, full = False): new_line = '\n' diff --git a/Druckrohrleitung/Druckrohrleitung_class_file.py b/Druckrohrleitung/Druckrohrleitung_class_file.py index c6dd4bf..fd5a15f 100644 --- a/Druckrohrleitung/Druckrohrleitung_class_file.py +++ b/Druckrohrleitung/Druckrohrleitung_class_file.py @@ -41,7 +41,7 @@ class Druckrohrleitung_class: self.n_seg = number_segments self.angle = pipeline_angle self.f_D = Darcy_friction_factor # = Rohrreibungszahl oder flow coefficient - self.density = 1000 + self.rho = rho self.g = g self.dx = total_length/number_segments @@ -89,8 +89,8 @@ class Druckrohrleitung_class: self.v_old = self.v0.copy() self.v = np.empty_like(self.v_old) - def set_boundary_conditions_next_timestep(self,v_reservoir,p_reservoir,v_turbine,input_unit_pressure = 'Pa'): - rho = self.density + def set_boundary_conditions_next_timestep(self,v_reservoir,p_reservoir,v_turbine): + rho = self.rho c = self.c f_D = self.f_D dt = self.dt @@ -108,6 +108,14 @@ class Druckrohrleitung_class: self.p[0] = self.p_boundary_res.copy() self.p[-1] = self.p_boundary_tur.copy() + + def set_steady_state(self,ss_flux,ss_level_reservoir,pl_vec,h_vec,pressure_unit,display_pressure_unit): + ss_v0 = np.full(self.n_seg+1,ss_flux/(self.dia**2/4*np.pi)) + ss_pressure = (self.rho*self.g*(ss_level_reservoir+h_vec)-ss_v0**2*self.rho/2)-(self.f_D*pl_vec/self.dia*self.rho/2*ss_v0**2) + + self.set_initial_flow_velocity(ss_v0) + self.set_initial_pressure(ss_pressure,pressure_unit,display_pressure_unit) + # getter def get_info(self): new_line = '\n' @@ -150,7 +158,7 @@ class Druckrohrleitung_class: def timestep_characteristic_method(self): #number of nodes nn = self.n_seg+1 - rho = self.density + rho = self.rho c = self.c f_D = self.f_D dt = self.dt diff --git a/Turbinen/Turbinen_class_file.py b/Turbinen/Turbinen_class_file.py index 8290976..fa7e832 100644 --- a/Turbinen/Turbinen_class_file.py +++ b/Turbinen/Turbinen_class_file.py @@ -31,4 +31,10 @@ class Francis_Turbine: LA_diff_max = self.d_LA_max_dt*timestep if abs(LA_diff) > LA_diff_max: LA_diff = np.sign(LA_diff)*LA_diff_max - self.LA = self.LA-LA_diff \ No newline at end of file + self.LA = self.LA-LA_diff + + def set_steady_state(self,ss_flux,ss_pressure): + ss_LA = self.LA_n*ss_flux/self.Q_n*np.sqrt(self.p_n/ss_pressure) + self.set_LA(ss_LA) + if ss_LA < 0 or ss_LA > 1: + print('LA out of range')