Пример #1
0
 def solve_WellFullOfGas(self, casing_string_id):
     casing_string = self.project.casing_strings[casing_string_id]
     calcular = WellFullOfGasCalculator(project=self.project,
                                        casing_string=casing_string,
                                        production=None,
                                        calculate_parameters=True)
     attributes = WellFullOfGasAttributes(
         influx_depth=calcular.influx_depth,
         influx_pore_gradient=calcular.influx_pore_gradient,
         next_mud_weight=calcular.next_mud_weight,
         fracture_margin=1.,
         gas_gradient=None,
         gas_gravity=0.6,
         gas_percentage=1.)
     internal_pressure_load = WellFullOfGas(project=self.project,
                                            casing_string=casing_string,
                                            attributes=attributes)
     backup = FluidGradientBackup(project=self.project,
                                  casing_string=casing_string)
     result = LoadScenario(internal_pressure_load=internal_pressure_load,
                           external_pressure_load=backup).solve()
     return CasingDesign(
         string_sections=casing_string.string_sections,
         load_result=result,
         design_standard=N2752Y2014SimpleConnectionTriaxialDesignStandard)
 def solve_gas_kick(self, casing_string_id):
     casing_string = self.project.casing_strings[casing_string_id]
     calcular = GasKickCalculator(project=self.project, casing_string=casing_string, production=None,
                                  calculate_parameters=True)
     attributes = GasKickAttributes(kick_volume=calcular.kick_volume, kick_intensity=calcular.kick_intensity,
                                    gas_gravity=calcular.gas_gravity)
     internal_pressure_load = GasKick(project=self.project, casing_string=casing_string, attributes=attributes)
     backup = FluidGradientBackup(project=self.project, casing_string=casing_string)
     result = LoadScenario(internal_pressure_load=internal_pressure_load, external_pressure_load=backup).solve()
     return CasingDesign(string_sections=casing_string.string_sections,
                         load_result=result, design_standard=N2752Y2014SimpleConnectionTriaxialDesignStandard,
                         tipo_carregamento=str('gas_kick'), tipo_carga='Serviço')
 def solve_full_evacuation(self, casing_string_id):
     casing_string = self.project.casing_strings[casing_string_id]
    # calcular = FullEvacuationCalculator(project=self.project, casing_string=casing_string, production=None,
                                     #    calculate_parameters=True)
     attributes = FullEvacuationAttributes(perforation_base_depth=4657,
                                           packer_fluid=9.9)
     internal_pressure_load = FullEvacuation(project=self.project, casing_string=casing_string,
                                             attributes=attributes)
     backup = FluidGradientBackup(project=self.project, casing_string=casing_string)
     result = LoadScenario(internal_pressure_load=internal_pressure_load, external_pressure_load=backup).solve()
     return CasingDesign(string_sections=casing_string.string_sections,
                         load_result=result, design_standard=N2752Y2014SimpleConnectionTriaxialDesignStandard,
                         tipo_carregamento=str('full_evacuation'), tipo_carga='Sobrevivência')
 def solve_lost_returns(self, casing_string_id):
     casing_string = self.project.casing_strings[casing_string_id]
     calcular = LostReturnsCalculator(project=self.project, casing_string=casing_string, calculate_parameters=True)
     attributes = LostReturnsAttributes(evacuation_tvd=calcular.evacuation_tvd,
                                  mud_weight=calcular.mud_weight,
                                  loss_tvd=calcular.loss_tvd,
                                  pore_gradient=calcular.pore_gradient)
     internal_pressure_load = LostReturns(project=self.project, casing_string=casing_string, attributes=attributes)
     backup = FluidGradientBackup(project=self.project, casing_string=casing_string)
     result = LoadScenario(internal_pressure_load=internal_pressure_load, external_pressure_load=backup).solve()
     return CasingDesign(string_sections=casing_string.string_sections,
                         load_result=result, design_standard=N2752Y2014SimpleConnectionTriaxialDesignStandard,
                         tipo_carregamento=str('lost_returns'), tipo_carga='Serviço')
 def solve_wcd_collapse(self, casing_string_id):
     casing_string = self.project.casing_strings[casing_string_id]
     calcular = WCDCollapseCalculator(project=self.project, casing_string=casing_string, calculate_parameters=True)
     attributes = WCDCollapseAttributes(seawater_density=calcular.seawater_density, gas_gradient=None,
                                        gas_gravity=calcular.gas_gravity,
                                        api_density=calcular.api_density, influx_depth=calcular.influx_depth)
     internal_pressure_load = WCDCollapse(project=self.project, casing_string=casing_string,
                                                attributes=attributes)
     backup = FluidGradientBackup(project=self.project, casing_string=casing_string)
     result = LoadScenario(internal_pressure_load=internal_pressure_load, external_pressure_load=backup).solve()
     return CasingDesign(string_sections=casing_string.string_sections,
                         load_result=result, design_standard=N2752Y2014SimpleConnectionTriaxialDesignStandard,
                         tipo_carregamento='WCD_colapse')
Пример #6
0
 def solve_pressure_test(self, casing_string_id):
     casing_string = self.project.casing_strings[casing_string_id]
     calcular = PressureTestCalculator(project=self.project,
                                       casing_string=casing_string)
     attributes = PressureTestAttributes(
         fluid=calcular.fluid,
         test_pressure=calcular.get_fit_test_pressure())
     internal_pressure_load = PressureTest(project=self.project,
                                           casing_string=casing_string,
                                           attributes=attributes)
     backup = FluidGradientBackup(project=self.project,
                                  casing_string=casing_string)
     result = LoadScenario(internal_pressure_load=internal_pressure_load,
                           external_pressure_load=backup).solve()
     return CasingDesign(
         string_sections=casing_string.string_sections,
         load_result=result,
         design_standard=N2752Y2014SimpleConnectionTriaxialDesignStandard)
Пример #7
0
 def solve_partial_evacuation(self, casing_string_id):
     casing_string = self.project.casing_strings[casing_string_id]
     calcular = PartialEvacuationCalculator(project=self.project,
                                            casing_string=casing_string,
                                            production=None,
                                            calculate_parameters=True)
     attributes = PartialEvacuationAttributes(
         evacuation_md=calcular.evacuation_md,
         perforation_base_depth=calcular.perforation_base_depth,
         packer_fluid=calcular.packer_fluid,
         fluid_gradient=None)
     internal_pressure_load = PartialEvacuation(project=self.project,
                                                casing_string=casing_string,
                                                attributes=attributes)
     backup = FluidGradientBackup(project=self.project,
                                  casing_string=casing_string)
     result = LoadScenario(internal_pressure_load=internal_pressure_load,
                           external_pressure_load=backup).solve()
     return CasingDesign(
         string_sections=casing_string.string_sections,
         load_result=result,
         design_standard=N2752Y2014SimpleConnectionTriaxialDesignStandard)