def Discharge(self, FlowPath, **kwargs):
        if FlowPath.key_down == 'A':
            # Pressure in compressor lower than the discharge line
            # Valve is closed - no flow
            return 0.0
        else:
            #try:

            if not hasattr(self, 'valve_model') or self.valve_model == '1DOF':

                FlowPath.A = self.discharge_valve.A()
                mdot = flow_models.IsentropicNozzle(FlowPath.A,
                                                    FlowPath.State_up,
                                                    FlowPath.State_down)

            elif self.valve_model == 'VibrationModeModel':

                #mdot = self.discharge_valve.mdot
                A1 = self.discharge_valve.A_1()
                mdot1 = flow_models.IsentropicNozzle(A1, FlowPath.State_up,
                                                     FlowPath.State_down)
                A2 = self.discharge_valve.A_2()
                mdot2 = flow_models.IsentropicNozzle(A2, FlowPath.State_up,
                                                     FlowPath.State_down)
                mdot = mdot1 + mdot2
            return mdot
예제 #2
0
 def PistonLeakage(self, FlowPath, **kwargs):
     try:
         FlowPath.A=self.delta_gap*self.piston_diameter*pi
         mdot=flow_models.IsentropicNozzle(FlowPath.A,FlowPath.State_up,FlowPath.State_down)
         return mdot
     except ZeroDivisionError:
         return 0.0
예제 #3
0
 def Inlet(self, FlowPath, **kwargs):
     try:
         FlowPath.A=0.01**2/4*pi
         mdot=flow_models.IsentropicNozzle(FlowPath.A,FlowPath.State_up,FlowPath.State_down)
         return mdot
     except ZeroDivisionError:
         return 0.0
예제 #4
0
 def DA_D(self, FlowPath, X_d=1.0, **kwargs):
     FlowPath.A = X_d * scroll_geo.Area_s_sa(2 * pi - self.beta, self.geo)
     try:
         return flow_models.IsentropicNozzle(FlowPath.A, FlowPath.State_up,
                                             FlowPath.State_down)
     except ZeroDivisionError:
         return 0.0
예제 #5
0
 def Discharge(self, FlowPath):
     if pi <= self.theta <= 7 * pi / 4:
         FlowPath.A = pi * 0.006**2 / 4 * (1 - cos(4 * self.theta)) / 2
         mdot = flow_models.IsentropicNozzle(FlowPath.A, FlowPath.State_up,
                                             FlowPath.State_down)
     else:
         FlowPath.A = 0.0
         mdot = 0
     return mdot
예제 #6
0
 def Suction(self, FlowPath):
     if 0 <= self.theta <= pi / 4:
         FlowPath.A = pi * 0.006**2 / 4 * (1 - cos(8 * self.theta)) / 2
         mdot = flow_models.IsentropicNozzle(FlowPath.A, FlowPath.State_up,
                                             FlowPath.State_down)
     else:
         FlowPath.A = 0.0
         mdot = 0
     return mdot
예제 #7
0
 def S_to_SS(self, FlowPath, **kwargs):
     if self.__before_discharge1__:
         FlowPath.A = 0.0
     else:
         FlowPath.A = scroll_geo.Area_d_dd(2 * pi - self.beta, self.geo)
     try:
         mdot = flow_models.IsentropicNozzle(FlowPath.A, FlowPath.State_up,
                                             FlowPath.State_down)
         return mdot
     except ZeroDivisionError:
         return 0.0
예제 #8
0
 def Suction(self,FlowPath,**kwargs):
     if FlowPath.key_up=='A':
         ## pressure in compressor higher than the inlet line
         ## valve is closed - no flow
         return 0.0
     else:
         try:
             FlowPath.A=self.suction_valve.A()
             #FlowPath.A=self.A_suction
             mdot=flow_models.IsentropicNozzle(FlowPath.A,FlowPath.State_up,FlowPath.State_down)
             return mdot
         except ZeroDivisionError:
             return 0.0
예제 #9
0
    def Discharge(self,FlowPath,**kwargs):
        if FlowPath.key_down=='A':
            ## pressure in compressor lower than the discharge line
            ## valve is closed - no flow
            return 0.0
        else:
            try:
                FlowPath.A=self.discharge_valve.A()
#                FlowPath.A=self.A_discharge
                mdot=flow_models.IsentropicNozzle(FlowPath.A,FlowPath.State_up,FlowPath.State_down)
                
                return mdot
            except ZeroDivisionError:
                return 0.0
    def Suction(self, FlowPath, **kwargs):
        if FlowPath.key_up == 'A':
            #Pressure in compressor higher than the inlet line
            #Valve is closed - no flow
            return 0.0
        else:

            if not hasattr(self, 'valve_model') or self.valve_model == '1DOF':

                FlowPath.A = self.suction_valve.A()
                mdot = flow_models.IsentropicNozzle(FlowPath.A,
                                                    FlowPath.State_up,
                                                    FlowPath.State_down)

            elif self.valve_model == 'VibrationModeModel':

                A1 = self.suction_valve.A_1()
                mdot1 = flow_models.IsentropicNozzle(A1, FlowPath.State_up,
                                                     FlowPath.State_down)
                A2 = self.suction_valve.A_2()
                mdot2 = flow_models.IsentropicNozzle(A2, FlowPath.State_up,
                                                     FlowPath.State_down)
                mdot = mdot1 + mdot2
            return mdot