class sixgill.abstract_simulation.AbstractSimulation(model, sim_type)
Bases: object
get_state(simulation_id)
Returns the state of the simulation
Returns the state from the simulation.
Parameters:
simulation_id (str) – Required. The id of the simulation returned from start_simulation call.
Returns:
The state of the simulation. sim_status indicates whether the simulation is still running. messages contains the simulation messages returned by the simulator.
Return type:
SimulationState
Examples
>>> sim_state = model.tasks.networksimulation.get_state(simulation_id)get_messages(simulation_id)
Returns the simulation progress message of the simulation
Returns the simulation progress message from the simulation.
Parameters:
simulation_id (str) – Required. The id of the simulation returned from start_simulation call.
Returns:
messages – The simulation messages returned by the simulator.
Return type:
list
Examples
>>> messages = model.tasks.networksimulation.get_messages(simulation_id)get_summary(simulation_id)
Returns the warning, info and error messages of the simulation
Returns the warning, info and error messages from the simulation.
Parameters:
simulation_id (str) – Required. The id of the simulation returned from start_simulation call.
Returns:
summary – The keys of the dictionary are “Error”, “Info” and “Warning” and their values are a list of corresponding messages as shown in Stingray UI
Return type:
dictionary
Examples
>>> messages = model.tasks.networksimulation.get_summary(simulation_id)get_results(simulation_id)
Returns the results from the simulation.
Returns the results from the simulation.
Parameters:
simulation_id (str) – Required. The id of the simulation returned from start_simulation call.
Returns:
The simulation results.
Return type:
dict
Examples
>>> sim_results = model.tasks.networksimulation.get_results(simulation_id)delete_results(simulation_id)
Delete a simulation.
Delete a simulation.
Parameters:
simulation_id (str) – Required. The id of the simulation returned from start_simulation call.
Returns:
Whether the simulation is deleted or not.
Return type:
bool
Examples
>>> model.tasks.networksimulation.delete_results(simulation_id)class sixgill.abstract_simulation.AbstractSingleBranchSimulation(model, sim_type)
Bases: AbstractSimulation
validate(producer, study: str | None = None, validate_model=True) List[ValidationIssue]
Validates the task.
Parameters:
producer (str) – Required. The name of the producer for the simulation task.
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
validate_model (Boolean) – True by default. If True, it validates the whole model plus the task.
Returns:
a list of ValidationIssue instances.
Return type:
list
Examples
>>> issues = model.tasks.ptprofilesimulation.validate(producer="Well2 - Oil", study = "Study 1")
>>> for issue in issues:
print(issue.message)
print(issue.path)
print(issue.property_name)delete_sensitivities(producer, study: str | None = None)
Deletes the sensitivities of a simulation(if any)
Parameters:
producer (str) – Required. The name of the producer for the simulation task.
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
Examples
>>> model.tasks.ptprofilesimulation.delete_sensitivities("Well 1", study = "Study 1")class sixgill.abstract_simulation.AbstractNetworkSimulation(model, sim_type)
Bases: AbstractSimulation
validate(study: str | None = None, validate_model=True) List[ValidationIssue]
Validates the task
Parameters:
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
validate_model (Boolean) – True by default. If True, it validates the whole model plus the task
Returns:
a list of ValidationIssue instances.
Return type:
list
Examples
>>> issues = model.tasks.networksimulation.validate()
>>> for issue in issues:
print(issue.message)
print(issue.path)
print(issue.property_name)class sixgill.abstract_simulation.AbstractAdvancedWellSimulation(model, sim_type)
Bases: AbstractSimulation
validate(producer, study: str | None = None, validate_model=True) List[ValidationIssue]
Validates the task
Parameters:
producer (str) – Required. The name of the producer for the simulation task.
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
validate_model (Boolean) – True by default. If True, it validates the whole model plus the task.
Returns:
a list of ValidationIssue instances.
Return type:
list
Examples
>>> issues = model.tasks.systemperformance.validate(producer="Well2 - Oil", study = "Study 1")
>>> for issue in issues:
print(issue.message)
print(issue.path)
print(issue.property_name)class sixgill.compositional.FluidSettings(model)
Bases: object
Primary class for operating on fluids
property fluid_type
The current fluid type set for the model
Returns:
One of the fluid mode defined in definitions FluidType class
Return type:
FluidType
property compositional
The compositional fluid settings
class sixgill.compositional.CompositionalFluidSettings(model)
Bases: object
property pvt_package
The compositional fluid package set for the model
Returns:
One of the fluid flash package type defined in definitions PVTPackage class
Return type:
PVTPackage
property equation_of_state
The compositional fluid equation of state
Returns:
One of the fluid equation of state defined in definitions EquationOfState class
Return type:
EquationOfState
property viscosity_correlation
The compositional fluid viscosity correlation method
Returns:
One of the fluid viscosity correlation method defined in definitions ViscosityCorrelationMethod class
Return type:
ViscosityCorrelationMethod
property volume_shift_correlation
The compositional fluid volume shift correlation method
Returns:
One of the fluid volume shift correlation method defined in definitions VolumeShiftCorrelationMethod class
Return type:
VolumeShiftCorrelation
property critical_property_correlation
The compositional fluid critical property correlation method
Returns:
One of the fluid critical property correlation method defined in definitions CriticalPropertyCorrelationMethod class
Return type:
CriticalPropertyCorrelation
property thermal_coefficient_correlation
The compositional fluid thermal coefficient correlation method
Returns:
One of the fluid thermal coefficient correlation method defined in definitions ThermalCoefficientsCorrelationMethod class
Return type:
ThermalCoefficientsCorrelation
property acf_correlation
The compositional fluid Acf correlation method
Returns:
One of the fluid Acf correlation method defined in definitions AcfCorrelationMethod class
Return type:
ThermalCoefficientsCorrelation
property salinity_model
The compositional fluid sanity model type
Returns:
One of the fluid salinity model type defined in definitions SalinityModel class
Return type:
SalinityModel
select_components(selected_components: list) None
Select the components that will be used by the compositional fluid in the model.
Parameters:
selected_components (list) – The list of fluid component names based on the fluid flash package.
Return type:
None
unselect_components(unselected_components: list)
Unselect the components that are no longer used by the compositional fluid in the model.
Parameters:
unselected_components (list) – The list of fluid component names based on the fluid flash package.
Returns:
If a component cannot be unselected, a ValueError will be raised to tell the reason.
Return type:
None
add_pseudocomponent(component_name, parameters={}) None
Add a user defined fluid component that will be used by the compositional fluid in the model.
Parameters:
component_name (str) – The name of the new component.
parameters (dict) – Optional. The parameters for the user defined component.
Returns:
If the component cannot be added, a ValueError will be raised to tell the reason.
Return type:
None
delete_pseudocomponent(component_name)
Delete a user defined fluid component that is no longer used by the compositional fluid in the model.
Parameters:
component_name (str) – The name of the user defined component.
Returns:
If the component cannot be deleted, a ValueError will be raised to tell the reason.
Return type:
None
get_composition(context: str | None = None, model_context: AbstractModelContext | None = None, **context_keywords) DataFrame
Return fluid composition in the context.
Returns fluid composition in the context. It will fail if no item or more than one item is found in the context.
Parameters:
context (str) – Optional. The context string to look for compositional fluid.
model_context (AbstractModelContext) – Optional. The context to search in.
context_keywords (str) – Comma separated list of context search criteria in the form of component=’value’, where component is the model component of the item, and value is the value of the model component. Values can also be ANY (matches any value) or NONE (matches no value).
Returns:
The fluid composition data frame includes the following columns: Component, SpecifiedFraction (indexed by Component)
Return type:
pandas.DataFrame
Examples
>>> df = model.fluids.compositional.get_composition(context="C-Fluid")
>>> dfw = model.fluids.compositional.get_composition(
CompositionalFluid="C-Fluid")set_composition(context: str | None = None, value=None, model_context: AbstractModelContext | None = None, **context_keywords)
Set data frame to the fluid composition in the context.
Set data frame to the fluid composition in the context. It will fail if more than one item is found in the context.
Parameters:
value (DataFrame or dict) – Required. The data frame or dict to set to the fluid composition The fluid composition data frame includes the following columns: Component, SpecifiedFraction (indexed by Component) If dict is used, keys are considered as Component and values are considered as SpecifiedFraction
context (str) – Optional. The context string to look for the compositional fluid.
model_context (AbstractModelContext) – Optional. The context to search in.
context_keywords (str) – Comma separated list of context search criteria in the form of component=’value’, where component is the model component of the item, and value is the value of the model component. Values can also be ANY (matches any value) or NONE (matches no value).
Examples
>>> model.fluids.compositional.set_composition(context="C-Fluid", value = df)
>>> model.fluids.compositional.set_composition(CompositionalFluid="C-Fluid",
value = df)The definitions sub-module maintains the enumerations and static classes that are available in the Pipesim Python Toolkit.
class sixgill.definitions.Units
Bases: object
Available unit of measurement categories
METRIC = 'PIPESIM_METRIC'
SI = 'PIPESIM_SI'
FIELD = 'PIPESIM_FIELD'
class sixgill.definitions.Tasks
Bases: object
Available Pipesim simulation tasks
NETWORKSIMULATION = 'NetworkSim'
NETWORKOPTIMIZERSIMULATION = 'NetworkOptSim'
PTPROFILESIMULATION = 'PTProfileSim'
NODALANALYSISOPERATION = 'NodalAnalysisOp'
WELLPERFORMANCECURVESOPERATION = 'WellPerformanceCurvesSim'
SYSTEMANALYSISOPERATION = 'SystemAnalysisOp'
GLDIAGNOSTICSOPERATION = 'GLDiagnosticsOp'
VFPTABLESSOPERATION = 'VfpTablesOp'
SYSTEMPERFORMANCE = 'SystemPerformance'
WELLCALIBRATION = 'WellCalibrationOp'
class sixgill.definitions.Connection
Bases: object
SOURCE = 'Source'
DESTINATION = 'Destination'
SOURCEPORT = 'Source Port'
class Separator
Bases: object
TOP = 'Top Port'
BOTTOM = 'Bottom Port'
BOOT = 'Boot Port'
class AdvancedWell
Bases: object
TOP = 'Top Port'
MIDDLE = 'Middle Port'
BOTTOM = 'Bottom Port'
class sixgill.definitions.SimulationState
Bases: object
RUNNING = 'Running'
COMPLETED = 'Completed'
FAILED = 'Failed'
class sixgill.definitions.SimulationOptions
Bases: object
PARALLELISM = 'Parallelism'
RESTART = 'Restart'
GENERATEOUTPUTFILE = 'GenerateOutputFile'
class sixgill.definitions.ModelComponents
Bases: object
Available model components
BLACKOILFLUID = 'BlackOilFluid'
BOUNDARY = 'Boundary'
CASING = 'Casing'
CHECKVALVE = 'CheckValve'
CHOKE = 'Choke'
COMPLETION = 'Completion'
COMPLETIONCONINGPOINT = 'CompletionConingPoint'
COMPLETIONMODEL = 'CompletionModel'
COMPOSITIONALFLUID = 'CompositionalFluid'
COMPRESSOR = 'Compressor'
ENGINEKEYWORDS = 'EngineKeywords'
ESP = 'ESP'
EXPANDER = 'Expander'
FILEBASEDFLUID = 'FileBasedFluid'
FLOWLINE = 'Flowline'
FLUIDCOMPONENT = 'FluidComponent'
GASLIFTINJECTION = 'GasLiftInjection'
GENERICEQUIPMENT = 'GenericEquipment'
GRAVELPACK = 'GravelPack'
HEATEXCHANGER = 'HeatExchanger'
INJECTOR = 'Injector'
IPRBACKPRESSURE = 'IPRBackPressure'
IPRDARCY = 'IPRDarcy'
IPRTRILINEAR = 'IPRTriLinear'
IPRFETKOVITCH = 'IPRFetkovitch'
IPRFORCHHEIMER = 'IPRForchheimer'
IPRHORIZONTALPI = 'IPRHorizontalPI'
IPRHYDRAULICFRACTURE = 'IPRHydraulicFracture'
IPRJONES = 'IPRJones'
IPRPIMODEL = 'IPRPIModel'
IPRPSSBABUODEH = 'IPRPSSBabuOdeh'
IPRSSJOSHI = 'IPRSSJoshi'
IPRVOGEL = 'IPRVogel'
JUNCTION = 'Junction'
LINER = 'Liner'
MEASUREMENTPOINT = 'MeasurementPoint'
MFLFLUID = 'MFLFluid'
MULTIPLIERADDER = 'MultiplierAdder'
MULTIPHASEBOOSTER = 'MultiphaseBooster'
GENERICBOOSTER = 'GenericBooster'
ONESUBSEABOOSTER = 'OneSubseaBooster'
WETGASCOMPRESSOR = 'WetGasCompressor'
OPEN_HOLE = 'OpenHole'
PACKER = 'Packer'
PCP = 'PCP'
PUMP = 'Pump'
PVTFLUID = 'PVTFluid'
RODPUMP = 'RodPump'
SINGLEPHASESEPARATOR = 'SinglephaseSeparator'
SINK = 'Sink'
SLIDINGSLEEVE = 'SlidingSleeve'
SOURCE = 'Source'
SPOTREPORT = 'SpotReport'
STUDY = 'Study'
SUBSURFACESAFETYVALVE = 'SubsurfaceSafetyValve'
THREEPHASESEPARATOR = 'ThreePhaseSeparator'
TUBING = 'Tubing'
TUBINGPLUG = 'TubingPlug'
TWOPHASESEPARATOR = 'TwoPhaseSeparator'
WATERTEMPVELOCITYSURVEY = 'WaterTempVelocitySurvey'
WELL = 'Well'
NETWORKSIMULATION = 'NetworkSim'
NETWORKOPTIMIZERSIMULATION = 'NetworkOptSim'
PTPROFILESIMULATION = 'PTProfileSim'
NODALANALYSISOPERATION = 'NodalAnalysisOp'
WELLPERFORMANCECURVESOPERATION = 'WellPerformanceCurvesSim'
SYSTEMANALYSISOPERATION = 'SystemAnalysisOp'
GLDIAGNOSTICSOPERATION = 'GLDiagnosticsOp'
VFPTABLESOPERATION = 'VfpTablesOp'
SYSTEMPERFORMANCE = 'SystemPerformance'
WELLCALIBRATION = 'WellCalibrationOp'
GLOBALCATALOG = 'GlobalCatalog'
RISKINDEXLIMITS = 'RiskIndexLimits'
FLOWCORRELATION = 'FlowCorrelation'
HEATTRANSFEROPTIONS = 'HeatTransferOptions'
FLOWCONTROLVALVE = 'FlowControlValve'
class sixgill.definitions.Parameters
Bases: object
Available parameters by model component
class Location
Bases: object
LATITUDE = 'Latitude'
LONGITUDE = 'Longitude'
NONCLUSTEREDLATITUDE = 'SchematicLatitude'
NONCLUSTEREDLONGITUDE = 'SchematicLongitude'
ELEVATION = 'Elevation'
class SchematicPosition
Bases: object
X_COORD = 'X'
Y_COORD = 'Y'
class DownholeLocation
Bases: object
TOPMEASUREDDEPTH = 'TopMeasuredDepth'
BOTTOMMEASUREDDEPTH = 'BottomMeasuredDepth'
TUBINGSECTIONTYPE = 'TubingSectionType'
class ModelComponent
Bases: object
NAME = 'Name'
ISACTIVE = 'IsActive'
class DownholeComponent
Bases: ModelComponent, DownholeLocation
class SurfaceComponent
Bases: ModelComponent, Location, SchematicPosition
class DownholeOrSurfaceComponent
Bases: ModelComponent, DownholeLocation, Location, SchematicPosition
class AbstractTubingSection
Bases: DownholeComponent
ISFLOWPRESENTINSIDE = 'IsFlowPresentInside'
TOPMEASUREDDEPTH = 'TopMeasuredDepth'
GRADE = 'Grade'
DENSITY = 'Density'
BOREHOLEDIAMETER = 'BoreholeDiameter'
CEMENTTOP = 'CementTop'
CEMENTDENSITY = 'CementDensity'
ANNULUSMATERIALTYPE = 'AnnulusMaterialType'
ANNULUSMATERIALDENSITY = 'AnnulusMaterialDensity'
INNERDIAMETER = 'InnerDiameter'
ROUGHNESS = 'Roughness'
WALLTHICKNESS = 'WallThickness'
LENGTH = 'Length'
THERMALCONDUCTIVITY = 'ThermalConductivity'
CEMENTTHERMALCONDUCTIVITY = 'CementThermalConductivity'
FLUIDTHERMALCONDUCTIVITY = 'FluidThermalConductivity'
SECTIONTYPE = 'SectionType'
class AssociatedToFluid
Bases: object
ASSOCIATEDBLACKOILFLUID = 'AssociatedBlackOilFluid'
ASSOCIATEDCOMPOSITIONALFLUID = 'AssociatedCompositionalFluid'
ASSOCIATEDMFLFLUID = 'AssociatedMFLFluid'
class CanBeTemplate
Bases: object
ISTEMPLATE = 'IsTemplate'
ISBUILTINTEMPLATE = 'IsBuiltinTemplate'
class SharedPumpParameters
Bases: object
EFFICIENCY = 'Efficiency'
POWER = 'Power'
PRESSURE = 'Pressure'
PRESSUREDIFFERENTIAL = 'PressureDifferential'
PRESSURERATIO = 'PressureRatio'
USECURVES = 'UseCurves'
class SharedPumpCatalogParameters
Bases: object
MANUFACTURER = 'Manufacturer'
MODEL = 'Model'
BASESPEED = 'BaseSpeed'
OPERATINGSPEED = 'OperatingSpeed'
SHOWPOWER = 'ShowPower'
class FluidLink
Bases: object
RESERVOIRPRESSURE = 'ReservoirPressure'
RESERVOIRTEMPERATURE = 'ReservoirTemperature'
COMPLETIONTESTTYPE = 'CompletionTestType'
USETESTDATA = 'UseTestData'
USECONINGDATA = 'UseConingData'
CONEDGASSG = 'ConedGasSG'
USEGASRATIO = 'UseGasRatio'
USEWATERRATIO = 'UseWaterRatio'
GOR = 'GOR'
OGR = 'OGR'
GLR = 'GLR'
LGR = 'LGR'
GWR = 'GWR'
WGR = 'WGR'
WATERCUT = 'WaterCut'
USEFLUIDOVERRIDES = 'UseFluidOverrides'
OVERRIDESINITIALIZED = 'OverridesInitialized'
class Fluid
Bases: CanBeTemplate, FluidLink
COMMENT = 'Comment'
HASOVERRIDE = 'HasOverride'
class FileBasedFluid
Bases: Fluid
FLUIDFILENAME = 'FluidFileName'
class About
Bases: object
TOOLKITVERSION = 'ToolkitVersion'
WEBAPIVERSION = 'WebAPIVersion'
MODELFILENAME = 'ModelFilename'
UNITSYSTEM = 'UnitSystem'
UIUNITSYSTEM = 'UiUnitSystem'
class SimulationSetting
Bases: object
AMBIENTTEMPERATURE = 'AmbientTemperature'
ATMOSPHERICPRESSURE = 'AtmosphericPressure'
WINDSPEED = 'WindSpeed'
SOILTYPE = 'SoilType'
SOILCONDUCTIVITY = 'SoilConductivity'
METOCEANDATALOCATION = 'MetoceanDataLocation'
EROSIONALVELOCITYCONSTANT = 'ErosionalVelocityConstant'
CORROSIONMODEL = 'CorrosionModel'
CORROSIONEFFICIENCY = 'CorrosionEfficiency'
PIPESEGMENTATIONMAXREPORTINGINTERVAL = 'PipeSegmentationMaxReportingInterval'
PIPESEGMENTATIONPRINTSEGMENTATIONRESULT = 'PipeSegmentationPrintSegmentationResult'
PIPESEGMENTATIONMAXSEGMENTLENGTH = 'PipeSegmentationMaxSegmentLength'
MAXEMULSIONINVERSIONWATERCUT = 'MaxEmulsionInversionWaterCut'
NETWORKSOLVERMETHOD = 'NetworkSolver'
NETWORKSOLVERTOLERANCE = 'NetworkSolverTolerance'
ADVANCEDWELLTOLERANCE = 'AdvancedWellTolerance'
NETWORKSOLVERMAXITERATIONS = 'NetworkSolverMaxIterations'
SINGLEBRANCHKEYWORDS = 'SingleBranchKeywords'
NETWORKTOPKEYWORDS = 'NetworkTopKeywords'
NETWORKBOTTOMKEYWORDS = 'NetworkBottomKeywords'
GISELEVATIONINTERVAL = 'GISElevationInterval'
GISELEVATIONMAXPOINTS = 'GISElevationMaxPoints'
USEGLOBALFLOWCORRELATIONS = 'UseGlobalFlowCorrelations'
USEGLOBALCORROSIONMODEL = 'UseGlobalCorrosionModel'
USEGLOBALHEATTRANSFER = 'UseGlobalHeatTransfer'
ESPSLIPPAGEFACTOR = 'PumpSpeedFactor'
class FlowCorrelation
Bases: object
SWAPANGLE = 'SwapAngle'
OVERRIDEGLOBAL = 'OverrideGlobal'
class SinglePhase
Bases: object
CORRELATION = 'SinglePhaseCorrelation'
FACTOR = 'SinglePhaseFactor'
class Multiphase
Bases: object
class Vertical
Bases: object
SOURCE = 'VerticalMultiphaseSource'
CORRELATION = 'VerticalMultiphaseCorrelation'
HOLDUPFACTOR = 'VerticalMultiphaseHoldupFactor'
FRICTIONFACTOR = 'VerticalMultiphaseFrictionFactor'
class Horizontal
Bases: object
SOURCE = 'HorizontalMultiphaseSource'
CORRELATION = 'HorizontalMultiphaseCorrelation'
HOLDUPFACTOR = 'HorizontalMultiphaseHoldupFactor'
FRICTIONFACTOR = 'HorizontalMultiphaseFrictionFactor'
class HeatTransferOption
Bases: object
PIPEBURIALMETHOD = 'PipeBurialMethod'
INSIDEFILMCOEFFMETHOD = 'InsideFilmCoeffMethod'
UVALUEMULTIPLIER = 'UValueMultiplier'
ENABLEHYDRATESUBCOOLCALC = 'EnableHydrateSubcoolCalc'
OVERRIDEGLOBAL = 'OverrideGlobal'
class BlackOilFluid
Bases: Fluid
API = 'API'
FRACTIONCO2 = 'CO2Fraction'
FRACTIONCO = 'COFraction'
GASSPECIFICGRAVITY = 'GasSpecificGravity'
GLR = 'GLR'
GOR = 'GOR'
USEGASRATIO = 'UseGasRatio'
USEWATERRATIO = 'UseWaterRatio'
GWR = 'GWR'
FRACTIONH2 = 'H2Fraction'
FRACTIONH2S = 'H2SFraction'
FRACTIONN2 = 'N2Fraction'
WATERCUT = 'WaterCut'
WATERSPECIFICGRAVITY = 'WaterSpecificGravity'
DEADOILDENSITY = 'DeadOilDensity'
USEDEADOILDENSITY = 'UseDeadOilDensity'
DEADOILVISCOSITYCORR = 'DeadOilViscosityCorr'
DEADOILTEMPERATURE1 = 'DeadOilTemperature1'
DEADOILTEMPERATURE2 = 'DeadOilTemperature2'
DEADOILVISCOSITY1 = 'DeadOilViscosity1'
DEADOILVISCOSITY2 = 'DeadOilViscosity2'
LIVEOILVISCOSITYCORR = 'LiveOilViscosityCorr'
LIQUIDVISCOSITYCALC = 'LiquidViscosityCalc'
USEBRAUNERULLMANEQUATION = 'UseBraunerUllmanEquation'
USERWATERCUTCUTOFF = 'UserWatercutCutOff'
UNDERSATURATEDOILVISCOSITYPARA = 'UndersaturatedOilViscosityParA'
UNDERSATURATEDOILVISCOSITYPARB = 'UndersaturatedOilViscosityParB'
UNDERSATURATEDOILVISCOSITYCORR = 'UndersaturatedOilViscosityCorr'
VANDUSERK1 = 'VandUserk1'
VANDUSERK2 = 'VandUserk2'
RICHARDSONKOIW = 'Richardsonkoiw'
RICHARDSONKWIO = 'Richardsonkwio'
OGR = 'OGR'
LGR = 'LGR'
WGR = 'WGR'
ISTEMPLATE = 'IsTemplate'
ISBUILTINTEMPLATE = 'IsBuiltinTemplate'
USERVISCOSITYTABLE = 'UserViscosityTable'
USEREMULSIONTABLE = 'UserEmulsionViscosityTable'
class SinglePointCalibration
Bases: object
SOLUTIONGAS = 'SolutionGas'
LIVEOILFVFCORRELATION = 'OilFVFCorrelation'
LIVEOILVISCCORRELATION = 'LiveOilViscCorrelation'
UNDERSATURATEDOILFVFCORR = 'UndersaturatedOilFVFCorr'
GASCOMPRESSCORRELATION = 'GasCompressCorrelation'
GASVISCCORRELATION = 'GasViscCorrelation'
ABOVEBBPTYPE = 'AboveBBPType'
BELOWBBPTYPE = 'BelowBBPType'
BUBBLEPOINTSATGAS_VALUE = 'BubblepointSatGas_Value'
BUBBLEPOINTSATGAS_PRESSURE = 'BubblepointSatGas_Pressure'
BUBBLEPOINTSATGAS_TEMPERATURE = 'BubblepointSatGas_Temperature'
ABOVEBBPDENSITY_VALUE = 'AboveBBPDensity_Value'
ABOVEBBPDENSITY_PRESSURE = 'AboveBBPDensity_Pressure'
ABOVEBBPDENSITY_TEMPERATURE = 'AboveBBPDensity_Temperature'
ABOVEBBPOFVF_VALUE = 'AboveBBPOFVF_Value'
ABOVEBBPOFVF_PRESSURE = 'AboveBBPOFVF_Pressure'
ABOVEBBPOFVF_TEMPERATURE = 'AboveBBPOFVF_Temperature'
BELOWBBPDENSITY_VALUE = 'BelowBBPDensity_Value'
BELOWBBPDENSITY_PRESSURE = 'BelowBBPDensity_Pressure'
BELOWBBPDENSITY_TEMPERATURE = 'BelowBBPDensity_Temperature'
BELOWBBPOFVF_VALUE = 'BelowBBPOFVF_Value'
BELOWBBPOFVF_PRESSURE = 'BelowBBPOFVF_Pressure'
BELOWBBPOFVF_TEMPERATURE = 'BelowBBPOFVF_Temperature'
BELOWBBPLIVEOILVISCOSITY_VALUE = 'BelowBBPLiveOilViscosity_Value'
BELOWBBPLIVEOILVISCOSITY_PRESSURE = 'BelowBBPLiveOilViscosity_Pressure'
BELOWBBPLIVEOILVISCOSITY_TEMPERATURE = 'BelowBBPLiveOilViscosity_Temperature'
BELOWBBPGASVISCOSITY_VALUE = 'BelowBBPGasViscosity_Value'
BELOWBBPGASVISCOSITY_PRESSURE = 'BelowBBPGasViscosity_Pressure'
BELOWBBPGASVISCOSITY_TEMPERATURE = 'BelowBBPGasViscosity_Temperature'
BELOWBBPGASZ_VALUE = 'BelowBBPGasZ_Value'
BELOWBBPGASZ_PRESSURE = 'BelowBBPGasZ_Pressure'
BELOWBBPGASZ_TEMPERATURE = 'BelowBBPGasZ_Temperature'
class ThermalData
Bases: object
GASHEATCAPACITY = 'GasHeatCapacity'
OILHEATCAPACITY = 'OilHeatCapacity'
WATERHEATCAPACITY = 'WaterHeatCapacity'
GASCONDUCTIVITY = 'GasConductivity'
OILCONDUCTIVITY = 'OilConductivity'
WATERCONDUCTIVITY = 'WaterConductivity'
ENTHALPYCALCMETHOD = 'EnthalpyCalcMethod'
LATENTHEATOFVAPORIZATION = 'LatentHeatOfVaporization'
class BlackOilUserViscosityTable
Bases: object
TEMPERATURE = 'Temperature'
VISCOSITY = 'Viscosity'
class BlackOilUserEmulsionTable
Bases: object
WATERCUT = 'Watercut'
VISCOSITYRATIO = 'ViscosityRatio'
class Boundary
Bases: object
USEPQCURVE = 'UsePQCurve'
USEGASRATIO = 'UseGasRatio'
USEWATERRATIO = 'UseWaterRatio'
ISSURFACECONDITION = 'IsSurfaceCondition'
TEMPERATURE = 'Temperature'
PRESSURE = 'Pressure'
GASFLOWRATE = 'GasFlowRate'
LIQUIDFLOWRATE = 'LiquidFlowRate'
MASSFLOWRATE = 'MassFlowRate'
GOR = 'GOR'
OGR = 'OGR'
GLR = 'GLR'
LGR = 'LGR'
WATERCUT = 'WaterCut'
GWR = 'GWR'
WGR = 'WGR'
FLOWRATETYPE = 'FlowRateType'
COMPLETIONNAME = 'CompletionName'
ISBOTTOMCOMPLETION = 'IsBottomCompletion'
ISACTIVE = 'IsActive'
WELLNAME = 'WellName'
BOUNDARYNODETYPE = 'BoundaryNodeType'
BOUNDARYNODENAME = 'BoundaryNodeName'
class RateConstraint
Bases: object
OILFLOWRATE = 'OilFlowRate'
WATERFLOWRATE = 'WaterFlowRate'
GASFLOWRATE = 'GasFlowRate'
LIQUIDFLOWRATE = 'LiquidFlowRate'
MASSFLOWRATE = 'MassFlowRate'
class LocalConstraint
Bases: object
WELLCONTRIBUTION = 'IsControlledWell'
ALHANATICHECK = 'AlhanatiCheck'
FORCESTABLEFLOW = 'ForceStableFlow'
WELLSTATUS = 'WellMayShutIn'
MINGASLIFTRATE = 'MinGasliftRate'
MAXGASLIFTRATE = 'MaxGasliftRate'
MAXCHPFORGASINJECTION = 'MaxChpForGasInjection'
MINLIQUIDRATE = 'MinLiquidRate'
MAXLIQUIDRATE = 'MaxLiquidRate'
MINTOTALGASRATE = 'MinTotalGasRate'
MAXTOTALGASRATE = 'MaxTotalGasRate'
MAXWATERRATE = 'MaxWaterRate'
MAXWELLHEADTEMPERATURE = 'MaxWellheadTemperature'
MAXDRAWDOWNPRESSURE = 'MaxDrawdownPressure'
MINBUBBLEPOINTPRESSURE = 'MinBubblePointPressure'
MAXEVR = 'MaxEvr'
MAXVELOCITY = 'MaxVelocity'
MINPOWER = 'MinPower'
MAXPOWER = 'MaxPower'
MINFREQUENCY = 'MinFrequency'
MAXFREQUENCY = 'MaxFrequency'
MINSPEED = 'MinSpeed'
MAXSPEED = 'MaxSpeed'
MINBEANSIZE = 'MinBeanSize'
MAXBEANSIZE = 'MaxBeanSize'
MAXPRODUCEDGASRATE = 'MaxProducedGasRate'
MAXINJECTIONGASRATE = 'MaxInjectionGasRate'
MAXGOR = 'MaxGor'
MAXCO2 = 'MaxCo2'
MAXH2S = 'MaxH2s'
MAXOILRATE = 'MaxOilRate'
class OptimizerInitialConditions
Bases: object
DUALSTRINGWELLID = 'SiblingWellId'
CONSTRAINTTYPE = 'ConstraintType'
INJECTIONGAS = 'InjectionRate'
ESPFREQUENCY = 'ESPOperatingFrequency'
PCPSPEED = 'PCPOperatingSpeed'
CHOKESIZE = 'BeanSize'
class Casing
Bases: AbstractTubingSection
class CheckValve
Bases: SurfaceComponent
CHECKVALVESETTING = 'CheckValveSetting'
class Choke
Bases: DownholeOrSurfaceComponent
ADJUSTSUBCRITICALCORRELATION = 'AdjustSubcriticalCorrelation'
BEANSIZE = 'BeanSize'
BOTHPHASESFLOWCOEFFICIENT = 'BothPhasesFlowCoefficient'
CALCULATECRITICALPRESSURERATIO = 'CalculateCriticalPressureRatio'
GASEXPANSIONFACTOR = 'GasExpansionFactor'
CRITICALCORRELATION = 'CriticalCorrelation'
CRITICALPRESSURERATIO = 'CriticalPressureRatio'
DISCHARGECOEFFICIENT = 'DischargeCoefficient'
GASPHASEFLOWCOEFFICIENT = 'GasPhaseFlowCoefficient'
HEATCAPACITYRATIO = 'HeatCapacityRatio'
USEFLOWRATEFORCRITICALFLOW = 'UseFlowrateForCriticalFlow'
USEPRESSURERATIOFORCRITICALFLOW = 'UsePressureRatioForCriticalFlow'
USESONICDOWNSTREAMVELOCITYFORCRITICALFLOW = 'UseSonicDownstreamVelocityForCriticalFlow'
USESONICUPSTREAMVELOCITYFORCRITICALFLOW = 'UseSonicUpstreamVelocityForCriticalFlow'
LIQUIDPHASEFLOWCOEFFICIENT = 'LiquidPhaseFlowCoefficient'
SUBCRITICALCORRELATION = 'SubCriticalCorrelation'
TOLERANCE = 'Tolerance'
UPSTREAMPIPEID = 'UpstreamPipeID'
PRINTDETAILEDCALCULATIONS = 'PrintDetailedCalculations'
class Completion
Bases: DownholeComponent, AssociatedToFluid, FluidLink
DIAMETER = 'Diameter'
LENGTH = 'Length'
PHASEANGLE = 'PhaseAngle'
SHOTDENSITY = 'ShotDensity'
PENETRATIONDEPTH = 'PenetrationDepth'
FLUIDENTRYTYPE = 'FluidEntryType'
GEOMETRYPROFILETYPE = 'GeometryProfileType'
RESERVOIRPRESSURE = 'ReservoirPressure'
RESERVOIRTEMPERATURE = 'ReservoirTemperature'
TESTPOINTS = 'CompletionTestPoints'
IPRMODEL = 'IPRModel'
class CompletionConingPoint
Bases: object
LIQUIDFLOWRATE = 'LiquidFlowRate'
GOR = 'GOR'
WATERCUT = 'WaterCut'
class CompositionalFluid
Bases: Fluid
COMPONENTFRACTIONTYPE = 'ComponentFractionType'
USETUNEDFRACTIONS = 'UseTunedFractions'
SHOWALLCOMPONENTS = 'ShowAllComponents'
LIQUIDVISCOSITYCALC = 'LiquidViscosityCalc'
USEBRAUNERULLMANEQUATION = 'UseBraunerUllmanEquation'
USERWATERCUTCUTOFF = 'UserWatercutCutOff'
VANDUSERK1 = 'VandUserk1'
VANDUSERK2 = 'VandUserk2'
RICHARDSONKOIW = 'Richardsonkoiw'
RICHARDSONKWIO = 'Richardsonkwio'
IONSODIUM = 'SodiumIon'
IONCALCIUM = 'CalciumIon'
IONMAGNESIUM = 'MagnesiumIon'
IONPOTASSIUM = 'PotassiumIon'
IONSTRONTIUM = 'StrontiumIon'
IONBARIUM = 'BariumIon'
IONIRON = 'IronIon'
IONCHLORIDE = 'ChlorideIon'
IONSULPHATE = 'SulphateIon'
IONBICARBONATE = 'BicarbonateIon'
IONBROMIDE = 'BromideIon'
TOTALDISSOLVEDSOLIDS = 'TotalDissolvedSolids'
SALTWATERDENSITYTYPE = 'SaltWaterDensityType'
SALTWATERDENSITY = 'SaltWaterDensity'
SALTWATERSALINITY = 'SaltWaterSalinity'
SALTWATERTEMPERATURE = 'SaltWaterTemperature'
ISTEMPLATE = 'IsTemplate'
ISBUILTINTEMPLATE = 'IsBuiltinTemplate'
USEREMULSIONTABLE = 'UserEmulsionViscosityTable'
COMPOSITION = 'Composition'
class Compressor
Bases: SurfaceComponent, SharedPumpParameters, SharedPumpCatalogParameters
ROUTE = 'Route'
HONOURSTONEWALLLIMIT = 'HonourStonewallLimit'
ISRECIPROCATING = 'IsReciprocating'
HEADFACTOR = 'HeadFactor'
class IPRTriLinear
Bases: object
DISTANCETOBOUNDARY = 'DistanceToBoundary'
OUTERRESPERM = 'OuterResPerm'
INNERRESPERM = 'InnerResPerm'
OUTERRESPOROSITY = 'OuterResPorosity'
INNERRESPOROSITY = 'InnerResPorosity'
OUTERRESCOMPRESSIBILITY = 'OuterResCompressibility'
INNERRESCOMPRESSIBILITY = 'InnerResCompressibility'
NUMHYDRAULICFRAC = 'NumHydraulicFrac'
HYDRAULICFRACHALF = 'HydraulicFracHalf'
HYDRAULICFRACWIDTH = 'HydraulicFracWidth'
HYDRAULICFRACPERM = 'HydraulicFracPerm'
HYDRAULICFRACPOROSITY = 'HydraulicFracPorosity'
HYDRAULICFRACCOMPRESSIBILITY = 'HydraulicFracCompressibility'
CALCSKIN = 'CalcSkin'
TIME = 'Time'
RESERVOIRTHICKNESS = 'ReservoirThickness'
CALCULATIONTYPE = 'CalculationType'
ISGASMODEL = 'IsGasModel'
USEVOGELBELOWBUBBLEPOINT = 'UseVogelBelowBubblePoint'
USEVOGELWATERCUTCORRECTION = 'UseVogelWaterCutCorrection'
class IPRDarcy
Bases: object
RATIOTYPE = 'RatioType'
DAMAGEDZONEPERMRATIO = 'DamagedZonePermRatio'
COMPACTEDZONEPERMRATIO = 'CompactedZonePermRatio'
COMPLETIONVERTICALPERMRATIO = 'CompletionVerticalPermRatio'
COMPLETIONINTERVALRATIO = 'CompletionIntervalRatio'
DAMAGEDZONESKIN = 'DamagedZoneSkin'
PERFORATIONSKIN = 'PerforationSkin'
COMPACTEDZONESKIN = 'CompactedZoneSkin'
PARTIALPENETRATIONSKIN = 'PartialPenetrationSkin'
DEVIATIONSKIN = 'DeviationSkin'
GRAVELPACKSKIN = 'GravelPackSkin'
FRACPACKSKIN = 'FracPackSkin'
CALCULATEMECHANICALSKIN = 'CalculateMechanicalSkin'
CALCULATERATEDEPENDENTSKIN = 'CalculateRateDependentSkin'
CHOKELENGTH = 'ChokeLength'
OBSOLETECOMPACTEDZONEDIAMETER = 'ObsoleteCompactedZoneDiameter'
COMPACTEDZONETHICKNESS = 'CompactedZoneThickness'
COMPACTEDZONEPERMEABILITY = 'CompactedZonePermeability'
COMPLETIONDEVIATION = 'CompletionDeviation'
COMPLETIONVERTICALPERMEABILITY = 'CompletionVerticalPermeability'
COMPLETIONINTERVAL = 'CompletionInterval'
DAMAGEDEPTH = 'DamageDepth'
OBSOLETEDAMAGEDZONEDIAMETER = 'ObsoleteDamagedZoneDiameter'
DAMAGEDZONETHICKNESS = 'DamagedZoneThickness'
DAMAGEDZONEPERMEABILITY = 'DamagedZonePermeability'
DRAINAGERADIUS = 'DrainageRadius'
FRACTURECHOKEPERMEABILITY = 'FractureChokePermeability'
FRACTUREFACEDAMAGEPERMEABILITY = 'FractureFaceDamagePermeability'
FRACTUREHALFLENGTH = 'FractureHalfLength'
FRACTUREPROPPANTPERMEABILITY = 'FractureProppantPermeability'
FRACTUREWIDTH = 'FractureWidth'
ISGASMODEL = 'IsGasModel'
MECHANICALSKIN = 'MechanicalSkin'
PERFSKINMETHOD = 'PerfSkinMethod'
RATEDEPENDENTGASSKIN = 'RateDependentGasSkin'
RATEDEPENDENTLIQUIDSKIN = 'RateDependentLiquidSkin'
RESERVOIRAREA = 'ReservoirArea'
RESERVOIRPERMEABILITY = 'ReservoirPermeability'
RESERVOIRTHICKNESS = 'ReservoirThickness'
SHAPEFACTOR = 'ShapeFactor'
USERELATIVEPERMEABILITY = 'UseRelativePermeability'
USECHOKEFRACTURESKIN = 'UseChokeFractureSkin'
USEDAMAGEDZONESKIN = 'UseDamagedZoneSkin'
USEDRAINAGERADIUS = 'UseDrainageRadius'
USEFRACTUREFACESKIN = 'UseFractureFaceSkin'
USEFRACTURESKIN = 'UseFractureSkin'
USEGRAVELPACKSKIN = 'UseGravelPackSkin'
USEPARTIALPENETRATIONDEVIATIONSKIN = 'UsePartialPenetrationDeviationSkin'
USEPERFORATIONSKIN = 'UsePerforationSkin'
USEPSEUDOPRESSUREMETHOD = 'UsePseudoPressureMethod'
USEVOGELBELOWBUBBLEPOINT = 'UseVogelBelowBubblepoint'
USEVOGELWATERCUTCORRECTION = 'UseVogelWaterCutCorrection'
WELLCOMPLETIONTYPE = 'WellCompletionType'
ISTRANSIENT = 'IsTransient'
COMPRESSIBILITY = 'Compressibility'
POROSITY = 'Porosity'
TIME = 'Time'
WATERSATURATION = 'WaterSaturation'
RELATIVEPERMEABILITYOIL = 'RelativePermeabilityOil'
RELATIVEPERMEABILITYWATER = 'RelativePermeabilityWater'
class DistributedCompletionModel
Bases: object
RATIOTYPE = 'RatioType'
DAMAGEDZONEPERMRATIO = 'DamagedZonePermRatio'
COMPACTEDZONEPERMRATIO = 'CompactedZonePermRatio'
COMPLETIONVERTICALPERMRATIO = 'CompletionVerticalPermRatio'
DAMAGEDZONESKIN = 'DamagedZoneSkin'
PERFORATIONSKIN = 'PerforationSkin'
COMPACTEDZONESKIN = 'CompactedZoneSkin'
PARTIALPENETRATIONSKIN = 'PartialPenetrationSkin'
DEVIATIONSKIN = 'DeviationSkin'
GRAVELPACKSKIN = 'GravelPackSkin'
FRACPACKSKIN = 'FracPackSkin'
CALCULATESKIN = 'CalculateSkin'
OBSOLETECOMPACTEDZONEDIAMETER = 'ObsoleteCompactedZoneDiameter'
COMPACTEDZONETHICKNESS = 'CompactedZoneThickness'
COMPACTEDZONEPERMEABILITY = 'CompactedZonePermeability'
COMPLETIONLENGTH = 'CompletionLength'
COMPLETIONMODELTYPE = 'CompletionModelType'
OBSOLETEDAMAGEDZONEDIAMETER = 'ObsoleteDamagedZoneDiameter'
DAMAGEDZONETHICKNESS = 'DamagedZoneThickness'
DAMAGEDZONEPERMEABILITY = 'DamagedZonePermeability'
FLUIDOFVF = 'FluidOFVF'
FLUIDVISCOSITY = 'FluidViscosity'
GASPI = 'GasPI'
GASZ = 'GasZ'
GRAVELPACKPERMEABILITY = 'GravelPackPermeability'
GRAVELPACKTUNNEL = 'GravelPackTunnel'
HORIZONTALWELLLENGTH = 'HorizontalWellLength'
ISGASMODEL = 'IsGasModel'
LIQUIDPI = 'LiquidPI'
LOCATIONECCEN = 'LocationEccen'
LOCATIONXPOS = 'LocationXPos'
LOCATIONYPOS = 'LocationYPos'
LOCATIONZPOS = 'LocationZPos'
PERFORATIONDIAMETER = 'PerforationDiameter'
PERFORATIONLENGTH = 'PerforationLength'
PERFORATIONSHOTDENSITY = 'PerforationShotDensity'
PERMEABILITYX = 'PermeabilityX'
PERMEABILITYY = 'PermeabilityY'
PERMEABILITYZ = 'PermeabilityZ'
RESERVOIREXTENT = 'ReservoirExtent'
RESERVOIRTHICKNESS = 'ReservoirThickness'
RESERVOIRXDIM = 'ReservoirXDim'
RESERVOIRYDIM = 'ReservoirYDim'
SPECIFIEDSKIN = 'SpecifiedSkin'
USEDISTRIBUTEDPI = 'UseDistributedPI'
WELLLENGTH = 'WellLength'
WELLCOMPLETIONTYPE = 'WellCompletionType'
class IPRPSSBabuOdeh
Bases: DistributedCompletionModel
class IPRSSJoshi
Bases: DistributedCompletionModel
class IPRHorizontalPI
Bases: DistributedCompletionModel
class EngineKeywords
Bases: DownholeOrSurfaceComponent
KEYWORDS = 'Keywords'
class ESP
Bases: DownholeComponent
SERIES = 'Series'
USESTAGEBYSTAGECALC = 'UseStageByStageCalc'
BASEFREQUENCY = 'BaseFrequency'
CASINGID = 'CasingID'
OPERATINGPRODUCTIONRATE = 'OperatingProductionRate'
OPERATINGFREQUENCY = 'OperatingFrequency'
DIAMETER = 'Diameter'
GASSEPARATOREFFICIENCY = 'GasSeparatorEfficiency'
HASGASSEPARATOR = 'HasGasSeparator'
HEADFACTOR = 'HeadFactor'
MANUFACTURER = 'Manufacturer'
MAXFLOWRATE = 'MaxFlowRate'
MINFLOWRATE = 'MinFlowRate'
MODEL = 'Model'
NUMBERSTAGES = 'NumberStages'
USEVISCOSITYCORRECTION = 'UseViscosityCorrection'
POWER = 'Power'
USEPOWER = 'UsePower'
PERMANENTMAGNETMOTOR = 'PermanentMagnetMotor'
NUMBEROFPOLES = 'NumberOfPoles'
OVERRIDESLIPPAGEFACTOR = 'OverrideSlippageFactor'
SLIPPAGEFACTOR = 'SlippageFactor'
FLOWRATEFACTOR = 'FlowrateFactor'
POWERFACTOR = 'PowerFactor'
COEFFICIENTA = 'CoefficientA'
COEFFICIENTB = 'CoefficientB'
POWERCORRECTION = 'PowerCorrection'
ISPOWERCORRECTIONCALCULATED = 'IsPowerCorrectionCalculated'
CABLELENGTHBELOWPUMP = 'CableLengthBelowPump'
RECOMBINEGAS = 'RecombineGas'
class MotorCoefficients
Bases: object
PFValues = 'PFValues'
AMPValues = 'AMPValues'
EFFValues = 'EFFValues'
class MotorCatalogData
Bases: object
MANUFACTURER = 'MotorManufacturer'
MOTORNAME = 'MotorName'
NPPOWER = 'NPPower'
NPVOLTAGE = 'NPVoltage'
NPAMPERAGE = 'NPAmperage'
FLOOREFFICIENCY = 'FloorEfficiency'
FLOORPOWERFACTOR = 'FloorPowerFactor'
class CableCatalogData
Bases: object
NAME = 'CableName'
VDROP = 'VDrop'
MAXAMPS = 'MaxAmps'
class ESPMotorCoefficient
Bases: object
AMPVALUE = 'AMPValue'
PFVALUE = 'PFValue'
EFFVALUE = 'EFFValue'
class Expander
Bases: SurfaceComponent, SharedPumpParameters
ROUTE = 'Route'
class IPRFetkovitch
Bases: object
ABSOLUTEOPENFLOWPOTENTIAL = 'AbsoluteOpenFlowPotential'
NEXPONENT = 'NExponent'
class FlowControlValve
Bases: DownholeComponent
USEGENERICMODE = 'UseGenericMode'
SIZECALC = 'SizeCalc'
CHOKEAREA = 'ChokeArea'
PORTDIAMETER = 'PortDiameter'
PORTSNUMBER = 'PortsNumber'
SUBCRITICALCORRELATION = 'SubCriticalCorrelation'
CALCULATECRITICALPRESSURERATIO = 'CalculateCriticalPressureRatio'
CRITICALPRESSURERATIO = 'CriticalPressureRatio'
LIQUIDFLOWCOEFFICIENT = 'LiquidFlowCoefficient'
GASFLOWCOEFFICIENT = 'GasFlowCoefficient'
MAXIMUMFLOWRATETYPE = 'MaximumFlowRateType'
MAXIMUMLIQUIDRATE = 'MaxLiquidFlowThroughValve'
MAXIMUMWATERRATE = 'MaxWaterFlowThroughValve'
MAXIMUMGASRATE = 'MaxGasFlowThroughValve'
MAXIMUMMASSRATE = 'MaxMassFlowThroughValve'
class ValveCatalogData
Bases: object
MANUFACTURER = 'Manufacturer'
TYPE = 'Type'
MODEL = 'Model'
DIAMETER = 'Diameter'
POSITION = 'Position'
class ValveCoefficient
Bases: object
POSITION = 'Position'
OPENINGAREA = 'OpeningArea'
LIQUIDFLOWCOEFFICIENT = 'ValveLiquidFlowCoefficient'
GASFLOWCOEFFICIENT = 'ValveGasFlowCoefficient'
class Flowline
Bases: SurfaceComponent
SHOWASRISER = 'ShowAsRiser'
DETAILEDMODEL = 'DetailedModel'
USEGISDATA = 'UseGISData'
UNDULATIONRATE = 'UndulationRate'
ENTERSURVEYLENGTH = 'EnterSurveyLength'
MEASUREDDISTANCE = 'MeasuredDistance'
HORIZONTALDISTANCE = 'HorizontalDistance'
ELEVATIONDIFFERENCE = 'ElevationDifference'
SEABEDDEPTH = 'SeabedDepth'
PLATFORMHEIGHT = 'PlatformHeight'
AMBIENTTEMPERATURE = 'AmbientTemperature'
AMBIENTAIRTEMPERATURE = 'AmbientAirTemperature'
AMBIENTWATERTEMPERATURE = 'AmbientWaterTemperature'
AMBIENTTEMPERATUREOPTIONS = 'AmbientTemperatureOptions'
AMBIENTFLUIDTYPE = 'AmbientFluidType'
WATERINTERPOLATIONMETHOD = 'WaterInterpolationMethod'
DEVIATIONSURVEYCALC = 'DeviationSurveyCalc'
ISFLIPPED = 'IsFlipped'
GEOTHERMALSURVEYINDEX = 'GeothermalSurveyIndex'
USEGLOBALSETTINGS = 'UseGlobalSettings'
ISDOWNCOMER = 'IsDowncomer'
USEENVIRONMENTALDATA = 'UseEnvironmentalData'
SURFACETEMPERATURE = 'SurfaceTemperature'
DEPTHATSTART = 'DepthAtStart'
USEDEPTH = 'UseDepth'
OVERRIDECORROSION = 'OverrideCorrosion'
ANNULUSFLOW = 'AnnulusFlow'
INNERDIAMETER = 'InnerDiameter'
LENGTH = 'Length'
ROUGHNESS = 'Roughness'
WALLTHICKNESS = 'WallThickness'
INNERPIPEOUTSIDEDIAMETER = 'InnerPipeOutsideDiameter'
OUTERPIPEINSIDEDIAMETER = 'OuterPipeInsideDiameter'
OUTERPIPEWALLTHICKNESS = 'OuterPipeWallThickness'
CATALOGNAME = 'CatalogName'
CATALOGLABEL = 'CatalogLabel'
ENTEROD = 'EnterOD'
GEOMETRYPROFILE = 'GeometryProfile'
GEOTHERMALPROFILE = 'FlowlineGeothermalProfile'
class HeatTransfer
Bases: object
GROUNDCONDUCTIVITY = 'GroundConductivity'
INCLUDEINSIDEFILMCOEFF = 'IncludeInsideFilmCoeff'
ISUCALCULATED = 'IsUCalculated'
PIPEBURIALDEPTH = 'PipeBurialDepth'
PIPECONDUCTIVITY = 'PipeConductivity'
SURROUNDINGFLUIDVELOCITY = 'SurroundingFluidVelocity'
USETHERMALSURVEY = 'UseThermalSurvey'
UCOEFFUSER = 'UCoeffUser'
UCOEFFUSERAIR = 'UCoeffUserAir'
UCOEFFUSERWATER = 'UCoeffUserWater'
UTYPE = 'UType'
UTYPEAIR = 'UTypeAir'
UTYPEWATER = 'UTypeWater'
class FluidComponent
Bases: ModelComponent
MOLECULARWEIGHT = 'MolecularWeight'
TCRIT = 'Tcrit'
TBOIL = 'Tboil'
TMELT = 'Tmelt'
PCRIT = 'Pcrit'
VCRIT = 'Vcrit'
ZCRIT = 'Zcrit'
VCRITVISCOSITY = 'VcritViscosity'
ACF = 'Acf'
PARACHOR = 'Parachor'
OMEGAA = 'OmegaA'
OMEGAB = 'OmegaB'
REFERENCEDENSITY = 'ReferenceDensity'
EOSVOLUMESHIFT = 'EoSVolumeShift'
SPECIFICGRAVITY = 'SpecificGravity'
WATSONKFACTOR = 'WatsonKFactor'
HEATVAPOURISATION = 'HeatVapourisation'
CALORIFICVALUE = 'CalorificValue'
THERMEXPCOEFF = 'ThermExpCoeff'
HYDROCARBONFORM = 'HydrocarbonForm'
ISUSERDEFINED = 'IsUserDefined'
THERMALCOEFFICIENT0 = 'ThermalCoefficient0'
THERMALCOEFFICIENT1 = 'ThermalCoefficient1'
THERMALCOEFFICIENT2 = 'ThermalCoefficient2'
THERMALCOEFFICIENT3 = 'ThermalCoefficient3'
THERMALCOEFFICIENT4 = 'ThermalCoefficient4'
THERMALCOEFFICIENT5 = 'ThermalCoefficient5'
THERMALCOEFFICIENT6 = 'ThermalCoefficient6'
class FluidComponentFraction
Bases: object
SPECIFIEDFRACTION = 'SpecifiedFraction'
TUNEDFRACTION = 'TunedFraction'
COMPONENT = 'Component'
class IPRForchheimer
Bases: object
COEFFICIENTA = 'CoefficientA'
COEFFICIENTF = 'CoefficientF'
class GasLiftInjection
Bases: DownholeComponent
GASLIFTTYPE = 'GasLiftType'
GASRATE = 'GasRate'
GLR = 'GLR'
GLRINCREASE = 'GLRIncrease'
VALVEDIAMETER = 'ValveDiameter'
MANUFACTURER = 'Manufacturer'
SERIES = 'Series'
VALVETYPE = 'ValveType'
VALVESIZE = 'ValveSize'
PORTSIZE = 'PortSize'
PORTAREA = 'PortArea'
BELLOWAREA = 'BellowArea'
DISCHARGECOEFFICIENT = 'DischargeCoefficient'
DISCHARGETOFULLYOPEN = 'DischargeToFullyOpen'
PTRO = 'Ptro'
VALVECHOKE = 'ValveChoke'
SPRINGPRESSURE = 'SpringPressure'
TUNINGFACTOR = 'TuningFactor'
class GenericEquipment
Bases: SurfaceComponent
DISCHARGEPRESSURE = 'DischargePressure'
DISCHARGETEMPERATURE = 'DischargeTemperature'
DUTY = 'Duty'
PRESSUREDROP = 'PressureDrop'
PRESSURERATIO = 'PressureRatio'
PRESSURESPEC = 'PressureSpec'
ROUTE = 'Route'
TEMPERATUREDIFFERENTIAL = 'TemperatureDifferential'
TEMPERATURESPEC = 'TemperatureSpec'
class Pump
Bases: SurfaceComponent, SharedPumpParameters, SharedPumpCatalogParameters
ROUTE = 'Route'
DESIGNPRODUCTIONRATE = 'DesignProductionRate'
MAXFLOWRATE = 'MaxFlowRate'
MINFLOWRATE = 'MinFlowRate'
NUMBERSTAGES = 'NumberStages'
USEVISCOSITYCORRECTION = 'UseViscosityCorrection'
BASESTAGES = 'BaseStages'
HEADFACTOR = 'HeadFactor'
class GeographicSurvey
Bases: object
LATITUDE = 'Latitude'
LONGITUDE = 'Longitude'
ISVERTEX = 'IsVertex'
class GravelPack
Bases: object
GRAVELCASINGID = 'GravelCasingId'
GRAVELPERMEABILITY = 'GravelPermeability'
GRAVELSCREENSIZE = 'GravelScreenSize'
GRAVELTUNNELLENGTH = 'GravelTunnelLength'
class HeatExchanger
Bases: object
DISCHARGEPRESSURE = 'DischargePressure'
DISCHARGETEMPERATURE = 'DischargeTemperature'
DUTY = 'Duty'
PRESSUREDROP = 'PressureDrop'
PRESSURESPEC = 'PressureSpec'
TEMPERATUREDIFFERENTIAL = 'TemperatureDifferential'
TEMPERATURESPEC = 'TemperatureSpec'
class Injector
Bases: DownholeOrSurfaceComponent, AssociatedToFluid
GASFLOWRATE = 'GasFlowRate'
INJECTEDFLUID = 'InjectedFluid'
LIQUIDFLOWRATE = 'LiquidFlowRate'
MASSFLOWRATE = 'MassFlowRate'
TEMPERATURE = 'Temperature'
FLOWRATETYPE = 'FlowrateType'
USEGASRATIO = 'UseGasRatio'
USEWATERRATIO = 'UseWaterRatio'
GOR = 'GOR'
OGR = 'OGR'
GLR = 'GLR'
LGR = 'LGR'
GWR = 'GWR'
WGR = 'WGR'
WATERCUT = 'WaterCut'
USEFLUIDOVERRIDES = 'UseFluidOverrides'
OVERRIDESINITIALIZED = 'OverridesInitialized'
class IPRBackPressure
Bases: object
CONSTANTC = 'ConstantC'
SLOPEN = 'SlopeN'
class IPRHydraulicFracture
Bases: object
FRACTUREHALFLENGTH = 'FractureHalfLength'
FRACTUREPERMEABILITY = 'FracturePermeability'
FRACTUREWIDTH = 'FractureWidth'
ISGASMODEL = 'IsGasModel'
POROSITY = 'Porosity'
RESERVOIRPERMEABILITY = 'ReservoirPermeability'
RESERVOIRRADIUS = 'ReservoirRadius'
RESERVOIRTHICKNESS = 'ReservoirThickness'
TIME = 'Time'
TOTALCOMPRESSIBILITY = 'TotalCompressibility'
USETRANSIENTMODEL = 'UseTransientModel'
USEVOGELBELOWBUBBLEPOINT = 'UseVogelBelowBubblepoint'
USEVOGELWATERCUTCORRECTION = 'UseVogelWaterCutCorrection'
class IPRPIModel
Bases: object
GASPI = 'GasPI'
ISGASMODEL = 'IsGasModel'
LIQUIDPI = 'LiquidPI'
USEVOGELBELOWBUBBLEPOINT = 'UseVogelBelowBubblepoint'
USEVOGELWATERCUTCORRECTION = 'UseVogelWaterCutCorrection'
class IPRJones
Bases: object
GASCOEFFICIENTA = 'GasCoefficientA'
GASCOEFFICIENTB = 'GasCoefficientB'
ISGASMODEL = 'IsGasModel'
LIQUIDCOEFFICIENTA = 'LiquidCoefficientA'
LIQUIDCOEFFICIENTB = 'LiquidCoefficientB'
class Source
Bases: SurfaceComponent, AssociatedToFluid
USEPQCURVE = 'UsePQCurve'
TEMPERATURE = 'Temperature'
SELECTEDRATETYPE = 'SelectedRateType'
GASFLOWRATE = 'GasFlowRate'
LIQUIDFLOWRATE = 'LiquidFlowRate'
MASSFLOWRATE = 'MassFlowRate'
PRESSURE = 'Pressure'
USEGASRATIO = 'UseGasRatio'
USEWATERRATIO = 'UseWaterRatio'
GOR = 'GOR'
OGR = 'OGR'
GLR = 'GLR'
LGR = 'LGR'
GWR = 'GWR'
WGR = 'WGR'
WATERCUT = 'WaterCut'
USEFLUIDOVERRIDES = 'UseFluidOverrides'
OVERRIDESINITIALIZED = 'OverridesInitialized'
PQCURVE = 'PQCurve'
class Junction
Bases: Source
TREATASSOURCE = 'TreatAsSource'
class Liner
Bases: AbstractTubingSection
class MeasurementPoint
Bases: object
CONNECTEDTOSTARTEQUIPMENT = 'ConnectedToStartEquipment'
class MFLFluid
Bases: FileBasedFluid
LIQUIDVISCOSITYCALC = 'LiquidViscosityCalc'
USERWATERCUTCUTOFF = 'UserWatercutCutOff'
USEBRAUNERULLMANEQUATION = 'UseBraunerUllmanEquation'
VANDUSERK1 = 'VandUserk1'
VANDUSERK2 = 'VandUserk2'
RICHARDSONKOIW = 'Richardsonkoiw'
RICHARDSONKWIO = 'Richardsonkwio'
USEREMULSIONTABLE = 'UserEmulsionViscosityTable'
class MultiphaseBooster
Bases: SurfaceComponent
TOTALPOWER = 'Power'
DISCHARGEPRESSURE = 'Pressure'
PRESSUREDIFFERENTIAL = 'PressureDifferential'
PRESSURERATIO = 'PressureRatio'
TYPE = 'BoosterType'
class GenericMultiphaseBooster
Bases: MultiphaseBooster
PUMPEFFICIENCY = 'Efficiency'
COMPRESSOREFFICIENCY = 'BoosterEfficiency'
class SharedOneSubseaParameters
Bases: MultiphaseBooster
PUMPMODEL = 'PumpModel'
TUNINGFACTOR = 'TuningFactor'
NUMBEROFBOOSTERSINPARALLEL = 'NumberOfBoostersInParallel'
class OneSubseaMultiphaseBooster
Bases: SharedOneSubseaParameters
SPEEDLIMIT = 'SpeedLimit'
RECIRCULATIONFLOWRATE = 'RecirculationFlowRate'
class OneSubseaWetGasCompressor
Bases: SharedOneSubseaParameters
SPEEDSETPOINT = 'SpeedSetPoint'
UPSTREAMCOOLERMODEL = 'UpstreamCoolerModel'
UPSTREAMCOOLERDUTY = 'UpstreamCoolerDuty'
DOWNSTREAMCOOLERMODEL = 'DownstreamCoolerModel'
DOWNSTREAMCOOLERDUTY = 'DownstreamCoolerDuty'
RECIRCULATIONMASSRATE = 'RecirculationRate'
MAXTEMPERATURE = 'MaxTemperature'
class MultiplierAdder
Bases: SurfaceComponent
ADDER = 'Adder'
SCALER = 'Scaler'
USEASMULTIPLIER = 'UseAsMultiplier'
ADDERRATETYPE = 'AdderRateType'
ADDEDLIQUID = 'AddedLiquid'
ADDEDGAS = 'AddedGas'
ADDEDMASS = 'AddedMass'
class OpenHole
Bases: AbstractTubingSection
class Packer
Bases: DownholeComponent
class PCP
Bases: DownholeComponent
BASESPEED = 'BaseSpeed'
CASINGID = 'CasingID'
OPERATINGPRODUCTIONRATE = 'OperatingProductionRate'
OPERATINGSPEED = 'OperatingSpeed'
DIAMETER = 'Diameter'
GASSEPARATOREFFICIENCY = 'GasSeparatorEfficiency'
HASGASSEPARATOR = 'HasGasSeparator'
HEADFACTOR = 'HeadFactor'
MANUFACTURER = 'Manufacturer'
NOMINALFLOWRATE = 'NominalFlowRate'
MODEL = 'Model'
USEVISCOSITYCORRECTION = 'UseViscosityCorrection'
POWER = 'Power'
USEPOWER = 'UsePower'
SPEEDFACTOR = 'SpeedFactor'
SLIPFACTOR = 'SlipFactor'
FLOWRATEFACTOR = 'FlowrateFactor'
POWERFACTOR = 'PowerFactor'
ISTOPDRIVE = 'IsTopDrive'
RODDIAMETER = 'RodDiameter'
class PVTFluid
Bases: FileBasedFluid
class RodPump
Bases: DownholeComponent
GASSEPARATOREFFICIENCY = 'GasSeparatorEfficiency'
HASGASSEPARATOR = 'HasGasSeparator'
HASGASRECOMBINEDATWELLHEAD = 'HasGasRecombinedAtWellHead'
NOMINALFLOWRATE = 'NominalFlowRate'
USEVISCOSITYCORRECTION = 'UseViscosityCorrection'
MAXDP = 'MaxDP'
MAXPOWER = 'MaxPower'
RODDIAMETER = 'RodDiameter'
BASISTYPE = 'BasisType'
SLIPECOEFFICIENT = 'SlipCoefficient'
PUMPEFFICIENCY = 'PumpEfficiency'
STROKEPERMINUTE = 'StrokesPerMinute'
STROKELENGTH = 'StrokeLength'
PLUNGERDIAMTER = 'PlungerDiameter'
class SinglePhaseSeparator
Bases: DownholeComponent
EFFICIENCY = 'Efficiency'
SEPARATEDFLUID = 'SeparatedFluid'
class Sink
Bases: SurfaceComponent
GASFLOWRATE = 'GasFlowRate'
LIQUIDFLOWRATE = 'LiquidFlowRate'
MASSFLOWRATE = 'MassFlowRate'
PRESSURE = 'Pressure'
FLOWRATETYPE = 'FlowrateType'
class SlidingSleeve
Bases: DownholeComponent
ISOPEN = 'IsOpen'
class SpotReport
Bases: DownholeOrSurfaceComponent
FLOWMAP = 'FlowMap'
PHASEENVELOPE = 'PhaseEnvelope'
COMPOSITIONDETAILS = 'CompositionDetails'
STOCKTANKFLUID = 'StockTankFluid'
FLOWINGFLUID = 'FlowingFluid'
CUMULATIVEVALUES = 'CumulativeValues'
MULTIPHASEFLOWVALUES = 'MultiPhaseFlowValues'
SLUGGINGVALUES = 'SluggingValues'
PIGGINGVALUES = 'PiggingValues'
HEATTRANSFERVALUES = 'HeatTransferValues'
CUSTOM = 'Custom'
CUSTOMREPORTNAME = 'CustomReportName'
CUSTOMKEYWORDS = 'CustomKeywords'
class CompositionDetailsReport
Bases: object
GENERALDATA = 'General data'
PHASEFRACTIONS = 'Phase fractions'
COMPONENTTABLE = 'Component table'
SpotReportSectionMapping = {'Composition details': 'CompositionDetails', 'Cumulative values': 'CumulativeValues', 'Flow map': 'FlowMap', 'Flowing fluid properties': 'FlowingFluid', 'Heat transfer values': 'HeatTransferValues', 'Multiphase flow values': 'MultiPhaseFlowValues', 'Phase envelope': 'PhaseEnvelope', 'Pigging values': 'PiggingValues', 'Slugging values': 'SluggingValues', 'Stock tank fluid properties': 'StockTankFluid'}
SpotReportDisplayName = {'CompositionDetails': 'Composition details', 'CumulativeValues': 'Cumulative values', 'FlowMap': 'Flow map', 'FlowingFluid': 'Flowing fluid properties', 'HeatTransferValues': 'Heat transfer values', 'MultiPhaseFlowValues': 'Multiphase flow values', 'PhaseEnvelope': 'Phase envelope', 'PiggingValues': 'Pigging values', 'SluggingValues': 'Slugging values', 'StockTankFluid': 'Stock tank fluid properties'}
class SubsurfaceSafetyValve
Bases: DownholeComponent
BEANID = 'BeanID'
class Study
Bases: object
NAME = 'Name'
DESCRIPTION = 'Description'
class AbstractTask
Bases: object
TASKNAME = 'Name'
DESCRIPTION = 'Description'
STUDY = 'Study'
USEPHASERATIO = 'UsePhaseRatio'
FLOWRATECONDITION = 'FlowRateCondition'
FLOWRATECONDITIONTEMPERATURE = 'FlowRateConditionTemperature'
FLOWRATECONDITIONPRESSURE = 'FlowRateConditionPressure'
class SingleBranchSimulation
Bases: AbstractTask
PRODUCER = 'Producer'
BRANCHTERMINATOR = 'BranchTerminator'
SENSITIVITYVARIABLES = 'SensitivityVariables'
SENSITIVITYVARIABLE = 'SensitivityVariable'
class SensitivityVariable
Bases: object
COMPONENT = 'Component'
VARIABLE = 'Variable'
VALUES = 'Values'
APPLYALL = 'ApplyAll'
TYPE = 'Type'
class VfpTablesSimulation
Bases: SingleBranchSimulation
ARTIFICIALLIFTSENSITIVITY = 'ArtificialLiftSensitivity'
LIQUIDRATESENSITIVITY = 'LiquidRateSensitivity'
GASRATESENSITIVITY = 'GasRateSensitivity'
GORSENSITIVITY = 'GorSensitivity'
GLRSENSITIVITY = 'GlrSensitivity'
OGRSENSITIVITY = 'OgrSensitivity'
LGRSENSITIVITY = 'LgrSensitivity'
WATERCUTSENSITIVITY = 'WatercutSensitivity'
WGRSENSITIVITY = 'WgrSensitivity'
GWRSENSITIVITY = 'GwrSensitivity'
OUTLETPRESSURESENSITIVITY = 'OutletPressureSensitivity'
RESERVOIRSIMULATOR = 'TableType'
TABLENUMBER = 'TableNumber'
INCLUDETEMPERATURE = 'IncludeTemperature'
BOTTOMHOLEDATUMDEPTH = 'WellHeadDepth'
VFPTABLETYPE is for source only(no need for well)
Type:
Note
VFPTABLETYPE = 'GenerateInjectionTable'
RATETYPE = 'RateType'
GLRATIOTYPE = 'GLRatioType'
GWRATIOTYPE = 'GWRatioType'
GOR = 'GOR'
GLR = 'GLR'
GWR = 'GWR'
WGR = 'WGR'
WATERCUT = 'WaterCut'
LIQUIDFLOWRATE = 'LiquidFlowRate'
GASFLOWRATE = 'GasFlowRate'
class NetworkSimulation
Bases: AbstractTask
USESURFACEBOUNDARYCONDITIONS = 'UseSurfaceBoundaryConditions'
class NetworkOptimizerSimulation
Bases: AbstractTask
class ObjectiveFunctionTypes
Bases: object
MAXOILRATE = 'MaxOilRate'
MAXLIQUIDRATE = 'MaxLiquidRate'
MAXPRODUCEDGASRATE = 'MaxProducedGasRate'
MAXTOTALGASRATE = 'MaxTotalGasRate'
MINOILRATE = 'MinOilRate'
MINLIQUIDRATE = 'MinLiquidRate'
MINPRODUCEDGASRATE = 'MinProducedGasRate'
MINTOTALGASRATE = 'MinTotalGasRate'
MINPOWER = 'MinPower'
class InjectionGasrateTypes
Bases: object
FIXEDINJECTIONGASRATE = 'FixedInjectionGasrate'
MAXIMUMINJECTIONGASRATE = 'MaximumInjectionGasrate'
class GenerateCurvesTypes
Bases: object
ALWAYS = 'Always'
SELECTEDWELLS = 'SelectedWells'
class PowerTypes
Bases: object
FIXEDPOWER = 'FixedPower'
MAXIMUMPOWER = 'MaximumPower'
class RateTypes
Bases: object
FIXEDLIQUIDRATE = 'FixedLiquidrate'
FIXEDGASRATE = 'FixedGasrate'
FIXEDOILRATE = 'FixedOilrate'
class ControlTypes
Bases: object
GASLIFT = 'Gaslift'
ESP = 'Esp'
PCP = 'Pcp'
CHOKE = 'Choke'
class Options
Bases: object
class WellCurveParameters
Bases: object
CONTROLVALUESPERCURVE = 'ControlValuesPerCurve'
PRESSUREVALUESPERWELL = 'PressureValuesPerWell'
MINIMUMCHOKEBEANSIZE = 'MinBeanSizePerWell'
MAXIMUMCHOKEBEANSIZE = 'MaxBeanSizePerWell'
MINIMUMESPFREQUENCY = 'MinFrequencyPerWell'
MAXIMUMESPFREQUENCY = 'MaxFrequencyPerWell'
MINIMUMPCPSPEED = 'MinSpeedPerWell'
MAXIMUMPCPSPEED = 'MaxSpeedPerWell'
MINIMUMGASLIFTPERWELL = 'MinGasliftPerWell'
MAXIMUMGASLIFTPERWELL = 'MaxGasliftPerWell'
REGENERATECURVES = 'GenerateCurvesType'
class NetworkSolver
Bases: object
LINKTOOPTIMIZERTOLERANCE = 'LinkToTolerance'
NATWORKFAILURETOLERANCE = 'FailureTolerance'
class Search
Bases: object
CONSTRAINTSCONVEGENCETOLERANCE = 'SearchConverganceTolerance'
MAXIMUMGASRATE = 'SearchMinGasRate'
GASRATEMARGINALGRADIENT = 'SearchMarginGradient'
MINIMUMPOWER = 'SearchMinPower'
POWERMARGINALGRADIENT = 'SearchPowerMarginGradient'
class Initialization
Bases: object
UseLastKnownWellheadPressure = 'UseLastKnownWellheadPressures'
InitialWellheadPressure = 'InitialWellheadPressure'
UseCurrentControlParameters = 'UseCurrentControlParameters'
class Optimization
Bases: object
CONSTRAINTSCONVERGENCETOLERANCE = 'ToleranceConstraint'
PRESSURECONVERGENCETOLERANCE = 'TolerancePressure'
CONSTRAINTSMAXITERATIONS = 'MaxIterationsConstraint'
PRESSUREMAXITERATIONS = 'MaxIterationsPressure'
DAMPINGTHRESHOLD = 'DampingThreshold'
DAMPINGFACTOR = 'DampingFactor'
STABLEFLOWMARGIN = 'StableFlowMargin'
ACCELERATEBRANCHCONSTRAINTS = 'AccelerateBranchConstraints'
MAXIMUMOPTIMIZERRESTARTS = 'MaximumRestarts'
VERBOSEMESSAGES = 'VerboseMessages'
class OptimizationControl
Bases: object
OBJECTIVEFUNCTION = 'ObjectiveFunction'
class ControlVariables
Bases: object
CHOKEBEANSIZE = 'ChokeBeanSize'
GASLIFTRATE = 'GasliftRate'
ESPFREQUENCY = 'ESPFrequency'
PCPSPEED = 'PCPSpeed'
class OptimizationTargets
Bases: object
INJECTIONTYPE = 'InjectionType'
INJECTIONRATE = 'InjectionGasRate'
POWERTYPE = 'PowerType'
POWER = 'Power'
LIQUIDRATETYPE = 'RateType'
LIQUIDRATE = 'LiquidRate'
class GlobalConstraints
Bases: object
MINIMUMTOTALGASRATE = 'MinimumTotalGasRate'
MAXIMUMTOTALGASRATE = 'MaximumTotalGasRate'
MAXIMUMPRODUCEDGASRATE = 'MaximumProducedGasRate'
MAXIMUMWATERRATE = 'MaximumWaterRate'
MAXIMUMLIQUIDRATE = 'MaximumLiquidRate'
MAXIMUMOILRATE = 'MaximumOilRate'
MAXIMUMTOTALGOR = 'MaximumTotalGOR'
MAXIMUMCO2 = 'MaximumCO2'
MAXIMUMH2S = 'MaximumH2S'
class Scope
Bases: object
IGNOREGLOBALCONSTRAINS = 'IgnoreGlobalConstrains'
IGNORELOCALCONSTRAINS = 'IgnoreLocalConstrains'
class GLDiagnosticsSimulation
Bases: SingleBranchSimulation
OUTLETPRESSURE = 'OutletPressure'
DIAGNOSTICSTYPE = 'DiagnosticsType'
THROTTLING = 'ThrottlingOption'
INJECTIONGRADIENT = 'PressureGradientType'
TARGETINJECTIONRATE = 'TargetInjectionRate'
SURFACEINJECTIONTEMPERATURE = 'SurfaceGasTemperature'
SURFACEINJECTIONPRESSURE = 'SurfaceGasPressure'
class PTProfileSimulation
Bases: SingleBranchSimulation
CALCULATEDVARIABLE = 'CalculationVariableType'
CUSTOMVARIABLE = 'CalculationVariable'
FLOWRATETYPE = 'FlowRateType'
GASFLOWRATE = 'GasFlowRate'
LIQUIDFLOWRATE = 'LiquidFlowRate'
MASSFLOWRATE = 'MassFlowRate'
INLETPRESSURE = 'InletPressure'
OUTLETPRESSURE = 'OutletPressure'
class CustomVariable
Bases: object
COMPONENT = 'Component'
VARIABLE = 'Variable'
MINVALUE = 'MinValue'
MAXVALUE = 'MaxValue'
ISDIRECTPROPORTIONALITY = 'IsDirectProportionality'
class SystemAnalysisSimulation
Bases: PTProfileSimulation
SENSITIVITYMETHOD = 'SensitivityMethod'
class WellPerformanceCurvesSimulation
Bases: SingleBranchSimulation
FLOWRATEPOINTS = 'FlowratePoints'
Deprecated, please use SensitivityVariable instead
class SENSITIVITYVARIABLE
Bases: object
COMPONENT = 'Component'
VARIABLE = 'Variable'
VALUES = 'Values'
APPLYALL = 'ApplyAll'
class NodalAnalysisSimulation
Bases: SingleBranchSimulation
OUTLETPRESSURE = 'OutletPressure'
NODALMEASUREMENTPOINT = 'NodalMeasurementPoint'
MAXOUTFLOWPRESSURE = 'MaxOutflowPressure'
MAXFLOWRATETYPE = 'MaxFlowRateType'
MAXGASRATE = 'MaxGasRate'
MAXLIQUIDRATE = 'MaxLiquidRate'
MAXMASSRATE = 'MaxMassRate'
INFLOWPOINTS = 'InflowPoints'
OUTFLOWPOINTS = 'OutflowPoints'
LIMITINFLOW = 'LimitInflow'
LIMITOUTFLOW = 'LimitOutflow'
class ThreePhaseSeparator
Bases: SurfaceComponent
GASOILEFFICIENCY = 'GasOilEfficiency'
WATEROILEFFICIENCY = 'WaterOilEfficiency'
PRESSURE = 'Pressure'
PRODUCTFLUID = 'ProductFluid'
class Tubing
Bases: AbstractTubingSection
class TwoPhaseSeparator
Bases: SurfaceComponent
EFFICIENCY = 'Efficiency'
PRESSURE = 'Pressure'
PRODUCTIONSTREAM = 'ProductionStream'
DISCARDEDSTREAM = 'DiscardedStream'
class IPRVogel
Bases: object
ABSOLUTEOPENFLOWPOTENTIAL = 'AbsoluteOpenFlowPotential'
VOGELCOEFFICIENT = 'VogelCoefficient'
class WaterTempVelocitySurvey
Bases: object
ISGLOBAL = 'IsGlobal'
class GasliftSensitivity
Bases: object
COMPONENTNAME = 'Gas lift data'
SURFACEGASTEMPERATURE = 'SurfaceGasTemperature'
SURFACEGASPRESSURE = 'SurfaceGasPressure'
TARGETINJECTIONRATE = 'TargetInjectionRate'
MINIMUMINJECTIONRATE = 'MinimumInjectionRate'
MAXIMUMINJECTIONRATE = 'MaximumInjectionRate'
MINVALVEINJECTIONDP = 'MinValveInjectionDP'
class Well
Bases: SurfaceComponent, AssociatedToFluid, CanBeTemplate
GASFLOWRATE = 'GasFlowRate'
LIQUIDFLOWRATE = 'LiquidFlowRate'
MASSFLOWRATE = 'MassFlowRate'
FLOWRATETYPE = 'FlowRateType'
ISINJECTION = 'IsInjection'
ISSIMPLE = 'IsSimple'
CHECKVALVESETTING = 'CheckValveSetting'
WELLHEADDEPTH = 'WellheadDepth'
AMBIENTTEMPERATURE = 'AmbientTemperature'
USEGASLIFTVALVE = 'UseGasliftValve'
ALHANATICHECK = 'AlhanatiCheck'
SURFACEGASTEMPERATURE = 'SurfaceGasTemperature'
SURFACEGASPRESSURE = 'SurfaceGasPressure'
TARGETINJECTIONRATE = 'TargetInjectionRate'
MINIMUMINJECTIONRATE = 'MinimumInjectionRate'
MAXIMUMINJECTIONRATE = 'MaximumInjectionRate'
MINVALVEINJECTIONDP = 'MinValveInjectionDP'
GASLIFTINPUTOPTION = 'GasLiftInputOption'
GASSPECIFICGRAVITY = 'GasSpecificGravity'
TUNINGFACTOR = 'TuningFactor'
TESTRACKTEMPERATURE = 'TestRackTemperature'
NITROGENCORRECTIONTYPE = 'NitrogenCorrectionType'
TRAJECTORY = 'Trajectory'
GEOTHERMALPROFILE = 'BoreholeGeothermalProfile'
COMMENTS = 'Comments'
WELLOUTLETEQUIPMENT = 'WellOutletEquipment'
ISMULTIPOINTING = 'IsMultiPointing'
DIAGNOSTICSTYPE = 'DiagnosticsType'
THROTTLINGOPTION = 'ThrottlingOption'
PRESSUREGRADIENTTYPE = 'PressureGradientType'
OVERRIDECORROSION = 'OverrideCorrosion'
TYPE = 'WellType'
TUBINGCONFIGURATION = 'TubingConfig'
ISINJECTIONTHROUGHOUTERTUBING = 'IsInjectionThroughOuterTubing'
class HeatTransfer
Bases: object
UVALUEINPUTOPTION = 'HeatTransferMethod'
UCOEFF = 'UCoeff'
USEWELLHEADAMBIENTTEMPERATURE = 'UseWellHeadAmbientTemperature'
PRODUCTIONINJECTIONTIME = 'ProductionInjectionTime'
HEATTRANSFERCOEFFICIENTSTATUS = 'HeatTransferCoefficientStatus'
TUBINGHEADFLUIDTEMPERATURE = 'ProductionFluidMeasuredTemperature'
LONGTUBINGHEADFLUIDTEMPERATURE = 'ProductionFluidMeasuredTemperature'
SHORTTUBINGHEADFLUIDTEMPERATURE = 'ShortTubingProductionFluidMeasuredTemperature'
ISGEOSURVEYDEPTHTVD = 'IsGeoSurveyDepthTVD'
class DeviationSurvey
Bases: object
SURVEYTYPE = 'SurveyType'
RELATIVEDEPTHOPTION = 'DeviationRelativeDepth'
DEPENDENTPARAMETER = 'TrajectoryDependantParameter'
CALCULATEUSINGTANGENTIALMETHOD = 'CalculateUsingTangentialMethod'
class NodalPoint
Bases: object
NODALTYPE = 'NodalType'
DEPTH = 'Depth'
WELLSTRINGTYPE = 'WellStringType'
EQUIPMENT = 'Equipment'
NAME = 'Name'
class NodalOperatingEnvelopePlot
Bases: object
GASFLOWRATE = 'GasFlowrate'
GASFLOWRATEPRESSURE = 'GasFlowratePressure'
OILFLOWRATE = 'OilFlowrate'
OILFLOWRATEPRESSURE = 'OilFlowratePressure'
MASSFLOWRATE = 'MassFlowrate'
MASSFLOWRATEPRESSURE = 'MassFlowratePressure'
LIQUIDFLOWRATE = 'LiquidFlowrate'
LIQUIDFLOWRATEPRESSURE = 'LiquidFlowratePressure'
class GlobalCatalog
Bases: object
NAME = 'Name'
CATALOGTYPE = 'CatalogType'
class FlowlineGeometry
Bases: object
MEASUREDDISTANCE = 'MeasuredDistance'
HORIZONTALDISTANCE = 'HorizontalDistance'
ELEVATION = 'Elevation'
LATITUDE = 'Latitude'
LONGITUDE = 'Longitude'
ISVERTEX = 'IsVertex'
class GeothermalSurvey
Bases: object
MEASUREDDISTANCE = 'MeasuredDistance'
HORIZONTALDISTANCE = 'HorizontalDistance'
TEMPERATURE = 'Temperature'
CURRENTVELOCITY = 'CurrentVelocity'
UCOEFF = 'UCoeff'
THERMALCONDUCTIVITY = 'ThermalConductivity'
DENSITY = 'Density'
SPECIFICHEATCAPACITY = 'SpecificHeatCapacity'
class CoatingHeatTransfer
Bases: object
THERMALCONDUCTIVITY = 'ThermalConductivity'
DESCRIPTION = 'Description'
THICKNESS = 'Thickness'
class RelativePermeability
Bases: object
WATERSATURATION = 'WaterSaturation'
RELATIVEPERMEABILITYOIL = 'RelativePermeabilityOil'
RELATIVEPERMEABILITYWATER = 'RelativePermeabilityWater'
class WellTrajectory
Bases: object
MEASUREDDEPTH = 'MeasuredDepth'
TRUEVERTICALDEPTH = 'TrueVerticalDepth'
INCLINATION = 'Inclination'
AZIMUTH = 'Azimuth'
MAXDOGLEGSEVERITY = 'MaxDogLegSeverity'
class CompletionTestPoint
Bases: object
LIQUIDFLOWRATE = 'LiquidFlowRate'
GASFLOWRATE = 'GasFlowRate'
STATICRESERVOIRPRESSURE = 'StaticReservoirPressure'
BOTTOMHOLEFLOWINGPRESSURE = 'BottomHoleFlowingPressure'
class PQCurve
Bases: object
GASFLOWRATE = 'GasFlowRate'
LIQUIDFLOWRATE = 'LiquidFlowRate'
MASSFLOWRATE = 'MassFlowRate'
PRESSURE = 'Pressure'
class RiskIndexLimits
Bases: object
NEGLIGIBLE = 'Negligible'
LOW = 'Low'
MODERATE = 'Moderate'
HIGH = 'High'
class TpaCorrosionModel
Bases: object
OXYGENORBACTERIA = 'OxygenOrBacteria'
PREEXISTINGDAMAGE = 'PreExistingDamage'
POWDERORDEBRIS = 'PowderOrDebris'
PIPEDEPLOYMENTYEAR = 'PipeDeploymentYear'
CORROSIONASSESSMENTYEAR = 'CorrosionAssessmentYear'
class DeWaardCorrosionModel
Bases: object
EFFICIENCY = 'Efficiency'
CALCULATEPH = 'CalculatePH'
PHVALUE = 'PHValue'
class Wellstream
Bases: AssociatedToFluid
ISPRODUCTIONFLOWDIRECTION = 'IsProductionFLowDirection'
CHECKVALVESETTINGS = 'CheckValveSetting'
USEPQCURVE = 'UsePQCurve'
TEMPERATURE = 'Temperature'
SELECTEDRATETYPE = 'SelectedRateType'
GASFLOWRATE = 'GasFlowRate'
LIQUIDFLOWRATE = 'LiquidFlowRate'
MASSFLOWRATE = 'MassFlowRate'
PRESSURE = 'Pressure'
USEGASRATIO = 'UseGasRatio'
USEWATERRATIO = 'UseWaterRatio'
GOR = 'GOR'
OGR = 'OGR'
GLR = 'GLR'
LGR = 'LGR'
GWR = 'GWR'
WGR = 'WGR'
WATERCUT = 'WaterCut'
USEFLUIDOVERRIDES = 'UseFluidOverrides'
class WellCalibration
Bases: SingleBranchSimulation
TESTDATA = 'TestData'
USEOILFLUID = 'UseOilFluid'
CALIBRATIONCORRELATIONS = 'CalibrationCorrelations'
class Test
Bases: object
NAME = 'Name'
DATE = 'Date'
ISACTIVE = 'IsActive'
COMMENTS = 'Comments'
TESTVALUES = 'Values'
PARAMETERFACTORS = 'ParameterFactors'
class TestData
Bases: object
VALUE = 'Value'
class ParameterFactor
Bases: object
MINVALUE = 'MinValue'
MAXVALUE = 'MaxValue'
INITIALVALUE = 'InitialValue'
class sixgill.definitions.Constants
Bases: object
Enumerated constants used by Pipesim domain model
class WellCalibration
Bases: object
Constants for WellCalibration results publishing.
NORMALIZED = 'Normalized'
PARAMETERNAME = 'ParameterName'
CALIBRATE = 'Calibrate'
TESTOBJECTID = '_TestObjectId'
FLUIDTYPE = 'FluidType'
OIL = 'Oil'
GAS = 'Gas'
class Profile
Bases: object
Profile result types for well calibration.
ORIGINAL = 'Original'
CALIBRATED = 'Calibrated'
NORMALIZED = 'Normalized'
MEASUREDDATA = 'Measured Data'
class Results
Bases: object
Results structure properties.
CASES = 'Cases'
CASENAME = 'CaseName'
MATCHINGQUALITY = 'MatchingQuality'
TUNINGPARAMETERS = 'TuningParameters'
NAME = 'Name'
UNIT = 'Unit'
VARIABLE = 'Variable'
MEASURED = 'Measured'
ORIGINALMODEL = 'OriginalModel'
ORIGINALMODELDIFF = 'OriginalModelDiff'
CALIBRATED = 'Calibrated'
CALIBRATEDDIFF = 'CalibratedDiff'
NORMALIZED = 'Normalized'
NORMALIZEDDIFF = 'NormalizedDiff'
INITIAL = 'Initial'
OPTIMIZED = 'Optimized'
OPTIMIZEDDIFF = 'OptimizedDiff'
PROFILEDATA = 'ProfileData'
class TubingConfiguration
Bases: object
SINGLESTRING = 'SingleString'
CONCENTRICTUBING = 'ConcentricTubing'
DUALSTRING = 'DualString'
class WellType
Bases: object
Available well types
PRODUCTION = 'Production'
INJECTION = 'Injection'
ADVANCED = 'Advanced'
class Wellstream
Bases: object
TOP = 'Top'
MIDDLE = 'Middle'
BOTTOM = 'Bottom'
class BoundaryNode
Bases: object
TUBING = 'Tubing'
ANNULUS = 'Annulus'
SHORTTUBING = 'Short tubing'
LONGTUBING = 'Long tubing'
INNERTUBING = 'Inner tubing'
OUTERTUBING = 'Outer tubing'
class ConstraintType
Bases: object
GASLIFT = 'Gaslift'
ESP = 'Esp'
PCP = 'Pcp'
CHOKE = 'Choke'
FLOWLINE = 'Flowline'
SINK = 'Sink'
NOCONTROL = 'NoControl'
class WellImportFluidConflict
Bases: object
CREATENEW = 'CreateNew'
USEEXISTING = 'UseExisting'
DONTIMPORT = 'DontImport'
class SoilType
Bases: object
PEATDRY = 'PeatDry'
PEATWET = 'PeatWet'
PEATICY = 'PeatIcy'
LOAM = 'Loam'
SANDYDRY = 'SandyDry'
SANDYMOIST = 'SandyMoist'
SANDYSOAKED = 'SandySoaked'
CLAYDRY = 'ClayDry'
CLAYMOIST = 'ClayMoist'
CLAYWET = 'ClayWet'
CLAYFROZEN = 'ClayFrozen'
GRAVEL = 'Gravel'
GRAVELSANDY = 'GravelSandy'
LIMESTONE = 'Limestone'
SANDSTONE = 'Sandstone'
ICE = 'Ice'
ICEN40C = 'IceN40C'
SNOWLOOSE = 'SnowLoose'
SNOWHARD = 'SnowHard'
USERDEFINED = 'UserDefined'
class MetoceanDataLocation
Bases: object
GULFOFMEXICO = 'GOM'
NORTHSEA = 'NSea'
WESTAFRICA = 'WAfrica'
WESTAUSTRALIA = 'WAustralia'
OFFSHOREBRAZIL = 'OffshoreBrazil'
USERDEFINED = 'UserDefined'
class NetworkSolverMethod
Bases: object
AUTOMATIC = 'Automatic'
STANDARD = 'Standard'
ADVANCED = 'Advanced'
class LiveOilFVFCorrelation
Bases: object
STANDING = 'Standing'
VASQUEZANDBEGGS = 'VasquezAndBeggs'
KARTOATMODJO = 'Kartoatmodjo'
PETROSKYFARSHAD = 'PetroskyFarshad'
ELSHARKAWY = 'Elsharkawy'
class UndersaturatedOilFVFCorrelation
Bases: object
VASQUEZANDBEGGS = 'VasquezAndBeggs'
PETROSKYFARSHAD = 'PetroskyFarshad'
class LiveOilViscCorrelation
Bases: object
BEGGSANDROBINSON = 'BeggsAndRobinson'
CHEWANDCONNALY = 'ChewandConnaly'
KARTOATMODJO = 'Kartoatmodjo'
KHAN = 'Khan'
DEGHETTO = 'DeGhetto'
HOSSAIN = 'Hossain'
ELSHARKAWY = 'Elsharkawy'
PETROSKYFARSHAD = 'PetroskyFarshad'
class GasCompressCorrelation
Bases: object
STANDING = 'Standing'
HALLANDYARBOROUGH = 'HallAndYarborough'
DRANCHUKROBINSON = 'Robinsonetal'
class GasViscCorrelation
Bases: object
LEEETAL = 'Leeetal'
class CharacterizationSystem
Bases: object
PVTI = 'PVTi'
DBR = 'DBR'
MULTIFLASH = 'Multiflash'
class BICsCorrelation
Bases: object
PVTI = 'PVTi'
OILANDGAS1 = 'OilAndGas1'
OILANDGAS2 = 'OilAndGas2'
OILANDGAS3 = 'OilAndGas3'
OILANDGAS4 = 'OilAndGas4'
class IPRModels
Bases: object
IPRBACKPRESSURE = 'IPRBackPressure'
IPRDARCY = 'IPRDarcy'
IPRTRILINEAR = 'IPRTriLinear'
IPRFETKOVITCH = 'IPRFetkovitch'
IPRFORCHHEIMER = 'IPRForchheimer'
IPRHORIZONTALPI = 'IPRHorizontalPI'
IPRHYDRAULICFRACTURE = 'IPRHydraulicFracture'
IPRJONES = 'IPRJones'
IPRPIMODEL = 'IPRPIModel'
IPRPSSBABUODEH = 'IPRPSSBabuOdeh'
IPRSSJOSHI = 'IPRSSJoshi'
IPRVOGEL = 'IPRVogel'
class ErosionModels
Bases: object
API14E = 'API14e'
class CorrosionModels
Bases: object
DEWAARD1995 = 'deWaard1995'
TPA = 'Tpa'
NONE = 'None'
class CompositionalFluidFlash
Bases: object
class PhysicalPropertiesMethod
Bases: object
INTERPOLATE = 'Interpolate'
HYBRID = 'Hybrid'
RIGOROUS = 'Rigorous'
class TemperatureEnthalpyMethod
Bases: object
INTERPOLATE = 'Interpolate'
HYBRID = 'Hybrid'
RIGOROUS = 'Rigorous'
class SingleComponentSystem
Bases: object
YES = 'Yes'
NO = 'No'
AUTOMATIC = 'Automatic'
class MultiphaseFlowCorrelationSource
Bases: object
BAKER_JARDINE = 'BJA'
TULSA = 'Tulsa'
OLGAS = 'OLGAS'
TUFFPUNIFIED = 'TUFFP Unified'
LEDAFLOWPM = 'LedaFlow PM'
NEOTEC = 'Neotec'
class MultiphaseFlowCorrelation
Bases: object
class BakerJardine
Bases: object
ANSARI = 'Ansari'
BEGGSBRILLORIGINAL = 'Beggs & Brill Original'
BEGGSBRILLTAITELDUKLERMAP = 'Beggs & Brill, Taitel Dukler map'
BEGGSBRILLREVISED = 'Beggs & Brill Revised'
BEGGSBRILLREVISEDTAITELDUKLERMAP = 'Beggs & Brill Revised, Taitel Dukler map'
BAKERJARDINEREVISED = 'Baker Jardine Revised'
DUKLERAGAFLANIGAN = 'Dukler, AGA & Flanigan'
DUKLERAGAFLANIGAN_EATONHOLDUP = 'Dukler, AGA & Flanigan (Eaton Holdup)'
MUKHERJEEBRILL = 'Mukherjee & Brill'
NOSLIPASSUMPTION = 'No Slip Assumption'
OLIEMANS = 'Oliemans'
XIAO = 'Xiao'
DUNSROS = 'Duns & Ros'
GOVIERAZIZFOGARASI = 'Govier, Aziz & Fogarasi'
GRAY_MODIFIED = 'Gray (modified)'
GRAY_ORIGINAL = 'Gray (original)'
HAGEDORNBROWN = 'Hagedorn & Brown'
HAGEDORNBROWNDUNSROSMAP = 'Hagedorn & Brown, Duns & Ros map'
ORKISZEWSKI = 'Orkiszewski'
class OLGAS
Bases: object
OLGAS20171_2PHASE = 'OLGAS 2017.1 2-Phase'
OLGAS20171_3PHASE = 'OLGAS 2017.1 3-Phase'
OLGAS20171_3PHASEHD = 'OLGAS 2017.1 3-Phase HD'
OLGAS20231_2PHASE = 'OLGAS 2023.1 2-Phase'
OLGAS20231_3PHASE = 'OLGAS 2023.1 3-Phase'
OLGAS20231_3PHASEHD = 'OLGAS 2023.1 3-Phase HD'
OLGAS20251_2PHASE = 'OLGAS 2025.1 2-Phase'
OLGAS20251_3PHASE = 'OLGAS 2025.1 3-Phase'
OLGAS20251_3PHASEHD = 'OLGAS 2025.1 3-Phase HD'
OLGAS20261_2PHASE = 'OLGAS 2026.1 2-Phase'
OLGAS20261_2PHASECO2 = 'OLGAS 2026.1 2-Phase CO2'
OLGAS20261_3PHASE = 'OLGAS 2026.1 3-Phase'
OLGAS20261_3PHASEHD = 'OLGAS 2026.1 3-Phase HD'
class TUFFPUnified
Bases: object
TUFFPV20111_3PHASE_DEFAULT = 'TUFFP v. 2011.1 3-Phase (default)'
TUFFPV20111_3PHASE_EMULSIONOVERRIDE = 'TUFFP v. 2011.1 3-Phase (emulsion override)'
TUFFPV20111_2PHASE = 'TUFFP v. 2011.1 2-Phase'
TUFFPV2024_3PHASE = 'TUFFP v. 2024 3-Phase'
class LedaFlowPM
Bases: object
LEDAFLOWV14_3PHASE = 'LedaFlow v. 1.4 3-Phase'
LEDAFLOWV14_2PHASE = 'LedaFlow v. 1.4 2-Phase'
LEDAFLOWV22_3PHASE = 'LedaFlow v. 2.2 3-Phase'
LEDAFLOWV22_2PHASE = 'LedaFlow v. 2.2 2-Phase'
class Neotec
Bases: object
GREGORY = 'Gregory'
AZIZGOVIERFOGARASI = 'Aziz Govier Fogarasi'
EATONOLIEMANS = 'Eaton Oliemans'
HUGHMARKDUKLER = 'Hughmark Dukler'
XIAOMODFILM = 'Xiao Mod. Film'
GOMEZ = 'Gomez'
GOMEZENHANCED = 'Gomez Enhanced'
class TulsaLegacy
Bases: object
BEGGSBRILL = 'Beggs & Brill'
DUNSROS = 'Duns & Ros'
GOVIERAZIZ = 'Govier, Aziz'
HAGEDORNBROWN_REVISED = 'Hagedorn & Brown (Revised)'
HAGEDORNBROWN_ORIGINAL = 'Hagedorn & Brown (Original)'
MUKHERJEEBRILL = 'Mukherjee & Brill'
ORKISZEWSKI = 'Orkiszewski'
DUKLER = 'Dukler'
class NodalAnalysisLimits
Bases: object
LIQUIDFLOWRATE = 'LiquidFlowRate'
GASFLOWRATE = 'GasFlowRate'
MASSFLOWRATE = 'MassFlowRate'
class FlowRateCondition
Bases: object
STOCKTANK = 'StockTank'
INSITU = 'Flowing'
class TubingPosition
Bases: object
POSITIONED = 'Positioned'
CENTRALIZED = 'Centralized'
FLUSHJOINT = 'FlushJoint'
NOTPOSITIONED = 'NotPositioned'
class HeatTransferCoefficient
Bases: object
CALCULATE = 'Calculate'
SPECIFY = 'Specify'
class PerforationPosition
Bases: object
POSITIONED = 'Positioned'
CENTERED = 'Centered'
ECCENTERED = 'Eccentered'
class PerforationGunPhaseAngle
Bases: object
ZERO = 'zero'
P45 = 'p45'
P60 = 'p60'
P72 = 'p72'
P90 = 'p90'
P99 = 'p99'
P120 = 'p120'
P120_P60 = 'p120_p60'
P135_P45 = 'p135_p45'
P140_P20 = 'p140_p20'
P180 = 'p180'
PM10 = 'pm10'
PM20 = 'pm20'
PM45 = 'pm45'
ZERO_PM45 = 'zero_pm45'
PM60 = 'pm60'
ZERO_PM60 = 'zero_pm60'
PM90 = 'pm90'
P45_PNDLM = 'p45_pndlm'
ZERO_PM35 = 'zero_pm35'
MOEB45 = 'moeb45'
P120_P40 = 'p120_p40'
class PerforationGunHardware
Bases: object
STANDARD = 'Standard'
OBSOLETE = 'Obsolete'
NONSTANDARD = 'NonStandard'
PURE = 'PURE'
STDPURE = 'STDPURE'
OBSPURE = 'ObsPURE'
NONSTANDARDPURE = 'NonStandardPURE'
MYSTERY = 'Mystery'
UNKNOWN = 'Unknown'
class PenetrationModelOptions
Bases: object
ROCKONLY = 'RockOnly'
CONCRETEONLY = 'ConcreteOnly'
ROCKORCONCRETE = 'RockOrConcrete'
class PenetrationModelType
Bases: object
ROCK = 'Rock'
CONCRETE = 'Concrete'
class NodalPointType
Bases: object
SURFACE = 'Surface'
DOWNHOLE = 'Downhole'
class PerforationGunAPITestEdition
Bases: object
ESTIMATED_API = 'Estimated_API'
UNOFFICIAL_API = 'Unofficial_API'
UNOFFICIAL_C_33M = 'Unofficial_C_33M'
UNOFFICIAL_19B_1ST_ED = 'Unofficial_19B_1st_Ed'
RP43_4THED = 'RP43_4thEd'
RP43_5THED = 'RP43_5thEd'
RP43_C_33M = 'RP43_C_33M'
A19B_1STED = 'A19B_1stEd'
CUSTOM_VALUES = 'Custom_Values'
BASED_CUSTOM_VALUES = 'Based_Custom_Values'
BASED_A19B_1STED = 'Based_A19B_1stEd'
BASED_RP43_C_33M = 'Based_RP43_C_33M'
BASED_RP43_5THED = 'Based_RP43_5thEd'
BASED_RP43_4THED = 'Based_RP43_4thEd'
BASED_UNOFFICIAL_19B_1ST_ED = 'Based_Unofficial_19B_1st_Ed'
BASED_UNOFFICIAL_C_33M = 'Based_Unofficial_C_33M'
BASED_UNOFFICIAL_API = 'Based_Unofficial_API'
class DeviationSurveyType
Bases: object
VERTICAL = 'VerticalDeviation'
TWODIMENSIONAL = 'TwoDimensional'
THREEDIMENSIONAL = 'ThreeDimensional'
class ReferenceDepthOption
Bases: object
OriginalRKB = 'OriginalRKB'
RKB = 'RKB'
GL = 'GL'
MSL = 'MSL'
THF = 'THF'
class UValueInputOption
Bases: object
InputSingleUValue = 'InputSingleUValue'
InputMultipleUValues = 'InputMultipleUValues'
class PipeHeatTransfer
Bases: object
INSULATED = 'Insulated'
COATED = 'Coated'
BAREINAIR = 'BareInAir'
BAREINWATER = 'BareInWater'
USERSUPPLIED = 'UserSupplied'
class PipeBurialMethod
Bases: object
METHOD2009 = 'Method2009'
METHOD2000 = 'Method2000'
METHOD1983 = 'Method1983'
class InsideFilmCoeffMethod
Bases: object
KREITH = 'Kreith'
KAMINSKY = 'Kaminsky'
class TrilinearCalculationType
Bases: object
CONSTANTPRESSURE = 'ConstantPressure'
CONSTANTRATE = 'ConstantRate'
class FlowRateType
Bases: object
LIQUIDFLOWRATE = 'LiquidFlowRate'
GASFLOWRATE = 'GasFlowRate'
MASSFLOWRATE = 'MassFlowRate'
class FlowControlValveMaxFlowRateType
Bases: object
LIQUIDFLOWRATE = 'LiquidFlowRate'
WATERFLOWRATE = 'WaterFlowRate'
GASFLOWRATE = 'GasFlowRate'
MASSFLOWRATE = 'MassFlowRate'
class FlowControlValveSizeCalc
Bases: object
CHOKEAREA = 'EquivalentChokeArea'
PORTDIAMETER = 'PortDiameter'
class RangeType
Bases: object
RANGEINCREMENT = 'rangeIncrement'
RANGEDECREMENT = 'rangeDecrement'
RANGESTEP = 'rangeStep'
RANGEMULTIPLY = 'rangeMultiply'
class SinglePhaseFlowCorrelation
Bases: object
MOODY = 'Moody'
AGA = 'AGA'
PANHANDLEA = "Panhandle 'A'"
PANHANDLEB = "Panhandle 'B'"
HAZEN_WILLIAMS = 'Hazen - Williams'
WEYMOUTH = 'Weymouth'
CULLENDER_SMITH = 'Cullender - Smith'
class SystemVarType
Bases: object
UNDEFINED = 'varUndefined'
INLETPRESSURE = 'varInletPressure'
OUTLETPRESSURE = 'varOutletPressure'
LIQFLOWRATE = 'varLiqFlowrate'
GASFLOWRATE = 'varGasFlowrate'
MASSFLOWRATE = 'varMassFlowrate'
CUSTOM = 'varCustom'
class DeviationRelativeDepth
Bases: object
ORIGINALRKB = 'OriginalRKB'
RKB = 'RKB'
GL = 'GL'
MSL = 'MSL'
THF = 'THF'
class TrajectoryDependentParameter
Bases: object
MD = 'MD'
TVD = 'TVD'
ANGLE = 'Angle'
class SurveyType
Bases: object
VERTICALDEVIATION = 'VerticalDeviation'
TWODIMENSIONAL = 'TwoDimensional'
THREEDIMENSIONAL = 'ThreeDimensional'
class ZoneMaterial
Bases: object
UNKNOWN = 'unknown'
SHALE = 'shale'
SAND = 'sand'
WATER = 'water'
class GISWMSLayerPropertyFormat
Bases: object
PNG = 'PNG'
JPEG = 'JPEG'
class GasRatioOption
Bases: object
GLR = 'GLR'
GOR = 'GOR'
LGR = 'LGR'
OGR = 'OGR'
class WaterRatioOption
Bases: object
WATERCUT = 'WaterCut'
GWR = 'GWR'
WGR = 'WGR'
class DeadOilViscosityCorrelation
Bases: object
BEGGSANDROBINSON = 'BeggsAndRobinson'
GLASO = 'Glaso'
KARTOATMODJO = 'Kartoatmodjo'
DEGHETTO = 'DeGhetto'
HOSSAIN = 'Hossain'
ELSHARKAWY = 'Elsharkawy'
PETROSKYFARSHAD = 'PetroskyFarshad'
USER2POINT = 'User2Point'
USERTABLE = 'UserTable'
class LiveOilViscosityCorrelation
Bases: object
BEGGSANDROBINSON = 'BeggsAndRobinson'
CHEWANDCONNALY = 'ChewandConnaly'
KARTOATMODJO = 'Kartoatmodjo'
KHAN = 'Khan'
DEGHETTO = 'DeGhetto'
HOSSAIN = 'Hossain'
ELSHARKAWY = 'Elsharkawy'
PETROSKYFARSHAD = 'PetroskyFarshad'
class EnthalpyCalcMethod
Bases: object
METHOD1983 = 'Method1983'
METHOD2009 = 'Method2009'
class UndersaturatedOilViscosityCorrelation
Bases: object
NONE = 'None'
VASQUEZANDBEGGS = 'VasquezAndBeggs'
KOUZEL = 'Kouzel'
KARTOATMODJO = 'Kartoatmodjo'
KHAN = 'Khan'
DEGHETTO = 'DeGhetto'
HOSSAIN = 'Hossain'
ELSHARKAWY = 'Elsharkawy'
BERGMANANDSUTTON = 'BergmanAndSutton'
PETROSKYFARSHAD = 'PetroskyFarshad'
class CriticalFlowCorrelation
Bases: object
MECHANISTIC = 'Mechanistic'
GILBERT = 'Gilbert'
ROS = 'Ros'
ACHONG = 'Achong'
BAXENDELL = 'Baxendell'
ASHFORD = 'Ashford'
POETBECK = 'Poetbeck'
OMANA = 'Omana'
PILEHVARI = 'Pilehvari'
class SubCriticalFlowCorrelation
Bases: object
MECHANISTIC = 'Mechanistic'
API14B = 'API14b'
ASHFORD = 'Ashford'
class ComponentFractionType
Bases: object
MOLE = 'Mole'
MASS = 'Mass'
class LiquidViscosityCalculationMethod
Bases: object
CONTINUOUSPHASE = 'ContinuousPhase'
OILWATERVOLUMERATIO = 'OilWaterVolumeRatio'
ORIGINALWOELFLIN = 'OriginalWoelflin'
WOELFLINLOOSE = 'WoelflinLoose'
WOELFLINMEDIUM = 'WoelflinMedium'
WOELFLINTIGHT = 'WoelflinTight'
BRINKMAN = 'Brinkman'
VANDVAND = 'VandVand'
VANDBARNEAMIZRAHI = 'VandBarneaMizrahi'
VANDUSER = 'VandUser'
RICHARDSON = 'Richardson'
LEVITONLEIGHTON = 'LevitonLeighton'
USERTABLE = 'UserTable'
class SaltWaterDensity
Bases: object
DEFAULTDENSITY = 'DefaultDensity'
DENSITY = 'Density'
SALINITY = 'Salinity'
class FluidFlashType
Bases: object
PRESSURETEMPERATURE = 'PressureTemperature'
PRESSUREENTHALPYMASS = 'PressureEnthalpyMass'
PRESSUREENTROPYMASS = 'PressureEntropyMass'
PRESSUREENTHALPYMOLAR = 'PressureEnthalpyMolar'
PRESSUREENTROPYMOLAR = 'PressureEntropyMolar'
class IPRDarcyRatioType
Bases: object
RATIO = 'Ratio'
ABSOLUTE = 'Absolute'
class PerforationSkinMethod
Bases: object
MCLEOD = 'McLeod'
KARAKASTARIQ = 'KarakasTariq'
class WellCompletionType
Bases: object
NONE = 'None'
OPENHOLE = 'OpenHole'
PERFORATED = 'Perforated'
GRAVELPACKEDANDPERFORATED = 'GravelPackedAndPerforated'
OPENHOLEGRAVELPACK = 'OpenHoleGravelPack'
FRACPACK = 'FracPack'
class ChokeValveEquation
Bases: object
MECHANISTIC = 'Mechanistic'
APIRP11V2 = 'APIRP11V2'
class AmbientTemperatureOption
Bases: object
INPUTSINGLEVALUE = 'InputSingleValue'
INPUTMULTIPLEVALUES = 'InputMultipleValues'
USEGLOBALVALUE = 'UseGlobalValue'
class AmbientFluid
Bases: object
AIR = 'Air'
WATER = 'Water'
class WaterInterpolationMethod
Bases: object
INTERPOLATE = 'Interpolate'
STEPFUNCTION = 'StepFunction'
class DeviationSurveyCalculationMethod
Bases: object
MEASUREDDISTANCE = 'measuredDistance'
HORIZONTALDISTANCE = 'horizontalDistance'
VERTICALDISTANCE = 'verticalDistance'
class CompletionTestType
Bases: object
MULTIPOINT = 'Multipoint'
ISOCHRONAL = 'Isochronal'
class GasLiftType
Bases: object
INJECTIONGASRATE = 'InjectionGasRate'
GLR = 'GLR'
GLRINCREASE = 'GLRIncrease'
class GaugeType
Bases: object
UNDEFINED = 'gaugeUndefined'
PRESSURE = 'gaugePressure'
FLOWRATE = 'gaugeFlowRate'
TEMPERATURE = 'gaugeTemperature'
class HeatExchangerPressureSpecification
Bases: object
DISCHARGEPRESSURE = 'dischargePressure'
PRESSUREDROP = 'pressureDrop'
class HeatExchangerTemperatureSpecification
Bases: object
DELTATEMPERATURE = 'deltaTemperature'
DISCHARGETEMPERATURE = 'dischargeTemperature'
DUTY = 'duty'
class OilCalibrationType
Bases: object
DENSITY = 'Density'
OFVF = 'OFVF'
class RodPumpBasisType
Bases: object
STROKELENGTHFREQUENCY = 'StrokeLengthFrequency'
NOMINALRATE = 'NominalRate'
class NetworkDiagramLayerProperty
Bases: object
DEFAULT = 'Default'
LINKLAYER = 'LinkLayer'
EQUIPMENT = 'Equipment'
JUNCTION = 'Junction'
SINKSOURCE = 'SinkSource'
FOLDERS = 'Folders'
GAUGES = 'Gauges'
PROPERTYPANELS = 'PropertyPanels'
CUSTOM = 'Custom'
class SensitivityVariableType
Bases: object
NONE = 'varNone'
INFLOW = 'varInflow'
OUTFLOW = 'varOutflow'
XAXIS = 'varXAxis'
SENSITIVITY = 'varSensitivity'
class CalculatedVariable
Bases: object
INLETPRESSURE = 'calcInletPressure'
OUTLETPRESSURE = 'calcOutletPressure'
FLOWRATE = 'calcFlowrate'
CUSTOM = 'calcCustom'
class Fluid
Bases: object
LIQUID = 'liquid'
GAS = 'gas'
WATER = 'water'
class FluidType
Bases: object
BLACKOIL = 'fluidBlackOil'
COMPOSITIONAL = 'fluidCompositional'
PVT = 'fluidPVT'
MFL = 'fluidMFL'
STEAM = 'fluidSteam'
class PVTPackage
Bases: object
E300 = 'E300'
GERG = 'GERG'
MULTIFLASH = 'MULTIFLASH'
class MultiphaseBoosterType
Bases: object
GENERIC = 'GenericBooster'
ONESUBSEA = 'OneSubseaBooster'
WETGASCOMPRESSOR = 'WetGasCompressor'
class OneSubseaBoosterModel
Bases: object
HX310_250_180 = 'FRAMO Helico-Axial 310-250/180'
HX310_400_180 = 'FRAMO Helico-Axial 310-400/180'
HX310_500_45 = 'FRAMO Helico-Axial 310-500/45'
HX310_500_180 = 'FRAMO Helico-Axial 310-500/180'
HX310_600_120 = 'FRAMO Helico-Axial 310-600/120'
HX310_700_45 = 'FRAMO Helico-Axial 310-700/45'
HX310_800_120 = 'FRAMO Helico-Axial 310-800/120'
HX310_900_45 = 'FRAMO Helico-Axial 310-900/45'
HX310_1100_45 = 'FRAMO Helico-Axial 310-1100/45'
HX310_1100_120 = 'FRAMO Helico-Axial 310-1100/120'
HX360_1200_38 = 'FRAMO Helico-Axial 360-1200/38'
HX360_1500_38 = 'FRAMO Helico-Axial 360-1500/38'
HX360_1800_38 = 'FRAMO Helico-Axial 360-1800/38'
HX330_350_200 = 'OneSubsea Helico-Axial 330-350/200'
HX330_450_200 = 'OneSubsea Helico-Axial 330-450/200'
HX330_550_200 = 'OneSubsea Helico-Axial 330-550/200'
HX330_650_200 = 'OneSubsea Helico-Axial 330-650/200'
HX330_800_200 = 'OneSubsea Helico-Axial 330-800/200'
HX330_1000_200 = 'OneSubsea Helico-Axial 330-1000/200'
HX330_1200_200 = 'OneSubsea Helico-Axial 330-1200/200'
HX330_1400_200 = 'OneSubsea Helico-Axial 330-1400/200'
class WetGasCompressorModel
Bases: object
CRC385_2400_51 = 'OneSubsea-CRC385-2400-51'
CRC385_3600_51 = 'OneSubsea-CRC385-3600-51'
CRC385_4800_51 = 'OneSubsea-CRC385-4800-51'
CRC385_5800_51 = 'OneSubsea-CRC385-5800-51'
CRC385_6900_51 = 'OneSubsea-CRC385-6900-51'
CRC385_8400_51 = 'OneSubsea-CRC385-8400-51'
class WetGasCompressorCoolerModel
Bases: object
NONE = 'None'
USERSPECIFIED = 'User specified'
COOLER6M8B = 'Cooler-6m-8b'
class SeparatorProductFluid
Bases: object
LIQUID = 'liquid'
GAS = 'gas'
WATER = 'water'
OIL = 'oil'
GASOIL = 'gasOil'
GASWATER = 'gasWater'
class TubingSectionType
Bases: object
CASING = 'Casing'
LINER = 'Liner'
OPENHOLE = 'OpenHole'
TUBING = 'Tubing'
TAILPIPE = 'TailPipe'
LONGTUBING = 'Long'
SHORTTUBING = 'Short'
INNERTUBING = 'Inner'
OUTERTUBING = 'Outer'
class AnnulusMaterial
Bases: object
CEMENT = 'Cement'
MUD = 'Mud'
BRINE = 'Brine'
WATER = 'Water'
GAS = 'Gas'
OIL = 'Oil'
DIESEL = 'Diesel'
ACID = 'Acid'
class UserEquipmentType
Bases: object
SURFACE = 'Surface'
ARTIFICIALLIFT = 'ArtificialLift'
DOWNHOLE = 'Downhole'
class CheckValveSetting
Bases: object
NONE = 'None'
BLOCKFORWARD = 'BlockForward'
BLOCKREVERSE = 'BlockReverse'
BLOCKBOTH = 'Off'
class GasLiftInputOption
Bases: object
USEGASSPECIFICGRAVITY = 'UseGasSpecificGravity'
ASSOCIATEEXISTINGFLUID = 'AssociateExistingFluid'
class NitrogenCorrectionMethod
Bases: object
DAKSUTTON = 'DakSutton'
WRINKLEREADES1989 = 'WrinklerEades1989'
class GenericEquipmentPressureSpecification
Bases: object
DISCHARGEPRESSURE = 'dischargePressure'
DELTAPRESSURE = 'deltaPressure'
PRESSURERATIO = 'pressureRatio'
class GenericEquipmentThermodynamics
Bases: object
DEFAULT = 'defaultRoute'
ISENTHALPIC = 'isenthalpicRoute'
ISENTROPIC = 'isentropicRoute'
ISOTHERMAL = 'isothermalRoute'
class CompressorThermodynamics
Bases: object
ADIABATIC = 'routeAdiabatic'
POLYTROPIC = 'routePolytropic'
MOLLIER = 'routeMollier'
class ViscosityCorrection
Bases: object
NONE = 'None'
CENTRILIFT = 'Centrilift'
REDA = 'Reda'
TURZO = 'Turzo'
USER = 'User'
class ProfilePlotOption
Bases: object
DEFAULT = 'Default'
ELEVATIONVSPRESSURE = 'ElevationVsPressure'
ELEVATIONVSTEMPERATURE = 'ElevationVsTemperature'
PRESSUREVSTOTAL_DISTANCE = 'PressureVsTotal_Distance'
TEMPERATUREVSTOTAL_DISTANCE = 'TemperatureVsTotal_Distance'
class PumpThermodynamics
Bases: object
ADIABATIC = 'Adiabatic'
MOLLIER = 'Mollier'
ISOTHERMAL = 'Isothermal'
class CompletionFluidEntry
Bases: object
SINGLEPOINT = 'SinglePoint'
DISTRIBUTED = 'Distributed'
class Orientation
Bases: object
VERTICAL = 'Vertical'
HORIZONTAL = 'Horizontal'
class BoreholeFluid
Bases: object
MUD = 'Mud'
BRINE = 'Brine'
WATER = 'Water'
GAS = 'Gas'
OIL = 'Oil'
DIESEL = 'Diesel'
ACID = 'Acid'
class FormationFluid
Bases: object
OIL = 'Oil'
WATER = 'Water'
GAS = 'Gas'
class RockType
Bases: object
SANDSTONE = 'Sandstone'
LIMESTONE = 'Limestone'
DOLOMITE = 'Dolomite'
SHALE = 'Shale'
COAL = 'Coal'
class PerforationFlowRate
Bases: object
LIQUIDFLOWRATE = 'LiquidFlowRate'
GASFLOWRATE = 'GasFlowRate'
class SensitivityMethod
Bases: object
PERMUTED = 'Permuted'
STEPWITHVARIABLE1 = 'StepWithVariable1'
STEPWITHXAXIS = 'StepWithXAxis'
class VFPTablesOperationTable
Bases: object
ECLIPSE = 'TableEclipse'
PORES = 'TablePores'
VIP = 'TableVIP'
COMP4 = 'TableComp4'
MORES = 'TableMoRes'
class VfpTablesType
Bases: object
PRODUCTION = 'Production'
INJECTION = 'Injection'
class DiagnosticsType
Bases: object
FIXEDPRESSURE = 'FixedPressure'
FIXEDINJECTION = 'FixedInjection'
FIXEDBOTH = 'FixedBoth'
class ThrottlingType
Bases: object
ON = 'On'
OFF = 'Off'
class FlowDirectionTypes
Bases: object
FORWARD = 'forward'
BACKWARD = 'backward'
UNKNOWN = 'unknown'
class PressureGradientType
Bases: object
INCLUDEFRICTIONLOSSES = 'FrictionElevation'
STATIC = 'Static'
class GasLift
Bases: object
Gas Lift Design constants
class DiagnosticsOperationDiagnostics
Bases: object
FIXEDPRESSURE = 'FixedPressure'
FIXEDINJECTION = 'FixedInjection'
FIXEDBOTH = 'FixedBoth'
class DiagnosticsOperationThrottling
Bases: object
ON = 'On'
OFF = 'Off'
class PressureGradient
Bases: object
FRICTIONELEVATION = 'FrictionElevation'
STATIC = 'Static'
class SolutionPoint
Bases: object
LIQUIDPRODRATE = 'LiquidProdRate'
RESERVOIRPRESSURE = 'ReservoirPressure'
INJECTIONRATE = 'InjectionRate'
INJECTIONPRESSURE = 'InjectionPressure'
class DesignSpacing
Bases: object
NEWSPACING = 'NewSpacing'
CURRENTSPACING = 'CurrentSpacing'
OPTIMUMDEPTH = 'OptimumDepth'
VALVEPORTDEPTH = 'ValvePortDepth'
class ResponseSolution
Bases: object
LIQUIDPRODRATE = 'LiquidProdRate'
RESERVOIRPRESSURE = 'ReservoirPressure'
INJECTIONRATE = 'InjectionRate'
INJECTIONPRESSURE = 'InjectionPressure'
class TransferFactor
Bases: object
PINJPPROD = 'PinjPprod'
PPROD = 'Pprod'
class TransferGradient
Bases: object
SURFACEOFFSET = 'SurfaceOffset'
SURFACEOFFSETDP = 'SurfaceOffsetDP'
class DesignMethod
Bases: object
IPOSURFACECLOSE = 'IpoSurfaceClose'
IPOPTMINMAX = 'IpoPtMinMax'
PPODESIGN = 'PpoDesign'
class UnloadingTemperature
Bases: object
INJECTION = 'Injection'
PRODUCTION = 'Production'
AMBIENT = 'Ambient'
UNLOADING = 'Unloading'
class ProductionPressureCurve
Bases: object
MODEL = 'Model'
class DesignSolutionPoint
Bases: object
LIQUIDPRODRATE = 'LiquidProdRate'
RESERVOIRPRESSURE = 'ReservoirPressure'
INJECTIONRATE = 'InjectionRate'
INJECTIONPRESSURE = 'InjectionPressure'
class TopValveLocation
Bases: object
LIQUIDTOSURFACE = 'LiquidToSurface'
LIQUIDLEVEL = 'LiquidLevel'
CALCLIQUIDLEVEL = 'CalcLiquidLevel'
class OperatingValves
Bases: object
ORIFICE = 'Orifice'
IPO = 'IPO'
PPO = 'PPO'
class DesignTreatTransferGradient
Bases: object
OPENINGPRESSURE = 'OpeningPressure'
CLOSINGPRESSURE = 'ClosingPressure'
class DesignTransferGradientDP
Bases: object
INJECTIONPRESSURE = 'InjectionPressure'
PRODUCTIONPRESSURE = 'ProductionPressure'
class BlackOilCalibrationSolutionGas
Bases: object
LASATER = 'Lasater'
STANDING = 'Standing'
VASQUEZANDBEGGS = 'VasquezAndBeggs'
GLASO = 'Glaso'
KARTOATMODJO = 'Kartoatmodjo'
DEGHETTOETAL = 'DeGhettoEtAl'
PETROSKYFARSHAD = 'PetroskyFarshad'
class MultiflashComponent
Bases: object
ONE_2_DIETHYLBENZENE = '1,2-Diethylbenzene'
TWO_2_DIMETHYLPROPANE = '2,2-Dimethylpropane'
THREE_METHYL_HEXANE = '3-methyl hexane'
AMMONIA = 'Ammonia'
ARGON = 'Argon'
BENZENE = 'Benzene'
BUTANE = 'Butane'
CARBON_DIOXIDE = 'Carbon Dioxide'
CARBON_MONOXIDE = 'Carbon Monoxide'
CUMENE = 'Cumene'
CYCLOHEXANE = 'Cyclohexane'
CYCLOPENTANE = 'Cyclopentane'
DECANE = 'Decane'
DIETHYLENE_GLYCOL = 'Diethylene Glycol'
DOCOSANE = 'Docosane'
DODECANE = 'Dodecane'
DOTRIACONTANE = 'Dotriacontane'
EICOSANE = 'Eicosane'
ETHANE = 'Ethane'
ETHANOL = 'Ethanol'
ETHYLBENZENE = 'Ethylbenzene'
ETHYLCYCLOHEXANE = 'Ethylcyclohexane'
ETHYLENE = 'Ethylene'
ETHYLENE_GLYCOL = 'Ethylene Glycol'
HELIUM = 'Helium'
HENEICOSANE = 'Heneicosane'
HEPTACOSANE = 'Heptacosane'
HEPTADECANE = 'Heptadecane'
HEPTANE = 'Heptane'
HEXACOSANE = 'Hexacosane'
HEXADECANE = 'Hexadecane'
HEXANE = 'Hexane'
HEXATRIACONTANE = 'Hexatriacontane'
HYDROGEN = 'Hydrogen'
HYDROGEN_SULPHIDE = 'Hydrogen Sulphide'
ISOBUTANE = 'Isobutane'
ISOPENTANE = 'Isopentane'
METHANE = 'Methane'
METHANOL = 'Methanol'
METHYLCYCLOHEXANE = 'Methylcyclohexane'
METHYLCYCLOPENTANE = 'Methylcyclopentane'
M_XYLENE = 'M-Xylene'
NAPHTHALENE = 'Naphthalene'
NITROGEN = 'Nitrogen'
NONACOSANE = 'Nonacosane'
NONADECANE = 'Nonadecane'
NONANE = 'Nonane'
OCTACOSANE = 'Octacosane'
OCTADECANE = 'Octadecane'
OCTANE = 'Octane'
OXYGEN = 'Oxygen'
O_XYLENE = 'O-Xylene'
PENTACOSANE = 'Pentacosane'
PENTADECANE = 'Pentadecane'
PENTANE = 'Pentane'
PROPANE = 'Propane'
P_XYLENE = 'P-Xylene'
SALT_COMPONENT = 'Salt Component'
TETRACOSANE = 'Tetracosane'
TETRADECANE = 'Tetradecane'
TOLUENE = 'Toluene'
TRIACONTANE = 'Triacontane'
TRICOSANE = 'Tricosane'
TRIDECANE = 'Tridecane'
TRIETHYLENE_GLYCOL = 'Triethylene Glycol'
UNDECANE = 'Undecane'
WATER = 'Water'
class E300Component
Bases: object
BEN = 'BEN'
C1 = 'C1'
C10 = 'C10'
C11 = 'C11'
C12 = 'C12'
C13 = 'C13'
C14 = 'C14'
C15 = 'C15'
C16 = 'C16'
C17 = 'C17'
C18 = 'C18'
C19 = 'C19'
C2 = 'C2'
C20 = 'C20'
C21 = 'C21'
C22 = 'C22'
C23 = 'C23'
C24 = 'C24'
C25 = 'C25'
C26 = 'C26'
C27 = 'C27'
C28 = 'C28'
C29 = 'C29'
C3 = 'C3'
C30 = 'C30'
C31 = 'C31'
C32 = 'C32'
C33 = 'C33'
C34 = 'C34'
C35 = 'C35'
C36 = 'C36'
C37 = 'C37'
C38 = 'C38'
C39 = 'C39'
C4 = 'C4'
C40 = 'C40'
C41 = 'C41'
C42 = 'C42'
C43 = 'C43'
C44 = 'C44'
C45 = 'C45'
C5 = 'C5'
C6 = 'C6'
C7 = 'C7'
C8 = 'C8'
C9 = 'C9'
CO = 'CO'
CO2 = 'CO2'
CYCLOC6 = 'CycloC6'
ETHYLBENZENE = 'Ethylbenzene'
H2 = 'H2'
H2O = 'H2O'
H2S = 'H2S'
IC4 = 'IC4'
IC5 = 'IC5'
MCYCLOC5 = 'McycloC5'
MCYCLOC6 = 'McycloC6'
MPXYLENE = 'MPXylene'
N2 = 'N2'
NC4 = 'NC4'
NC5 = 'NC5'
OXYLENE = 'OXylene'
TOL = 'TOL'
class GERGComponent
Bases: object
ARGON = 'Argon'
CARBON_DIOXIDE = 'Carbon dioxide'
CARBON_MONOXIDE = 'Carbon monoxide'
ETHANE = 'Ethane'
HELIUM = 'Helium'
HYDROGEN = 'Hydrogen'
HYDROGEN_SULPHIDE = 'Hydrogen sulphide'
ISOBUTANE = 'Isobutane'
ISOPENTANE = 'Isopentane'
METHANE = 'Methane'
N_BUTANE = 'n-Butane'
N_DECANE = 'n-Decane'
N_HEPTANE = 'n-Heptane'
N_HEXANE = 'n-Hexane'
NITROGEN = 'Nitrogen'
N_NONANE = 'n-Nonane'
N_OCTANE = 'n-Octane'
N_PENTANE = 'n-Pentane'
OXYGEN = 'Oxygen'
PROPANE = 'Propane'
WATER = 'Water'
class EmulsionViscosityMethod
Bases: object
Set to viscosity of the continuous phase
CONTINUOUSPHASE = 'ContinuousPhase'
OILWATERVOLUMERATIO = 'OilWaterVolumeRatio'
ORIGINALWOELFLIN = 'OriginalWoelflin'
WOELFLINLOOSE = 'WoelflinLoose'
WOELFLINMEDIUM = 'WoelflinMedium'
WOELFLINTIGHT = 'WoelflinTight'
BRINKMAN = 'Brinkman'
VANDVAND = 'VandVand'
VANDBARNEAMIZRAHI = 'VandBarneaMizrahi'
VANDUSER = 'VandUser'
RICHARDSON = 'Richardson'
LEVITONLEIGHTON = 'LevitonLeighton'
KENDALLMONROE = 'KendallMonroe'
USERTABLE = 'UserTable'
class EquationOfState
Bases: object
class Multiflash
Bases: object
PENGROBINSON2PARAMETER = 'PengRobinson2Parameter'
PENGROBINSON3PARAMETER = 'PengRobinson3Parameter'
REDLICHKWONG = 'RedlichKwong'
SOAVEREDLICHKWONG2PARAMETER = 'SoaveRedlichKwong2Parameter'
SOAVEREDLICHKWONG3PARAMETER = 'SoaveRedlichKwong3Parameter'
SOAVEREDLICHKWONG3PARAMETERNRTLMIXINGRULE = 'SoaveRedlichKwong3ParameterNRTLMixingRule'
BENEDICTWEBBRUBINSTARLING = 'BenedictWebbRubinStarling'
CUBICPLUSASSOCIATION = 'CubicPlusAssociation'
CORRESPONDINGSTATES = 'CorrespondingStates'
class GERG
Bases: object
GERG_REFPROP = 'GERG_REFPROP'
class E300
Bases: object
PENGROBINSON3PARAMETERCORRECTED = 'PengRobinson3ParameterCorrected'
PENGROBINSON2PARAMETERCORRECTED = 'PengRobinson2ParameterCorrected'
SOAVEREDLICHKWONG3PARAMETER = 'SoaveRedlichKwong3Parameter'
SOAVEREDLICHKWONG2PARAMETER = 'SoaveRedlichKwong2Parameter'
class ViscosityCorrelationMethod
Bases: object
LOHRENZBRAYCLARK = 'LohrenzBrayClark'
PEDERSEN = 'Pedersen'
AASBERGPETERSEN = 'AasbergPetersen'
NIST = 'NIST'
PEDERSENTWU = 'PedersenTwu'
SUPERTRAPP = 'SuperTRAPP'
class VolumeShiftCorrelationMethod
Bases: object
SORIEDE = 'Soriede'
PENELOUXDBR = 'PenelouxDBR'
MULTIFLASH = 'Multiflash'
class CriticalPropertyCorrelationMethod
Bases: object
KESLERLEE = 'KeslerLee'
CAVETT = 'Cavett'
RIAZIDAUBERT = 'RiaziDaubert'
WINN = 'Winn'
PEDERSEN = 'Pedersen'
SINGLECARBONNUMBER = 'SingleCarbonNumber'
class ThermalCoefficientsCorrelationMethod
Bases: object
KESLERLEE = 'KeslerLee'
KESLERLEEMODIFIED = 'KeslerLeeModified'
MULTIFLASH = 'Multiflash'
class AcfCorrelationMethod
Bases: object
KESLERLEE = 'KeslerLee'
EDMISTER = 'Edmister'
THOMASSEN = 'Thomassen'
PEDERSEN = 'Pedersen'
SINGLECARBONNUMBER = 'SingleCarbonNumber'
class SalinityModel
Bases: object
NONE = 'None'
IONANALYSIS = 'IonAnalysis'
TDS = 'TDS'
class FluidComponentType
Bases: object
HYDROCARBON = 'Hydrocarbon'
NONHYDROCARBON = 'NonHydrocarbon'
class sixgill.definitions.OptimizerVariables
Bases: object
The optimizer Results Variables
GAS_LIFT_RATE = 'OptimizerGas_lift_rate'
WELL_IS_SHUT_OFF = 'OptimizerWell_is_shut_off'
TOTAL_ALLOCATED_POWER_USED = 'OptimizerTotal_allocated_power_used'
TOTAL_ALLOCATED_GAS_INJECTED = 'OptimizerTotal_allocated_gas_injected'
PERCENT_CHANGE_IN_WATER_RATE = 'OptimizerPercent_change_in_water_rate'
PERCENT_CHANGE_IN_GAS_RATE = 'OptimizerPercent_change_in_gas_rate'
PERCENT_CHANGE_IN_OIL_RATE = 'OptimizerPercent_change_in_oil_rate'
TOTAL_WATER_RATE = 'OptimizerTotal_water_rate'
TOTAL_OIL_RATE = 'OptimizerTotal_oil_rate'
EFFICIENCY = 'OptimizerEfficiency'
POWER = 'OptimizerPower'
FREQUENCY = 'OptimizerFrequency'
SPEED = 'OptimizerSpeed'
MAXIMUM_GOR = 'OptimizerMaximum_GOR'
MAXIMUM_CO2 = 'OptimizerMaximum_CO2'
MAXIMUM_H2S = 'OptimizerMaximum_H2S'
BUBBLE_POINT_MARGIN_ = 'OptimizerBubble_point_margin_'
DRAWDOWN_PRESSURE_DROP = 'OptimizerDrawdown_pressure_drop'
MAXIMUM_EROSIONAL_VELOCITY_RATIO = 'OptimizerMaximum_Erosional_velocity_ratio'
CASING_HEAD_PRESSURE = 'OptimizerCasing_head_pressure'
OUTLET_TEMPERATURE = 'OptimizerOutlet_temperature'
OUTLET_PRESSURE = 'OptimizerOutlet_pressure'
WATER_RATE = 'OptimizerWater_rate'
LIQUID_RATE = 'OptimizerLiquid_rate'
OIL_RATE = 'OptimizerOil_rate'
BEAN_SIZE = 'OptimizerBean_size'
TOTAL_GAS_RATE = 'OptimizerTotal_gas_rate'
class sixgill.definitions.SystemVariables
Bases: object
The System and Equipment Results Variables
ALHANATI_CRITERION1 = 'AlhanatiCriterion1'
ALHANATI_CRITERION2 = 'AlhanatiCriterion2'
ARTIFICIAL_LIFT_QUANTITY = 'ArtificialLiftQuantity'
BOTTOM_HOLE_PRESSURE = 'BottomHolePressure'
CASE_NUMBER = 'CaseNumber'
CASE_STATUS = 'CaseStatus'
CASING_HEAD_PRESSURE = 'CasingHeadPressure'
CONED_GOR = 'ConedGOR'
ESP_DELTA_PRESSURE = 'ESPDeltaPressure'
ESP_DELTA_TEMPERATURE = 'ESPDeltaTemperature'
ESP_DISCHARGE_PRESSURE = 'ESPDischargePressure'
ESP_EFFICIENCY = 'ESPEfficiency'
ESP_EFFICIENCY_FACTOR = 'ESPEfficiencyFactor'
ESP_FLOWRATE_FACTOR = 'ESPFlowrateFactor'
ESP_FREQUENCY = 'ESPFrequency'
ESP_HEAD = 'ESPHead'
ESP_HEAD_FACTOR = 'ESPHeadFactor'
ESP_INTAKE_GAS_VOLUME_FRACTION = 'ESPIntakeGasVolumeFraction'
ESP_INTAKE_PRESSURE = 'ESPIntakePressure'
ESP_INTAKE_TOTAL_VOLUMETRIC_FLOWRATE = 'ESPIntakeTotalVolumetricFlowrate'
ESP_NUMBER_OF_STAGES = 'ESPNumberOfStages'
ESP_POWER = 'ESPPower'
ESP_POWER_FACTOR = 'ESPPowerFactor'
ESP_SUCTION_GAS_VOLUME_FRACTION = 'ESPSuctionGasVolumeFraction'
FRICTION_FACTOR_MEAN = 'FrictionFactorMean'
GAS_INJECTION_DEPTH = 'GasInjectionDepth'
GAS_INJECTION_GAS_TEMPERATURE_BEFORE_MIXING = 'GasInjectionGasTemperatureBeforeMixing'
GAS_INJECTION_PRODUCTION_TEMPERATURE_DOWNSTREAM = 'GasInjectionProductionTemperatureDownstream'
GAS_INJECTION_PRODUCTION_TEMPERATURE_UPSTREAM = 'GasInjectionProductionTemperatureUpstream'
GAS_INJECTION_VALVE_DELTA_TEMPERATURE = 'GasInjectionValveDeltaTemperature'
GAS_INJECTION_VALVE_DELTA_PRESSURE = 'GasInjectionValveDeltaPressure'
GAS_LIFT_DIAGNOSTICS_PORT_DIAMETER = 'GLDiagnosticsValvePortDiameter'
GAS_LIFT_DIAGNOSTICS_POSITION_STATUS = 'GLDiagnosticsValvePositionStatus'
GAS_LIFT_DIAGNOSTICS_DOME_TEMPERATURE = 'GLDiagnosticsValveDomeTemperature'
GAS_LIFT_DIAGNOSTICS_GAS_RATE_NO_THROTTLING = 'GLDiagnosticsValveGasRateNoThrottling'
GAS_LIFT_DIAGNOSTICS_STATUS = 'GLDiagnosticsValveStatus'
GAS_LIFT_DIAGNOSTICS_CLOSING_PRESSURE = 'GLDiagnosticsValveClosingPressure'
GAS_LIFT_DIAGNOSTICS_OPENING_PRESSURE = 'GLDiagnosticsValveOpeningPressure'
GAS_LIFT_DIAGNOSTICS_DOME_PRESSURE = 'GLDiagnosticsValveDomePressure'
GAS_LIFT_DIAGNOSTICS_PTRO = 'GLDiagnosticsValvePtro'
GAS_LIFT_DIAGNOSTICS_DISCHARGE_COEFFICIENT = 'GLDiagnosticsValveDischargeCoefficient'
GAS_LIFT_DIAGNOSTICS_PORT_TO_BELLOW_AREA = 'GLDiagnosticsValvePortToBellowArea'
GAS_LIFT_DIAGNOSTICS_OPERATION_MODE = 'GLDiagnosticsValveOperationMode'
GAS_LIFT_DIAGNOSTICS_PORT_TYPE = 'GLDiagnosticsValveType'
GAS_LIFT_INJECTION_CASING_HEAD_TEMPERATURE = 'GasLiftInjectionCasingHeadTemperature'
GAS_LIFT_INJECTION_PORT_DIAMETER = 'GasLiftInjectionPortDiameter'
GAS_LIFT_INJECTION_CASING_PRESSURE = 'GasLiftInjectionCasingPressure'
GAS_LIFT_INJECTION_PRESSURE = 'GasLiftInjectionPressure'
GAS_LIFT_INJECTION_RATIO = 'GasLiftInjectionRatio'
GAS_LIFT_INJECTION_SOURCE_PRESSURE = 'GasLiftInjectionSourcePressure'
GAS_LIFT_INJECTION_CASING_TEMPERATURE = 'GasLiftInjectionCasingTemperature'
GAS_LIFT_INJECTION_TEMPERATURE = 'GasLiftInjectionTemperature'
HEAT_TRANSFER_COEFFICIENT = 'HeatTransferCoefficient'
HEEL_GOR_STOCKTANK = 'HeelGORStockTank'
HEEL_MASS_FLOWRATE_FLUID = 'HeelMassFlowrateFluid'
HEEL_PRESSURE = 'HeelPressure'
HEEL_RESERVOIR_DRAWDOWN = 'HeelReservoirDrawdown'
HEEL_TEMPERATURE = 'HeelTemperature'
HEEL_VELOCITY_FLUID = 'HeelVelocityFluid'
HEEL_VOLUME_FLOWRATE_FLUID_INSITU = 'HeelVolumeFlowrateFluidInSitu'
HEEL_VOLUME_FLOWRATE_FLUID_STOCKTANK = 'HeelVolumeFlowrateFluidStockTank'
HEEL_VOLUME_FLOWRATE_GAS_STOCKTANK = 'HeelVolumeFlowrateGasStockTank'
HEEL_FLOWING_GAS_FLOWRATE_STOCKTANK = 'Gas flowrate at heel (standard cond)'
HEEL_VOLUME_FLOWRATE_LIQUID_INSITU = 'HeelVolumeFlowrateLiquidInSitu'
HEEL_VOLUME_FLOWRATE_LIQUID_STOCKTANK = 'HeelVolumeFlowrateLiquidStockTank'
HEEL_VOLUME_FLOWRATE_OIL_STOCKTANK = 'HeelVolumeFlowrateOilStockTank'
HEEL_WATER_CUT_STOCKTANK = 'HeelWaterCutStockTank'
INLET_EROSIONAL_VELOCITY_RATIO = 'InletErosionalVelocityRatio'
INLET_GOR_STOCKTANK = 'InletGORStockTank'
INLET_MASS_FLOWRATE_FLUID = 'InletMassFlowrateFluid'
INLET_MASS_FRACTION_GAS = 'InletMassFractionGas'
INLET_TEMPERATURE = 'InletTemperature'
INLET_VELOCITY_FLUID = 'InletVelocityFluid'
INLET_VELOCITY_GAS = 'InletVelocityGas'
INLET_VELOCITY_LIQUID = 'InletVelocityLiquid'
INLET_VOLUME_FLOWRATE_FLUID_INSITU = 'InletVolumeFlowrateFluidInSitu'
INLET_VOLUME_FLOWRATE_FLUID_STOCKTANK = 'InletVolumeFlowrateFluidStockTank'
INLET_VOLUME_FLOWRATE_GAS_INSITU = 'InletVolumeFlowrateGas'
INLET_VOLUME_FLOWRATE_GAS_STOCKTANK = 'InletVolumeFlowrateGasStockTank'
INLET_VOLUME_FLOWRATE_LIQUID_INSITU = 'InletVolumeFlowrateLiquid'
INLET_VOLUME_FLOWRATE_LIQUID_STOCKTANK = 'InletVolumeFlowrateLiquidStockTank'
INLET_VOLUME_FLOWRATE_OIL_STOCKTANK = 'InletVolumeFlowrateOilStockTank'
INLET_VOLUME_FRACTION_LIQUID = 'InletVolumeFractionLiquid'
INLET_WATER_CUT_STOCKTANK = 'InletWaterCutStockTank'
INPUT_FLOWRATE = 'InputFlowrate'
INPUT_TUBING_HEAD_PRESSURE = 'InputTubingHeadPressure'
INPUT_WATERCUT = 'InputWatercut'
INPUT_WATER_RATIO = 'InputWaterRatio'
MASS_FLOWRATE_AT_NODAL_ANALYSIS_POINT = 'MassFlowrateAtNodalAnalysisPoint'
MAXIMUM_CORROSION_RATE = 'MaximumCorrosionRate'
MAXIMUM_CORROSION_RISK = 'MaximumCorrosionRisk'
MAXIMUM_EROSION_RISK = 'MaximumErosionRisk'
MAXIMUM_EROSIONAL_VELOCITY_RATIO = 'MaximumErosionalVelocityRatio'
MAXIMUM_EROSION_RATE = 'MaximumErosionRate'
MAXIMUM_HEAT_TRANSFER_COEFFICIENT = 'MaximumHeatTransferCoefficient'
MAXIMUM_HYDRATE_SUB_COOLING_TEMPERATURE_DIFFERENCE = 'MaximumHydrateSubCoolingTemperatureDifference'
MAXIMUM_LIQUID_LOADING_GAS_RATE = 'MaximumLiquidLoadingGasRate'
MAXIMUM_LIQUID_LOADING_VELOCITY_RATIO = 'MaximumLiquidLoadingVelocityRatio'
MAXIMUM_VELOCITY_FLUID = 'MaximumVelocityFluid'
MAXIMUM_VELOCITY_GAS = 'MaximumVelocityGas'
MAXIMUM_VELOCITY_LIQUID = 'MaximumVelocityLiquid'
MAXIMUM_WAX_SUB_COOLING_TEMPERATURE_DIFFERENCE = 'MaximumWaxSubCoolingTemperatureDifference'
NODAL_POINT_BUBBLE_POINT_PRESSURE = 'NodalPointBubblePointPressure'
NODAL_POINT_ENTHALPY_FLUID = 'NodalPointEnthalpyFluid'
NODAL_POINT_FRACTION_LIQUID = 'NodalPointFractionLiquid'
NODAL_POINT_GLR_STOCKTANK = 'NodalPointGLRStockTank'
NODAL_POINT_LGR_STOCKTANK = 'NodalPointLGRStockTank'
NODAL_POINT_MASS_FLOWRATE_FLUID = 'NodalPointMassFlowrateFluid'
NODAL_POINT_PRESSURE = 'NodalPointPressure'
NODAL_POINT_TEMPERATURE = 'NodalPointTemperature'
NODAL_POINT_VELOCITY_FLUID = 'NodalPointVelocityFluid'
NODAL_POINT_VOLUME_FLOWRATE_FLUID_INSITU = 'NodalPointVolumeFlowrateFluidInSitu'
NODAL_POINT_VOLUME_FLOWRATE_FLUID_STOCKTANK = 'NodalPointVolumeFlowrateFluidStockTank'
NODAL_POINT_VOLUME_FLOWRATE_GAS_INSITU = 'NodalPointVolumeFlowrateGasInSitu'
NODAL_POINT_VOLUME_FLOWRATE_GAS_STOCKTANK = 'NodalPointVolumeFlowrateGasStockTank'
NODAL_POINT_VOLUME_FLOWRATE_LIQUID_INSITU = 'NodalPointVolumeFlowrateLiquidInSitu'
NODAL_POINT_VOLUME_FLOWRATE_LIQUID_STOCKTANK = 'NodalPointVolumeFlowrateLiquidStockTank'
NODAL_POINT_VOLUME_FLOWRATE_OIL_STOCKTANK = 'NodalPointVolumeFlowrateOilStockTank'
NODAL_POINT_WATER_CUT_INSITU = 'NodalPointWaterCutInSitu'
NODAL_POINT_WATER_CUT_STOCKTANK = 'NodalPointWaterCutStockTank'
OUTLET_EROSIONAL_VELOCITY = 'OutletErosionalVelocity'
OUTLET_EROSIONAL_VELOCITY_RATIO = 'OutletErosionalVelocityRatio'
OUTLET_FRACTION_CO = 'OutletFractionCO'
OUTLET_FRACTION_CO2 = 'OutletFractionCO2'
OUTLET_FRACTION_H2S = 'OutletFractionH2S'
OUTLET_FRACTION_H2 = 'OutletFractionH2'
OUTLET_FRACTION_N2 = 'OutletFractionN2'
OUTLET_GLR_STOCKTANK = 'OutletGLRStockTank'
OUTLET_GOR_STOCKTANK = 'OutletGORStockTank'
OUTLET_LGR_STOCKTANK = 'OutletLGRStockTank'
OUTLET_MASS_FLOWRATE_FLUID = 'OutletMassFlowrateFluid'
OUTLET_MASS_FLOWRATE_GAS_STOCKTANK = 'OutletMassFlowrateGasStockTank'
OUTLET_MASS_FLOWRATE_OIL_STOCKTANK = 'OutletMassFlowrateOilStockTank'
OUTLET_MASS_FLOWRATE_WATER_STOCKTANK = 'OutletMassFlowrateWaterStockTank'
OUTLET_MASS_FRACTION_GAS = 'OutletMassFractionGas'
OUTLET_SPECIFIC_GRAVITY_GAS = 'OutletSpecificGravityGas'
OUTLET_VELOCITY_FLUID = 'OutletVelocityFluid'
OUTLET_VELOCITY_GAS = 'OutletVelocityGas'
OUTLET_VELOCITY_LIQUID = 'OutletVelocityLiquid'
OUTLET_VOLUME_FLOWRATE_FLUID_INSITU = 'OutletVolumeFlowrateFluidInSitu'
OUTLET_VOLUME_FLOWRATE_FLUID_STOCKTANK = 'OutletVolumeFlowrateFluidStockTank'
OUTLET_VOLUME_FLOWRATE_GAS_INSITU = 'OutletVolumeFlowrateGas'
OUTLET_VOLUME_FLOWRATE_GAS_STOCKTANK = 'OutletVolumeFlowrateGasStockTank'
OUTLET_VOLUME_FLOWRATE_LIQUID_INSITU = 'OutletVolumeFlowrateLiquid'
OUTLET_VOLUME_FLOWRATE_LIQUID_STOCKTANK = 'OutletVolumeFlowrateLiquidStockTank'
OUTLET_VOLUME_FLOWRATE_OIL_STOCKTANK = 'OutletVolumeFlowrateOilStockTank'
OUTLET_VOLUME_FLOWRATE_WATER_STOCKTANK = 'OutletVolumeFlowrateWaterStockTank'
OUTLET_VOLUME_FRACTION_LIQUID = 'OutletVolumeFractionLiquid'
OUTLET_WATER_CUT_STOCKTANK = 'OutletWaterCutStockTank'
PCP_DISCHARGE_PRESSURE = 'PCPDischargePressure'
PCP_EFFICIENCY = 'PCPEfficiency'
PCP_INTAKE_PRESSURE = 'PCPIntakePressure'
PCP_INTAKE_VOLUMETRIC_FLOWRATE_FLUID = 'PCPIntakeVolumetricFlowrateFluid'
PCP_POWER = 'PCPPower'
PCP_SPEED = 'PCPSpeed'
PCP_TORQUE = 'PCPTorque'
PIPE_OUTSIDE_DIAMETER = 'PipeOutsideDiameter'
PRESSURE_DROP_TOTAL_ACCELERATION = 'PressureDropTotalAcceleration'
PRESSURE_DROP_TOTAL_COMPLETION = 'PressureDropTotalCompletion'
RECORD_COUNT = 'RecordCount'
RESISTANCE_ELEVATIONAL = 'ResistanceElevational'
RESISTANCE_FRICTIONAL = 'ResistanceFrictional'
REYNOLDS_NUMBER_MEAN = 'ReynoldsNumberMean'
SEVERE_SLUGGING_INDICATOR = 'SevereSluggingIndicator'
SLUG_FREQUENCY1IN1000 = 'SlugFrequency1In1000'
SLUG_FREQUENCY_MEAN = 'SlugFrequencyMean'
SLUG_LENGTH1IN1000 = 'SlugLength1In1000'
SLUG_LENGTH_MEAN = 'SlugLengthMean'
SLUG_VOLUME1IN1000 = 'SlugVolume1In1000'
SLUG_VOLUME_MEAN = 'SlugVolumeMean'
SPECIFIC_GRAVITY_PRODUCED_GAS = 'SpecificGravityProducedGas'
SPHERE_GENERATED_LIQUID_VOLUME = 'SphereGeneratedLiquidVolume'
SPHERE_GENERATED_LIQUID_VOLUME_DUMPING_TIME = 'SphereGeneratedLiquidVolumeDumpingTime'
SPHERE_TRANSIT_TIME = 'SphereTransitTime'
STOCK_TANK_GAS_AT_NODAL_ANALYSIS_POINT = 'StockTankGasAtNodalAnalysisPoint'
STOCK_TANK_LIQUID_AT_NODAL_ANALYSIS_POINT = 'StockTankLiquidAtNodalAnalysisPoint'
SURFACE_INJECTION_CHOKE_DIAMETER = 'SurfaceInjectionChokeDiameter'
SYSTEM_INLET_PRESSURE = 'SystemInletPressure'
SYSTEM_INLET_TEMPERATURE = 'SystemInletTemperature'
SYSTEM_OUTLET_PRESSURE = 'SystemOutletPressure'
SYSTEM_OUTLET_TEMPERATURE = 'SystemOutletTemperature'
SYSTEM_PRESSURE_LOSS = 'SystemPressureLoss'
SYSTEM_TEMPERATURE_DIFFERENCE = 'SystemTemperatureDifference'
TIME_HOURS = 'Time_Hours'
TOE_PRESSURE = 'ToePressure'
TOE_RESERVOIR_DRAWDOWN = 'ToeReservoirDrawdown'
TOE_TEMPERATURE = 'ToeTemperature'
TOE_VELOCITY_FLUID = 'ToeVelocityFluid'
TOTAL_INJECTION_GAS = 'TotalInjectionGas'
TOTAL_LIQUID_HOLDUP = 'TotalLiquidHoldup'
TOTAL_OIL_HOLDUP = 'TotalOilHoldup'
TOTAL_PRESSURE_DROP_ELEVATIONAL = 'TotalPressureDropElevational'
TOTAL_PRESSURE_DROP_FRICTIONAL = 'TotalPressureDropFrictional'
TOTAL_WATER_HOLDUP = 'TotalWaterHoldup'
WELLHEAD_GOR_STOCKTANK = 'WellheadGORStockTank'
WELLHEAD_MASS_FLOWRATE_FLUID = 'WellheadMassFlowrateFluid'
WELLHEAD_PRESSURE = 'WellheadPressure'
WELLHEAD_TEMPERATURE = 'WellheadTemperature'
WELLHEAD_TRUE_VERTICAL_DEPTH = 'WellheadTrueVerticalDepth'
WELLHEAD_VOLUME_FLOWRATE_FLUID_INSITU = 'WellheadVolumeFlowrateFluidInSitu'
WELLHEAD_VOLUME_FLOWRATE_GAS_STOCKTANK = 'WellheadVolumeFlowrateGasStockTank'
WELLHEAD_VOLUME_FLOWRATE_LIQUID_INSITU = 'WellheadVolumeFlowrateLiquidInSitu'
WELLHEAD_VOLUME_FLOWRATE_LIQUID_STOCKTANK = 'WellheadVolumeFlowrateLiquidStockTank'
WELLHEAD_VOLUME_FLOWRATE_OIL_STOCKTANK = 'WellheadVolumeFlowrateOilStockTank'
WELLHEAD_VOLUME_FLOWRATE_FLUID_STOCKTANK = 'WellheadVolumeFlowrateFluidStockTank'
WELLHEAD_WATER_CUT_STOCKTANK = 'WellheadWaterCutStockTank'
ABSOLUTE_SPEED = 'AbsoluteSpeed'
API_GRAVITY_OIL = 'ApiGravityOil'
ARTIFICIAL_LIFT_FLOWRATE_CONVERSION_FACTOR = 'ArtificialLiftFlowrateConversionFactor'
ARTIFICIAL_LIFT_FLOWRATE_TYPE = 'ArtificialLiftFlowrateType'
BEAN_SIZE = 'BeanSize'
COILED_TUBING_INJECTION_PRESSURE = 'CoiledTubingInjectionPressure'
COMPLETION_VOLUME_FLOWRATE_LIQUID_STOCKTANK = 'CompletionVolumeFlowrateLiquidStockTank'
COMPRESSOR_EFFICIENCY = 'CompressorEfficiency'
COMPRESSOR_POWER = 'CompressorPower'
CONTAMINANTS_CO2 = 'ContaminantsCO2'
CONTAMINANTS_H2S = 'ContaminantsH2S'
CONTAMINANTS_N2 = 'ContaminantsN2'
CRITICAL_PRESSURE_RATIO = 'CriticalPressureRatio'
DELTA_ENTHALPY = 'DeltaEnthalpy'
DELTA_ENTROPY = 'DeltaEntropy'
DELTA_PRESSURE = 'DeltaPressure'
DELTA_TEMPERATURE = 'DeltaTemperature'
DENSITY_FLUID_MEAN = 'DensityFluidMean'
DENSITY_GAS_STOCKTANK = 'DensityGasStockTank'
DENSITY_OIL_STOCKTANK = 'DensityOilStockTank'
DENSITY_WATER_STOCKTANK = 'DensityWaterStockTank'
DIAMETER_RATIO = 'DiameterRatio'
DISCHARGE_COEFFICIENT = 'DischargeCoefficient'
DISCHARGE_PRESSURE = 'DischargePressure'
DOWNSTREAM_COOLER_DUTY = 'DownstreamCoolerDuty'
DOWNSTREAM_DENSITY = 'DownstreamDensity'
DOWNSTREAM_HEAT_CAPACITY_RATIO = 'DownstreamHeatCapacityRatio'
DOWNSTREAM_MACH_NUMBER = 'DownstreamMachNumber'
DOWNSTREAM_PRESSURE = 'DownstreamPressure'
DOWNSTREAM_SONIC_VELOCITY = 'DownstreamSonicVelocity'
DOWNSTREAM_VELOCITY = 'DownstreamVelocity'
DOWNSTREAM_VELOCITY_RATIO_CRITICAL = 'DownstreamVelocityRatioCritical'
DUTY = 'Duty'
EFFICIENCY = 'Efficiency'
ELEVATION_DELTA_PRESSURE = 'ElevationDeltaPressure'
ELEVATION_DIFFERENCE = 'ElevationDifference'
ENTHALPY = 'Enthalpy'
EQUIPMENT_TYPE = 'EquipmentType'
EROSIONAL_VELOCITY = 'ErosionalVelocity'
EROSIONAL_VELOCITY_MAXIMUM = 'ErosionalVelocityMaximum'
EROSIONAL_VELOCITY_RATIO = 'ErosionalVelocityRatio'
EXPANSION_FACTOR_GAS = 'ExpansionFactorGas'
EXPANSION_FACTOR_GAS_CRITICAL = 'ExpansionFactorGasCritical'
FLOW_COEFFICIENT_FLUID = 'FlowCoefficientFluid'
FLOW_COEFFICIENT_GAS = 'FlowCoefficientGas'
FLOW_COEFFICIENT_LIQUID = 'FlowCoefficientLiquid'
FLOW_FACTOR = 'FlowFactor'
FLOWING_GAS_VOLUME_FLOWRATE = 'FlowingGasVolumeFlowrate'
FLOWRATE = 'Flowrate'
FLOWRATE_BEYOND_CURVE_MAX_RATE = 'FlowrateBeyondCurveMaxRate'
FLOWRATE_DERIVATIVE_OF_OUTLET_PRESSURE = 'FlowrateDerivativeOfOutletPressure'
FLOWRATE_RATIO_CRITICAL = 'FlowrateRatioCritical'
FLOWRATE_TYPE = 'FlowrateType'
FLUID_HANDLE_STRING = 'FluidHandleString'
FRICTION_DELTA_PRESSURE = 'FrictionDeltaPressure'
GENERIC_EQUIPMENT_DELTA_PRESSURE = 'GenericEquipmentPressureDrop'
GLR_INSITU = 'GLRInSitu'
GLR_STOCKTANK = 'GLRStockTank'
LGR_STOCKTANK = 'LGRStockTank'
GOR_STOCKTANK = 'GORStockTank'
GWR_STOCKTANK = 'GWRStockTank'
HEAD = 'Head'
COMPRESSOR_HEAD = 'CompressorHead'
HEAT_CAPACITY_RATIO_UPSTREAM = 'HeatCapacityRatioUpstream'
HEEL_DRAWDOWN = 'HeelDrawdown'
INJECTION_FLUID_ENTHALPY = 'InjectionFluidEnthalpy'
INJECTION_FLUID_GAS_FLOWRATE_STOCKTANK = 'InjectionFluidGasFlowrateStockTank'
INJECTION_FLUID_LIQUID_FLOWRATE_STOCKTANK = 'InjectionFluidLiquidFlowrateStockTank'
INJECTION_FLUID_MASS_FLOWRATE_STOCKTANK = 'InjectionFluidMassFlowrateStockTank'
INJECTION_FLUID_SPECIFIC_GRAVITY_GAS = 'InjectionFluidSpecificGravityGas'
INJECTION_FLUID_TEMPERATURE = 'InjectionFluidTemperature'
INJECTION_GAS_PRESSURE_AT_CASING_HEAD = 'InjectionGasPressureAtCasingHead'
INJECTION_GAS_PRESSURE_AT_INJECTION_POINT = 'InjectionGasPressureAtInjectionPoint'
INJECTION_GAS_TEMPERATURE_AT_CASING_HEAD = 'InjectionGasTemperatureAtCasingHead'
INJECTION_GAS_TEMPERATURE_AT_INJECTION_POINT = 'InjectionGasTemperatureAtInjectionPoint'
INJECTION_PORT_DELTA_PRESSURE = 'InjectionPortDeltaPressure'
INJECTION_PORT_DELTA_TEMPERATURE = 'InjectionPortDeltaTemperature'
INJECTION_PORT_DEPTH = 'InjectionPortDepth'
INLET_PRESSURE = 'InletPressure'
INLET_PRESSURE_DERIVATIVE_OF_FLOWRATE = 'InletPressureDerivativeOfFlowrate'
INLET_PRESSURE_DERIVATIVE_OF_OUTLET_PRESSURE = 'InletPressureDerivativeOfOutletPressure'
INPUT_FLOWRATE_GAS = 'InputFlowrateGas'
INPUT_FLOWRATE_LIQUID = 'InputFlowrateLiquid'
INPUT_FLOWRATE_OIL = 'InputFlowrateOil'
INPUT_MASS_FLOWRATE_FLUID = 'InputMassFlowrateFluid'
INPUT_TEMPERATURE = 'InputTemperature'
IS_CRITICAL_FLOW = 'IsCriticalFlow'
IS_INJECTING_INTO_COMPLETION = 'IsInjectingIntoCompletion'
IS_SUPER_CRITICAL = 'IsSuperCritical'
LIMITED_BY = 'LimitedBy'
LIMIT_RATIO = 'LimitRatio'
LIQUID_FLOWRATE_CRITICAL = 'LiquidFlowrateCritical'
LIQUID_RATE = 'LiquidRate'
MASS_FLOWRATE_CRITICAL = 'MassFlowrateCritical'
MASS_FLOWRATE_FLUID = 'MassFlowrateFluid'
MASS_FLOWRATE_GAS_STOCKTANK = 'MassFlowrateGasStockTank'
MASS_FLOWRATE_O_IL_STOCKTANK = 'MassFlowrateOIlStockTank'
MASS_FLOWRATE_STOCKTANK = 'MassFlowrateStockTank'
MASS_FLOWRATE_WATER_STOCKTANK = 'MassFlowrateWaterStockTank'
MASS_RATE = 'MassRate'
MASS_RATE_REMOVED = 'MassRateRemoved'
MAX_RATIO_CRITICAL = 'MaxRatioCritical'
OGR_STOCKTANK = 'OGRStockTank'
OUTLET_PRESSURE_DERIVATIVE_OF_FLOWRATE = 'OutletPressureDerivativeOfFlowrate'
OUTLET_PRESSURE = 'OutputPressure'
OUTPUT_FLOWRATE_GAS = 'OutputFlowrateGas'
OUTPUT_FLOWRATE_LIQUID = 'OutputFlowrateLiquid'
OUTPUT_FLOWRATE_OIL = 'OutputFlowrateOil'
INPUT_FLOWRATE_WATER = 'InputFlowrateWater'
OUTPUT_FLOWRATE_WATER = 'OutputFlowrateWater'
OUTPUT_MASS_FLOWRATE_FLUID = 'OutputMassFlowrateFluid'
POWER = 'Power'
SURFACEPOWER = 'SurfacePower'
PRESSURE = 'Pressure'
PRESSURE_DIFFERENCE = 'PressureDifference'
PRESSURE_DIFFERENCE_CRITICAL = 'PressureDifferenceCritical'
PRESSURE_MAXIMUM = 'PressureMaximum'
PRESSURE_RATIO = 'PressureRatio'
PRESSURE_RATIO_CRITICAL = 'PressureRatioCritical'
PRESSURE_REDUCTION_PER_STAGE = 'PressureReductionPerStage'
PUMP_EFFICIENCY = 'PumpEfficiency'
PUMP_POWER = 'PumpPower'
RESERVOIR_TEMPERATURE_AVERAGE = 'ReservoirTemperatureAverage'
ROUTE = 'Route'
SPECIFIC_GRAVITY_GAS_STOCKTANK = 'SpecificGravityGasStockTank'
SPECIFIC_GRAVITY_OIL_INSITU = 'SpecificGravityOilInSitu'
SPECIFIC_GRAVITY_WATER_INSITU = 'SpecificGravityWaterInSitu'
SPEED = 'Speed'
SPEED_FRACTION = 'SpeedFraction'
STAGES = 'Stages'
STATIC_DELTA_PRESSURE = 'StaticDeltaPressure'
STATIC_RESERVOIR_PRESSURE = 'StaticReservoirPressure'
STONEWALL_LIMIT_EXCEEDED = 'StonewallLimitExceeded'
SUCTION_INLET_GAS_VOLUME_PERCENT = 'SuctionInletGasVolumePercent'
SUCTION_PRESSURE = 'SuctionPressure'
SUCTION_PRESSURE_DOWNSTREAM_OF_INLET_CHOKE = 'SuctionPressureDownstreamOfInletChoke'
SURFACE_CHOKE_DIAMETER = 'SurfaceChokeDiameter'
SURFACE_INJECTION_PRESSURE = 'SurfaceInjectionPressure'
TEMPERATURE = 'Temperature'
TEMPERATURE_FLOWING = 'TemperatureFlowing'
TEMPERATURE_MIXED_FLUID = 'TemperatureMixedFluid'
TEMPERATURE_PRODUCTION_FLUID = 'TemperatureProductionFluid'
TOE_DRAWDOWN = 'ToeDrawdown'
TOTAL_VOLUME_RATE_BOOSTER = 'TotalVolumeRateBooster'
TOTAL_VOLUME_RATE_OOS_BOOSTER = 'TotalVolumeRateOOSBooster'
TUBING_PRESSURE = 'TubingPressure'
TYPE = 'Type'
UPSTREAM_COOLER_DUTY = 'UpstreamCoolerDuty'
UPSTREAM_DENSITY = 'UpstreamDensity'
UPSTREAM_MACH_NUMBER = 'UpstreamMachNumber'
UPSTREAM_PIPE_ID = 'UpstreamPipeID'
UPSTREAM_PRESSURE = 'UpstreamPressure'
UPSTREAM_SONIC_VELOCITY = 'UpstreamSonicVelocity'
UPSTREAM_VELOCITY = 'UpstreamVelocity'
UPSTREAM_VELOCITY_RATIO_CRITICAL = 'UpstreamVelocityRatioCritical'
VISCOSITY_CORRELATION_FACTOR_FOR_EFFICIENCY = 'ViscosityCorrelationFactorForEfficiency'
VISCOSITY_CORRELATION_FACTOR_FOR_FLOWRATE = 'ViscosityCorrelationFactorForFlowrate'
VISCOSITY_CORRELATION_FACTOR_FOR_HEAD = 'ViscosityCorrelationFactorForHead'
VISCOSITY_CORRELATION_FACTOR_FOR_POWER = 'ViscosityCorrelationFactorForPower'
VOLUME_FLOWRATE_FLUID = 'VolumeFlowrateFluid'
VOLUME_FLOWRATE_GAS_INSITU = 'VolumeFlowrateGasInSitu'
VOLUME_FLOWRATE_GAS_STOCKTANK = 'VolumeFlowrateGasStockTank'
VOLUME_FLOWRATE_GAS_STANDARD = 'VolumeFlowrateGasStandard'
VOLUME_FLOWRATE_LIQUID_INSITU = 'VolumeFlowrateLiquidInSitu'
VOLUME_FLOWRATE_LIQUID_STOCKTANK = 'VolumeFlowrateLiquidStockTank'
VOLUME_FLOWRATE_OIL_INSITU = 'VolumeFlowrateOilInSitu'
VOLUME_FLOWRATE_OIL_STOCKTANK = 'VolumeFlowrateOilStockTank'
VOLUME_FLOWRATE_WATER_INSITU = 'VolumeFlowrateWaterInSitu'
VOLUME_FLOWRATE_WATER_STOCKTANK = 'VolumeFlowrateWaterStockTank'
VOLUME_FRACTION_GAS = 'VolumeFractionGas'
WATER_CUT_INSITU = 'WaterCutInSitu'
WATER_CUT_STOCKTANK = 'WaterCutStockTank'
WATER_OIL_RATIO = 'WaterOilRatio'
WGR_STOCKTANK = 'WGRStockTank'
WORKING_SPEED = 'WorkingSpeed'
WELL_CURVE_PERFORMANCE_PWI = 'WellCurvePerformancePwiId'
VFP_TABLES = 'VFP_TABLES'
VFP_TABLES_WITH_TEMPERATURE = 'VFP_TABLES_WITH_TEMPERATURE'
TOTAL_MOVING_LIQUID_VOLUME = 'TotalMovingLiquidVolume'
TOTAL_STATIC_LIQUID_VOLUME = 'TotalStaticLiquidVolume'
SPHERE_TIME_IN_PIPELINE = 'SphereTimeInPipeline'
MOTOR_LOAD = 'MotorLoad'
MOTOR_EFFICIENCY = 'MotorEfficiency'
MOTOR_CURRENT = 'MotorCurrent'
MOTOR_VOLTAGE = 'MotorVoltage'
MOTOR_POWER_FACTOR = 'MotorPowerFactor'
CABLE_VOLTAGE_DROP = 'CableVoltageDrop'
FLOW_DIRECTION = 'FlowDirectionVariable'
OPENING_AREA = 'OpeningArea'
FLOW_CONTROL_VALVE_POSITION = 'Position'
MINIMUM_MAOP = 'Minimum MAOP'
MAXIMUM_MAOP_RATIO = 'Maximum MAOP ratio'
MAXIMUM_MAOP_RISK = 'Maximum MAOP risk'
RECIRCULATING_FLOW = 'Recirculating flow'
class sixgill.definitions.ProfileVariables
Bases: object
Available Results Profile Variables
AMBIENT_FLUID_COEFFICIENT_OF_EXPANSION = 'AmbientFluidCoefficientOfExpansion'
AMBIENT_FLUID_CONDUCTIVITY = 'AmbientFluidConductivity'
AMBIENT_FLUID_DENSITY = 'AmbientFluidDensity'
AMBIENT_FLUID_HEAT_CAPACITY = 'AmbientFluidHeatCapacity'
AMBIENT_FLUID_VELOCITY = 'AmbientFluidVelocity'
AMBIENT_FLUID_VISCOSITY = 'AmbientFluidViscosity'
AMBIENT_TEMPERATURE_AT_NODE = 'AmbientTemperatureAtNode'
ANNULUS_INSIDE_DIAMETER = 'AnnulusInsideDiameter'
ANNULUS_OUTSIDE_DIAMETER = 'AnnulusOutsideDiameter'
ASPHALTENE_FORMATION_TEMPERATURE = 'AsphalteneFormationTemperature'
BP_BUBBLE_LENGTH1IN1000 = 'BPBubbleLength1In1000'
BP_BUBBLE_LENGTH_MEAN = 'BPBubbleLengthMean'
BP_SLUG_FREQUENCY = 'BPSlugFrequency'
BP_SLUG_FREQUENCY1IN1000 = 'BPSlugFrequency1In1000'
BP_SLUG_LENGTH1IN1000 = 'BPSlugLength1In1000'
BP_SLUG_LENGTH_MEAN = 'BPSlugLengthMean'
BP_SLUG_LIQUID_HOLDUP = 'BPSlugLiquidHoldup'
BUBBLE_POINT_PRESSURE_INSITU = 'BubblePointPressureInSitu'
BURIAL_DEPTH_CIRCUMFERENCE = 'BurialDepthCircumference'
BURIAL_DEPTH_FACTOR_EXTRA = 'BurialDepthFactorExtra'
BURIAL_DEPTH_OF_PIPE_CENTERLINE = 'BurialDepthOfPipeCenterline'
BURIAL_DEPTH_OF_PIPE_TOPMOST_COAT = 'BurialDepthOfPipeTopmostCoat'
CASING_GAS_PRESSURE = 'CasingGasPressure'
CASING_GAS_TEMPERATURE = 'CasingGasTemperature'
COEF_OF_EXPANSION_GAS = 'CoefOfExpansionGas'
COEF_OF_EXPANSION_LIQUID = 'CoefOfExpansionLiquid'
COMPRESSIBILITY_OIL_INSITU = 'CompressibilityOilInSitu'
CONDUCTIVITY_FLUID_INSITU = 'ConductivityFluidInSitu'
CONDUCTIVITY_GAS_INSITU = 'ConductivityGasInSitu'
CONDUCTIVITY_LIQUID_INSITU = 'ConductivityLiquidInSitu'
CONDUCTIVITY_OIL_INSITU = 'ConductivityOilInSitu'
CONDUCTIVITY_WATER_INSITU = 'ConductivityWaterInSitu'
CORROSION_RATE = 'CorrosionRate'
CORROSION_PIT_RATE = 'CorrosionPitRate'
CORROSION_CUMULATIVE_LOSS = 'CorrosionCumulativeLoss'
CORROSION_RISK = 'CorrosionRisk'
CROSS_SECTIONAL_AREA_FOR_FLOW = 'CrossSectionalAreaForFlow'
CUMULATIVE_ACCELERATION_PRESSURE_DIFFERENCE = 'CumulativeAccelerationPressureDifference'
CUMULATIVE_ELEVATION_PRESSURE_DIFFERENCE = 'CumulativeElevationPressureDifference'
CUMULATIVE_FRICTION_PRESSURE_DIFFERENCE = 'CumulativeFrictionPressureDifference'
CUMULATIVE_GAS_HOLDUP = 'CumulativeGasHoldup'
CUMULATIVE_LIQUID_HOLDUP = 'CumulativeLiquidHoldup'
CUMULATIVE_OIL_HOLDUP = 'CumulativeOilHoldup'
CUMULATIVE_PIPELINE_VOLUME = 'CumulativePipelineVolume'
CUMULATIVE_WATER_HOLDUP = 'CumulativeWaterHoldup'
DENSITY_FLUID_INSITU = 'DensityFluidInSitu'
DENSITY_FLUID_NO_SLIP_INSITU = 'DensityFluidNoSlipInSitu'
DENSITY_GAS_INSITU = 'DensityGasInSitu'
DENSITY_GAS_STOCKTANK = 'DensityGasStockTank'
DENSITY_LIQUID_INSITU = 'DensityLiquidInSitu'
DENSITY_LIQUID_STOCKTANK = 'DensityLiquidStockTank'
DENSITY_OIL_INSITU = 'DensityOilInSitu'
DENSITY_OIL_STOCKTANK = 'DensityOilStockTank'
DENSITY_WATER_INSITU = 'DensityWaterInSitu'
DENSITY_WATER_STOCKTANK = 'DensityWaterStockTank'
DISTRIBUTED_PI_GAS_INSITU = 'DistributedPIGasInSitu'
DISTRIBUTED_PI_LIQUID_INSITU = 'DistributedPILiquidInSitu'
EFFECTIVE_PERMEABILITY = 'EffectivePermeability'
ELEVATION = 'Elevation'
ENTHALPY_FLUID = 'EnthalpyFluid'
ENTROPY_FLUID_INSITU = 'EntropyFluidInSitu'
EQUIVALENT_HYDRAULIC_DIAMETER = 'EquivalentHydraulicDiameter'
EROSION_RISK = 'ErosionRisk'
EROSIONAL_VELOCITY = 'ErosionalVelocity'
EROSIONAL_VELOCITY_RATIO = 'ErosionalVelocityRatio'
EROSION_RATE = 'ErosionRate'
FLOW_PATTERN_GAS_LIQUID = 'FlowPatternGasLiquid'
FLOW_PATTERN_OIL_WATER = 'FlowPatternOilWater'
FLOWRATE_GAS_INSITU = 'FlowrateGasInSitu'
FLOWRATE_LIQUID_INSITU = 'FlowrateLiquidInsitu'
FORMATION_VOLUME_FACTOR_OIL_INSITU = 'FormationVolumeFactorOilInSitu'
FRICTION_FACTOR_RATIO_TWO_PHASE = 'FrictionFactorRatioTwoPhase'
FRICTION_FACTOR_SINGLE_PHASE = 'FrictionFactorSinglePhase'
FROUDE_NUMBER_GAS = 'FroudeNumberGas'
FROUDE_NUMBER_LIQUID = 'FroudeNumberLiquid'
GLR_STOCKTANK = 'GLRStockTank'
GOR_STOCKTANK = 'GORStockTank'
GROUND_CONDUCTIVITY = 'GroundConductivity'
GROUND_HEAT_TRANSFER_COEFFICIENT = 'GroundHeatTransferCoefficient'
GROUND_HEAT_TRANSFER_COEFFICIENT_NO_ADJUSTMENT_BY_AREA_RATIO = 'GroundHeatTransferCoefficientNoAdjustmentByAreaRatio'
GWR_STOCKTANK = 'GWRStockTank'
HEAT_CAPACITY_FLUID_INSITU = 'HeatCapacityFluidInSitu'
HEAT_CAPACITY_GAS_INSITU = 'HeatCapacityGasInSitu'
HEAT_CAPACITY_LIQUID_INSITU = 'HeatCapacityLiquidInSitu'
HEAT_CAPACITY_OIL_INSITU = 'HeatCapacityOilInSitu'
HEAT_CAPACITY_WATER_INSITU = 'HeatCapacityWaterInSitu'
HOLDUP_FRACTION_LIQUID = 'HoldupFractionLiquid'
HOLDUP_LIQUID_WATER = 'HoldupLiquidWater'
HORIZONTAL_DISTANCE = 'HorizontalDistance'
HORIZONTAL_POSITION = 'HorizontalPosition'
HYDRATE_FORMATION_TEMPERATURE = 'HydrateFormationTemperature'
HYDRATE_SUB_COOLING_DELTA_TEMPERATURE = 'HydrateSubCoolingDeltaTemperature'
HYDROSTATIC_HEAD = 'HydrostaticHead'
INLINE_HEATER_MINIMUM_TEMPERATURE = 'InlineHeaterMinimumTemperature'
INLINE_HEATER_POWER_AVAILABLE = 'InlineHeaterPowerAvailable'
INLINE_HEATER_POWER_USED = 'InlineHeaterPowerUsed'
INPUT_HEAT_TRANSFER_COEFFICIENT = 'InputHeatTransferCoefficient'
INSIDE_FILM_FORCED_CONV_NUSSELT_NUMBER = 'InsideFilmForcedConvNusseltNumber'
INSIDE_FILM_GAS_GRASHOF_NUMBER = 'InsideFilmGasGrashofNumber'
INSIDE_FILM_GAS_HEAT_TRANSFER_COEFFICIENT = 'InsideFilmGasHeatTransferCoefficient'
INSIDE_FILM_GAS_NUSSELT_NUMBER = 'InsideFilmGasNusseltNumber'
INSIDE_FILM_GAS_PRANDTL_NUMBER = 'InsideFilmGasPrandtlNumber'
INSIDE_FILM_GAS_REYNOLDS_NUMBER = 'InsideFilmGasReynoldsNumber'
INSIDE_FILM_GRASHOF_NUMBER = 'InsideFilmGrashofNumber'
INSIDE_FILM_GRASHOF_NUMBER_LIQUID = 'InsideFilmGrashofNumberLiquid'
INSIDE_FILM_LIQUID_HEAT_TRANSFER_COEFFICIENT = 'InsideFilmLiquidHeatTransferCoefficient'
INSIDE_FILM_LIQUID_NUSSELT_NUMBER = 'InsideFilmLiquidNusseltNumber'
INSIDE_FILM_LIQUID_PRANDTL_NUMBER = 'InsideFilmLiquidPrandtlNumber'
INSIDE_FILM_LIQUID_REYNOLDS_NUMBER = 'InsideFilmLiquidReynoldsNumber'
INSIDE_FILM_MEAN_HEAT_TRANSFER_COEFFICIENT = 'InsideFilmMeanHeatTransferCoefficient'
INSIDE_FILM_NATURAL_CONV_NUSSELT_NUMBER = 'InsideFilmNaturalConvNusseltNumber'
INSIDE_FILM_NUSSELT_NUMBER = 'InsideFilmNusseltNumber'
INSIDE_FILM_PRANDTL_NUMBER = 'InsideFilmPrandtlNumber'
INSIDE_FILM_REYNOLDS_NUMBER = 'InsideFilmReynoldsNumber'
INSIDE_FLUID_FILM_HEAT_TRANSFER_COEFFICIENT = 'InsideFluidFilmHeatTransferCoefficient'
JOULE_THOMPSON_COEFFICIENT_INSITU = 'JouleThompsonCoefficientInSitu'
LAYER_STATIC_PRESSURE = 'LayerStaticPressure'
LGR_STOCKTANK = 'LGRStockTank'
LIQUID_LOADING_GAS_RATE = 'LiquidLoadingGasRate'
LIQUID_LOADING_VELOCITY = 'LiquidLoadingVelocity'
LIQUID_LOADING_VELOCITY_RATIO = 'LiquidLoadingVelocityRatio'
LIVE_OIL_SATURATED_VISCOSITY_INSITU = 'LiveOilSaturatedViscosityInSitu'
MACH_NUMBER_IN_FLUID = 'MachNumberInFluid'
MASS_FLOWRATE = 'MassFlowrate'
MASS_FLOWRATE_GAS_INSITU = 'MassFlowrateGasInSitu'
MASS_FLOWRATE_GAS_STOCKTANK = 'MassFlowrateGasStockTank'
MASS_FLOWRATE_LIQUID_INSITU = 'MassFlowrateLiquidInSitu'
MASS_FLOWRATE_LIQUID_STOCKTANK = 'MassFlowrateLiquidStockTank'
MASS_FLOWRATE_OIL_INSITU = 'MassFlowrateOilInSitu'
MASS_FLOWRATE_OIL_STOCKTANK = 'MassFlowrateOilStockTank'
MASS_FLOWRATE_WATER_INSITU = 'MassFlowrateWaterInSitu'
MASS_FLOWRATE_WATER_STOCKTANK = 'MassFlowrateWaterStockTank'
MASS_FRACTION_GAS_INSITU = 'MassFractionGasInSitu'
MASS_FRACTION_LIQUID_INSITU = 'MassFractionLiquidInSitu'
MEAN_COEF_OF_EXPANSION_FLUID = 'MeanCoefOfExpansionFluid'
MEAN_VELOCITY_FLUID = 'MeanVelocityFluid'
MEASURED_DEPTH = 'MeasuredDepth'
MOLAR_DENSITY_STOCKTANK = 'MolarDensityStockTank'
MOLAR_VOLUME_STOCKTANK = 'MolarVolumeStockTank'
MOLECULAR_WEIGHT_FLUID = 'MolecularWeightFluid'
MOLE_FRACTION_CO = 'MoleFractionCO'
MOLE_FRACTION_CO2 = 'MoleFractionCO2'
MOLE_FRACTION_H2 = 'MoleFractionH2'
MOLE_FRACTION_H2S = 'MoleFractionH2S'
MOLE_FRACTION_N2 = 'MoleFractionN2'
MUDLINE_TEMPERATURE = 'MudlineTemperature'
NODE_NUMBER = 'NodeNumber'
OGR_STOCKTANK = 'OGRStockTank'
OIL_FORMATION_VOLUME_FACTOR = 'OilFormationVolumeFactor'
OUTSIDE_FILM_FORCED_CONVECTION_HEAT_TRANSFER_COEFFICIENT = 'OutsideFilmForcedConvectionHeatTransferCoefficient'
OUTSIDE_FILM_FORCED_CONVECTION_NUSSELT_NUMBER = 'OutsideFilmForcedConvectionNusseltNumber'
OUTSIDE_FILM_FREE_CONVECTION_HEAT_TRANSFER_COEFFICIENT = 'OutsideFilmFreeConvectionHeatTransferCoefficient'
OUTSIDE_FILM_FREE_CONVECTION_NUSSELT_NUMBER = 'OutsideFilmFreeConvectionNusseltNumber'
OUTSIDE_FILM_GRASHOF_NUMBER = 'OutsideFilmGrashofNumber'
OUTSIDE_FILM_HEAT_TRANSFER_COEFFICIENT_FOR_BURIED_PORTION = 'OutsideFilmHeatTransferCoefficientForBuriedPortion'
OUTSIDE_FILM_HEAT_TRANSFER_COEFFICIENT_FOR_EXPOSED_PORTION = 'OutsideFilmHeatTransferCoefficientForExposedPortion'
OUTSIDE_FILM_PRANDTL_NUMBER = 'OutsideFilmPrandtlNumber'
OUTSIDE_FILM_RALEIGH_NUMBER = 'OutsideFilmRaleighNumber'
OUTSIDE_FILM_REYNOLDS_NUMBER = 'OutsideFilmReynoldsNumber'
OUTSIDE_FLUID_FILM_HEAT_TRANSFER_COEFFICIENT = 'OutsideFluidFilmHeatTransferCoefficient'
OVERALL_AMBIENT_HEAT_TRANSFER_COEFFICIENT = 'OverallAmbientHeatTransferCoefficient'
OVERALL_HEAT_TRANSFER_COEFFICIENT = 'OverallHeatTransferCoefficient'
OVERALL_HEAT_TRANSFER_COEFFICIENT_OF_BURIED_PORTION = 'OverallHeatTransferCoefficientOfBuriedPortion'
OVERALL_HEAT_TRANSFER_COEFFICIENT_OF_EXPOSED_PORTION = 'OverallHeatTransferCoefficientOfExposedPortion'
PHASE_INVERSION_WATERCUT_LIQUID_INSITU = 'PhaseInversionWatercutLiquidInsitu'
PIPE_ANGLE_TO_HORIZONTAL = 'PipeAngleToHorizontal'
PIPE_COATINGS_THICKNESS = 'PipeCoatingsThickness'
PIPE_INSIDE_DIAMETER = 'PipeInsideDiameter'
PIPE_INSIDE_TEMPERATURE = 'PipeInsideTemperature'
PIPE_INSIDE_TEMPERATURE_BURIED_PART = 'PipeInsideTemperatureBuriedPart'
PIPE_INSIDE_TEMPERATURE_EXPOSED_PART = 'PipeInsideTemperatureExposedPart'
PIPE_OUTSIDE_DIAMETER = 'PipeOutsideDiameter'
PIPE_OUTSIDE_DIAMETER_WITH_COATINGS = 'PipeOutsideDiameterWithCoatings'
PIPE_OUTSIDE_TEMPERATURE = 'PipeOutsideTemperature'
PIPE_OUTSIDE_TEMPERATURE_BURIED_PART = 'PipeOutsideTemperatureBuriedPart'
PIPE_OUTSIDE_TEMPERATURE_EXPOSED_PART = 'PipeOutsideTemperatureExposedPart'
PIPE_WALL_CONDUCTIVITY = 'PipeWallConductivity'
PIPE_WALL_HEAT_TRANSFER_COEFFICIENT = 'PipeWallHeatTransferCoefficient'
PIPE_WALL_ROUGHNESS = 'PipeWallRoughness'
PIPE_WALL_THICKNESS = 'PipeWallThickness'
PRESSURE = 'Pressure'
PRESSURE_DROP_RATIO_ELEVATION = 'PressureDropRatioElevation'
PRESSURE_DROP_RATIO_FRICTION = 'PressureDropRatioFriction'
PRESSURE_DROP_RATIO_TOTAL = 'PressureDropRatioTotal'
PRESSURE_GRADIENT_ACCELERATION = 'PressureGradientAcceleration'
PRESSURE_GRADIENT_ELEVATION = 'PressureGradientElevation'
PRESSURE_GRADIENT_FRICTION = 'PressureGradientFriction'
PRESSURE_GRADIENT_TOTAL = 'PressureGradientTotal'
RELATIVE_PERMEABILITY_OIL = 'RelativePermeabilityOil'
RELATIVE_PERMEABILITY_WATER = 'RelativePermeabilityWater'
RESERVOIR_DRAWDOWN = 'ReservoirDrawdown'
RESERVOIR_PRESSURE = 'ReservoirPressure'
RESERVOIR_SATURATION = 'ReservoirSaturation'
RESERVOIR_SPECIFIC_GAS_INFLOW = 'ReservoirSpecificGasInflow'
RESERVOIR_SPECIFIC_MASS_INFLOW = 'ReservoirSpecificMassInflow'
RESERVOIR_TEMPERATURE = 'ReservoirTemperature'
RESISTANCE_OF_BURIED_PORTION_OVERALL = 'ResistanceOfBuriedPortionOverall'
RESISTANCE_OF_EXPOSED_PORTION_OVERALL = 'ResistanceOfExposedPortionOverall'
RESISTANCE_OF_OUTSIDE_FILM_ON_EXPOSED_PORTION = 'ResistanceOfOutsideFilmOnExposedPortion'
REYNOLDS_NUMBER = 'ReynoldsNumber'
SAND_PRODUCTION_RATE = 'SandProductionRate'
SEGMENT_ENTHALPY_GRADIENT = 'SegmentEnthalpyGradient'
SEGMENT_INFLOW_RATE_GRADIENT = 'SegmentInflowRateGradient'
SEGMENT_LENGTH = 'SegmentLength'
SEGMENT_PRESSURE_GRADIENT = 'SegmentPressureGradient'
SEGMENT_TEMPERATURE_GRADIENT = 'SegmentTemperatureGradient'
SINGLE_PHASE_ELEVATION_PRESSURE_GRADIENT = 'SinglePhaseElevationPressureGradient'
SINGLE_PHASE_FRICTIONAL_PRESSURE_GRADIENT = 'SinglePhaseFrictionalPressureGradient'
SINGLE_PHASE_TOTAL_PRESSURE_GRADIENT = 'SinglePhaseTotalPressureGradient'
SKIN_DUE_TO_COMPACTED_ZONE = 'SkinDueToCompactedZone'
SKIN_DUE_TO_DAMAGED_WELLBORE = 'SkinDueToDamagedWellbore'
SKIN_DUE_TO_GRAVEL_PACK = 'SkinDueToGravelPack'
SKIN_DUE_TO_PERFORATION_GEOMETRY = 'SkinDueToPerforationGeometry'
SKIN_FACTOR_OVERALL = 'SkinFactorOverall'
SKIN_FACTOR_RATE_DEPENDENT = 'SkinFactorRateDependent'
SKIN_TURBULENT_DUE_TO_DAMAGED_WELLBORE = 'SkinTurbulentDueToDamagedWellbore'
SKIN_TURBULENT_DUE_TO_GRAVEL_PACKING = 'SkinTurbulentDueToGravelPacking'
SKIN_TURBULENT_DUE_TO_PERFORATIONS = 'SkinTurbulentDueToPerforations'
SLIP_RATIO_GAS_LIQUID = 'SlipRatioGasLiquid'
SLIP_RATIO_OIL_WATER = 'SlipRatioOilWater'
SLUG_FREQUENCY1IN10 = 'SlugFrequency1In10'
SLUG_FREQUENCY1IN100 = 'SlugFrequency1In100'
SLUG_FREQUENCY1IN1000 = 'SlugFrequency1In1000'
SLUG_FREQUENCY_MEAN = 'SlugFrequencyMean'
SEVERE_SLUGGING_INDICATOR_POTS = 'SeverSluggingIndicatorPots'
SLUG_LENGTH1IN10 = 'SlugLength1In10'
SLUG_LENGTH1IN100 = 'SlugLength1In100'
SLUG_LENGTH1IN1000 = 'SlugLength1In1000'
SLUG_LENGTH_MEAN = 'SlugLengthMean'
SLUG_VOLUME1IN10 = 'SlugVolume1In10'
SLUG_VOLUME1IN100 = 'SlugVolume1In100'
SLUG_VOLUME1IN1000 = 'SlugVolume1In1000'
SLUG_VOLUME_MEAN = 'SlugVolumeMean'
SOLUTION_GAS_IN_OIL_INSITU = 'SolutionGasInOilInSitu'
SOLUTION_GAS_IN_WATER_INSITU = 'SolutionGasInWaterInSitu'
SOLUTION_GAS_POTENTIAL_IN_LIQUID_INSITU = 'SolutionGasPotentialInLiquidInSitu'
SOLUTION_GAS_POTENTIAL_IN_OIL_INSITU = 'SolutionGasPotentialInOilInSitu'
SOLUTION_GAS_POTENTIAL_IN_WATER_INSITU = 'SolutionGasPotentialInWaterInSitu'
SOLUTION_GAS_VOLUME_FLOWRATE_INSITU = 'SolutionGasVolumeFlowrateInSitu'
SONIC_VELOCITY_IN_FLUID = 'SonicVelocityInFluid'
SPECIFIC_GRAVITY_GAS_INSITU = 'SpecificGravityGasInSitu'
SPECIFIC_GRAVITY_GAS_STOCKTANK = 'SpecificGravityGasStockTank'
SPECIFIC_GRAVITY_LIQUID_STOCKTANK = 'SpecificGravityLiquidStockTank'
SPECIFIC_GRAVITY_OIL_STOCKTANK = 'SpecificGravityOilStockTank'
SPECIFIC_GRAVITY_WATER_STOCKTANK = 'SpecificGravityWaterStockTank'
SPECIFIC_HEAT_CAPACITY_RATIO_GAS_INSITU = 'SpecificHeatCapacityRatioGasInSitu'
SPHERE_GENERATED_LIQUID_VOLUME_DUMPING_TIME_TOTAL = 'SphereGeneratedLiquidVolumeDumpingTimeTotal'
SPHERE_GENERATED_LIQUID_VOLUME_FROM_SECTION = 'SphereGeneratedLiquidVolumeFromSection'
SPHERE_GENERATED_LIQUID_VOLUME_SO_FAR = 'SphereGeneratedLiquidVolumeSoFar'
SPHERE_TRANSIT_TIME_FROM_SECTION = 'SphereTransitTimeFromSection'
SUPERFICIAL_VELOCITY_GAS = 'SuperficialVelocityGas'
SUPERFICIAL_VELOCITY_LIQUID = 'SuperficialVelocityLiquid'
SUPERFICIAL_VELOCITY_OIL = 'SuperficialVelocityOil'
SUPERFICIAL_VELOCITY_WATER = 'SuperficialVelocityWater'
SURFACE_TENSION_LIQUID_INSITU = 'SurfaceTensionLiquidInSitu'
SURFACE_TENSION_OIL_GAS_INSITU = 'SurfaceTensionOilGasInSitu'
SURFACE_TENSION_OIL_WATER_INSITU = 'SurfaceTensionOilWaterInSitu'
SURFACE_TENSION_WATER_GAS_INSITU = 'SurfaceTensionWaterGasInSitu'
TEMPERATURE = 'Temperature'
TEMPERATURE_FLUID = 'TemperatureFluid'
TEMPERATURE_GRADIENT_ELEVATION = 'TemperatureGradientElevation'
TEMPERATURE_GRADIENT_GROUND_AND_AMBIENT = 'TemperatureGradientGroundAndAmbient'
TEMPERATURE_GRADIENT_HEAT_TRANSFER = 'TemperatureGradientHeatTransfer'
TEMPERATURE_GRADIENT_INSIDE_FILM = 'TemperatureGradientInsideFilm'
TEMPERATURE_GRADIENT_JOULE_THOMSON = 'TemperatureGradientJouleThomson'
TEMPERATURE_GRADIENT_OVERALL = 'TemperatureGradientOverall'
TEMPERATURE_GRADIENT_PIPE_AND_COATINGS = 'TemperatureGradientPipeAndCoatings'
TOTAL_DISTANCE = 'TotalDistance'
TOTAL_SPHERE_TRANSIT_TIME_SO_FAR = 'TotalSphereTransitTimeSoFar'
TRUE_VERTICAL_DEPTH = 'TrueVerticalDepth'
VELOCITY_GAS = 'VelocityGas'
VELOCITY_LIQUID = 'VelocityLiquid'
VELOCITY_OIL = 'VelocityOil'
VELOCITY_WATER = 'VelocityWater'
VISCOSITY_DEAD_OIL_STOCKTANK = 'ViscosityDeadOilStockTank'
VISCOSITY_FLUID_NO_SLIP_INSITU = 'ViscosityFluidNoSlipInSitu'
VISCOSITY_FLUID_SLIP_INSITU = 'ViscosityFluidSlipInSitu'
VISCOSITY_GAS_INSITU = 'ViscosityGasInSitu'
VISCOSITY_LIQUID_INSITU = 'ViscosityLiquidInSitu'
VISCOSITY_OIL_INSITU = 'ViscosityOilInSitu'
VISCOSITY_WATER_INSITU = 'ViscosityWaterInSitu'
VOLUME_FLOWRATE_FLUID_INSITU = 'VolumeFlowrateFluidInSitu'
VOLUME_FLOWRATE_GAS_INSITU = 'VolumeFlowrateGasInSitu'
VOLUME_FLOWRATE_GAS_INSITU_IDEAL = 'VolumeFlowrateGasInsituIdeal'
VOLUME_FLOWRATE_GAS_STOCKTANK = 'VolumeFlowrateGasStockTank'
VOLUME_FLOWRATE_LIQUID_INSITU = 'VolumeFlowrateLiquidInSitu'
VOLUME_FLOWRATE_LIQUID_STOCKTANK = 'VolumeFlowrateLiquidStockTank'
VOLUME_FLOWRATE_OIL_INSITU = 'VolumeFlowrateOilInSitu'
VOLUME_FLOWRATE_OIL_STOCKTANK = 'VolumeFlowrateOilStockTank'
VOLUME_FLOWRATE_WATER_INSITU = 'VolumeFlowrateWaterInSitu'
VOLUME_FLOWRATE_WATER_STOCKTANK = 'VolumeFlowrateWaterStockTank'
VOLUME_FRACTION_GAS_INSITU = 'VolumeFractionGasInSitu'
VOLUME_FRACTION_LIQUID = 'VolumeFractionLiquid'
VOLUME_FRACTION_LIQUID_STOCKTANK = 'VolumeFractionLiquidStockTank'
WATERCUT = 'Watercut'
WATER_CUT_STOCKTANK = 'WaterCutStockTank'
WAX_FORMATION_TEMPERATURE = 'WaxFormationTemperature'
WAX_SUB_COOLING_DELTA_TEMPERATURE = 'WaxSubCoolingDeltaTemperature'
WGR_STOCKTANK = 'WGRStockTank'
Z_FACTOR_GAS_INSITU = 'ZFactorGasInSitu'
GAS_WALL_SHEAR_STRESS = 'GasWallShearStress'
OIL_WALL_SHEAR_STRESS = 'OilWallShearStress'
WATER_WALL_SHEAR_STRESS = 'WaterWallShearStress'
LIQUID_WALL_SHEAR_STRESS = 'LiquidWallShearStress'
MAOP = 'Max. Allowable Operating Pressure'
MAOP_RATIO = 'Max. Allowable Operating Pressure ratio'
MAOP_RISK = 'Max. Allowable Operating Pressure risk'
class sixgill.definitions.SpotReportVariables
Bases: object
PRESSURE = 'Pressure'
TEMPERATURE = 'Temperature'
STOCK_TANK_GAS_FLOWRATE = 'StockTankGasFlowrate'
STOCK_TANK_LIQUID_FLOWRATE = 'StockTankLiquidFlowrate'
STOCK_TANK_OIL_FLOWRATE = 'StockTankOilFlowrate'
STOCK_TANK_WATER_FLOWRATE = 'StockTankWaterFlowrate'
STOCK_TANK_GAS_MASS_FLOWRATE = 'StockTankGasMassFlowrate'
STOCK_TANK_LIQUID_MASS_FLOWRATE = 'StockTankLiquidMassFlowrate'
STOCK_TANK_OIL_MASS_FLOWRATE = 'StockTankOilMassFlowrate'
STOCK_TANK_WATER_MASS_FLOWRATE = 'StockTankWaterMassFlowrate'
STOCK_TANK_GLR = 'StockTankGlr'
STOCK_TANK_GOR = 'StockTankGor'
STOCK_TANK_LGR = 'StockTankLgr'
STOCK_TANK_OGR = 'StockTankOgr'
STOCK_TANK_GWR = 'StockTankGwr'
STOCK_TANK_WGR = 'StockTankWgr'
STOCK_TANK_WATERCUT = 'StockTankWatercut'
STOCK_TANK_MOLAR_DENSITY = 'StockTankMolarDensity'
STOCK_TANK_GAS_DENSITY = 'StockTankGasDensity'
STOCK_TANK_LIQUID_DENSITY = 'StockTankLiquidDensity'
STOCK_TANK_OIL_DENSITY = 'StockTankOilDensity'
STOCK_TANK_WATER_DENSITY = 'StockTankWaterDensity'
STOCK_TANK_GAS_SPECIFIC_GRAVITY = 'StockTankGasSpecificGravity'
STOCK_TANK_LIQUID_SPECIFIC_GRAVITY = 'StockTankLiquidSpecificGravity'
STOCK_TANK_OIL_SPECIFIC_GRAVITY = 'StockTankOilSpecificGravity'
STOCK_TANK_WATER_SPECIFIC_GRAVITY = 'StockTankWaterSpecificGravity'
STOCK_TANK_LIQUID_VOLUME_FRACTION = 'StockTankLiquidVolumeFraction'
MASS_FLOWRATE = 'MassFlowrate'
MOLECULAR_WEIGHT_OF_TOTAL_STREAM = 'MolecularWeightOfTotalStream'
AMBIENT_TEMPERATURE_AT_NODE = 'AmbientTemperatureAtNode'
INSIDE_FLUID_FILM_HEAT_TRANSFER_COEFFICIENT = 'InsideFluidFilmHeatTransferCoefficient'
OVERALL_HEAT_TRANSFER_COEFFICIENT = 'OverallHeatTransferCoefficient'
PIPE_OUTSIDE_DIAMETER = 'PipeOutsideDiameter'
TEMPERATURE_GRADIENT_OVERALL = 'TemperatureGradientOverall'
TEMPERATURE_GRADIENT_ELEVATION = 'TemperatureGradientElevation'
TEMPERATURE_GRADIENT_JOULE_THOMSON = 'TemperatureGradientJouleThomson'
TEMPERATURE_GRADIENT_HEAT_TRANSFER = 'TemperatureGradientHeatTransfer'
TEMPERATURE_GRADIENT_INSIDE_FILM = 'TemperatureGradientInsideFilm'
TEMPERATURE_GRADIENT_PIPE_COATINGS = 'TemperatureGradientPipe&Coatings'
TEMPERATURE_GRADIENT_GROUND_AMBIENT = 'TemperatureGradientGround&Ambient'
FLOWING_LIQUID_FLOWRATE = 'FlowingLiquidFlowrate'
FLOWING_GAS_FLOWRATE = 'FlowingGasFlowrate'
FLOWING_OIL_FLOWRATE = 'FlowingOilFlowrate'
FLOWING_WATER_FLOWRATE = 'FlowingWaterFlowrate'
FLOWING_GAS_VOLUME_FLOWRATE = 'FlowingGasVolumeFlowrate'
FLOWING_LIQUID_VOLUME_FLOWRATE = 'FlowingLiquidVolumeFlowrate'
FLOWING_TOTAL_FLOWRATE = 'FlowingTotalFlowrate'
FLOWING_GAS_MASS_FLOWRATE = 'FlowingGasMassFlowrate'
FLOWING_LIQUID_MASS_FLOWRATE = 'FlowingLiquidMassFlowrate'
FLOWING_OIL_MASS_FLOWRATE = 'FlowingOilMassFlowrate'
FLOWING_WATER_MASS_FLOWRATE = 'FlowingWaterMassFlowrate'
FLOWING_LIQUID_MASS_FRACTION = 'FlowingLiquidMassFraction'
FLOWING_LIQUID_VOLUME_FRACTION = 'FlowingLiquidVolumeFraction'
LIQUID_HOLDUP_FRACTION = 'LiquidHoldupFraction'
FLOWING_WATERCUT = 'FlowingWatercut'
FLOWING_LIQUID_PHASE_INVERSION_WATERCUT = 'FlowingLiquidPhaseInversionWatercut'
FLOWING_GAS_VOLUME_FRACTION = 'FlowingGasVolumeFraction'
FLOWING_GAS_SPECIFIC_GRAVITY = 'FlowingGasSpecificGravity'
FLOWING_GAS_IN_SOLUTION = 'FlowingGasInSolution'
FLOWING_SOLUTION_GAS_IN_OIL = 'FlowingSolutionGasInOil'
FLOWING_SOLUTION_GAS_IN_WATER = 'FlowingSolutionGasInWater'
FLOWING_POTENTIAL_OF_SOLUTION_GAS_IN_LIQUID = 'FlowingPotentialOfSolutionGasInLiquid'
FLOWING_POTENTIAL_OF_SOLUTION_GAS_IN_OIL = 'FlowingPotentialOfSolutionGasInOil'
FLOWING_POTENTIAL_OF_SOLUTION_GAS_IN_WATER = 'FlowingPotentialOfSolutionGasInWater'
FLOWING_BUBBLE_POINT_PRESSURE = 'FlowingBubblePointPressure'
FLOWING_GAS_DENSITY = 'FlowingGasDensity'
FLOWING_LIQUID_DENSITY = 'FlowingLiquidDensity'
FLOWING_OIL_DENSITY = 'FlowingOilDensity'
FLOWING_WATER_DENSITY = 'FlowingWaterDensity'
FLOWING_NO_SLIP_MIXTURE_DENSITY = 'FlowingNoSlipMixtureDensity'
FLOWING_GAS_VISCOSITY = 'FlowingGasViscosity'
FLOWING_LIQUID_VISCOSITY = 'FlowingLiquidViscosity'
FLOWING_OIL_VISCOSITY = 'FlowingOilViscosity'
FLOWING_WATER_VISCOSITY = 'FlowingWaterViscosity'
FLOWING_NO_SLIP_MIXTURE_VISCOSITY = 'FlowingNoSlipMixtureViscosity'
FLOWING_LIQUID_SURFACE_TENSION = 'FlowingLiquidSurfaceTension'
FLOWING_OIL_GAS_SURFACE_TENSION = 'FlowingOilGasSurfaceTension'
FLOWING_WATER_GAS_SURFACE_TENSION = 'FlowingWaterGasSurfaceTension'
FLOWING_OIL_WATER_SURFACE_TENSION = 'FlowingOilWaterSurfaceTension'
FLOWING_OIL_FORMATION_VOLUME_FACTOR = 'FlowingOilFormationVolumeFactor'
FLOWING_OIL_COMPRESSIBILITY = 'FlowingOilCompressibility'
FLUID_ENTHALPY = 'FluidEnthalpy'
FLOWING_ENTROPY = 'FlowingEntropy'
FLOWING_GAS_Z_FACTOR = 'FlowingGasZFactor'
MACH_NUMBER_IN_FLUID = 'MachNumberInFluid'
SONIC_VELOCITY_IN_FLUID = 'SonicVelocityInFluid'
FLOWING_IDEAL_GAS_FLOWRATE = 'Flowing(Ideal)GasFlowrate'
FLOWING_JOULE_THOMPSON_COEFFICIENT = 'FlowingJouleThompsonCoefficient'
TOTAL_DISTANCE = 'TotalDistance'
CUMULATIVE_LIQUID_HOLDUP = 'CumulativeLiquidHoldup'
CUMULATIVE_OIL_HOLDUP = 'CumulativeOilHoldup'
CUMULATIVE_WATER_HOLDUP = 'CumulativeWaterHoldup'
CUMULATIVE_GAS_HOLDUP = 'CumulativeGasHoldup'
CUMULATIVE_PIPELINE_VOLUME = 'CumulativePipelineVolume'
TOTAL_SPHERE_GENERATED_LIQUID_VOLUME_SO_FAR = 'TotalSphereGeneratedLiquidVolumeSoFar'
CUMULATIVE_FRICTION_PRESSURE_DIFFERENCE = 'CumulativeFrictionPressureDifference'
CUMULATIVE_ELEVATION_PRESSURE_DIFFERENCE = 'CumulativeElevationPressureDifference'
CUMULATIVE_ACCELERATION_PRESSURE_DIFFERENCE = 'CumulativeAccelerationPressureDifference'
FLOW_PATTERN_GAS_LIQUID = 'FlowPattern,GasLiquid'
FLOW_PATTERN_OIL_WATER = 'FlowPattern,OilWater'
WATER_HOLDUP_IN_LIQUID = 'WaterHoldupInLiquid'
GAS_LIQUID_SLIP_RATIO = 'Gas/LiquidSlipRatio'
OIL_WATER_SLIP_RATIO = 'Oil/WaterSlipRatio'
LIQUID_SUPERFICIAL_VELOCITY = 'LiquidSuperficialVelocity'
GAS_SUPERFICIAL_VELOCITY = 'GasSuperficialVelocity'
OIL_SUPERFICIAL_VELOCITY = 'OilSuperficialVelocity'
WATER_SUPERFICIAL_VELOCITY = 'WaterSuperficialVelocity'
LIQUID_VELOCITY = 'LiquidVelocity'
GAS_VELOCITY = 'GasVelocity'
OIL_VELOCITY = 'OilVelocity'
WATER_VELOCITY = 'WaterVelocity'
FLUID_MEAN_VELOCITY = 'FluidMeanVelocity'
EROSIONAL_VELOCITY_RATIO = 'ErosionalVelocityRatio'
LIQUID_LOADING_VELOCITY_RATIO = 'LiquidLoadingVelocityRatio'
PIPE_INSIDE_DIAMETER = 'PipeInsideDiameter'
EQUIVALENT_HYDRAULIC_DIAMETER = 'EquivalentHydraulicDiameter'
ANNULUS_INSIDE_DIAMETER = 'AnnulusInsideDiameter'
ANNULUS_OUTSIDE_DIAMETER = 'AnnulusOutsideDiameter'
CROSS_SECTIONAL_AREA_FOR_FLOW = 'CrossSectionalAreaForFlow'
PIPE_ANGLE_TO_HORIZONTAL = 'PipeAngleToHorizontal'
PIPE_WALL_ROUGHNESS = 'PipeWallRoughness'
FLOWING_SLIP_MIXTURE_DENSITY = 'FlowingSlipMixtureDensity'
FLOWING_SLIP_MIXTURE_VISCOSITY = 'FlowingSlipMixtureViscosity'
PRESSURE_GRADIENT = 'PressureGradient'
FRICTION_PRESSURE_GRADIENT = 'FrictionPressureGradient'
ELEVATION_PRESSURE_GRADIENT = 'ElevationPressureGradient'
ACCELERATION_PRESSURE_GRADIENT = 'AccelerationPressureGradient'
REYNOLDS_NUMBER = 'ReynoldsNumber'
LIQUID_FROUDE_NUMBER = 'LiquidFroudeNumber'
GAS_FROUDE_NUMBER = 'GasFroudeNumber'
SEVERE_SLUGGING_INDICATOR_POTS = 'SevereSluggingIndicatorPots'
MEAN_SLUG_VOLUME = 'MeanSlugVolume'
MEAN_SLUG_LENGTH = 'MeanSlugLength'
MEAN_SLUG_FREQUENCY = 'MeanSlugFrequency'
ONE_IN_1000_SLUG_VOLUME = '1In1000SlugVolume'
ONE_IN_1000_SLUG_LENGTH = '1In1000SlugLength'
ONE_IN_1000_SLUG_FREQUENCY = '1In1000SlugFrequency'
BP_MEAN_SLUG_LENGTH = 'BpMeanSlugLength'
BP_SLUG_FREQUENCY = 'BpSlugFrequency'
BP_SLUG_LIQUID_HOLDUP = 'BpSlugLiquidHoldup'
BP_1_IN_1000_SLUG_LENGTH = 'Bp1In1000SlugLength'
BP_1_IN_1000_SLUG_FREQUENCY = 'Bp1In1000SlugFrequency'
TOTAL_SPHERE_TRANSIT_TIME_SO_FAR = 'TotalSphereTransitTimeSoFar'
TOTAL_SPHERE_GENERATED_LIQUID_VOLUME_DUMPING_TIME_SO_FAR = 'TotalSphereGeneratedLiquidVolumeDumpingTimeSoFar'
COMPONENTS = 'Components'
class sixgill.definitions.OutputVariables
Bases: object
class System
Bases: object
GAS_FIELD = ['PipeOutsideDiameter', 'SystemPressureLoss', 'SystemInletPressure', 'SystemOutletPressure', 'SystemOutletTemperature', 'TotalLiquidHoldup', 'InletVolumeFlowrateLiquid', 'InletVolumeFlowrateGas', 'InletVelocityFluid', 'OutletVolumeFlowrateLiquid', 'OutletVolumeFlowrateGas', 'OutletVelocityFluid', 'OutletVolumeFlowrateLiquidStockTank', 'OutletGLRStockTank', 'OutletMassFlowrateFluid', 'CaseNumber', 'InletWaterCutStockTank', 'InputTubingHeadPressure', 'InputFlowrate', 'TotalInjectionGas', 'GasLiftInjectionRatio', 'GasLiftInjectionCasingPressure', 'GasLiftInjectionCasingTemperature', 'GasLiftInjectionPortDiameter', 'GasLiftInjectionSourcePressure', 'GasLiftInjectionCasingHeadTemperature', 'PCPIntakePressure', 'PCPIntakeVolumetricFlowrateFluid', 'PCPEfficiency', 'PCPPower', 'PCPTorque', 'PCPSpeed', 'PCPDischargePressure', 'ESPIntakeGasVolumeFraction', 'ESPIntakePressure', 'ESPIntakeTotalVolumetricFlowrate', 'ESPSuctionGasVolumeFraction', 'ESPDischargePressure', 'ESPDeltaPressure', 'ESPPower', 'ESPNumberOfStages', 'ESPHead', 'ESPDeltaTemperature', 'ESPEfficiency', 'ESPEfficiencyFactor', 'ESPFlowrateFactor', 'ESPHeadFactor', 'ESPPowerFactor', 'BottomHolePressure', 'InputWatercut', 'InletVolumeFlowrateLiquidStockTank', 'InletMassFlowrateFluid', 'WellheadPressure', 'WellheadVolumeFlowrateLiquidStockTank', 'WellheadVolumeFlowrateLiquidInSitu', 'WellheadVolumeFlowrateGasStockTank', 'WellheadMassFlowrateFluid', 'NodalPointVolumeFlowrateLiquidStockTank', 'NodalPointPressure', 'NodalPointMassFlowrateFluid', 'TotalPressureDropElevational', 'TotalPressureDropFrictional', 'OutletVolumeFlowrateOilStockTank', 'OutletMassFlowrateOilStockTank', 'OutletVolumeFlowrateWaterStockTank', 'OutletMassFlowrateWaterStockTank', 'OutletVolumeFlowrateGasStockTank', 'OutletMassFlowrateGasStockTank', 'NodalPointVolumeFlowrateGasStockTank', 'InletVolumeFlowrateGasStockTank', 'SevereSluggingIndicator', 'SlugVolumeMean', 'SlugLengthMean', 'SlugFrequencyMean', 'ErosionalVelocityMaximum', 'MaximumErosionalVelocityRatio', 'ESPFrequency', 'SphereGeneratedLiquidVolume', 'InletMassFractionGas', 'TotalOilHoldup', 'TotalWaterHoldup', 'SystemTemperatureDifference', 'OutletWaterCutStockTank', 'OutletGORStockTank', 'OutletFractionCO2', 'OutletFractionH2S', 'OutletFractionN2', 'OutletFractionH2', 'OutletFractionCO', 'CaseStatus', 'MaximumVelocityGas', 'InletErosionalVelocityRatio', 'OutletErosionalVelocityRatio', 'MaximumHydrateSubCoolingTemperatureDifference', 'MaximumErosionRate', 'MaximumCorrosionRate', 'MaximumErosionRisk', 'MaximumCorrosionRisk', 'MaximumLiquidLoadingVelocityRatio', 'MaximumLiquidLoadingGasRate', 'NodalPointBubblePointPressure']
WELL_PERFORMANCE = ['PipeOutsideDiameter', 'SystemPressureLoss', 'SystemInletPressure', 'SystemOutletPressure', 'SystemOutletTemperature', 'TotalLiquidHoldup', 'InletVolumeFlowrateLiquid', 'InletVolumeFlowrateGas', 'InletVelocityFluid', 'OutletVolumeFlowrateLiquid', 'OutletVolumeFlowrateGas', 'OutletVelocityFluid', 'OutletVolumeFlowrateLiquidStockTank', 'OutletGLRStockTank', 'OutletMassFlowrateFluid', 'CaseNumber', 'InletWaterCutStockTank', 'InputTubingHeadPressure', 'InputFlowrate', 'TotalInjectionGas', 'GasLiftInjectionRatio', 'GasLiftInjectionCasingPressure', 'GasLiftInjectionCasingTemperature', 'GasLiftInjectionPortDiameter', 'GasLiftInjectionSourcePressure', 'GasLiftInjectionCasingHeadTemperature', 'PCPIntakePressure', 'PCPIntakeVolumetricFlowrateFluid', 'PCPEfficiency', 'PCPPower', 'PCPTorque', 'PCPSpeed', 'PCPDischargePressure', 'ESPIntakeGasVolumeFraction', 'ESPIntakePressure', 'ESPIntakeTotalVolumetricFlowrate', 'ESPSuctionGasVolumeFraction', 'ESPDischargePressure', 'ESPDeltaPressure', 'ESPPower', 'ESPNumberOfStages', 'ESPHead', 'ESPDeltaTemperature', 'ESPEfficiency', 'ESPEfficiencyFactor', 'ESPFlowrateFactor', 'ESPHeadFactor', 'ESPPowerFactor', 'BottomHolePressure', 'InputWatercut', 'InletVolumeFlowrateLiquidStockTank', 'InletMassFlowrateFluid', 'WellheadPressure', 'WellheadVolumeFlowrateLiquidStockTank', 'WellheadVolumeFlowrateLiquidInSitu', 'WellheadMassFlowrateFluid', 'NodalPointVolumeFlowrateLiquidStockTank', 'NodalPointPressure', 'NodalPointVolumeFlowrateLiquidInSitu', 'NodalPointVolumeFlowrateGasInSitu', 'NodalPointMassFlowrateFluid', 'HeelReservoirDrawdown', 'TotalPressureDropElevational', 'TotalPressureDropFrictional', 'OutletVolumeFlowrateOilStockTank', 'OutletMassFlowrateOilStockTank', 'OutletVolumeFlowrateWaterStockTank', 'OutletMassFlowrateWaterStockTank', 'OutletVolumeFlowrateGasStockTank', 'OutletMassFlowrateGasStockTank', 'WellheadVolumeFlowrateOilStockTank', 'NodalPointVolumeFlowrateOilStockTank', 'WellheadVolumeFlowrateGasStockTank', 'NodalPointVolumeFlowrateGasStockTank', 'InletVolumeFlowrateGasStockTank', 'SevereSluggingIndicator', 'SlugVolumeMean', 'SlugLengthMean', 'SlugFrequencyMean', 'ErosionalVelocityMaximum', 'MaximumErosionalVelocityRatio', 'ESPFrequency', 'SphereGeneratedLiquidVolume', 'WellheadTemperature', 'PressureDropTotalCompletion', 'InletMassFractionGas', 'SystemTemperatureDifference', 'OutletWaterCutStockTank', 'OutletGORStockTank', 'CaseStatus', 'MaximumErosionRate', 'MaximumCorrosionRate', 'MaximumErosionRisk', 'MaximumCorrosionRisk', 'MaximumLiquidLoadingVelocityRatio', 'MaximumLiquidLoadingGasRate', 'NodalPointBubblePointPressure']
FLOW_ASSURANCE = ['PipeOutsideDiameter', 'SystemPressureLoss', 'SystemInletPressure', 'SystemOutletPressure', 'SystemOutletTemperature', 'TotalLiquidHoldup', 'InletVolumeFlowrateLiquid', 'InletVolumeFlowrateGas', 'InletVelocityFluid', 'OutletVolumeFlowrateLiquid', 'OutletVolumeFlowrateGas', 'OutletVelocityFluid', 'HeatTransferCoefficient', 'OutletVolumeFlowrateLiquidStockTank', 'OutletGLRStockTank', 'OutletMassFlowrateFluid', 'CaseNumber', 'InletWaterCutStockTank', 'InputTubingHeadPressure', 'InputFlowrate', 'TotalInjectionGas', 'GasLiftInjectionRatio', 'GasLiftInjectionCasingPressure', 'GasLiftInjectionCasingTemperature', 'GasLiftInjectionPortDiameter', 'GasLiftInjectionSourcePressure', 'GasLiftInjectionCasingHeadTemperature', 'PCPIntakePressure', 'PCPIntakeVolumetricFlowrateFluid', 'PCPEfficiency', 'PCPPower', 'PCPTorque', 'PCPSpeed', 'PCPDischargePressure', 'ESPIntakeGasVolumeFraction', 'ESPIntakePressure', 'ESPIntakeTotalVolumetricFlowrate', 'ESPSuctionGasVolumeFraction', 'ESPDischargePressure', 'ESPDeltaPressure', 'ESPPower', 'ESPNumberOfStages', 'ESPHead', 'ESPDeltaTemperature', 'ESPEfficiency', 'ESPEfficiencyFactor', 'ESPFlowrateFactor', 'ESPHeadFactor', 'ESPPowerFactor', 'BottomHolePressure', 'InputWatercut', 'InletVolumeFlowrateLiquidStockTank', 'InletMassFlowrateFluid', 'WellheadPressure', 'WellheadVolumeFlowrateLiquidStockTank', 'WellheadVolumeFlowrateLiquidInSitu', 'WellheadVolumeFlowrateGasStockTank', 'WellheadMassFlowrateFluid', 'NodalPointVolumeFlowrateLiquidStockTank', 'NodalPointPressure', 'NodalPointMassFlowrateFluid', 'TotalPressureDropElevational', 'TotalPressureDropFrictional', 'OutletVolumeFlowrateOilStockTank', 'OutletMassFlowrateOilStockTank', 'OutletVolumeFlowrateWaterStockTank', 'OutletMassFlowrateWaterStockTank', 'OutletVolumeFlowrateGasStockTank', 'OutletMassFlowrateGasStockTank', 'WellheadVolumeFlowrateOilStockTank', 'NodalPointVolumeFlowrateGasStockTank', 'InletVolumeFlowrateGasStockTank', 'SevereSluggingIndicator', 'SlugVolumeMean', 'SlugLengthMean', 'SlugFrequencyMean', 'SlugVolume1In1000', 'SlugLength1In1000', 'SlugFrequency1In1000', 'ErosionalVelocityMaximum', 'MaximumErosionalVelocityRatio', 'ESPFrequency', 'SphereGeneratedLiquidVolume', 'PressureDropTotalAcceleration', 'InletMassFractionGas', 'TotalOilHoldup', 'TotalWaterHoldup', 'SystemTemperatureDifference', 'MaximumHeatTransferCoefficient', 'OutletWaterCutStockTank', 'OutletGORStockTank', 'CaseStatus', 'MaximumVelocityFluid', 'MaximumVelocityLiquid', 'MaximumVelocityGas', 'MaximumHydrateSubCoolingTemperatureDifference', 'MaximumWaxSubCoolingTemperatureDifference', 'MaximumErosionRate', 'MaximumCorrosionRate', 'MaximumErosionRisk', 'MaximumCorrosionRisk', 'MaximumLiquidLoadingVelocityRatio', 'MaximumLiquidLoadingGasRate', 'NodalPointBubblePointPressure', 'TotalMovingLiquidVolume', 'TotalStaticLiquidVolume', 'Minimum MAOP', 'Maximum MAOP ratio', 'Maximum MAOP risk']
LARGE_NETWORK = ['PipeOutsideDiameter', 'SystemPressureLoss', 'SystemInletPressure', 'SystemOutletPressure', 'SystemOutletTemperature', 'TotalLiquidHoldup', 'InletVolumeFlowrateLiquid', 'InletVolumeFlowrateGas', 'InletVelocityFluid', 'OutletVolumeFlowrateLiquid', 'OutletVolumeFlowrateGas', 'OutletVelocityFluid', 'OutletVolumeFlowrateLiquidStockTank', 'OutletGLRStockTank', 'OutletMassFlowrateFluid', 'TotalInjectionGas', 'GasLiftInjectionRatio', 'GasLiftInjectionCasingPressure', 'GasLiftInjectionCasingTemperature', 'GasLiftInjectionPortDiameter', 'GasLiftInjectionSourcePressure', 'GasLiftInjectionCasingHeadTemperature', 'PCPIntakePressure', 'PCPIntakeVolumetricFlowrateFluid', 'PCPEfficiency', 'PCPPower', 'PCPTorque', 'PCPSpeed', 'PCPDischargePressure', 'ESPIntakeGasVolumeFraction', 'ESPIntakePressure', 'ESPIntakeTotalVolumetricFlowrate', 'ESPSuctionGasVolumeFraction', 'ESPDischargePressure', 'ESPDeltaPressure', 'ESPPower', 'ESPNumberOfStages', 'ESPHead', 'ESPDeltaTemperature', 'ESPEfficiency', 'ESPEfficiencyFactor', 'ESPFlowrateFactor', 'ESPHeadFactor', 'ESPPowerFactor', 'BottomHolePressure', 'InletVolumeFlowrateLiquidStockTank', 'InletMassFlowrateFluid', 'WellheadPressure', 'WellheadVolumeFlowrateLiquidStockTank', 'WellheadVolumeFlowrateLiquidInSitu', 'WellheadVolumeFlowrateGasStockTank', 'NodalPointVolumeFlowrateLiquidStockTank', 'NodalPointPressure', 'NodalPointMassFlowrateFluid', 'TotalPressureDropElevational', 'TotalPressureDropFrictional', 'OutletVolumeFlowrateOilStockTank', 'OutletMassFlowrateOilStockTank', 'OutletVolumeFlowrateWaterStockTank', 'OutletMassFlowrateWaterStockTank', 'OutletVolumeFlowrateGasStockTank', 'OutletMassFlowrateGasStockTank', 'WellheadVolumeFlowrateOilStockTank', 'NodalPointVolumeFlowrateGasStockTank', 'InletVolumeFlowrateGasStockTank', 'SevereSluggingIndicator', 'SlugVolumeMean', 'SlugLengthMean', 'SlugFrequencyMean', 'ErosionalVelocityMaximum', 'MaximumErosionalVelocityRatio', 'ESPFrequency', 'SphereGeneratedLiquidVolume', 'InletMassFractionGas', 'SystemTemperatureDifference', 'OutletWaterCutStockTank', 'OutletGORStockTank', 'MaximumErosionRate', 'MaximumCorrosionRate', 'MaximumErosionRisk', 'MaximumCorrosionRisk', 'MaximumLiquidLoadingVelocityRatio', 'MaximumLiquidLoadingGasRate', 'NodalPointBubblePointPressure']
class Profile
Bases: object
GAS_FIELD = ['HorizontalDistance', 'TotalDistance', 'Elevation', 'Pressure', 'Temperature', 'HoldupFractionLiquid', 'VelocityLiquid', 'VelocityGas', 'MeanVelocityFluid', 'NodeNumber', 'HydrostaticHead', 'PipeInsideDiameter', 'EnthalpyFluid', 'Watercut', 'VolumeFractionLiquid', 'TrueVerticalDepth', 'MeasuredDepth', 'FlowrateLiquidInsitu', 'FlowrateGasInSitu', 'PressureGradientTotal', 'AmbientTemperatureAtNode', 'PressureGradientFriction', 'PressureGradientElevation', 'PressureGradientAcceleration', 'VolumeFlowrateGasStockTank', 'VolumeFlowrateLiquidStockTank', 'VolumeFlowrateOilStockTank', 'GLRStockTank', 'LGRStockTank', 'MassFlowrate', 'VolumeFlowrateGasInSitu', 'VolumeFlowrateLiquidInSitu', 'VolumeFlowrateOilInSitu', 'VolumeFractionGasInSitu', 'SpecificGravityGasInSitu', 'DensityGasInSitu', 'ViscosityGasInSitu', 'ViscosityLiquidInSitu', 'EntropyFluidInSitu', 'ZFactorGasInSitu', 'SlugVolumeMean', 'SlugLengthMean', 'SlugFrequencyMean', 'SeverSluggingIndicatorPots', 'ErosionalVelocity', 'ErosionalVelocityRatio', 'FlowPatternGasLiquid', 'FlowPatternOilWater', 'SuperficialVelocityLiquid', 'SuperficialVelocityGas', 'HorizontalPosition', 'ErosionRate', 'CorrosionRate', 'CorrosionPitRate', 'CorrosionCumulativeLoss', 'ErosionRisk', 'CorrosionRisk', 'HydrateFormationTemperature', 'HydrateSubCoolingDeltaTemperature', 'LiquidLoadingVelocity', 'LiquidLoadingVelocityRatio', 'LiquidLoadingGasRate']
WELL_PERFORMANCE = ['HorizontalDistance', 'TotalDistance', 'Elevation', 'Pressure', 'Temperature', 'HoldupFractionLiquid', 'VelocityLiquid', 'VelocityGas', 'MeanVelocityFluid', 'NodeNumber', 'HydrostaticHead', 'PipeInsideDiameter', 'Watercut', 'VolumeFractionLiquid', 'TrueVerticalDepth', 'MeasuredDepth', 'FlowrateLiquidInsitu', 'FlowrateGasInSitu', 'ReservoirDrawdown', 'PressureGradientTotal', 'LayerStaticPressure', 'OilFormationVolumeFactor', 'AmbientTemperatureAtNode', 'SkinTurbulentDueToDamagedWellbore', 'SkinFactorOverall', 'SkinFactorRateDependent', 'SkinDueToDamagedWellbore', 'SkinDueToPerforationGeometry', 'SkinDueToCompactedZone', 'SkinDueToGravelPack', 'SkinTurbulentDueToPerforations', 'SkinTurbulentDueToGravelPacking', 'EffectivePermeability', 'PressureGradientFriction', 'PressureGradientElevation', 'PressureGradientAcceleration', 'VolumeFlowrateGasStockTank', 'VolumeFlowrateLiquidStockTank', 'VolumeFlowrateOilStockTank', 'GLRStockTank', 'LGRStockTank', 'MassFlowrate', 'VolumeFlowrateGasInSitu', 'VolumeFlowrateLiquidInSitu', 'VolumeFlowrateOilInSitu', 'VolumeFlowrateWaterInSitu', 'VolumeFractionGasInSitu', 'BubblePointPressureInSitu', 'DensityLiquidInSitu', 'DensityOilInSitu', 'DensityWaterInSitu', 'ViscosityGasInSitu', 'ViscosityLiquidInSitu', 'ErosionalVelocity', 'ErosionalVelocityRatio', 'HeatCapacityGasInSitu', 'HeatCapacityLiquidInSitu', 'FlowPatternGasLiquid', 'FlowPatternOilWater', 'SuperficialVelocityLiquid', 'SuperficialVelocityGas', 'HorizontalPosition', 'ErosionRate', 'CorrosionRate', 'CorrosionPitRate', 'CorrosionCumulativeLoss', 'ErosionRisk', 'CorrosionRisk', 'LiquidLoadingVelocity', 'LiquidLoadingVelocityRatio', 'LiquidLoadingGasRate', 'SpecificHeatCapacityRatioGasInSitu', 'SeverSluggingIndicatorPots']
FLOW_ASSURANCE = ['HorizontalDistance', 'TotalDistance', 'Elevation', 'Pressure', 'Temperature', 'HoldupFractionLiquid', 'VelocityLiquid', 'VelocityGas', 'MeanVelocityFluid', 'NodeNumber', 'HydrostaticHead', 'PipeInsideDiameter', 'EnthalpyFluid', 'Watercut', 'VolumeFractionLiquid', 'TrueVerticalDepth', 'MeasuredDepth', 'FlowrateLiquidInsitu', 'FlowrateGasInSitu', 'PressureGradientTotal', 'AmbientTemperatureAtNode', 'PressureGradientFriction', 'PressureGradientElevation', 'PressureGradientAcceleration', 'ReynoldsNumber', 'VolumeFlowrateGasStockTank', 'VolumeFlowrateLiquidStockTank', 'VolumeFlowrateOilStockTank', 'GLRStockTank', 'LGRStockTank', 'MassFlowrate', 'VolumeFlowrateGasInSitu', 'VolumeFlowrateLiquidInSitu', 'VolumeFlowrateOilInSitu', 'VolumeFlowrateWaterInSitu', 'VolumeFractionGasInSitu', 'BubblePointPressureInSitu', 'DensityGasInSitu', 'DensityLiquidInSitu', 'DensityOilInSitu', 'DensityWaterInSitu', 'DensityFluidNoSlipInSitu', 'DensityFluidInSitu', 'ViscosityGasInSitu', 'ViscosityLiquidInSitu', 'EntropyFluidInSitu', 'SlugVolumeMean', 'SlugLengthMean', 'SlugFrequencyMean', 'SeverSluggingIndicatorPots', 'SlugVolume1In1000', 'SlugLength1In1000', 'SlugFrequency1In1000', 'ErosionalVelocity', 'ErosionalVelocityRatio', 'OverallHeatTransferCoefficient', 'InsideFluidFilmHeatTransferCoefficient', 'HeatCapacityGasInSitu', 'HeatCapacityLiquidInSitu', 'FlowPatternGasLiquid', 'FlowPatternOilWater', 'SuperficialVelocityLiquid', 'SuperficialVelocityGas', 'HorizontalPosition', 'ErosionRate', 'CorrosionRate', 'CorrosionPitRate', 'CorrosionCumulativeLoss', 'ErosionRisk', 'CorrosionRisk', 'HydrateFormationTemperature', 'HydrateSubCoolingDeltaTemperature', 'WaxFormationTemperature', 'WaxSubCoolingDeltaTemperature', 'AsphalteneFormationTemperature', 'LiquidLoadingVelocity', 'LiquidLoadingVelocityRatio', 'LiquidLoadingGasRate', 'TemperatureGradientElevation', 'TemperatureGradientJouleThomson', 'TemperatureGradientHeatTransfer', 'TemperatureGradientOverall', 'TemperatureGradientInsideFilm', 'TemperatureGradientPipeAndCoatings', 'TemperatureGradientGroundAndAmbient', 'SpecificHeatCapacityRatioGasInSitu', 'Max. Allowable Operating Pressure', 'Max. Allowable Operating Pressure ratio', 'Max. Allowable Operating Pressure risk']
LARGE_NETWORK = ['HorizontalDistance', 'TotalDistance', 'Elevation', 'Pressure', 'Temperature', 'HoldupFractionLiquid', 'VelocityLiquid', 'VelocityGas', 'MeanVelocityFluid', 'HydrostaticHead', 'PipeInsideDiameter', 'Watercut', 'VolumeFractionLiquid', 'FlowrateLiquidInsitu', 'FlowrateGasInSitu', 'PressureGradientTotal', 'AmbientTemperatureAtNode', 'PressureGradientFriction', 'PressureGradientElevation', 'PressureGradientAcceleration', 'VolumeFlowrateGasStockTank', 'VolumeFlowrateLiquidStockTank', 'VolumeFlowrateOilStockTank', 'GLRStockTank', 'LGRStockTank', 'MassFlowrate', 'VolumeFlowrateGasInSitu', 'VolumeFlowrateLiquidInSitu', 'VolumeFlowrateOilInSitu', 'VolumeFlowrateWaterInSitu', 'VolumeFractionGasInSitu', 'DensityLiquidInSitu', 'DensityOilInSitu', 'DensityWaterInSitu', 'ViscosityGasInSitu', 'ViscosityLiquidInSitu', 'SlugVolumeMean', 'SlugLengthMean', 'SlugFrequencyMean', 'SeverSluggingIndicatorPots', 'ErosionalVelocity', 'ErosionalVelocityRatio', 'HeatCapacityGasInSitu', 'HeatCapacityLiquidInSitu', 'FlowPatternGasLiquid', 'FlowPatternOilWater', 'HorizontalPosition', 'ErosionRate', 'CorrosionRate', 'CorrosionPitRate', 'CorrosionCumulativeLoss', 'ErosionRisk', 'CorrosionRisk', 'LiquidLoadingVelocity', 'LiquidLoadingVelocityRatio', 'LiquidLoadingGasRate', 'SpecificHeatCapacityRatioGasInSitu']
class sixgill.definitions.EspCurvesVariables
Bases: object
Available Results Profile Variables
VARIABLESPEEDCURVE = ('Speed',)
VARIABLEPERFORMANCECURVE = 'Performance'
VALUES = ('Values',)
VALUE = ('Value',)
UNIT = ('Unit',)
FREQUENCIES = ('Frequencies',)
OPERATINGENVELOPE = ('OperatingEnvelope',)
FLOWRATE = ('Flowrate',)
MODEL = ('Model',)
MANUFACTURER = ('Manufacturer',)
MAXFLOWRATE = ('MaxFlowrate',)
MINFLOWRATE = ('MinFlowrate',)
STAGES = ('BaseStages',)
FREQUENCY = ('Frequency',)
SPEED = ('Speed',)
POWER = ('Power',)
HEAD = ('Head',)
EFFICIENCY = ('Efficiency',)
INPUTS = ('Inputs',)
OPERATINGPOINT = ('OperatingPoint',)
MINCURVE = ('MinCurve',)
BEPCURVE = ('BepCurve',)
MAXCURVE = ('MaxCurve',)
class sixgill.definitions.RequestMessageType(*values)
Bases: str, Enum
Available options for optimizer request message
NONE = 'None'
DATA_ONLY = 'DataOnly'
DATA_AND_MODELTEXT = 'DataAndModelText'
DATA_AND_MODELFILENAME = 'DataAndModelFileName'
Definition of the ValidationIssue class
class sixgill.ErosionCorrosionRiskIndexLimits.ErosionCorrosionRiskIndexLimits(node, units_manager, is_erosion)
Bases: object
A class to describe the risk index limits
property negligible
Get the negligible value
property low
Get the low value
property moderate
Get the moderate value
property high
Get the high value
class sixgill.model_setting.ModelSetting(model)
Bases: dict
A class to get and set the model and simulation settings
get(key, default=None)
Return the value for key if key is in the dictionary, else default.
items()
Return a set-like object providing a view on the dict’s items.
keys()
Return a set-like object providing a view on the dict’s keys.
values()
Return an object providing a view on the dict’s values.
pop(k[, d]) v, remove specified key and return the corresponding value.
If the key is not found, return the default if given; otherwise, raise a KeyError.
popitem(*args, **kwargs)
Remove and return a (key, value) pair as a 2-tuple.
Pairs are returned in LIFO (last-in, first-out) order. Raises KeyError if the dict is empty.
clear(*args, **kwargs)
Remove all items from the dict.
update([E, ]**F) None. Update D from mapping/iterable E and F.
If E is present and has a .keys() method, then does: for k in E.keys(): D[k] = E[k] If E is present and lacks a .keys() method, then does: for k, v in E: D[k] = v In either case, this is followed by: for k in F: D[k] = F[k]
setdefault(*args, **kwargs)
Insert key with a value of default if key is not in the dictionary.
Return the value for key if key is in the dictionary, else default.
fromkeys(*args, **kwargs)
Create a new dictionary with keys from iterable and values set to value.
property ambient_temperature
property atmospheric_pressure
property wind_speed
property soil_type
property soil_conductivity
property metocean_data_location
property erosional_velocity_constant
property corrosion_model
property corrosion_efficiency
property max_report_interval_length
property print_computation_segment_result
property max_computation_segment_length
property max_emulsion_inversion_watercut
property network_solver_method
property network_solver_tolerance
property advanced_well_solver_tolerance
property network_solver_max_iterations
property single_branch_keywords
property network_keywords_top
property network_keywords_bottom
property gis_elevation_interval
property gis_elevation_max_points
property use_global_flow_correlation
property use_global_heat_transfer
property use_global_corrosion_model
property pump_speed_factor
property global_flow_correlation
Return global flow correlation settings as a dictionary
property global_heat_transfer_option
Return global heat transfer options as a dictionary
property erosion_limits
The erosion risk index limits
property corrosion_limits
Deprecated. Use corrosion_model_dewaard.corrosion_limits instead. The corrosion risk index limits
property corrosion_model_dewaard
The dewaard corrosion model
property corrosion_model_tpa
The tpa corrosion model
get_corrosion_models(context: str | None = None, component: str | None = None, model_context: AbstractModelContext | None = None, **context_keywords: str) dict
Return corrosion model for wells or flowlines that match the given context. If no context specified, return all corrosion models for wells and flowlines.
Parameters:
context (str) – Optional. The context string to search in.
component (str) – Optional. The type of the item.
model_context (AbstractModelContext) – Optional. The context to search in.
context_keywords (str) – Comma separated list of context search criteria in the form of component=’value’, where component is the model component of the item, and value is the value of the model component. Values can also be ANY (matches any value) or NONE (matches no value).
Returns:
A dictionary that contains corrosion model settings. If the corrosion model is set to “None”, the dictionary will be empty
Return type:
dict
Examples
>>> model.sim_settings.get_corrosion_models(context="Well 23")
>>> model.sim_settings.get_corrosion_models()set_corrosion_models(corrosion_data)
Set corrosion model settings for wells and flowlines from a dictionary. The key of the dictionary is the name of flowline or well that corrosion model is associated with and the value is a sub dictionary that contains corrosion model settings. If name is “Default”, it is considered the global default corrosion model. the settings not belonging to the corrosion model are ignored. Ex: TPA corrosion model has no setting for PH value, if PH value is specified for a TPA model, it will be ignored The keys of sub dictionary are: Parameters.DeWaardCorrosionModel.EFFICIENCY Parameters.DeWaardCorrosionModel.CALCULATEPH Parameters.DeWaardCorrosionModel.PHVALUE
Parameters.TpaCorrosionModel.OXYGENORBACTERIA Parameters.TpaCorrosionModel.PREEXISTINGDAMAGE Parameters.TpaCorrosionModel.POWDERORDEBRIS Parameters.TpaCorrosionModel.PIPEDEPLOYMENTYEAR Parameters.TpaCorrosionModel.CORROSIONASSESSMENTYEAR
get_flow_correlations(context: str | None = None, component: str | None = None, model_context: AbstractModelContext | None = None, **context_keywords: str) dict
Return flow correlation settings for wells or flowlines that match the given context. If no context specified, return all flow correlation settings for wells and flowlines.
Parameters:
context (str) – Optional. The context string to search in.
component (str) – Optional. The type of the item.
model_context (AbstractModelContext) – Optional. The context to search in.
context_keywords (str) – Comma separated list of context search criteria in the form of component=’value’, where component is the model component of the item, and value is the value of the model component. Values can also be ANY (matches any value) or NONE (matches no value).
Returns:
A dictionary that contains flow correlation settings.
Return type:
dict
Examples
>>> model.sim_settings.get_flow_correlations(context="Well 23")
>>> model.sim_settings.get_flow_correlations()get_heat_transfer_options(context: str | None = None, component: str | None = None, model_context: AbstractModelContext | None = None, **context_keywords: str) dict
Return heat transfer options for wells or flowlines that match the given context. If no context specified, return all heat transfer options for wells and flowlines.
Parameters:
context (str) – Optional. The context string to search in.
component (str) – Optional. The type of the item.
model_context (AbstractModelContext) – Optional. The context to search in.
context_keywords (str) – Comma separated list of context search criteria in the form of component=’value’, where component is the model component of the item, and value is the value of the model component. Values can also be ANY (matches any value) or NONE (matches no value).
Returns:
A dictionary that contains heat transfer options.
Return type:
dict
Examples
>>> model.sim_settings.get_heat_transfer_options(context="Well 23")
>>> model.sim_settings.get_heat_transfer_options()set_flow_correlations(flow_correlations)
Set flow correlation settings for well and flowlines from a dictionary. The key of the dictionary is the name of flowline or well that flow correlation is associated with and the value is a sub dictionary that contains flow correlation settings. If name is “Default”, it is considered the global default flow correlation. The keys of sub dictionary are: VerticalMultiphaseSource: Vertifical multiphase flow correlation source VerticalMultiphaseCorrelation: Vertifical multiphase flow correlation name VerticalMultiphaseHoldupFactor: Vertifical multiphase flow correlation holdup factor VerticalMultiphaseFrictionFactor: Vertifical multiphase flow correlation fricition factor HorizontalMultiphaseSource: Horizontal multiphase flow correlation source HorizontalMultiphaseCorrelation: Horizontal multiphase flow correlation name HorizontalMultiphaseHoldupFactor: Horizontal multiphase flow correlation holdup factor HorizontalMultiphaseFrictionFactor: Horizontal multiphase flow correlation fricition factor SwapAngle : Vertical and horizontal swap angle SinglePhaseCorrelation : Single phase flow correlation name SinglePhaseFactor : Single phase flow correlation factor
set_heat_transfer_options(heat_transfer_options)
Set heat transfer option settings for well and flowlines from a dictionary. The key of the dictionary is the name of flowline or well that heat transfer option is associated with and the value is a sub dictionary that contains heat transfer options. If name is “Default”, it is considered as global heat transfer options. The keys of sub dictionary are: PipeBurialMethod: Pipe burial method InsideFilmCoeffMethod: Inside film coefficient method UValueMultiplier: U value multiplier EnableHydrateSubcoolCalc: boolean flag indicating whether to enable hydrate subcooling calculation
class sixgill.model_setting.GlobalFlowCorrelation(get_web_api, get_flow_corr, set_flow_corr)
Bases: object
A class to get and set the global flow correlations.
property vertical_source
property vertical_correlation
property vertical_holdup_factor
property vertical_friction_factor
property horizontal_source
property horizontal_correlation
property horizontal_holdup_factor
property horizontal_friction_factor
class sixgill.model_setting.GlobalHeatTransferOption(get_web_api, get_htc_opt, set_htc_opt)
Bases: object
A class to get and set the global heat transfer options
property pipe_burial_method
property inside_film_coeff_method
property u_value_multiplier
property hydrate_subcooling_calc
The network_optimizer_simulation module maintains the high level network optimization methods for the Pipesim Python Toolkit.
class sixgill.network_optimizer_simulation.NetworkOptimizerSimulation(model, sim_type)
Bases: AbstractNetworkSimulation
Various methods supporting the network optimization
get_conditions(study: str | None = None) Dict
Returns the network optimizer boundary conditions.
Returns the network optimizer boundary conditions for the specified study. If the network optimizer simulation task does not exist in the study, a new one will be created.
Parameters:
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
Returns:
The boundary condition for the study specified.
Return type:
dict
Examples
>>> studynetsim1 = model.tasks.networkoptimizersimulation.get_conditions()
>>> studynetsim1 = model.tasks.networkoptimizersimulation.get_conditions("Study 1")
>>> studynetsim1 = model.tasks.networkoptimizersimulation.get_conditions(study="Study 1")set_conditions(boundaries: dict | None = None, study: str | None = None)
Sets the network optimizer boundary conditions.
Sets the network optimizer boundary conditions for the study specified. If the network optimizer simulation task does not exist in the study, a new one will be created.
Parameters:
boundaries (dict) – Optional. The boundary conditions to be set on the study.
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
Returns:
The existing or created network optimizer simulation operation.
Return type:
Network optimizer simulation operation
Examples
>>> model.tasks.networkoptimizersimulation.set_conditions(
boundaries={"Well:VertComp":{
Parameters.Boundary.PRESSURE:NAN,
Parameters.Boundary.TEMPERATURE:150,
Parameters.Boundary.FLOWRATETYPE:Constants.FlowRateType.GASFLOWRATE,
Parameters.Boundary.GASFLOWRATE:5}
})
>>> model.tasks.networkoptimizersimulation.set_conditions(
boundaries={"Well:VertComp":{
Parameters.Boundary.PRESSURE:3000,
Parameters.Boundary.TEMPERATURE:150,
Parameters.Boundary.FLOWRATETYPE:Constants.FlowRateType.GASFLOWRATE,
Parameters.Boundary.GASFLOWRATE:NAN}
},
study = "Study 1")reset_conditions(study: str | None = None)
Resets the network optimizer boundary conditions from the model.
Resets the network optimizer boundary conditions for the study specified from the model.
Parameters:
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
Returns:
True or False. The reset succeeded (True) or not (False).
Return type:
Bool
Examples
>>> model.tasks.networkoptimizersimulation.reset_conditions()
>>> model.tasks.networkoptimizersimulation.reset_conditions(study = "Study 1")get_initial_conditions(study: str | None = None) Dict
Returns the network optimizer initial conditions .
Returns the network optimizer initial conditions for the specified study. If the network optimizer simulation task does not exist in the study, a new one will be created.
Initial conditions includes: Control type, injection gas, ESP freq, PCP speed, Choke size and Dual string.
Parameters:
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
Returns:
The initial conditions for the study specified
Return type:
dict
Examples
>>> studynetsim1 = model.tasks.networkoptimizersimulation.get_initial_conditions()
>>> studynetsim1 = model.tasks.networkoptimizersimulation.get_initial_conditions("Study 1")
>>> studynetsim1 = model.tasks.networkoptimizersimulation.get_initial_conditions(study="Study 1")set_initial_conditions(initial_conditions: dict | None = None, study: str | None = None)
Sets the network optimizer initial conditions.
Sets the network optimizer initial conditions for the specified study. If the network optimizer simulation task does not exist in the study, a new one will be created.
Initial conditions includes: Control type, injection gas, ESP freq, PCP speed and Choke size without dual string. Dual string is done separately
Parameters:
initial_conditions (dict) – Optional. The initial conditions to be set on the study(Note: dual strings has to be set separately).
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
Returns:
The existing or created network optimizer simulation operation.
Return type:
Network optimizer simulation operation
Examples
>>> model.tasks.networkoptimizersimulation.set_initial_conditions(
boundaries={"Well:VertComp":{Parameters.OptimizerInitialConditions.INJECTIONGAS:NAN,
Parameters.OptimizerInitialConditions.ESPFREQUENCY:55}})get_local_constraints(study: str | None = None) Dict
Returns the network optimizer task local_constraints.
Returns the network optimizer task local_constraints for the specified study. If the network optimizer simulation task does not exist in the study, a new one will be created.
Parameters:
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
Returns:
The the network optimizer task local_constraints.
Return type:
dict
Examples
>>> studynetsim1 = model.tasks.networkoptimizersimulation.get_local_constraints()
>>> studynetsim1 = model.tasks.networkoptimizersimulation.get_local_constraints("Study 1")
>>> studynetsim1 = model.tasks.networkoptimizersimulation.get_local_constraints(study="Study 1")set_local_constraints(constraints: dict | None = None, study: str | None = None)
Sets the network optimizer task local_constraints.
Sets the network optimizer task local_constraints for the specified study. If the network optimizer simulation task does not exist in the study, a new one will be created.
Parameters:
constraints (dict) – Optional. The local constraints to be set on the study.
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
Returns:
The existing or created network optimizer simulation operation.
Return type:
Network optimizer simulation operation
Examples
>>> model.tasks.networkoptimizersimulation.set_local_constraints(
constraints={"Well:VertComp":{
Parameters.LocalConstraint.MAXPOWER:150,
Parameters.LocalConstraint.MINLIQUIDRATE:150}
})
>>> model.tasks.networkoptimizersimulation.set_local_constraints(
constraints={"Well:VertComp":{
Parameters.LocalConstraint.MAXPOWER:150,
Parameters.LocalConstraint.MINLIQUIDRATE:150}},
study = "Study 1")get_parameters(study: str | None = None) Dict
Returns the network optimizer task parameters.
Returns the network optimizer task parameters for the specified study. If the network optimizer simulation task does not exist in the study, a new one will be created.
Parameters includes: optimization control( optimization type, control variables, optimization targets and global constraints) and options (optimization, initialization, network solver, search and well curve parameters options)
Parameters:
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
Returns:
The the network optimizer task parameters.
Return type:
dict
Examples
>>> parsmeters1 = model.tasks.networkoptimizersimulation.get_parameters()
>>> parsmeters1 = model.tasks.networkoptimizersimulation.get_parameters("Study 1")
>>> parsmeters1 = model.tasks.networkoptimizersimulation.get_parameters(study="Study 1")set_parameters(parameters, study: str | None = None)
Sets the network optimizer task parameters.
Sets the network optimizer task parameters for specified study. If the network optimizer simulation task does not exist in the study, a new one will be created.
Parameters:
parameters (dict) – The parameters to be set on the study.
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
Returns:
The existing or created network optimizer simulation operation.
Return type:
Network optimizer simulation operation
Examples
>>> model.tasks.networkoptimizersimulation.set_parameters(
parameters=
{
Parameters.NetworkOptimizerSimulation.OptimizationControl.ControlVariables.CHOKEBEANSIZE:True,
Parameters.NetworkOptimizerSimulation.OptimizationControl.OptimizationTargets.INJECTIONRATE:3
})
>>> model.tasks.networkoptimizersimulation.set_parameters(
parameters=
{
Parameters.NetworkOptimizerSimulation.OptimizationControl.ControlVariables.CHOKEBEANSIZE:True,
Parameters.NetworkOptimizerSimulation.OptimizationControl.OptimizationTargets.INJECTIONRATE:3
}, study = "Study 1")set_dual_strings(reset=False, pair_wells: list | None = None, unpair_wells: list | None = None, study: str | None = None)
Sets the network optimizer task dual string parameters Pairs/unpairs wells(when pairing, two wells will be combined to act as one). Note: To get dual string parameters, use get_initial_conditions.
If the network optimizer simulation task does not exist in the study, a new one will be created.
Parameters:
pair_wells (list of strings) – Optional.The names of the wells to be paired(must be even number of well names).
unpair_wells (list of strings) – Optional.The names of the paired wells to be separated(must be even number of well names).
reset (boolean) – Optional: Separates all dual strings
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
Returns:
The existing or created network optimizer simulation operation.
Return type:
Network optimizer simulation operation
Examples
>>> model.tasks.networkoptimizersimulation.set_dual_strings(
pair_wells=["well_1","well_3"], study = "Study 1"
)
>>> model.tasks.networkoptimizersimulation.set_dual_strings(
reset=True, study = "Study 1"
)
>>> model.tasks.networkoptimizersimulation.set_dual_strings(
pair_wells=["well_1","well_3"],
unpair_wells=["well_4","well_2"],
study = "Study 1")reset_dual_strings(study: str | None = None)
Resets to unpair dual strings for all the wells.
Resets to unpair dual strings for all the wells for a specific study If the network optimizer simulation task does not exist in the study, a new one will be created.
Parameters:
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
Returns:
——-
Network optimizer simulation operation – The existing or created network optimizer simulation operation.
Examples
>>> model.tasks.networkoptimizersimulation.reset_dual_strings(study = "Study 1")
>>> model.tasks.networkoptimizersimulation.reset_dual_strings()run(boundaries: dict | None = None, constraints: dict | None = None, initial_conditions: dict | None = None, parameters: dict | None = None, study: str | None = None)
Runs a network optimizer task
Runs a network optimizer task for the specified study. If the network optimizer simulation task does not exist in the study, a new one will be created.
Parameters:
boundaries (dict) – Optional. The boundary conditions to be set on the study.
constraints (dict) – Optional. The blocal constraints to be set on the study.
initial_conditions (dict) – Optional. The initial conditions to be set on the study.
parameters (dict) – Optional.The parameters to be set on the study.
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
Returns (dict) – Results of a network optimization run.
Examples
>>> model.tasks.networkoptimizersimulation.run(
parameters=
{
Parameters.NetworkOptimizerSimulation.OptimizationControl.ControlVariables.CHOKEBEANSIZE:True,
Parameters.NetworkOptimizerSimulation.OptimizationControl.OptimizationTargets.INJECTIONRATE:3
})
>>> model.tasks.networkoptimizersimulation.run(
parameters=
{
Parameters.NetworkOptimizerSimulation.OptimizationControl.ControlVariables.CHOKEBEANSIZE:True,
Parameters.NetworkOptimizerSimulation.OptimizationControl.OptimizationTargets.INJECTIONRATE:3
}, study = "Study 1")start(boundaries: dict | None = None, constraints: dict | None = None, initial_conditions: dict | None = None, parameters: dict | None = None, study: str | None = None)
Starts running a simulation of the specified type, returning the simulation id immediately which can be used later to check the status and get the results. If the network optimizer simulation task does not exist in the study, a new one will be created.
Parameters:
boundaries (dict) – Optional. The boundary conditions to be set on the study.
constraints (dict) – Optional. The blocal constraints to be set on the study.
initial_conditions (dict) – Optional. The initial conditions to be set on the study.
parameters (dict) – Optional.The parameters to be set on the study.
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
Returns:
The simulation id, which can be used to access simulation status and get the results.
Return type:
str
Examples
>>> model.tasks.networkoptimizersimulation.start(
parameters=
{
Parameters.NetworkOptimizerSimulation.OptimizationControl.ControlVariables.CHOKEBEANSIZE:True,
Parameters.NetworkOptimizerSimulation.OptimizationControl.OptimizationTargets.INJECTIONRATE:3
})
>>> model.tasks.networkoptimizersimulation.start(
parameters=
{
Parameters.NetworkOptimizerSimulation.OptimizationControl.ControlVariables.CHOKEBEANSIZE:True,
Parameters.NetworkOptimizerSimulation.OptimizationControl.OptimizationTargets.INJECTIONRATE:3
}, study = "Study 1")generate_engine_files(folder_path: str | None = None, study: str | None = None, generate_keyword_files=False, generate_request_message: RequestMessageType | None = RequestMessageType.NONE) List[str]
Create network optimizer engine files. Create network optimizer engine files for the specified study. The files are written to the specified folder, or to the current model folder if one is not given.
Parameters:
folder_path (str) – Optional. The folder location where the generated files are written to. If not specified, the files will be written to current Pipesim model file folder.
study (str) – Optional. The study name.
generate_keyword_files (True/False)
generate_request_message (RequestMessageType) – NONE: No Request message is generated DATA_ONLY: Only data section, no model_text,, no “data” keyword, the request message is same as today DATA_AND_MODELTEXT: {“model_text”: “xxxxxxxxxxxxxxxxxxxxxxxxxxx”, “data” :{….}} DATA_AND_MODELFILENAME: {“model_filename”: “filename.tnt”, “data” :{….}}
Returns:
The list of engine files generated.
Return type:
List[str]
Examples
>>> engine_files = model.tasks.networkoptimizersimulation.generate_engine_files()
>>> engine_files = model.tasks.networkoptimizersimulation.generate_engine_files(
study='Study 1')
>>> engine_files = model.tasks.networkoptimizersimulation.generate_engine_files(
folder_path="D:/Temp", study='Study 1')get_engine_files(study: str | None = None, generate_keyword_files=False, generate_request_message: RequestMessageType | None = RequestMessageType.NONE) List[str]
Get engine files for the specified study.
Generate the engine file(s) for the requested study. The files are written to the specified folder, or to the current model folder if one is not given.
Parameters:
study (str) – Optional. The study name.
generate_keyword_files (True/False)
generate_request_message (RequestMessageType) – NONE: No Request message is generated DATA_ONLY: Only data section, no model_text,, no “data” keyword, the request message is same as today DATA_AND_MODELTEXT: {“model_text”: “xxxxxxxxxxxxxxxxxxxxxxxxxxx”, “data” :{….}} DATA_AND_MODELFILENAME: {“model_filename”: “filename.tnt”, “data” :{….}}
Returns:
The list of engine files generated.
Return type:
Dictionary
Examples
>>> files_content = model.tasks.networkoptimizersimulation.get_engine_files()
>>> files_content = model.tasks.networkoptimizersimulation.get_engine_files(
study='Study 1', generate_keyword_files=True)
>>> files_content = model.tasks.networkoptimizersimulation.get_engine_files(
generate_request_message="DATA_ONLY", study='Study 1')
>>> \# Get the curve file content of Well_1:
>>> print(files_content['Well_1'])
>>> \# Get the tnt content(the key is the project name.tnt):
>>> print(files_content['CSN_312_ESP Optimization.tnt'])
>>> \# Get the request message(json)
>>> print(files_content['RequestMessage'])
>>> \# Get the request message 64(json)
>>> print(files_content['RequestMessage64'])apply_results(study: str | None = None)
Applies the optimization results to the model.
Parameters:
study (str) – Optional. The study name.
Examples
>>> model.tasks.networkoptimizersimulation.apply_results()
>>> model.tasks.networkoptimizersimulation.get_engine_files(study='Study 1')optimizer_simulation_result
class sixgill.optimizer_simulation_result.OptimizerResults(units_mgr, web_api_result, simulation, state)
Bases: SimulationResult
property well_results
well results of the simulation.
Returns:
A nested dictionary. The key of outer dictionary is the name of the well, and it’s value is a nested ordered dictionary of key values, key is variable name and value is the value.
Return type:
defaultdict(OrderedDict)
Examples
>>> \# the value of CHP for Well_1
>>> print(result.well_results['Well_1'][OptimizerVariables.CASING_HEAD_PRESSURE])
>>> 2001.66209137371129property flowline_results
flowline results of the simulation.
Returns:
A nested dictionary. The key of outer dictionary is the name of the flowline, and it’s value is a nested ordered dictionary of key values, key is variable name and value is the value.
Return type:
defaultdict(OrderedDict)
Examples
>>> \# the value of oil rate for Fl_1
>>> result.flowline_results['Fl_1'][OptimizerVariables.OIL_RATE]property sink_results
sink results of the simulation.
Returns:
A nested dictionary. The key of outer dictionary is the name of the sink, and it’s value is a nested ordered dictionary of key values, key is variable name and value is the value.
Return type:
defaultdict(OrderedDict)
Examples
>>> \# the value of oil rate for sink_1
>>> result.sink_results['sink_1'][OptimizerVariables.OIL_RATE]property total_results
total results of the simulation.
Returns:
A dictionary. The key is variable name and value is the value.
Return type:
defaultdict(OrderedDict)
Examples
>>> \# the value of total oil rate
>>> result.total_results[OptimizerVariables.TOTAL_OIL_RATE]property units
gets the units :returns: A dictionary. The key is variable name and value is the unit. :rtype: defaultdict(OrderedDict)
Examples
>>> \# the unit of CHP
>>> result.units[OptimizerVariables.CASING_HEAD_PRESSURE]
>>>psiaproperty variable_names
gets the variable names :returns: A dictionary. The key is variable name and value is the name. :rtype: defaultdict(OrderedDict)
Examples
>>> \# the name of CHP
>>> result.variable_names[OptimizerVariables.CASING_HEAD_PRESSURE]
>>>CHPThe Pipesim module maintains the high level classes and methods for the Pipesim Python Toolkit. This includes aspects such as the Model() class for creating a session with a Pipesim model as well as the static classes that enumerate the options that are available.
class sixgill.pipesim.Model(pipesim_session, model_file, unit_system)
Bases: object
The Model() class defines a session for working with a Pipesim model. It maintains the connection details of the session while the Manta module performs the actual interaction with the Pipesim model. Users should open a Pipesim model using the Model.open() which takes care of handling the low level Manta calls.
Parameters:
pipesim_session (manta.server.manager.PipesimManager) – The pipesim_session object from the Manta module.
model_file (str) – The full folder and filename of the Pipesim file.
unit_system (str) – The engineering units system being used for reading and writing the values, as defined by the Units static class.
Returns:
The Pipesim model session object.
Return type:
Model
Examples
>>> mymodel=Model.open("C:/ProjectX/Models/Pipesim/ProjectXModel.pips")property is_open
Whether the Pipesim model is open (True) or not (False)
property api
The low level Manta library API
property filename
The model file name and path
property session
The model session
static update_data_context(filename: str, model_type: str, save_as: str, model_update_url: str | None = None, data_partition: str | None = None, token: str | None = None, appkey: str | None = None, report_messages_of_type: ReportMessageTypes | None = ReportMessageTypes.ALL, production_study_name: str | None = None, max_retries: str | None = None, base_retry_time: str | None = None, max_time: str | None = None, jitter_factor: str | None = None) production_data_update_status
Updates the model with the latest production data
Note
base_sleep_time = min(max_time, base_retry_time * retry_number) sleep_time = base_sleep_time +/- random(jitter_factor * base_sleep_time)
Parameters:
filename (str) – Full path to the pips file to be updated
model_type (str) – Type of the model: [pipesim-well, pipesim network]
save_as (str) – Full path to where to save the updated model
model_update_url (str) – a file or url address of the service providing the operational data
data_partition (str) – data partition
token (str) – access token
appkey (Optional[str]) – appKey
report_messages_of_type – indicate what type of messages to report(default is all types)
production_study_name (Optional[str]) – name of the production study
max_retries (Optional[str]) – maximum number of retries when HTTP request is failed
base_retry_time (Optional[str]) – base time used to calculate sleep time for each retry
max_time (Optional[str]) – maximum base sleep time
jitter_factor (Optional[str]) – jitter factor
Returns:
A class containing lists of messages and properties.
Return type:
[production_data_update_status]
static open(filename: str, units: str | None = 'PIPESIM_FIELD', in_memory_results: bool | None = True)
Open a Pipesim model
Opens the Pipesim model.
Parameters:
filename (str) – The Pipesim model path and file name.
units (str) – The engineering units that will be used by POET. This is one of the Units enumerations, with the default being FIELD units.
in_memory_results (bool) – If True simulation results will be deleted after run and will not be saved, otherwise they will be kept and saved.
Returns:
The model object that has been open.
Return type:
Model
Examples
>>> model = Model.open("C:/POET Demo/CSN_301_small network.pips")
>>> model = Model.open("C:/MyProject/FlowNetwork.pips", Units.METRIC)static new(filename: str, units: str | None = 'PIPESIM_FIELD', overwrite: bool | None = False, in_memory_results: bool | None = True)
Open a new Pipesim model
Opens a new Pipesim model.
Parameters:
filename (str) – The new Pipesim model path and file name.
units (str) – The engineering units that will be used by POET. This is one of the Units enumerations, with the default being FIELD units.
overwrite (bool) – If the file already exists, this flag will define if it should be overwrited or not.
in_memory_results (bool) – If True simulation results will be deleted after run and will not be saved, otherwise they will be kept and saved.
Returns:
The model object that has been open.
Return type:
Model
Examples
>>> model = Model.new("C:/POET Demo/new_workspace.pips")
>>> model = Model.new("C:/MyProject/NewWorkspace.pips", Units.METRIC)open_ui(filename: str | None = '')
Open a Pipesim file with Pipesim UI
Opens the Pipesim model file in the Pipesim UI. It supports opening a model directly, and opening the model that is open in the Toolkit. A model that is open in the Pipesim Python Toolkit will be saved and closed before opening in the UI. This is because changes cannot be made to a model simultaneously in the UI and through the Python Toolkit.
Parameters:
filename (str) – The Pipesim file path and name. This is not required when opening a model that is already open in the Python Toolkit.
Examples
>>> \# Without first opening the model in Python
>>> Model.open_ui("C:/POET Demo/CSN_301_small network.pips")
>>> \# While the model is open in the Python Toolkit
>>> model = Model.open("C:/POET Demo/CSN_301_small network.pips")
>>> model.open_ui()save(filename='', view_type='')
Save the Pipesim model
Saves the Pipesim model. If the filename is not specified then it peforms a save; if the filename is specified then it performs a Save As. the suffix “pips” may be omitted.
Parameters:
filename (str) – Optional. The full path and name of the file to save.
view_type (str) – Optional. The view type(Pipesim UI will open in Network view or well view). can be ViewTypes.WELL or ViewTypes.NETWORK
Examples
>>> model.save()
>>> model.save("C:/Temp/MyModel2.pips")
>>> model.save("C:/Temp/MyModel2.pips",ViewTypes.WELL)
>>> model.save("C:/Temp/MyModel2.pips",ViewTypes.NETWORK)close()
Close the Pipesim model
Closes the Pipesim model.
Examples
>>> model.close()validate() List[ValidationIssue]
Validates the model or a specified well, task.
Returns:
a list of ValidationIssue instances.
Return type:
list
Examples
>>> issues = model.validate()
>>> for issue in issues:
print(issue.message)
print(issue.path)
print(issue.property_name)property context: AbstractModelContext
The root context of this model.
Returns:
Returns the model context object that matches the entirety of the model.
Return type:
AbstractModelContext
find(context: str | None = None, component: str | None = None, model_context: AbstractModelContext | None = None, **context_keywords: str) List[str]
Find the model components in the context.
Find the specified components in the model.
Parameters:
context (str) – Optional. The context (identifier) of the item to look for.
component (str) – Optional. The model component to look for.
model_context (AbstractModelContext) – Optional. The model context object to look for.
context_keywords (str) – Comma separated list of context search criteria in the form of component=’value’, where component is the model component of the item, and value is the value of the model component. Values can also be ANY (matches any value) or NONE (matches no value).
Returns:
Returns a list of the component contexts (identifiers) of the model components that match the specified criteria.
Return type:
list
Examples
>>> model.find(component=ModelComponents.CHOKE, Name="CK-1")
>>> model.find(Well="Well03")find_components(context: str | None = None, component: str | None = None, model_context: AbstractModelContext | None = None, **context_keywords: str) List[AbstractModelContext]
Find the full context of the specified component
Returns the context objects of the items found. This is functionally similar to the find() but returns the list of AbstractModelContext objects rather than the context strings.
Parameters:
context (str) – Optional. The context string to search in.
component (str) – Optional. The model component to look for.
model_context (AbstractModelContext) – Optional. The context to search in.
context_keywords (str) – Comma separated list of context search criteria in the form of component=’value’, where component is the model component of the item, and value is the value of the model component. Values can also be ANY (matches any value) or NONE (matches no value).
Returns:
Returns a list of the contexts for each of the model components that match the specified criteria.
Return type:
list[AbstractModelContext]
Examples
>>> model.find_components(component=ModelComponents.CHOKE, context="CK-1")
>>> model.find_components(component=ModelComponents.COMPLETION, Well="Well03")find_component_objects(context: str | None = None, component: str | None = None, model_context: AbstractModelContext | None = None, **context_keywords: str) List[Component]
Find the model components in the context.
Find the specified components in the model.
Parameters:
context (str) – Optional. The context (identifier) of the item to look for.
component (str) – Optional. The model component to look for.
model_context (AbstractModelContext) – Optional. The model context object to look for.
context_keywords (str) – Comma separated list of context search criteria in the form of component=’value’, where component is the model component of the item, and value is the value of the model component. Values can also be ANY (matches any value) or NONE (matches no value).
Returns:
Returns a list of the Component instances that match the specified criteria.
Return type:
list
Examples
>>> model.find_component_objects(component=ModelComponents.CHOKE, Name="CK-1")
>>> model.find_component_objects(Well="Well03")filter(context: str | None = None, component: str | None = None, model_context: AbstractModelContext | None = None, **context_keywords: str)
Filter the model, creating a submodel of the items of interest
Returns a Model class containing only the items specified in the context. This allows the model to be filtered by specific aspects and then accessed using the usual methods, such as get and set, on the filtered model.
Parameters:
context (str) – Optional. The context (identifier) of the item to look for.
component (str) – Optional. The model component to look for.
model_context (AbstractModelContext) – Optional. The model context object to look for.
context_keywords (str) – Comma separated list of context search criteria in the form of component=’value’, where component is the model component of the item, and value is the value of the model component. Values can also be ANY (matches any value) or NONE (matches no value).
Returns:
Returns a list of the component contexts (identifiers) of the model components that match the specified criteria.
Return type:
list
Examples
>>> \# Filter for all the flowlines
>>> filtered_model = model.filter(Flowline=ALL)
>>> \# Filter for all the items in the specified well
>>> filtered_model = model.filter(Well="Well03")describe(context: str | None = None, component: str | None = None, model_context: AbstractModelContext | None = None, parameter: str | None = None, **context_keywords: str)
Describe a parameter given a context.
Returns an object with properties for the parameter description such as the units of measurement and unit conversions. The available properties are:
units: The units of measurement, e.g. inches
units_symbol: The symbol(s) for the unit of measurement, e.g. ins
si_offset: The unit conversion offset (bias) from SI
si_factor: The unit conversion factor (gain) from SI
Parameters:
context (str) – Optional. The context (identifier) of the item to look for.
parameter (str) – Required. The parameter that needs to be described.
component (str) – Optional. The model component to look for.
model_context (AbstractModelContext) – Optional. The model context object to look for.
context_keywords (str) – Comma separated list of context search criteria in the form of component=’value’, where component is the model component of the item, and value is the value of the model component. Values can also be ANY (matches any value) or NONE (matches no value).
Returns:
The object with the descriptions.
Return type:
Description
Examples
>>> eu = model.describe(context="Well",
parameter=Parameters.Well.TESTRACKTEMPERATURE).unitsget_value(context: str | None = None, parameter: str | None = None, component: str | None = None, model_context: AbstractModelContext | None = None, **context_keywords: str) Any
Return a single parameter value from a context in the model.
The function queries the model for the specified item and parameter returning the parameter value. An error is raised if the context matches more than one item.
Parameters:
context (str) – Optional. The context (identifier) to search for. Context can also be an instanse of “Component” class.
parameter (str) – Optional. The parameter on the item to return the value of.
component (str) – Optional. The type of the item.
model_context (AbstractModelContext) – The model context object to search for.
context_keywords (str) – Comma separated list of context search criteria in the form of component=’value’, where component is the model component of the item, and value is the value of the model component. Values can also be ANY (matches any value) or NONE (matches no value).
Returns:
The value of the specified parameter.
Return type:
var
Examples
>>> val = model.get_value(context="Choke23",
parameter=Parameters.Choke.BEANSIZE)
>>> val = model.get_value(Well="Well 23", Choke="CK1",
parameter=Parameters.Choke.BEANSIZE)set_node_value(node, parameter: str, value: Any = None)
set_value(context: str | None = None, parameter: str | None = None, value: Any = None, component: str | None = None, model_context: AbstractModelContext | None = None, **context_keywords: str)
Set a parameter value on a single context item in the model.
The function queries the model for the specified item and then sets the parameter to the specified value. An error is raised if the context matches more than one item.
Parameters:
context (str) – Optional. The context string to search in. Context can also be an instanse of “Component” class
parameter (str) – Required. The parameter on the item to be set.
value (var) – Required. The value to set the parameter to.
component (str) – Optional. The type of the item.
model_context (AbstractModelContext) – Optional. The context to search in.
context_keywords (str) – Comma separated list of context search criteria in the form of component=’value’, where component is the model component of the item, and value is the value of the model component. Values can also be ANY (matches any value) or NONE (matches no value).
Examples
>>> model.set_value(context="Choke23",
parameter=Parameters.Choke.BEANSIZE, value=4.5)
>>> model.set_value(Well="Well 23", Choke="CK1",
parameter=Parameters.Choke.BEANSIZE, value=5)set_all_value(context: str | None = None, parameter: str | None = None, value: Any = None, component: str | None = None, model_context: AbstractModelContext | None = None, **context_keywords: str)
Set a parameter value for all items in the context.
The function queries the model for the specified items and then sets the parameter to the specified value. It sets the parameter for all items within the context.
Parameters:
context (str) – Optional. The context string to search in.
parameter (str) – Required. The parameter on the item(s) to set.
value (var) – Required. The value to set the parameter to.
component (str) – Optional. The type of the item.
model_context (AbstractModelContext) – The context to search in.
context_keywords (str) – Comma separated list of context search criteria in the form of component=’value’, where component is the model component of the item, and value is the value of the model component. Values can also be ANY (matches any value) or NONE (matches no value).
Examples
>>> model.set_all_value(Source=ALL,
parameter=Parameters.Source.ASSOCIATEDBLACKOILFLUID,
value = 'BK111')change_equipment_string(string: str, context: str | None = None, depth_md: float | None = None, component: str | None = None, model_context: AbstractModelContext | None = None)
Set a string value of a single context item in the model.
The function queries the model for the specified item and then sets the string to the specified value. An error is raised if the context matches more than one item.
Parameters:
string (str) – Required. The tubing string type of the item to be set.
context (str) – Optional. The context string to search in. Context can also be an instanse of “Component” class
depth_md (float) – Optional. The measured depth of the item to be set.
component (str) – Optional. The type of the item.
model_context (AbstractModelContext) – Optional. The context to search in.
Examples
>>> model.change_equipment_string(context = "Chk0",
string = Constants.TubingSectionType.LONGTUBING, depth_md = 1000)get_values(context: str | None = None, parameters: List[str] = [], component: str | None = None, model_context: AbstractModelContext | None = None, show_units: bool = False, **context_keywords: str) Dict
Returns a dictionary with the parameters and values from a context.
The function queries the model for the specified items and parameters returning a dictionary. The key of the dictionary is context string, and the value of the dictionary is a sub dictionary, which contains parameter as the key and its value
Parameters:
context (str) – Optional. The context string to search in.
parameters (list) – Optional. The parameter on the item to return the value of. If empty or not provided then it returns all the parameters.
component (str) – Optional. The type of the item.
model_context (AbstractModelContext) – Optional. The context to search in.
context_keywords (str) – Comma separated list of context search criteria in the form of component=’value’, where component is the model component of the item, and value is the value of the model component. Values can also be ANY (matches any value) or NONE (matches no value).
Returns:
The dictionary containing the parameter values.
Return type:
Dict
Examples
>>> dict = model.get_values(context="Choke23",
parameters=[Parameters.Choke.BEANSIZE,
Parameters.Choke.CRITICALPRESSURERATIO])
>>> dict = model.get_values(Well="Well 23", Choke="CK1",
parameters=[Parameters.Choke.BEANSIZE,
Parameters.Choke.CRITICALPRESSURERATIO])set_values(dict: Dict, context: str | None = None, component: str | None = None, model_context: AbstractModelContext | None = None, **context_keywords: str)
Set parameters values as specified by the Python dictionary.
The key of the dictionary is context string, and the value of the dictionary is a sub dictionary, which specify the parameter as key and its value. The dictionary is therefore the same format as the get_values() function.
Parameters:
dict (Dict) – Required. The Python dictionary to set the item parameters.
Examples
>>> model.set_values(dict=values)get_wellstream(port: str | None = 'Top', context: str | None = None, component: str | None = None, model_context: AbstractModelContext | None = None, **context_keywords: str) str
Return the name of the wellstream equipment for specified port.
Parameters:
port (str) – Optional for conventional wells, but required for advanced wells. The port name. It must be one of Constants.Wellstream.
context (str) – Optional. The context (identifier) to search for. Context can also be an instanse of “Component” class.
component (str) – Optional. The type of the item.
model_context (AbstractModelContext) – Optional. The model context object to search for.
context_keywords (str) – Comma separated list of context search criteria in the form of component=’value’, where component is the model component of the item, and value is the value of the model component. Values can also be ANY (matches any value) or NONE (matches no value).
Returns:
The name of the wellstream equipment for specified port.
Return type:
str
Examples
>>> val = model.get_wellstream(Well="Well", port = Constants.Wellstream.TOP)set_wellstream(surface_component_name: str, port: str | None = 'Top', context: str | None = None, model_context: AbstractModelContext | None = None, **context_keywords: str)
Set the wellstream for the specified port.
Parameters:
surface_component_name (str) – Required. The name of the surface component to be set as wellstream.
port (str) – Optional for conventional wells, but required for advanced wells. The port name. It must be one of Constants.Wellstream.
context (str) – Optional. The context (identifier) to search for. Context can also be an instanse of “Component” class.
model_context (AbstractModelContext) – Optional. The model context object to search for.
context_keywords (str) – Comma separated list of context search criteria in the form of component=’value’, where component is the model component of the item, and value is the value of the model component. Values can also be ANY (matches any value) or NONE (matches no value).
Examples
>>> model.set_wellstream(Well="Well", port=Constants.Wellstream.TOP, surface_component_name="Ck ")reset_wellstreams(context: str | None = None, model_context: AbstractModelContext | None = None, **context_keywords: str)
Reset all wellstream to wellhead.
Parameters:
context (str) – Optional. The context (identifier) to search for. Context can also be an instanse of “Component” class.
component (str) – Optional. The type of the item.
model_context (AbstractModelContext) – Optional. The model context object to search for.
context_keywords (str) – Comma separated list of context search criteria in the form of component=’value’, where component is the model component of the item, and value is the value of the model component. Values can also be ANY (matches any value) or NONE (matches no value).
Examples
>>> model.reset_wellstreams("Well")get_wellstream_property(parameter: str, port: str | None = 'Top', context: str | None = None, component: str | None = None, model_context: AbstractModelContext | None = None, **context_keywords: str)
Set the wellstream property for the specified port.
Parameters:
parameter (str) – Required. The parameter on the wellstream to return the value of.
port (str) – Optional for conventional wells, but required for advanced wells. The port name. It must be one of Constants.Wellstream.
context (str) – Optional. The context (identifier) to search for. Context can also be an instanse of “Component” class.
component (str) – Optional. The type of the item.
model_context (AbstractModelContext) – Optional. The model context object to search for.
context_keywords (str) – Comma separated list of context search criteria in the form of component=’value’, where component is the model component of the item, and value is the value of the model component. Values can also be ANY (matches any value) or NONE (matches no value).
Return type:
The value of the specified parameter
Examples
>>> model.get_wellstream_property(Well="well_1",port=Constants.Wellstream.TOP, parameter=Parameters.Wellstream.ISPRODUCTIONFLOWDIRECTION)get_wellstream_properties(port: str | None = 'Top', parameters: List[str] | None = [], context: str | None = None, model_context: AbstractModelContext | None = None, **context_keywords: str)
Set the wellstream property for the specified port.
Parameters:
port (str) – Optional for conventional wells, but required for advanced wells. The port name. It must be one of Constants.Wellstream.
parameters (List[str]) – Optional. The parameters on the wellstream to return the value of.
context (str) – Optional. The context (identifier) to search for. Context can also be an instanse of “Component” class.
component (str) – Optional. The type of the item.
model_context (AbstractModelContext) – Optional. The model context object to search for.
context_keywords (str) – Comma separated list of context search criteria in the form of component=’value’, where component is the model component of the item, and value is the value of the model component. Values can also be ANY (matches any value) or NONE (matches no value).
Returns:
dict
The parameters and respective values.
Examples
>>> model.get_wellstream_properties(Well="well_1",port=Constants.Wellstream.TOP, parameters = {
Parameters.Wellstream.GASFLOWRATE,
Parameters.Wellstream.ISPRODUCTIONFLOWDIRECTION,
Parameters.Wellstream.CHECKVALVESETTINGS,
Parameters.Wellstream.USEPQCURVE
})set_wellstream_property(parameter: str, port: str | None = 'Top', context: str | None = None, value: Any = None, model_context: AbstractModelContext | None = None, **context_keywords: str)
Set the wellstream property for the specified port.
Parameters:
parameter (str) – Required. The parameter on the wellstream to be set.
port (str) – Optional for conventional wells, but required for advanced wells. The port name. It must be one of Constants.Wellstream.
context (str) – Optional. The context (identifier) to search for. Context can also be an instanse of “Component” class.
value (var) – Required. The value to set the parameter to.
component (str) – Optional. The type of the item.
model_context (AbstractModelContext) – Optional. The model context object to search for.
context_keywords (str) – Comma separated list of context search criteria in the form of component=’value’, where component is the model component of the item, and value is the value of the model component. Values can also be ANY (matches any value) or NONE (matches no value).
Examples
>>> model.set_wellstream_property(Well="well_1",
port=Constants.Wellstream.TOP,
parameter = Parameters.Wellstream.GASFLOWRATE,
value=123)set_wellstream_properties(parameters: Dict, port: str | None = 'Top', context: str | None = None, model_context: AbstractModelContext | None = None, **context_keywords: str)
Set the wellstream property for the specified port.
Parameters:
parameters (Dict) – Required. The Python dictionary to set the wellstream parameters.
port (str) – Optional for conventional wells, but required for advanced wells. The port name. It must be one of Constants.Wellstream.
context (str) – Optional. The context (identifier) to search for. Context can also be an instanse of “Component” class.
model_context (AbstractModelContext) – Optional. The model context object to search for.
context_keywords (str) – Comma separated list of context search criteria in the form of component=’value’, where component is the model component of the item, and value is the value of the model component. Values can also be ANY (matches any value) or NONE (matches no value).
Examples
>>> model.set_wellstream_properties(Well="well_1", port=Constants.Wellstream.TOP, parameters = {
Parameters.Wellstream.GASFLOWRATE: 234,
Parameters.Wellstream.ISPRODUCTIONFLOWDIRECTION: False,
Parameters.Wellstream.CHECKVALVESETTINGS: Constants.CheckValveSetting.BLOCKBOTH,
Parameters.Wellstream.USEPQCURVE: True,
})get_metocean_data() DataFrame
Get the Metocean user defined data.
Returns:
The met ocean data frame includes following columns: Horizontal distance, Temperature and Current velocity
Return type:
pandas.DataFrame
Examples
>>> df = model.get_metocean_data()set_metocean_data(data)
Set the Metocean user defined data.
Parameters:
data (DataFrame) – Required. The data frame to set to the user defined Metocean.
Examples
>>> model.set_metocean_data(data=df)delete_metocean_data()
delete the Metocean user defined data.
Examples
>>> model.delete_metocean_data()get_trajectory(context: str | None = None, model_context: AbstractModelContext | None = None, **context_keywords: str) DataFrame
Get the specified well trajectory.
Get the well trajectory as identified by the specified context. If more than one item is found by the context then it will fail.
Parameters:
context (str) – Optional. The context string to search for well.
model_context (AbstractModelContext) – Optional. The context to search in.
context_keywords (str) – Comma separated list of context search criteria in the form of component=’value’, where component is the model component of the item, and value is the value of the model component. Values can also be ANY (matches any value) or NONE (matches no value).
Returns:
The trajectory data frame includes following columns: MeasuredDepth Inclination, Azimuth and MaxDogLegSeverity
Return type:
pandas.DataFrame
Examples
>>> df = model.get_trajectory(context="Well-1")
>>> dfw = model.get_trajectory(Well="Well 23")set_trajectory(context: str | None = None, value: DataFrame = None, model_context: AbstractModelContext | None = None, **context_keywords: str)
Set well trajectory to the values specified in the DataFrame.
Sets well trajectory to the values specified in the DataFrame. It will fail if more than one item is found by the context.
Parameters:
value (DataFrame) – Required. The data frame to set to the well trajectory.
context (str) – Optional. The context string to look for the well.
model_context (AbstractModelContext) – Optional. The context to search in.
context_keywords (str) – Comma separated list of context search criteria in the form of component=’value’, where component is the model component of the item, and value is the value of the model component. Values can also be ANY (matches any value) or NONE (matches no value).
Examples
>>> model.set_trajectory(context="Well-1", value = df)
>>> model.set_trajectory(Well="Well 23", value = df)get_completion_ipr_points(context: str | None = None, model_context: AbstractModelContext | None = None, **context_keywords: str) IprPoints
Get pwf and rate values for the ipr model. It will fail if more than one item is found by the context.
Parameters:
context (str) – Optional. The context string to search for completion.
model_context (AbstractModelContext) – Optional. The context to search in.
context_keywords (str) – Comma separated list of context search criteria in the form of component=’value’, where component is the model component of the item, and value is the value of the model component. Values can also be ANY (matches any value) or NONE (matches no value).
Returns:
ipr_points: a pandas.DataFrame containing the pressure and rate values messages: a list of stings of any messages produced by ipr calculation
Return type:
A class with two properties
Examples
>>> results = model. get_completion_ipr_points(context="Well-1:VertComp")
>>> print( results.ipr_points)
>>> for msg in results.messages:
print(msg)get_completion_test_points(context: str | None = None, model_context: AbstractModelContext | None = None, **context_keywords)
Return well completion test points found in the context.
Return well completion test points found in the context. It will fail if more than one item is found by the context.
Parameters:
context (str) – Optional. The context string of completion
model_context (AbstractModelContext) – Optional. The context to search in.
context_keywords (str) – Comma separated list of context search criteria in the form of component=’value’, where component is the model component of the item, and value is the value of the model component. Values can also be ANY (matches any value) or NONE (matches no value). e.g. Well =’well_name’, Completion = ‘completion_name’
Returns:
The completion test points data frame includes following columns: LiquidFlowrate, GasFlowrate, StaticReservoirPressure, BottomHoleFlowingPressure
Return type:
pandas.DataFrame
Examples
>>> df = model.get_completion_test_points(context="Well-1:VertComp")set_completion_test_points(context: str | None = None, value: DataFrame = None, model_context: AbstractModelContext | None = None, **context_keywords)
Set data frame to the completion test points of well in the context.
Set data frame to the completion test points of well in the context. It will fail if more than one item is found by the context.
Parameters:
value (DataFrame) – Required. The data frame to set to the well completion test points
context (str) – Optional. The context string to look for the completion
model_context (AbstractModelContext) – Optional. The context to search in.
context_keywords (str) – Comma separated list of context search criteria in the form of component=’value’, where component is the model component of the item, and value is the value of the model component. Values can also be ANY (matches any value) or NONE (matches no value).
Examples
>>> model.set_completion_test_points(context="Well-1:VertComp", value = df)get_pq_curve(context: str | None = None, model_context: AbstractModelContext | None = None, **context_keywords) DataFrame
Return PQ curve in the context.
Returns PQ curve in the context. It will fail if more than one item is found in the context.
Parameters:
context (str) – Optional. The context string to look for source.
model_context (AbstractModelContext) – Optional. The context to search in.
context_keywords (str) – Comma separated list of context search criteria in the form of component=’value’, where component is the model component of the item, and value is the value of the model component. Values can also be ANY (matches any value) or NONE (matches no value).
Returns:
The PQ curve data frame includes the following columns: GasFlowRate, LiquidFlowRate, MassFlowRate, Pressure
Return type:
pandas.DataFrame
Examples
>>> df = model.get_pq_curve(context="Source_1")
>>> dfw = model.get_pq_curve(Source="Source 23")set_pq_curve(context: str | None = None, value: DataFrame = None, model_context: AbstractModelContext | None = None, **context_keywords)
Set data frame to the PQ curve of source in the context.
Set data frame to the PQ curve of source in the context. It will fail if more than one item is found in the context or the source does not use PQ curve.
Parameters:
value (DataFrame) – Required. The data frame to set to the source PQ curve
context (str) – Optional. The context string to look for the source.
model_context (AbstractModelContext) – Optional. The context to search in.
context_keywords (str) – Comma separated list of context search criteria in the form of component=’value’, where component is the model component of the item, and value is the value of the model component. Values can also be ANY (matches any value) or NONE (matches no value).
Examples
>>> model.set_pq_curve(context="Source-1", value = df)
>>> model.set_pq_curve(Source="Source 23" value = df)get_coating(context: str | None = None, model_context: AbstractModelContext | None = None, **context_keywords: str) DataFrame
Return pipe coating table in the context.
Returns flowline pipe coating table in the context. It will fail if more than one item is found in the context.
Parameters:
context (str) – Optional. The context string to search for flowline.
model_context (AbstractModelContext) – Optional. The context to search in.
context_keywords (str) – Comma separated list of context search criteria in the form of component=’value’, where component is the model component of the item, and value is the value of the model component. Values can also be ANY (matches any value) or NONE (matches no value).
Return type:
pandas.DataFrame
Examples
>>> df = model.get_coating(context="FL-3")
>>> dfw = model.get_coating(Flowline="FL-3")delete_coating(context: str | None = None, model_context: AbstractModelContext | None = None, **context_keywords: str)
Delete pipe coating table in the context. It will fail if more than one item is found in the context. ‘U value input’ will be reset to ‘Specify’ if ‘Calculate’ selected
Parameters:
context (str) – Optional. The context string to search for blackoil.
model_context (AbstractModelContext) – Optional. The context to search in.
context_keywords (str) – Comma separated list of context search criteria in the form of component=’value’, where component is the model component of the item, and value is the value of the model component. Values can also be ANY (matches any value) or NONE (matches no value).
Examples
>>> model.delete_coating(context="FL-3")
>>> model.delete_coating(Flowline="FL-3")set_coating(context: str | None = None, value: DataFrame = None, model_context: AbstractModelContext | None = None, **context_keywords)
Set data frame to the pipe coating table in the context.
Set data frame to the pipe coating table in the context. It will fail if more than one item is found in the context.
Parameters:
value (DataFrame) – Required. The data frame to set to flowline model
context (str) – Optional. The context string to search for flowline.
model_context (AbstractModelContext) – Optional. The context to search in.
context_keywords (str) – Comma separated list of context search criteria in the form of component=’value’, where component is the model component of the item, and value is the value of the model component. Values can also be ANY (matches any value) or NONE (matches no value).
Examples
>>> model.set_coating(context="FL-3", value = df)
>>> model.set_coating(Flowline="FL-3", value = df)raise_exception_if_completion_ipr_model_is_not_Darcy(model_context: AbstractModelContext | None = None)
get_relative_permeability_data(context: str | None = None, model_context: AbstractModelContext | None = None, **context_keywords: str) DataFrame
Return relative permeability data in the context.
Returns Darcy IPR model relative permeability data in the context. It will fail if more than one item is found in the context.
Parameters:
context (str) – Optional. The context string to search for Darcy IPR model.
model_context (AbstractModelContext) – Optional. The context to search in.
context_keywords (str) – Comma separated list of context search criteria in the form of component=’value’, where component is the model component of the item, and value is the value of the model component. Values can also be ANY (matches any value) or NONE (matches no value).
Return type:
pandas.DataFrame
Examples
>>> df = model.get_relative_permeability_data(context="Well:Comp-1:IPRDARCY")
>>> dfw = model.get_relative_permeability_data(Well="Well", Completion="Comp-1")delete_relative_permeability_data(context: str | None = None, model_context: AbstractModelContext | None = None, **context_keywords: str)
Delete relative permeability data in the context. It will fail if more than one item is found in the context. The UseRelativePermeability flag on the Darcy IPR model will be set to False.
Parameters:
context (str) – Optional. The context string to search for Darcy IPR model.
model_context (AbstractModelContext) – Optional. The context to search in.
context_keywords (str) – Comma separated list of context search criteria in the form of component=’value’, where component is the model component of the item, and value is the value of the model component. Values can also be ANY (matches any value) or NONE (matches no value).
Examples
>>> model.delete_relative_permeability_data(context="Well:Comp-1:IPRDARCY")
>>> model.delete_relative_permeability_data(Well="Well", Completion="Comp-1")set_relative_permeability_data(context: str | None = None, value: DataFrame = None, model_context: AbstractModelContext | None = None, **context_keywords)
Set data frame to the relative permeability data in the context. It will fail if more than one item is found in the context. The UseRelativePermeability flag on the Darcy IPR model will be set to True.
Parameters:
value (DataFrame) – Required. The data frame to set to Darcy IPR model
context (str) – Optional. The context string to search for Darcy IPR model.
model_context (AbstractModelContext) – Optional. The context to search in.
context_keywords (str) – Comma separated list of context search criteria in the form of component=’value’, where component is the model component of the item, and value is the value of the model component. Values can also be ANY (matches any value) or NONE (matches no value).
Examples
>>> model.set_relative_permeability_data(context="Well:Comp-1:IPRDARCY", value = df)
>>> model.set_relative_permeability_data(Well="Well", Completion="Comp-1", value = df)get_deadoil_viscosity_table(context: str | None = None, model_context: AbstractModelContext | None = None, **context_keywords: str) DataFrame
Return blackoil user viscosity table in the context.
Returns blackoil user viscosity table in the context. It will fail if more than one item is found in the context.
Parameters:
context (str) – Optional. The context string to search for blackoil.
model_context (AbstractModelContext) – Optional. The context to search in.
context_keywords (str) – Comma separated list of context search criteria in the form of component=’value’, where component is the model component of the item, and value is the value of the model component. Values can also be ANY (matches any value) or NONE (matches no value).
Return type:
pandas.DataFrame
Examples
>>> df = model.get_deadoil_viscosity_table(context="Heavy_Oil")
>>> dfw = model.get_deadoil_viscosity_table(BlackOilFluid="Heavy_Oil")delete_deadoil_viscosity_table(context: str | None = None, model_context: AbstractModelContext | None = None, **context_keywords: str)
Delete blackoil user viscosity table in the context. It will fail if more than one item is found in the context. Dead oil correlation will be reset to Beggs & Robinson if user table is selected
Parameters:
context (str) – Optional. The context string to search for blackoil.
model_context (AbstractModelContext) – Optional. The context to search in.
context_keywords (str) – Comma separated list of context search criteria in the form of component=’value’, where component is the model component of the item, and value is the value of the model component. Values can also be ANY (matches any value) or NONE (matches no value).
Examples
>>> model.deletet_deadoil_viscosity_table(context="Heavy_Oil")
>>> model.delete_deadoil_viscosity_table(BlackOilFluid="Heavy_Oil")set_deadoil_viscosity_table(context: str | None = None, value: DataFrame = None, model_context: AbstractModelContext | None = None, **context_keywords)
Set data frame to the blackoil user viscosity table in the context.
Set data frame to the blackoil user viscosity table in the context. It will fail if more than one item is found in the context.
Parameters:
value (DataFrame) – Required. The data frame to set to black oil model
context (str) – Optional. The context string to search for blackoil.
model_context (AbstractModelContext) – Optional. The context to search in.
context_keywords (str) – Comma separated list of context search criteria in the form of component=’value’, where component is the model component of the item, and value is the value of the model component. Values can also be ANY (matches any value) or NONE (matches no value).
Examples
>>> model.set_deadoil_viscosity_table(context="Heavy_Oil", value = df)
>>> model.set_deadoil_viscosity_table(BlackOilFluid="Heavy_Oil", value = df)get_mix_viscosity_table(context: str | None = None, model_context: AbstractModelContext | None = None, **context_keywords: str) DataFrame
Return user mixture viscosity table in the context.
Returns user mixture viscosity table in the context. It will fail if more than one item is found in the context. Supports BlackOil, Compositional, and MFL fluids.
The fluid name can be passed directly without specifying the fluid type. The fluid type will be automatically resolved from the model.
Parameters:
context (str) – Optional. The fluid name or context string to search for the fluid. When just a fluid name is provided, the fluid type is automatically detected from the model.
model_context (AbstractModelContext) – Optional. The context to search in.
context_keywords (str) – Comma separated list of context search criteria in the form of component=’value’, where component is the model component of the item, and value is the value of the model component. Values can also be ANY (matches any value) or NONE (matches no value).
Return type:
pandas.DataFrame
Examples
>>> df = model.get_mix_viscosity_table("MyFluid")
>>> df = model.get_mix_viscosity_table(context="Heavy_Oil")
>>> dfw = model.get_mix_viscosity_table(BlackOilFluid="Heavy_Oil")
>>> dfc = model.get_mix_viscosity_table(CompositionalFluid="MyCompFluid")
>>> dfm = model.get_mix_viscosity_table(MFLFluid="MyMFLFluid")delete_mix_viscosity_table(context: str | None = None, model_context: AbstractModelContext | None = None, **context_keywords: str)
Delete user mixture viscosity table in the context. It will fail if more than one item is found in the context. Supports BlackOil, Compositional, and MFL fluids. Emulsion viscosity method will be reset to ‘Set to viscosity of the continuous phase’ if user table is selected
The fluid name can be passed directly without specifying the fluid type. The fluid type will be automatically resolved from the model.
Parameters:
context (str) – Optional. The fluid name or context string to search for the fluid. When just a fluid name is provided, the fluid type is automatically detected from the model.
model_context (AbstractModelContext) – Optional. The context to search in.
context_keywords (str) – Comma separated list of context search criteria in the form of component=’value’, where component is the model component of the item, and value is the value of the model component. Values can also be ANY (matches any value) or NONE (matches no value).
Examples
>>> model.delete_mix_viscosity_table("MyFluid")
>>> model.delete_mix_viscosity_table(context="Heavy_Oil")
>>> model.delete_mix_viscosity_table(BlackOilFluid="Heavy_Oil")
>>> model.delete_mix_viscosity_table(CompositionalFluid="MyCompFluid")
>>> model.delete_mix_viscosity_table(MFLFluid="MyMFLFluid")set_mix_viscosity_table(context: str | None = None, value: DataFrame = None, model_context: AbstractModelContext | None = None, **context_keywords)
Set data frame to the user mixture viscosity table in the context.
Set data frame to the user mixture viscosity table in the context. It will fail if more than one item is found in the context. Supports BlackOil, Compositional, and MFL fluids.
The fluid name can be passed directly without specifying the fluid type. The fluid type will be automatically resolved from the model.
Parameters:
value (DataFrame) – Required. The data frame to set to the fluid model
context (str) – Optional. The fluid name or context string to search for the fluid. When just a fluid name is provided, the fluid type is automatically detected from the model.
model_context (AbstractModelContext) – Optional. The context to search in.
context_keywords (str) – Comma separated list of context search criteria in the form of component=’value’, where component is the model component of the item, and value is the value of the model component. Values can also be ANY (matches any value) or NONE (matches no value).
Examples
>>> model.set_mix_viscosity_table("MyFluid", value = df)
>>> model.set_mix_viscosity_table(context="Heavy_Oil", value = df)
>>> model.set_mix_viscosity_table(BlackOilFluid="Heavy_Oil", value = df)
>>> model.set_mix_viscosity_table(CompositionalFluid="MyCompFluid", value = df)
>>> model.set_mix_viscosity_table(MFLFluid="MyMFLFluid", value = df)get_geometry(context: str | None = None, model_context: AbstractModelContext | None = None, **context_keywords: str) DataFrame
Return flowline geometry profile in the context.
Returns flowline geometry profile in the context. It will fail if more than one item is found in the context.
Parameters:
context (str) – Optional. The context string to search for flowline. Context can also be an instanse of “Component” class.
model_context (AbstractModelContext) – Optional. The context to search in.
context_keywords (str) – Comma separated list of context search criteria in the form of component=’value’, where component is the model component of the item, and value is the value of the model component. Values can also be ANY (matches any value) or NONE (matches no value).
Returns:
If flowline is in detialed mode, return flowline detailed profile data.
Return type:
pandas.DataFrame
Examples
>>> df = model.get_geometry(context="fl-1")
>>> dfw = model.get_geometry(Flowline="fl-2")set_geometry(context: str | None = None, value: DataFrame = None, model_context: AbstractModelContext | None = None, **context_keywords)
Set data frame to the flowline geometry profile in the context.
Set data frame to the flowline geometry profile in the context. It will fail if more than one item is found in the context.
Parameters:
value (DataFrame) – Required. The data frame to set to the flowline geometry profile
context (str) – Optional. The context string to search for flowline.
model_context (AbstractModelContext) – Optional. The context to search in.
context_keywords (str) – Comma separated list of context search criteria in the form of component=’value’, where component is the model component of the item, and value is the value of the model component. Values can also be ANY (matches any value) or NONE (matches no value).
Examples
>>> model.set_geometry(context="fl-1", value = df)
>>> model.set_geometry(Flowline="fl-2", value = df)get_geothermal_profile(context: str | None = None, model_context: AbstractModelContext | None = None, **context_keywords: str) DataFrame
Return the flowline or well geothermal profile in the context.
Returnz the flowline or well geothermal profile in the context. It will fail if more than one item is found in the context.
Parameters:
context (str) – Optional. The context string to search for flowline or well.
model_context (AbstractModelContext) – Optional. The context to search in.
context_keywords (str) – Comma separated list of context search criteria in the form of component=’value’, where component is the model component of the item, and value is the value of the model component. Values can also be ANY (matches any value) or NONE (matches no value).
Returns:
Return geothermal data frame. If flowline is simple, or geothermal data use global settings, empty data frame is returned.
Return type:
pandas.DataFrame
Examples
>>> df = model.get_geothermal_profile(context="fl-1")
>>> dfw = model.get_geothermal_profile(Well="well-1")set_geothermal_profile(context: str | None = None, value: DataFrame = None, model_context: AbstractModelContext | None = None, **context_keywords: str)
Set the DataFrame values to the flowline geothermal profile in the context.
Sets the DataFrame values to the flowline geothermal profile in the context. It will fail if more than one item is found in the context.
Parameters:
value (DataFrame) – Required. The data frame to set to the flowline geothermal profile
context (str) – Optional. The context string to search for flowline or well.
model_context (AbstractModelContext) – Optional. The context to search in.
context_keywords (str) – Comma separated list of context search criteria in the form of component=’value’, where component is the model component of the item, and value is the value of the model component. Values can also be ANY (matches any value) or NONE (matches no value).
Examples
>>> model.set_geothermal_profile(context="fl-1", value = df)
>>> model.set_geothermal_profile(Flowline="fl-2", value = df)read_catalog(context=None, model_context: AbstractModelContext | None = None, **context_keywords: str)
Update the equipment data from the catalog.
Update equipment data for an FCV, ESP, PCP, Pump or Compressor from the catalog. The equipment must have Manufacturer and Model set so that the entry in the catalog can be identified. It will fail if more than one item is found in the context.
Parameters:
context (str) – Optional. The context string to look for pump
model_context (AbstractModelContext) – Optional. The context to search in.
context_keywords (str) – Comma separated list of context search criteria in the form of component=’value’, where component is the model component of the item, and value is the value of the model component. Values can also be ANY (matches any value) or NONE (matches no value).
Examples
>>> model.read_catalog(context="Pump-1")batch_update()
Apply batch updates to the model
Ordinarily changes to the model through set…() are immediately applied. The batch update allows a series of updates to be cached and then updated as group. This is useful where many changes need to be applied, which can be bundled together and applied all at once. This has a performance improvement over individual updates.
Return type:
None
Examples
>>> with model.batch_update():
model.set_value("Choke", Parameters.Choke.BEANSIZE, 56)
model.set_geometry("FL-1", geometry_df)property about
Return information about the current Pipesim version.
Returns the versions of Pipesim, web API and Pipesim Python Toolkit that are being used. Called as a function about() it returns a dictionary of the version information. It will also return the individual properties of the ModelAbout() class.
Parameters:
None
Returns:
Information about the Pipesim version.
Return type:
dict
Examples
>>> version_dict = model.about()
>>> webapi_version = model.about.webapi_versionget_elevation(lat: float, long: float) float
Get the elevation of a location
Returns the elevation of the latitude / longitude location.
Parameters:
lat (float) – Required. The latitude of the location in degree.
long (float) – Required. The longitude of the location in degree.
Returns:
The elevation of the location with specified lat and long in meter Raise ValueError exception if the location is invalid.
Return type:
float
Examples
>>> elev = model.get_elevation(0.2, 0.5)get_elevations(locations)
Get the elevation of a array of location points with latitude longitude
Returns an array of location points with latitude, longitude and elevation.
Parameters:
location (array[dic{Longitude:value,Latitude:value}, ...]) – Required. Location array with longitude and latitude points.
Returns:
array[dic{Longitude – The location array with latitude, longitude and elevetion values for each point. Raise ValueError exception if the location is invalid.
Return type:
value,Latitude:value, Elevetion:value}, …]
Examples
>>> location = model.get_elevations([{Parameters.Location.LATITUDE:0.2,Parameters.Location.LONGITUDE:0.5}])export_parameters(filename: str, with_templates: bool = False) str
Export the model parameters to a CSV file.
Exports the model parameters to a comma separated values (CSV) file. Note that this only includes the scalar model parameters and simulation settings; tabulated data such as trajectories and profiles are not included.
Parameters:
filename (str) – Required. The name of the CSV filename to save the CSV.
with_templates (bool) – Optional. Whether to include templates (True) or not (False). The default is False.
Returns:
The full absolute path to the CSV file saved.
Return type:
str
Examples
>>> file = model.export_parameters(filename="C:/poet/model_details.pips")property sim_settings
The simulation settings
property fluids
The fluid settings, primarily setting up compositional fluids
property tasks
The simulation tasks
export_well(context: str | None = None, folder: str | None = None, model_context: AbstractModelContext | None = None, well_names: List[str] | None = None, **context_keywords: str) List[str]
Export the specified well(s) into Pipesim files
Exports the specified well(s) in to individual Pipesim files in the specified folder. The filename will match the well name. If the well name is not specified then all the wells in the model are exported. If folder is not specified, then the wells are exported to the current working folder
Parameters:
context (str) – Optional. The context string to search for well.
folder (str) – Optional. The folder location to save the files into.
model_context (AbstractModelContext) – Optional. The context to search in.
context_keywords (str) – Comma separated list of context search criteria in the form of component=’value’, where component is the model component of the item, and value is the value of the model component. Values can also be ANY (matches any value) or NONE (matches no value).
well_names (List[str]) – Optional. A list of well names to be exported. If this parameter is specified, the context, model_context and context_keywords are ignored
Returns:
The list of filenames with full path of each well exported.
Return type:
list
Examples
>>> files = model.export_well()
>>> files = model.export_well(context="Well 03")
>>> files = model.export_well(Well="Well 1")import_well(filename, name, fluid_override=False, overwrite_existing=False)
Import a well into the model.
Imports the well from the file into the model with the specified options.
Parameters:
filename (str) – Required. The filename to import the well from
name (str) – Required. The name that will be given to the well in the model.
fluid_override (bool) – Specifies whether the fluid from the well import file overwrites the existing fluid in the model (True) or not (False).
overwrite_existing (bool) – Specifies whether the well will overwrite (replace) an existing well in the model with the same name.
Examples
>>> model.import_well(filename="C:/temp/mywells/Well01.pips", name="Well02",
fluid_override=False, over_write_existing=False)import_wells(folder, fluid_override=False, cache_update=True)
import all wells from a specified folder
Parameters:
folder (str) – The folder location where the .pips files are located. All the pips files in the folder will be imported The file name must match to a well name inside the model.
fluid_override (bool) – Specifies whether the fluid from the well import file overwrites the existing fluid in the model (True) or not (False).
cache_update (bool) – If False, the cache is not updated(better performance). User should exit the session afterwards as the cache is not reflecting the newly imported wells
Returns:
Returns a list of well names of the imported wells
Return type:
List[str]
Examples
>>> folder = "C:/ImportFolder"
>>> imported_well_names = model.import_wells(folder)
>>> imported_well_names = model.import_wells(folder, True)
>>> imported_well_names = model.import_wells(folder, True, True)delete(context: str | None = None, component: str | None = None, model_context: AbstractModelContext | None = None, parameter: str | None = None, **context_keywords: str)
Delete components from the model.
Deletes the specified components from the model
Parameters:
context (str) – Optional. The context string to search in.
component (str) – Optional. The model component to look for.
model_context (AbstractModelContext) – Optional. The context to search in.
context_keywords (str) – Comma separated list of context search criteria in the form of component=’value’, where component is the model component of the item, and value is the value of the model component. Values can also be ANY (matches any value) or NONE (matches no value).
Examples
>>> model.delete(context="Sep01")add(component, name, context: str | None = None, parameters: dict | None = {})
Adds components to the model.
Create a new items in the model of the specified component type.
Parameters:
component (str) – Required. The type of model component to add to the model. This is one of the ModelComponents enumerations.
name (str) – Required. The name of the item added to the model.
context (str) – Optional. The string representation of the context to add the component. For example, when adding downhole object to a well, it is the context string of the well.
parameters (dict) – Optional. The parameters to set when creating the item. If not specified then the item is created with the default parameters.
Examples
>>> model.add(component=ModelComponents.BLACKOILFLUID, name="BO_01",
parameters={Parameters.BlackOilFluid.GOR:200})
>>> model.add(component=ModelComponents.CHOKE, name="TSV-01",
{Parameters.Choke.BEANSIZE:5})
>>> model.add(component=ModelComponents.CHOKE, name="ck", context="Well 1",
parameters={Parameters.DowholeLocation.TOPMEASUREDDEPTH:500,
Parameters.Choke.BEANSIZE=4.5})copy(context: str, name: str, use_template: bool | None = False)
Duplicate an item in the model.
Copy a model component. Note that it only works for the following components in the current release:
- Well
Parameters:
context (str) – The existing model component to be duplicated.
name (str) – The name of the duplicate. If this already exists then it will append a suffix to the name.
use_template (Boolean) – Optional. Duplicate the item from the the catalog, if it exists.
context_keywords (str) – Comma separated list of context search criteria in the form of component=’value’, where component is the model component of the item, and value is the value of the model component. Values can also be ANY (matches any value) or NONE (matches no value).
Examples
>>> model.copy(Well='Simple vertical', name='Sixgill', use_template=True)
>>> model.copy(Name='Well01', name='Well01', use_template=False)connect(source, destination, source_port=None)
Connect the source item to the destination item
Creates a connection from the source item to the destination item. It will fail if the source context or destination context match more than one item.
Parameters:
source (dict or context string) – The find context for the source item.
destination (dict or context string) – The find context for the destination item.
source_port (str) – If the source is a TwoPhaseSeparator or ThreePhaseSeparator, this is required to indicate which outlet should be used to make the connection, as provided by the Connection.Separator enumeration.
Examples
>>> connect(source={ModelComponent.Well:"Well 3"},
destination={"Choke":"TCV-03"})
>>> connect(source="Sep-01", destination="ExportGasSink",
source_port=Connection.Separator.Top)disconnect(source, destination: str | None = None, port: str | None = None)
Disconnect the source and the destination components.
Removes the connection between the source model component and the destination model component. Altenatively, specifying the source and the source port will break the connection from the specified port. The method will fail if the source or destination contexts do not exist or there is no connection between them.
Parameters:
source (dict or str) – The source model component (starting point for the connection). This can either be a context string or a context dictionary.
destination (dict or str) – Optional. The destination model component (ending point of the connection).
port (str) – Optional. The port to be disconnected on the source model component. Note that some model components (e.g. Junction, Heat Exchange, Choke) do not have indentifiable inlet and outlet ports hence should need to use the destination argument instead.
Examples
>>> disconnect(source={ModelComponent.Well:"Well 3"},
destination={Choke:"TCV-03"})
>>> disconnect(source="Well 3", destination="TCV-03")connections(context: str | None = None, component: str | None = None, model_context: AbstractModelContext | None = None, **context_keywords: str) List[Dict]
Get the model component connections in the context.
Returns the model component connections in the context. It is provided as a list of dictionaries with the Source, Destination and Source Port for easy revieiwng and formatting in a DataFrame. If no context is provided, then the information of all connections are returned.
Parameters:
context (str) – Optional. The context string to search for Source or Destination.
component (str) – Optional. The model component to look for Source or Destination.
model_context (AbstractModelContext) – Optional. The context to search in.
context_keywords (str) – Comma separated list of context search criteria in the form of component=’value’, where component is the model component of the item, and value is the value of the model component. Values can also be ANY (matches any value) or NONE (matches no value).
Returns:
Return a list of dictionaries. Each dictionary contains connection information including Source, Source Port, and Destination
Return type:
List[Dict]
Examples
>>> model.connections(Well=ALL)get_connections(context: str | None = None, component: str | None = None, model_context: AbstractModelContext | None = None, **context_keywords: str) Dict
Get the connections for each item in the context.
Returns the connections for each item in the context. It is formatted as a dictionary of context, with each context providing the source, destination and the ports of the context items. It is therefore useful as a look-up table to find the inlets and outlets of specific model components. If no context is provided, then the information of all connections is returned.
Parameters:
context (str) – Optional. The context string to search for Source or Destination.
component (str) – Optional. The model component to look for Source or Destination.
model_context (AbstractModelContext) – Optional. The context to search in.
context_keywords (str) – Comma separated list of context search criteria in the form of component=’value’, where component is the model component of the item, and value is the value of the model component. Values can also be ANY (matches any value) or NONE (matches no value).
Returns:
Returns a dictionary of dictionaries. Each dictionary contains connection information including Source, Source Port, and Destination
Return type:
Dict[Dict]
Examples
>>> model.get_connections("MBD-101")convert(context: str | None = None, to_component: str = None, model_context: AbstractModelContext | None = None, **context_keywords: str) DataFrame | None
Convert an item to the specified type of model component.
Converts a junction to either a WellHead, Source or Sink. If more than one item matches the search context then it will fail.
Parameters:
context (str) – Optional. The context string to search in.
to_component (str) – Required. The model component type to change the specified item into. This must be an enumeration of ModelComponents, though only WellHead, Source and Sink are supported at this time.
model_context (AbstractModelContext) – Optional. The context to search in.
context_keywords (str) – Comma separated list of context search criteria in the form of component=’value’, where component is the model component of the item, and value is the value of the model component. Values can also be ANY (matches any value) or NONE (matches no value).
Examples
>>> model.convert(component=ModelComponents.Junction, context="JN-01",
to_component=ModelComponents.WELL)class sixgill.pipesim.ModelAbout(model)
Bases: object
Provides details about the model, web API and Python Toolkit
property webapi_version
The Pipesim web API version
property filename
The model folder and file name
property toolkit_version
The Pipesim Python Toolkit version
property unit_system
The engineering unit system
property ui_unit_system
The engineering ui unit system
class sixgill.pipesim.Task(model)
Bases: object
property networksimulation
property systemperformance
property networkoptimizersimulation
property vfptablessimulation
property ptprofilesimulation
property nodalanalysis
property wellperformancecurvessimulation
property systemanalysissimulation
property gldiagnosticssimulation
property wellcalibration
class sixgill.pipesim.NetworkSimulation(model, sim_type)
Bases: AbstractNetworkSimulation
get_use_surface_conditions(study: str | None = None)
Returns the value of use surface conditions.
Returns the value of use surface conditions for the specified study. If the network simulation task does not exist in the study, a new one will be created.
Parameters:
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
Returns:
The value of use surface conditions.
Return type:
bool
Examples
>>> use_surface = model.tasks.networksimulation.get_use_surface_conditions()
>>> use_surface = model.tasks.networksimulation.get_use_surface_conditions("Study 1")set_use_surface_conditions(value: bool, study: str | None = None)
Sets the value of use surface conditions.
Sets the the value of use surface conditions for the specified study. If the network simulation task does not exist in the study, a new one will be created.
Parameters:
value (bool) – The value of use surface conditions. If true, set to use surface conditions. If false, set to use reservoir conditions.
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
Examples
>>> model.tasks.networksimulation.set_use_surface_conditions(True)
>>> model.tasks.networksimulation.set_use_surface_conditions(False, study = "Study 1")get_constraint_branch_names(study: str | None = None) Dict
Returns the study constraint branch names.
Returns the network simulation constraint branch names for the specified study. If the network simulation task does not exist in the study, a new one will be created.
Parameters:
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
Returns:
The study constraint branch names.
Return type:
dict
Examples
>>> studynetsim1 = model.tasks.networksimulation.get_constraint_branch_names()
>>> studynetsim1 = model.tasks.networksimulation.get_constraint_branch_names("Study 1")get_conditions(use_surface_condition: bool | None = None, study: str | None = None) Dict
Returns the study conditions.
Returns the network simulation conditions for the specified study. If the network simulation task does not exist in the study, a new one will be created.
Parameters:
use_surface_condition (bool) – Optional. get surface conditions or reservoir conditions. If not provided, default is the conditions used in the model.
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
Returns:
The study conditions.
Return type:
dict
Examples
>>> studynetsim1 = model.tasks.networksimulation.get_conditions()
>>> studynetsim1 = model.tasks.networksimulation.get_conditions("Study 1")
>>> studynetsim1 = model.tasks.networksimulation.get_conditions(
use_surface_condition=True, study="Study 1")set_conditions(boundaries: dict | None = {}, constraints: dict | None = {}, use_surface_condition: bool | None = None, study: str | None = None)
Sets the study conditions.
Sets the study conditions for the specified study. If the network simulation task does not exist in the study, a new one will be created.
Parameters:
use_surface_condition (bool) – Optional. set surface conditions or reservoir conditions. If not provided, default is the conditions used in the model.
boundaries (dict) – Optional. The boundary conditions to be set on the study.
constraints (dict) – Optional. The rate constraints to be set on the study.
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
Returns:
The existing or created network simulation operation.
Return type:
Network simulation operation
Examples
>>> model.tasks.networksimulation.set_conditions(
boundaries={"Well:VertComp":{
Parameters.Boundary.PRESSURE:NAN,
Parameters.Boundary.TEMPERATURE:150,
Parameters.Boundary.FLOWRATETYPE:Constants.FlowRateType.GASFLOWRATE,
Parameters.Boundary.GASFLOWRATE:5}},
constraints={"Well":{Parameters.RateConstraint.LIQUIDFLOWRATE:200.0}})
>>> model.tasks.networksimulation.set_conditions(use_surface_condition=False,
boundaries={"Well:VertComp":{
Parameters.Boundary.PRESSURE:NAN,
Parameters.Boundary.TEMPERATURE:150,
Parameters.Boundary.FLOWRATETYPE:Constants.FlowRateType.GASFLOWRATE,
Parameters.Boundary.GASFLOWRATE:5}},
study = "Study 1")reset_conditions(study: str | None = None)
Resets the study conditions to be synchronized with the model.
Resets the study conditions to be synchronized with the model for the specified study.
Parameters:
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
Returns:
Whether the reset succeeded (True) or not (False).
Return type:
bool
Examples
>>> model.tasks.networksimulation.reset_conditions()
>>> model.tasks.networksimulation.reset_conditions(study = "Study 1")get_constraints(study: str | None = None) Dict
Returns the study constraints.
Returns the network simulation conditions for the specified study. If the network simulation task does not exist in the study, a new one will be created.
Parameters:
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
Returns:
The study conditions.
Return type:
dict
Examples
>>> studynetsim1 = model.tasks.networksimulation.get_constraints()
>>> studynetsim1 = model.tasks.networksimulation.get_constraints("Study 1")set_constraints(constraints, study: str | None = None)
Sets the study constraints.
Sets the study constraints for the specified study. If the network simulation task does not exist in the study, a new one will be created.
Parameters:
constraints (dict) – The constraints to be set on the study.
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
Returns:
The existing or created network simulation operation.
Return type:
Network simulation operation
Examples
>>> model.tasks.networksimulation.set_constraints(constraints={"Well":{Parameters.RateConstraint.LIQUIDFLOWRATE:200.0}})
>>> model.tasks.networksimulation.set_constraints({"Well":{Parameters.RateConstraint.LIQUIDFLOWRATE:200.0}})
>>> model.tasks.networksimulation.set_constraints(
constraints={"Well":{Parameters.RateConstraint.LIQUIDFLOWRATE:200.0}},
study = "Study 1")delete_constraints(study: str | None = None)
Deletes the study constraints.
Parameters:
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
Returns:
Whether the reset succeeded (True) or not (False).
Return type:
bool
Examples
>>> model.tasks.networksimulation.delete_constraints()
>>> model.tasks.networksimulation.delete_constraints(study = "Study 1")generate_engine_files(folder_path: str | None = None, study: str | None = None) List[str]
Create engine files for the specified study.
Generate the engine file(s) for the requested study. The files are written to the specified folder, or to the current model folder if one is not given.
Parameters:
folder_path (str) – Optional. The folder location where the generated files are written to. If not specified, the files will be written to current Pipesim model file folder.
study (str) – Optional. The study name.
Returns:
The list of engine files generated.
Return type:
List[str]
Examples
>>> engine_files = model.tasks.networksimulation.generate_engine_files()
>>> engine_files = model.tasks.networksimulation.generate_engine_files(
study='Study 1')
>>> engine_files = model.tasks.networksimulation.generate_engine_files(
folder_path="D:/Temp", study='Study 1')run(profile_variables: list | None = None, system_variables: list | None = None, boundaries: dict | None = {}, constraints: dict | None = {}, use_surface_condition: bool | None = None, study: str | None = None, options: dict | None = {})
Runs a network simulation.
Runs a network simulation. Optionally the boundaries, constraints, and variables may be set at the same time avoiding the need to use set_conditions(). If the network simulation task does not exist in the study, a new one will be created. The method waits until the simulation has finished before returning, and then returns the results.
Parameters:
use_surface_condition (bool) – Optional. use surface conditions or reservoir conditions. If not provided, default is the conditions used in the model.
boundaries (dict) – Optional. The boundary conditions to be set on the study.
constraints (dict) – Optional. The constraints to be set on the study.
profile_variables (list) – Optional. The list of profile variables to be returned with the simulation profile results. If omitted then all the possible profile variables are returned.
system_variables (list) – Optional. The list of system variables to be returned with the simulation system results. If omitted then all the possible system variables are returned.
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
options (dict) – Optional. simulations options like generating ouput files and using Restart
Returns:
The simulation results.
Return type:
dict
Examples
>>> sim_results = model.tasks.networksimulation.run(
use_surface_condition=False,
boundaries={"Well1.Comp1":{
Parameters.Boundary.PRESSURE:NAN,
Parameters.Boundary.LIQUIDFLOWRATE:200,
Parameters.Boundary.FLOWRATETYPE:Constants.FlowRateType.LIQUIDFLOWRATE}
},
constraints={"Well":{Parameters.RateConstraint.LIQUIDFLOWRATE:200.0}},
profile_variables=OutputVariables.Profile.GAS_FIELD,
system_variables=OutputVariables.System.GAS_FIELD,
options={SimulationOptions.GENERATEOUTPUTFILE:True,
SimulationOptions.RESTART:False,
SimulationOptions.PARALLELISM:4})#generate output file, do not use restart files, run with 4 coresstart(profile_variables: list | None = None, system_variables: list | None = None, boundaries: dict | None = {}, constraints: dict | None = {}, use_surface_condition: bool | None = None, options: dict | None = {}, study: str | None = None) str
Starts running a simulation of the specified type, returning the simulation id immediately which can be used later to check the status and get the results. If the network simulation task does not exist in the study, a new one will be created.
Parameters:
use_surface_condition (bool) – Optional. use surface conditions or reservoir conditions. If not provided, default is the conditions used in the model.
parameters (dict) – Optional. The parameters and respective values to set. For PT Profile, it must contain the name of the StartNode (Well or Source)
boundaries (dict) – Optional. The boundary conditions to be set on the study.
constraints (dict) – Optional. The constraints to be set on the study.
sensitivities (dict) – Optional. For PT Profile simulations, the sensitivities.
profile_variables (list) – Optional. The list of profile variables to be returned with the simulation profile results. If omitted then all the possible profile variables are returned.
system_variables (list) – Optional. The list of system variables to be returned with the simulation system results. If omitted then all the possible system variables are returned.
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
options (dict) – Optional. simulations options like generating ouput files and using Restart
Returns:
The simulation id, which can be used to access simulation status and get the results.
Return type:
str
Examples
>>> sim_id = model.tasks.networksimulation.start(use_surface_condition=False,
boundaries={"Well1.Comp1":{
Parameters.Boundary.PRESSURE:NAN,
Parameters.Boundary.LIQUIDFLOWRATE:200,
Parameters.Boundary.FLOWRATETYPE:Constants.FlowRateType.LIQUIDFLOWRATE}
},
constraints={"Well":{Parameters.RateConstraint.LIQUIDFLOWRATE:200.0}},
profile_variables=OutputVariables.Profile.GAS_FIELD,
system_variables=OutputVariables.System.GAS_FIELD,
options={SimulationOptions.GENERATEOUTPUTFILE:True,
SimulationOptions.RESTART:False,
SimulationOptions.PARALLELISM:4}) #generate output file, do not use restart files, run with 4 coresclass sixgill.pipesim.PTProfileSimulation(model, sim_type)
Bases: AbstractSingleBranchSimulation
get_conditions(producer, study: str | None = None)
Returns the study conditions.
Returns the PT profile simulation conditions for the specified study. If the PT profile simulation task does not exist in the study, a new one will be created.
Parameters:
producer (str) – Required. The name of the producer for the PT profile simulation task
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
Returns:
The PT profile settings in a dictionary format.
Return type:
dictZ
Examples
>>> studyptsim1 = model.tasks.ptprofilesimulation.get_conditions("Well 1")
>>> studyptsim1 = model.tasks.ptprofilesimulation.get_conditions("Well 1",
"Study 2")set_conditions(producer, parameters={}, study: str | None = None)
Sets the study conditions.
Sets the PT profile simulation task conditions for the specified study. If the PT profile simulation task does not exist in the study, a new one will be created.
Parameters:
producer (str) – Required. The name of the producer for the PT profile simulation task.
parameters (dict) – Required. The conditions for PT profile task to be set on the study.
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
Returns:
The existing or created PT profile operation.
Return type:
PT profile operation
Examples
>>> model.tasks.ptprofilesimulation.set_conditions("Well 1",
parameters={Parameters.PTProfileSimulation.INLETPRESSURE:3000,
Parameters.PTProfileSimulation.OUTLETPRESSURE:150,
Parameters.PTProfileSimulation.FLOWRATETYPE:Constants.FlowRateType.GASFLOWRATE,
Parameters.PTProfileSimulation.GASFLOWRATE:5})
>>> model.tasks.ptprofilesimulation.set_conditions("Well 1",
parameters={Parameters.PTProfileSimulation.INLETPRESSURE:3000,
Parameters.PTProfileSimulation.OUTLETPRESSURE:150,
Parameters.PTProfileSimulation.FLOWRATETYPE:Constants.FlowRateType.GASFLOWRATE,
Parameters.PTProfileSimulation.GASFLOWRATE:5},
study="Study 2")reset_conditions(producer, study: str | None = None)
Resets the study conditions to be synchronized with the model.
Resets the study conditions to be synchronized with the model for the specified study.
Parameters:
producer (str) – Required. The name of the producer for the PT profile simulation task.
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
Returns:
Whether the reset succeeded (True) or not (False).
Return type:
bool
Examples
>>> model.tasks.ptprofilesimulation.reset_conditions("Well 1")
>>> model.tasks.ptprofilesimulation.reset_conditions(
"Well 1", study = "Study 1")get_sensitivity_variables(producer, study: str | None = None) List[str]
Get the available sensitivity variable list.
Get the list of possible sensitivity variables for the PT profile simulation task. If the PT profile simulation task does not exist in the study, a new one will be created.
Parameters:
producer (str) – Required. The name of the producer for the PT profile simulation task.
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
Returns:
a list of sensitivity variables names that can be applied to this task.
Return type:
list
Examples
>>> model.tasks.ptprofilesimulation.get_sensitivity_variables("Well 1")
>>> model.tasks.ptprofilesimulation.get_sensitivity_variables("Well 1",
study="Study 2")get_calculated_variables(producer, study: str | None = None) List[str]
get the possible calculated variable list.
Get the list of possible calculated variable for the PT profile simulation task. If the PT profile simulation task does not exist in the study, a new one will be created.
Parameters:
producer (str) – Required. The name of the producer for the PT profile simulation task.
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
Returns:
a list of possible calculated variable names that can be applied to this task.
Return type:
list
Examples
>>> model.tasks.ptprofilesimulation.get_calculated_variables("Well 1")
>>> model.tasks.ptprofilesimulation.get_calculated_variables("Well 1",
study="Study 2")generate_engine_files(producer, folder_path: str | None = None, study: str | None = None) List[str]
Create engine files for the specified study.
Generate the engine file(s) for the requested study. The files are written to the specified folder, or to the current model folder if one is not given.
Parameters:
producer (str) – Required. The name of the producer for the PT profile simulation task.
folder_path (str) – Optional. The folder location where the generated files are written to. If not specified, the files will be written to current Pipesim model folder.
study (str) – Optional. The study name.
Returns:
The list of engine files generated.
Return type:
List[str]
Examples
>>> engine_files = model.tasks.ptprofilesimulation.generate_engine_files(
producer="Well 1")
>>> engine_files = model.tasks.ptprofilesimulation.generate_engine_files(
producer="Well 1", folder_path="D:/Temp")
>>> engine_files = model.tasks.ptprofilesimulation.generate_engine_files(
producer="Well 1", folder_path="D:/Temp",
study="Study 1")run(producer, parameters={}, profile_variables: list | None = None, system_variables: list | None = None, study: str | None = None)
Runs a PT Profile simulation.
Runs a PT Profile simulation. Optionally the parameters and variables may be set at the same time avoiding the need to use set_conditions(). If the PT profile simulation task does not exist in the study, a new one will be created. The method waits until the simulation has finished before returning, and then returns the results.
Parameters:
producer (str) – Required. The name of the producer for the PT profile simulation task.
parameters (dict) – Optional. The parameters and respective values to set.
profile_variables (list) – Optional. The list of profile variables to be returned with the simulation profile results. If omitted then all the possible profile variables are returned.
system_variables (list) – Optional. The list of system variables to be returned with the simulation system results. If omitted then all the possible system variables are returned.
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
Returns:
The simulation results.
Return type:
dict
Examples
>>> sim_results = model.tasks.ptprofilesimulation.run( "Well 1",
parameters={Parameters.PTProfileSimulation.OUTLETPRESSURE:200,
Parameters.PTProfileSimulation.SENSITIVITYVARIABLE:
{Parameters.PTProfileSimulation.SensitivityVariable.COMPONENT:
"VertComp",
Parameters.PTProfileSimulation.SensitivityVariable.VARIABLE:
"ReservoirPressure",
Parameters.PTProfileSimulation.SensitivityVariable.VALUES:
[2000,3000,4000]}
},
profile_variables=OutputVariables.Profile.GAS_FIELD,
system_variables=OutputVariables.System.GAS_FIELD)start(producer, parameters={}, profile_variables: list | None = None, system_variables: list | None = None, study: str | None = None)
Starts running a PT Profile simulation, returning the simulation id immediately which can be used later to check the status and get the results If the PT profile simulation task does not exist in the study, a new one will be created.
Parameters:
producer (str) – Required. The name of the producer for the PT profile simulation task.
parameters (dict) – Optional. The parameters and respective values to set.
profile_variables (list) – Optional. The list of profile variables to be returned with the simulation profile results. If omitted then all the possible profile variables are returned.
system_variables (list) – Optional. The list of system variables to be returned with the simulation system results. If omitted then all the possible system variables are returned.
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
Returns:
The simulation id, which can be used to access simulation status and get the results.
Return type:
str
Examples
>>> sim_id = model.tasks.ptprofilesimulation.start( "Well 1",
parameters={Parameters.PTProfileSimulation.OUTLETPRESSURE:200,
Parameters.PTProfileSimulation.SENSITIVITYVARIABLE:
{Parameters.PTProfileSimulation.SensitivityVariable.COMPONENT:
"VertComp",
Parameters.PTProfileSimulation.SensitivityVariable.VARIABLE:
"ReservoirPressure",
Parameters.PTProfileSimulation.SensitivityVariable.VALUES:
[2000,3000,4000]}
},
profile_variables=OutputVariables.Profile.GAS_FIELD,
system_variables=OutputVariables.System.GAS_FIELD)class sixgill.pipesim.GLDiagnosticsSimulation(model, sim_type)
Bases: AbstractSingleBranchSimulation
get_conditions(producer, study: str | None = None)
Returns the study conditions.
Returns the GLDiagnostics simulation conditions for the specified study. If the GLDiagnostics simulation task does not exist in the study, a new one will be created.
Parameters:
producer (str) – Required. The name of the producer for the GLDiagnostics simulation task
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
Returns:
The GLDiagnostics settings in a dictionary format.
Return type:
dictZ
Examples
>>> studyptsim1 = model.tasks.gldiagnosticssimulation.get_conditions("Well 1")
>>> studyptsim1 = model.tasks.gldiagnosticssimulation.get_conditions("Well 1",
"Study 2")set_conditions(producer, parameters={}, boundaries: dict | None = {}, study: str | None = None)
Sets the study conditions.
Sets the GLDiagnostics simulation task conditions for the specified study. If the GLDiagnostics simulation task does not exist in the study, a new one will be created.
Parameters:
producer (str) – Required. The name of the producer for the GLDiagnostics simulation task.
parameters (dict) – Required. The conditions for GLDiagnostics task to be set on the study.
boundaries (dict) – Optional. The boundary conditions to be set on the study.
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
Returns:
The existing or created GLDiagnostics operation.
Return type:
GLDiagnostics operation
Examples
>>> model.tasks.gldiagnosticssimulation.set_conditions("Well 1",
parameters={Parameters.GLDiagnosticsSimulation.OUTLETPRESSURE:150,
Parameters.GLDiagnosticsSimulation.SURFACEINJECTIONPRESSURE:1750,
Parameters.GLDiagnosticsSimulation.TARGETINJECTIONRATE: 2.5})
>>> model.tasks.gldiagnosticssimulation.set_conditions("Well 1",
parameters={Parameters.GLDiagnosticsSimulation.OUTLETPRESSURE:150,
Parameters.GLDiagnosticsSimulation.SURFACEINJECTIONPRESSURE:1750,
Parameters.GLDiagnosticsSimulation.TARGETINJECTIONRATE: 2.5},
study="Study 2")reset_conditions(producer, study: str | None = None)
Resets the study conditions to be synchronized with the model.
Resets the study conditions to be synchronized with the model for the specified study.
Parameters:
producer (str) – Required. The name of the producer for the GLDiagnostics simulation task.
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
Returns:
Whether the reset succeeded (True) or not (False).
Return type:
bool
Examples
>>> model.tasks.gldiagnosticssimulation.reset_conditions("Well 1")
>>> model.tasks.gldiagnosticssimulation.reset_conditions(
"Well 1", study = "Study 1")get_sensitivity_variables(producer, study: str | None = None) List[str]
Get the available sensitivity variable list.
Get the list of possible sensitivity variables for the GLDiagnostics simulation task. If the GLDiagnostics simulation task does not exist in the study, a new one will be created.
Parameters:
producer (str) – Required. The name of the producer for the GLDiagnostics simulation task.
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
Returns:
a list of sensitivity variables names that can be applied to this task.
Return type:
list
Examples
>>> model.tasks.gldiagnosticssimulation.get_sensitivity_variables("Well 1")
>>> model.tasks.gldiagnosticssimulation.get_sensitivity_variables("Well 1",
study="Study 2")generate_engine_files(producer, folder_path: str | None = None, study: str | None = None) List[str]
Create engine files for the specified study.
Generate the engine file(s) for the requested study. The files are written to the specified folder, or to the current model folder if one is not given.
Parameters:
producer (str) – Required. The name of the producer for the GLDiagnostics simulation task.
folder_path (str) – Optional. The folder location where the generated files are written to. If not specified, the files will be written to current Pipesim model folder.
study (str) – Optional. The study name.
Returns:
The list of engine files generated.
Return type:
List[str]
Examples
>>> engine_files = model.tasks.gldiagnosticssimulation.generate_engine_files(
producer="Well 1")
>>> engine_files = model.tasks.gldiagnosticssimulation.generate_engine_files(
producer="Well 1", folder_path="D:/Temp")
>>> engine_files = model.tasks.gldiagnosticssimulation.generate_engine_files(
producer="Well 1", folder_path="D:/Temp",
study="Study 1")run(producer, parameters={}, boundaries: dict | None = {}, profile_variables: list | None = None, system_variables: list | None = None, study: str | None = None)
Runs a GLDiagnostics simulation.
Runs a GLDiagnostics simulation. Optionally the parameters and variables may be set at the same time avoiding the need to use set_conditions(). If the GLDiagnostics simulation task does not exist in the study, a new one will be created. The method waits until the simulation has finished before returning, and then returns the results.
Parameters:
producer (str) – Required. The name of the producer for the GLDiagnostics simulation task.
parameters (dict) – Optional. The parameters and respective values to set.
boundaries (dict) – Optional. The boundary conditions to be set on the study.
profile_variables (list) – Optional. The list of profile variables to be returned with the simulation profile results. If omitted then all the possible profile variables are returned.
system_variables (list) – Optional. The list of system variables to be returned with the simulation system results. If omitted then all the possible system variables are returned.
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
Returns:
The simulation results.
Return type:
dict
Examples
>>> sim_results = model.tasks.gldiagnosticssimulation.run( "Well 1",
parameters={Parameters.GLDiagnosticsSimulation.OUTLETPRESSURE:200,
Parameters.GLDiagnosticsSimulation.SENSITIVITYVARIABLE:
{Parameters.GLDiagnosticsSimulation.SensitivityVariable.COMPONENT:
"VertComp",
Parameters.GLDiagnosticsSimulation.SensitivityVariable.VARIABLE:
"ReservoirPressure",
Parameters.GLDiagnosticsSimulation.SensitivityVariable.VALUES:
[2000,3000,4000]}
},
profile_variables=OutputVariables.Profile.GAS_FIELD,
system_variables=OutputVariables.System.GAS_FIELD)start(producer, parameters={}, boundaries: dict | None = {}, profile_variables: list | None = None, system_variables: list | None = None, study: str | None = None)
Starts running a GLDiagnostics simulation, returning the simulation id immediately which can be used later to check the status and get the results If the GLDiagnostics simulation task does not exist in the study, a new one will be created.
Parameters:
producer (str) – Required. The name of the producer for the GLDiagnostics simulation task.
parameters (dict) – Optional. The parameters and respective values to set.
boundaries (dict) – Optional. The boundary conditions to be set on the study.
profile_variables (list) – Optional. The list of profile variables to be returned with the simulation profile results. If omitted then all the possible profile variables are returned.
system_variables (list) – Optional. The list of system variables to be returned with the simulation system results. If omitted then all the possible system variables are returned.
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
Returns:
The simulation id, which can be used to access simulation status and get the results.
Return type:
str
Examples
>>> sim_id = model.tasks.gldiagnosticssimulation.start( "Well 1",
parameters={Parameters.GLDiagnosticsSimulation.OUTLETPRESSURE:200,
Parameters.GLDiagnosticsSimulation.SENSITIVITYVARIABLE:
{Parameters.GLDiagnosticsSimulation.SensitivityVariable.COMPONENT:
"VertComp",
Parameters.GLDiagnosticsSimulation.SensitivityVariable.VARIABLE:
"ReservoirPressure",
Parameters.GLDiagnosticsSimulation.SensitivityVariable.VALUES:
[2000,3000,4000]}
},
profile_variables=OutputVariables.Profile.GAS_FIELD,
system_variables=OutputVariables.System.GAS_FIELD)class sixgill.pipesim.SystemAnalysisSimulation(model, sim_type)
Bases: AbstractSingleBranchSimulation
get_conditions(producer, study: str | None = None)
Returns the study conditions.
Returns the System analysis simulation conditions for the specified study. If the System analysis task does not exist in the study, a new one will be created.
Parameters:
producer (str) – Required. The name of the producer for the System analysis simulation task
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
Returns:
The System analysis settings in a dictionary format.
Return type:
dictZ
Examples
>>> studyptsim1 = model.tasks.systemanalysissimulation.get_conditions("Well 1")
>>> studyptsim1 = model.tasks.systemanalysissimulation.get_conditions("Well 1",
"Study 2")set_conditions(producer, parameters={}, study: str | None = None)
Sets the study conditions.
Sets the System analysis simulation task conditions for the specified study. If the System analysis simulation task does not exist in the study, a new one will be created.
Parameters:
producer (str) – Required. The name of the producer for the System analysis simulation task.
parameters (dict) – Required. The conditions for System analysis task to be set on the study.
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
Returns:
The existing or created System analysis operation.
Return type:
System analysis operation
Examples
>>> model.tasks.systemanalysissimulation.set_conditions("Well 1",
parameters={Parameters.SystemAnalysisSimulation.INLETPRESSURE:3000,
Parameters.SystemAnalysisSimulation.OUTLETPRESSURE:150,
Parameters.SystemAnalysisSimulation.FLOWRATETYPE:Constants.FlowRateType.GASFLOWRATE,
Parameters.SystemAnalysisSimulation.LIQUIDFLOWRATE:5})
>>> model.tasks.systemanalysissimulation.set_conditions("Well 1",
parameters={Parameters.SystemAnalysisSimulation.INLETPRESSURE:3000,
Parameters.SystemAnalysisSimulation.OUTLETPRESSURE:150,
Parameters.SystemAnalysisSimulation.FLOWRATETYPE:Constants.FlowRateType.GASFLOWRATE,
Parameters.SystemAnalysisSimulation.LIQUIDFLOWRATE:5},
study="Study 2")reset_conditions(producer, study: str | None = None)
Resets the study conditions to be synchronized with the model.
Resets the study conditions to be synchronized with the model for the specified study.
Parameters:
producer (str) – Required. The name of the producer for the System analysis simulation task.
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
Returns:
Whether the reset succeeded (True) or not (False).
Return type:
bool
Examples
>>> model.tasks.systemanalysissimulation.reset_conditions("Well 1")
>>> model.tasks.systemanalysissimulation.reset_conditions(
"Well 1", study = "Study 1")get_calculated_variables(producer, study: str | None = None) List[str]
get the possible calculated variable list.
Get the list of possible calculated variable for the System analysis simulation task. If the System analysis simulation task does not exist in the study, a new one will be created.
Parameters:
producer (str) – Required. The name of the producer for the System analysis simulation task.
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
Returns:
a list of possible calculated variable names that can be applied to this task.
Return type:
list
Examples
>>> model.tasks.systemanalysissimulation.get_calculated_variables("Well 1")
>>> model.tasks.systemanalysissimulation.get_calculated_variables("Well 1",
study="Study 2")get_sensitivity_variables(producer, study: str | None = None) List[str]
Get the available sensitivity variable list.
Get the list of possible sensitivity variables for the System analysis simulation task. If the System analysis simulation task does not exist in the study, a new one will be created.
Parameters:
producer (str) – Required. The name of the producer for the System analysis simulation task.
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
Returns:
a list of sensitivity variables names that can be applied to this task.
Return type:
list
Examples
>>> model.tasks.systemanalysissimulation.get_sensitivity_variables("Well 1")
>>> model.tasks.systemanalysissimulation.get_sensitivity_variables("Well 1",
study="Study 2")generate_engine_files(producer, folder_path: str | None = None, study: str | None = None) List[str]
Create engine files for the specified study.
Generate the engine file(s) for the requested study. The files are written to the specified folder, or to the current model folder if one is not given.
Parameters:
producer (str) – Required. The name of the producer for the System analysis simulation task.
folder_path (str) – Optional. The folder location where the generated files are written to. If not specified, the files will be written to current Pipesim model folder.
study (str) – Optional. The study name.
Returns:
The list of engine files generated.
Return type:
List[str]
Examples
>>> engine_files = model.tasks.systemanalysissimulation.generate_engine_files(
producer="Well 1")
>>> engine_files = model.tasks.systemanalysissimulation.generate_engine_files(
producer="Well 1", folder_path="D:/Temp")
>>> engine_files = model.tasks.systemanalysissimulation.generate_engine_files(
producer="Well 1", folder_path="D:/Temp",
study="Study 1")run(producer, parameters={}, profile_variables: list | None = None, system_variables: list | None = None, study: str | None = None)
Runs a System analysis simulation.
Runs a System analysis simulation. Optionally the parameters and variables may be set at the same time avoiding the need to use set_conditions(). If the System analysis simulation task does not exist in the study, a new one will be created. The method waits until the simulation has finished before returning, and then returns the results.
Parameters:
producer (str) – Required. The name of the producer for the System analysis simulation task.
parameters (dict) – Optional. The parameters and respective values to set.
profile_variables (list) – Optional. The list of profile variables to be returned with the simulation profile results. If omitted then all the possible profile variables are returned.
system_variables (list) – Optional. The list of system variables to be returned with the simulation system results. If omitted then all the possible system variables are returned.
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
Returns:
The simulation results.
Return type:
dict
Examples
>>> sim_results = model.tasks.systemanalysissimulation.run( "Well 1",
parameters={Parameters.SystemAnalysisSimulation.OUTLETPRESSURE:200,
Parameters.SystemAnalysisSimulation.SENSITIVITYVARIABLE:
{Parameters.SystemAnalysisSimulation.SensitivityVariable.COMPONENT:
"VertComp",
Parameters.SystemAnalysisSimulation.SensitivityVariable.VARIABLE:
"ReservoirPressure",
Parameters.SystemAnalysisSimulation.SensitivityVariable.VALUES:
[2000,3000,4000]}
},
profile_variables=OutputVariables.Profile.GAS_FIELD,
system_variables=OutputVariables.System.GAS_FIELD)start(producer, parameters={}, profile_variables: list | None = None, system_variables: list | None = None, study: str | None = None)
Starts running a System analysis simulation, returning the simulation id immediately which can be used later to check the status and get the results If the System analysis simulation task does not exist in the study, a new one will be created.
Parameters:
producer (str) – Required. The name of the producer for the System analysis simulation task.
parameters (dict) – Optional. The parameters and respective values to set.
profile_variables (list) – Optional. The list of profile variables to be returned with the simulation profile results. If omitted then all the possible profile variables are returned.
system_variables (list) – Optional. The list of system variables to be returned with the simulation system results. If omitted then all the possible system variables are returned.
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
Returns:
The simulation id, which can be used to access simulation status and get the results.
Return type:
str
Examples
>>> sim_id = model.tasks.systemanalysissimulation.start( "Well 1",
parameters={Parameters.SystemAnalysisSimulation.OUTLETPRESSURE:200,
Parameters.SystemAnalysisSimulation.SENSITIVITYVARIABLE:
{Parameters.SystemAnalysisSimulation.SensitivityVariable.COMPONENT:
"VertComp",
Parameters.SystemAnalysisSimulation.SensitivityVariable.VARIABLE:
"ReservoirPressure",
Parameters.SystemAnalysisSimulation.SensitivityVariable.VALUES:
[2000,3000,4000]}
},
profile_variables=OutputVariables.Profile.GAS_FIELD,
system_variables=OutputVariables.System.GAS_FIELD)class sixgill.pipesim.WellPerformanceCurvesSimulation(model, sim_type)
Bases: AbstractSingleBranchSimulation
get_conditions(producer, study: str | None = None)
Returns the study conditions.
Returns the Well performance curves simulation conditions for the specified study. If the Well performance curves simulation task does not exist in the study, a new one will be created.
Parameters:
producer (str) – Required. The name of the producer for the Well performance curves simulation task
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
Returns:
The Well performance curves settings in a dictionary format.
Return type:
dict
Examples
>>> studyptsim1 = model.tasks.wellperformancecurvessimulation.get_conditions("Well 1")
>>> studyptsim1 = model.tasks.wellperformancecurvessimulation.get_conditions("Well 1",
"Study 2")set_conditions(producer, parameters={}, study: str | None = None)
Sets the study conditions.
Sets the Well performance curves simulation task conditions for the specified study. If the Well performance curves simulation task does not exist in the study, a new one will be created.
Parameters:
producer (str) – Required. The name of the producer for the Well performance curves simulation task.
parameters (dict) – Required. The conditions for Well performance curves task to be set on the study.
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
Returns:
The existing or created Well performance curves operation.
Return type:
Well performance curves operation
Examples
>>> model.tasks.wellperformancecurvessimulation.set_conditions("Well 1", parameters=studyptsim1)
>>> model.tasks.wellperformancecurvessimulation.set_conditions("Well 1", parameters=studyptsim1,
"Study 2")get_sensitivity_variables(producer, study: str | None = None) List[str]
Get the available sensitivity variable list.
Get the list of possible sensitivity variables for the Well performance curves simulation task. If the Well performance curves simulation task does not exist in the study, a new one will be created.
Parameters:
producer (str) – Required. The name of the producer for the Well performance curves simulation task.
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
Returns:
a list of sensitivity variables names that can be applied to this task.
Return type:
list
Examples
>>> model.tasks.wellperformancecurvessimulation.get_sensitivity_variables("Well 1")
>>> model.tasks.wellperformancecurvessimulation.get_sensitivity_variables("Well 1",
study="Study 2")generate_engine_files(producer, folder_path: str | None = None, study: str | None = None) List[str]
Create engine files for the specified study.
Generate the engine file(s) for the requested study. The files are written to the specified folder, or to the current model folder if one is not given.
Parameters:
producer (str) – Required. The name of the producer for the Well performance curves simulation task.
folder_path (str) – Optional. The folder location where the generated files are written to. If not specified, the files will be written to current Pipesim model folder.
study (str) – Optional. The study name.
Returns:
The list of engine files generated.
Return type:
List[str]
Examples
>>> engine_files = model.tasks.wellperformancecurvessimulation.generate_engine_files(
producer="Well 1")
>>> engine_files = model.tasks.wellperformancecurvessimulation.generate_engine_files(
producer="Well 1", folder_path="D:/Temp")
>>> engine_files = model.tasks.wellperformancecurvessimulation.generate_engine_files(
producer="Well 1", folder_path="D:/Temp",
study="Study 1")run(producer, parameters={}, system_variables: list | None = None, study: str | None = None)
Runs a Well performance curves simulation.
Runs a Well performance curves simulation. Optionally the parameters and variables may be set at the same time avoiding the need to use set_conditions(). If the Well performance curves simulation task does not exist in the study, a new one will be created. The method waits until the simulation has finished before returning, and then returns the results.
Parameters:
producer (str) – Required. The name of the producer for the Well performance curves simulation task.
parameters (dict) – Optional. The parameters and respective values to set.
system_variables (list) – Optional. The list of system variables to be returned with the simulation system results. If omitted then all the possible system variables are returned.
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
Returns:
The simulation results.
Return type:
dict
Examples
>>> sim_results = model.tasks.wellperformancecurvessimulation.run( "Well 1")start(producer, parameters={}, system_variables: list | None = None, study: str | None = None)
Starts running a Well performance curves simulation, returning the simulation id immediately which can be used later to check the status and get the results If the Well performance curves simulation task does not exist in the study, a new one will be created.
Parameters:
producer (str) – Required. The name of the producer for the Well performance curves simulation task.
parameters (dict) – Optional. The parameters and respective values to set.
system_variables (list) – Optional. The list of system variables to be returned with the simulation system results. If omitted then all the possible system variables are returned.
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
Returns:
The simulation id, which can be used to access simulation status and get the results.
Return type:
str
Examples
>>> sim_id = model.tasks.wellperformancecurvessimulation.start( "Well 1")class sixgill.pipesim.NodalAnalysisSimulation(model, sim_type)
Bases: AbstractSingleBranchSimulation
get_conditions(producer, nodal_point_settings: dict | None = None, study: str | None = None)
Returns the nodal analysis general conditions in one dictionary and inlet condtions in anohter dictionary.
Returns the nodal analysis general conditions for the specified study. If the nodal analysis task does not exist in the study, a new one will be created. If the producer is a well and nodal point settings are not provided, a default nodal point at bottom hole will be created. If nodal point settings are provided, a new nodal point will be created and be applied to the existing or newly created nodal analysis task.
Parameters:
producer (str) – Required. The name of the producer for the nodal analysis simulation task
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
nodal_point_settings (dict) – Optional. The settings for nodal point to be created. The new nodal point is applied to the existing or newly created nodal analysis task.
Returns:
Nodal analysis simulation settings in the first dictionary, and inlet conditions in the second dictionary
Return type:
dict
Examples
>>> na_sim, inlet_cond = model.tasks.nodalanalysis.get_conditions("Well 1")
>>> na_sim, inlet_cond = model.tasks.nodalanalysis.get_conditions(
"Well 1",
nodal_point_settings = {
Parameters.NodalPoint.NODALTYPE: Constants.NodalPointType.SURFACE,
Parameters.NodalPoint.EQUIPMENT: 'Choke',
Parameters.NodalPoint.NAME: 'NA1'
})
>>> na_sim, inlet_cond = model.tasks.nodalanalysis.get_conditions(
"Well 1", "Study 2",
nodal_point_settings = {
Parameters.NodalPoint.NODALTYPE: Constants.NodalPointType.DOWNHOLE,
Parameters.NodalPoint.DEPTH: 1000,
Parameters.NodalPoint.WELLSTRINGTYPE: Constants.TubingSectionType.TUBING,
Parameters.NodalPoint.NAME: 'NA2'
})set_conditions(producer, parameters={}, inlet_conditions: dict | None = None, nodal_point_settings: dict | None = None, study: str | None = None)
Sets the study conditions.
Sets the nodal analysis profile simulation task conditions for the specified study. If the nodal analysis simulation task does not exist in the study, a new one will be created.If the producer is a well and nodal point settings are not provided, a default nodal point at bottom hole will be created. If nodal point settings are provided, a new nodal point will be created and be applied to the existing or newly created nodal analysis task.
Parameters:
producer (str) – Required. The name of the producer for the nodal analysis simulation task.
parameters (dict) – Required. The conditions for nodal analysis task to be set on the study.
inlet_conditions (dict) – Optional. The inlet conditions for nodal analysis task to be set on the study.
nodal_point_settings (dict) – Optional. The settings for nodal point to be created. The new nodal point is applied to the existing or newly created nodal analysis task.
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
Returns:
The exisitng or created nodal analysis operation
Return type:
Nodal analysis operation
Examples
>>> model.tasks.nodalanalysis.set_conditions("Well 1",
parameters={
Parameters.NodalAnalysisSimulation.LIMITINFLOW: True,
Parameters.NodalAnalysisSimulation.LIMITOUTFLOW: False,
Parameters.NodalAnalysisSimulation.OUTFLOWPOINTS: 40,
Parameters.NodalAnalysisSimulation.INFLOWPOINTS: 50,
Parameters.NodalAnalysisSimulation.MAXFLOWRATETYPE:
Constants.FlowRateType.GASFLOWRATE,
Parameters.NodalAnalysisSimulation.OUTLETPRESSURE: 300,
Parameters.NodalAnalysisSimulation.MAXGASRATE: 300,
Parameters.NodalAnalysisSimulation.MAXOUTFLOWPRESSURE: 400,
Parameters.NodalAnalysisSimulation.BRANCHTERMINATOR: "Choke"
},
inlet_conditions={
"Well 1:Comp1":{Parameters.Boundary.PRESSURE:4000,
Parameters.Boundary.TEMPERATURE:200}
},
nodal_point_settings={
Parameters.NodalPoint.NODALTYPE: Constants.NodalPointType.DOWNHOLE,
Parameters.NodalPoint.DEPTH: 1000,
Parameters.NodalPoint.WELLSTRINGTYPE: Constants.TubingSectionType.TUBING,
Parameters.NodalPoint.NAME: 'NA2'
}
)
>>> model.tasks.nodalanalysis.set_conditions(
producer="Well 1", study="Study 2",
parameters={
Parameters.NodalAnalysisSimulation.OUTLETPRESSURE: 3000,
Parameters.NodalAnalysisSimulation.BRANCHTERMINATOR: "Choke"
Parameters.NodalAnalysisSimulation.NODALMEASUREMENTPOINT: "NA2"
})
>>> model.tasks.nodalanalysis.set_conditions(
producer="Well 1", study="Study 2",
nodal_point_settings = {
Parameters.NodalPoint.NODALTYPE: Constants.NodalPointType.SURFACE,
Parameters.NodalPoint.EQUIPMENT: 'Choke',
Parameters.NodalPoint.NAME: 'NA4'
})reset_conditions(producer, study: str | None = None)
Resets the study conditions to be synchronized with the model.
Resets the study conditions to be synchronized with the model for the specified study.
Parameters:
producer (str) – Required. The name of the producer for the nodal analysis simulation task.
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
Returns:
Whether the reset succeeded (True) or not (False).
Return type:
bool
Examples
>>> model.tasks.nodalanalysis.reset_conditions("Well 1")
>>> model.tasks.nodalanalysis.reset_conditions("Well 1",study = "Study 1")run(producer, parameters={}, inlet_conditions: dict | None = None, nodal_point_settings: dict | None = None, profile_variables: list | None = None, system_variables: list | None = None, study: str | None = None)
Runs a nodal analysis simulation.
Runs a nodal analysis simulation. Optionally the parameters, nodal point settings and variables may be set at the same time avoiding the need to use set_conditions(). If the nodal analysis task does not exist in the study, a new one will be created. The method waits until the simulation has finished before returning, and then returns the results.
Parameters:
producer (str) – Required. The name of the producer for the nodal analysis simulation task.
parameters (dict) – Optional. The parameters and respective values to set.
nodal_point_settings (dict) – Optional. The settings for nodal point to be created. The new nodal point is applied to the existing or newly created nodal analysis task.
profile_variables (list) – Optional. The list of profile variables to be returned with the simulation profile results. If omitted then all the possible profile variables are returned.
system_variables (list) – Optional. The list of system variables to be returned with the simulation system results. If omitted then all the possible system variables are returned.
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
Returns:
The simulation results.
Return type:
dict
Examples
>>> sim_results = model.tasks.nodalanalysis.run( "Well 1",
parameters={
Parameters.NodalAnalysisSimulation.OUTLETPRESSURE: 3000,
Parameters.NodalAnalysisSimulation.BRANCHTERMINATOR: "Choke"
},
nodal_point_settings = {
Parameters.NodalPoint.NODALTYPE: Constants.NodalPointType.SURFACE,
Parameters.NodalPoint.EQUIPMENT: 'Choke',
Parameters.NodalPoint.NAME: 'NA4'
},
profile_variables=OutputVariables.Profile.GAS_FIELD,
system_variables=OutputVariables.System.GAS_FIELD)start(producer, parameters={}, inlet_conditions: dict | None = None, nodal_point_settings: dict | None = None, profile_variables: list | None = None, system_variables: list | None = None, study: str | None = None)
Starts running a nodal analysis simulation, returning the simulation id immediately which can be used later to check the status and get the results If the nodal analysis simulation task does not exist in the study, a new one will be created.
Parameters:
producer (str) – Required. The name of the producer for the nodal analysis simulation task.
parameters (dict) – Optional. The parameters and respective values to set.
nodal_point_settings (dict) – Optional. The settings for nodal point to be created. The new nodal point is applied to the existing or newly created nodal analysis task.
profile_variables (list) – Optional. The list of profile variables to be returned with the simulation profile results. If omitted then all the possible profile variables are returned.
system_variables (list) – Optional. The list of system variables to be returned with the simulation system results. If omitted then all the possible system variables are returned.
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
Returns:
The simulation id, which can be used to access simulation status and get the results.
Return type:
str
Examples
>>> sim_id = model.tasks.nodalanalysis.start("Well 1",
parameters={
Parameters.NodalAnalysisSimulation.OUTLETPRESSURE: 3000,
Parameters.NodalAnalysisSimulation.BRANCHTERMINATOR: "Choke"
},
nodal_point_settings = {
Parameters.NodalPoint.NODALTYPE: Constants.NodalPointType.SURFACE,
Parameters.NodalPoint.EQUIPMENT: 'Choke',
Parameters.NodalPoint.NAME: 'NA4'
},
profile_variables=OutputVariables.Profile.GAS_FIELD,
system_variables=OutputVariables.System.GAS_FIELD)generate_engine_files(producer, folder_path: str | None = None, study: str | None = None) List[str]
Create engine files for the specified study.
Generate the engine file(s) for the requested study. The files are written to the specified folder, or to the current model folder if one is not given.
Parameters:
producer (str) – Required. The name of the producer for the Nodal analysis simulation task.
folder_path (str) – Optional. The folder location where the generated files are written to. If not specified, the files will be written to current Pipesim model folder.
study (str) – Optional. The study name.
Returns:
The list of engine files generated.
Return type:
List[str]
Examples
>>> engine_files = model.tasks.nodalanalysis.generate_engine_files(
producer="Well 1")
>>> engine_files = model.tasks.nodalanalysis.generate_engine_files(
producer="Well 1",
folder_path="D:/Temp")
>>> engine_files = model.tasks.nodalanalysis.generate_engine_files(
producer="Well 1",
folder_path="D:/Temp",
study="Study 1")class sixgill.pipesim.SystemPerformance(model, sim_type)
Bases: AbstractAdvancedWellSimulation
get_conditions(producer, study: str | None = None) Dict
Returns the study conditions.
Returns the system performance conditions for the specified study. If the system performance task does not exist in the study, a new one will be created.
Parameters:
producer (str) – Required. The name of the producer for the Well for system performance task.
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
Returns:
The study conditions.
Return type:
dict
Examples
>>> studynetsim1 = model.tasks.systemperformance.get_conditions("Well 1")
>>> studynetsim1 = model.tasks.systemperformance.get_conditions("Well 1", study="Study 1")set_conditions(producer, boundaries: dict | None = {}, study: str | None = None)
Sets the study conditions.
Sets the study conditions for the specified study. If the system performance simulation task does not exist in the study, a new one will be created.
Parameters:
producer (str) – Required. The name of the producer for the Well for system performance task.
boundaries (dict) – Optional. The boundary conditions to be set on the study.
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
Returns:
The existing or created system performance operation.
Return type:
system performance operation
Examples
>>> model.tasks.systemperformance.set_conditions("Well",
boundaries={"Annulus":{
Parameters.Boundary.PRESSURE:NAN,
Parameters.Boundary.FLOWRATETYPE:Constants.FlowRateType.GASFLOWRATE,
Parameters.Boundary.GASFLOWRATE:5}}) >>> model.tasks.systemperformance.set_conditions("Well",
boundaries={"Well:Cpl A":{
Parameters.Boundary.PRESSURE:3800,
Parameters.Boundary.TEMPERATURE:150}},
study="Study 1")reset_conditions(producer, study: str | None = None)
Resets the study conditions to be synchronized with the model.
Resets the study conditions to be synchronized with the model for the specified study.
Parameters:
producer (str) – Required. The name of the producer for the Well for system performance task.
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
Returns:
Whether the reset succeeded (True) or not (False).
Return type:
bool
Examples
>>> model.tasks.systemperformance.reset_conditions("Well 1")
>>> model.tasks.systemperformance.reset_conditions("Well 1",study = "Study 1")generate_engine_files(producer, folder_path: str | None = None, study: str | None = None) List[str]
Create engine files for the specified study.
Generate the engine file(s) for the requested study. The files are written to the specified folder, or to the current model folder if one is not given.
Parameters:
producer (str) – Required. The name of the producer for the Well for system performance task.
folder_path (str) – Optional. The folder location where the generated files are written to. If not specified, the files will be written to current Pipesim model file folder.
study (str) – Optional. The study name.
Returns:
The list of engine files generated.
Return type:
List[str]
Examples
>>> engine_files = model.tasks.systemperformance.generate_engine_files("Well 1")
>>> engine_files = model.tasks.systemperformance.generate_engine_files("Well 1",
study='Study 1')
>>> engine_files = model.tasks.systemperformance.generate_engine_files("Well 1",
folder_path="D:/Temp", study='Study 1')run(producer, profile_variables: list | None = None, system_variables: list | None = None, boundaries: dict | None = {}, study: str | None = None, options: dict | None = {})
Runs a system performance operation.
Runs a system performance operation. Optionally the boundaries, constraints, and variables may be set at the same time avoiding the need to use set_conditions(). If the system performance task does not exist in the study, a new one will be created. The method waits until the operation has finished before returning, and then returns the results.
Parameters:
producer (str) – Required. The name of the producer for the Well for system performance task.
boundaries (dict) – Optional. The boundary conditions to be set on the study.
profile_variables (list) – Optional. The list of profile variables to be returned with the simulation profile results. If omitted then all the possible profile variables are returned.
system_variables (list) – Optional. The list of system variables to be returned with the simulation system results. If omitted then all the possible system variables are returned.
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
options (dict) – Optional. simulations options like generating ouput files and using Restart
Returns:
The operation results.
Return type:
dict
Examples
>>> sysPerf_results = model.tasks.systemperformance.run(producer="Well",
profile_variables=OutputVariables.Profile.GAS_FIELD,
system_variables=OutputVariables.System.GAS_FIELD,
boundaries={"Well:Cpl A":{
Parameters.Boundary.PRESSURE:3900
},
"Tubing":{
Parameters.Boundary.PRESSURE:NAN,
Parameters.Boundary.LIQUIDFLOWRATE:200,
Parameters.Boundary.FLOWRATETYPE:Constants.FlowRateType.LIQUIDFLOWRATE
}},
options={SimulationOptions.GENERATEOUTPUTFILE:True,
SimulationOptions.RESTART:False,
SimulationOptions.PARALLELISM:4}) #generate output file, do not use restart files, run with 4 coresstart(producer, profile_variables: list | None = None, system_variables: list | None = None, boundaries: dict | None = {}, options: dict | None = {}, study: str | None = None) str
Starts running a system performance of the specified type, returning the operation id immediately which can be used later to check the status and get the results. If the system performance task does not exist in the study, a new one will be created.
Parameters:
producer (str) – Required. The name of the producer for the Well for system performance task.
profile_variables (list) – Optional. The list of profile variables to be returned with the operation profile results. If omitted then all the possible profile variables are returned.
system_variables (list) – Optional. The list of system variables to be returned with the operation system results. If omitted then all the possible system variables are returned.
boundaries (dict) – Optional. The boundary conditions to be set on the study.
options (dict) – Optional. operation options like generating ouput files and using Restart
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
Returns:
The operation id, which can be used to access operation status and get the results.
Return type:
str
Examples
>>> sys_id = model.tasks.systemperformance.start("Well",
profile_variables=OutputVariables.Profile.GAS_FIELD,
system_variables=OutputVariables.System.GAS_FIELD,
boundaries={"Well:Cpl A":{
Parameters.Boundary.PRESSURE:3900
},
"Tubing":{
Parameters.Boundary.PRESSURE:NAN,
Parameters.Boundary.LIQUIDFLOWRATE:200,
Parameters.Boundary.FLOWRATETYPE:Constants.FlowRateType.LIQUIDFLOWRATE
}},
options={SimulationOptions.GENERATEOUTPUTFILE:True,
SimulationOptions.RESTART:False,
SimulationOptions.PARALLELISM:4}) #generate output file, do not use restart files, run with 4 coresclass sixgill.simulation_result.SimulationResult(units_mgr, web_api_result, simulation, state)
Bases: object
property system
System result of simulation.
Returns:
The system result is a nested dictionary. The key of outer dictionary is the name of system variable, and it’s value is a nested ordered dictionary, the first item in the dictionary is the unit of the result with ‘Unit’ as the key, and other items are system results with key of case name (for single branch operation) or branch name (for network simulation).
Return type:
defaultdict(OrderedDict)
Examples
>>> \# PT simulation system result of bottom hole pressure with 3 cases
>>> print(result.system)
>>> {'BottomHolePressure':
OrderedDict([
('Unit', 'psia'),
('PWSTATIC=2000 psia Flowrate=4035.663 sbbl/day',
1899.3466005297103),
('PWSTATIC=3000 psia Flowrate=6423.735 sbbl/day',
2894.0057045084613),
('PWSTATIC=4000 psia Flowrate=8874.929 sbbl/day',
3890.6145718622515)
])
}
>>> \# get bottome hole pressure results for all cases
>>> result.system[SystemVariables.BOTTOM_HOLE_PRESSURE]
>>> \# get the unit for bottom hole pressure
>>> result.system[SystemVariables.BOTTOM_HOLE_PRESSURE]['Unit']
>>> \# get bottom hole pressure for the first case
>>> result.system[SystemVariables.BOTTOM_HOLE_PRESSURE][result.cases[0]]
>>> \# network simulation system result with bottom hole pressure
>>> print(result.system)
>>> {'BottomHolePressure':
OrderedDict([
('Unit', 'psia'),
('Manifold_Separator', 675.439895675529),
('Oil-Facility', 120.66209137371129),
('Well', 2414.049343852503),
('Gas-Sales', 670.1023674374065),
('Source', 677.051334969821),
('Separator_LL-1', 668.3923541261727),
('Separator_GL-1', 668.3923541261727)
])
}
>>> \# get bottome hole pressure results for all branches
>>> result.system[SystemVariables.BOTTOM_HOLE_PRESSURE]
>>> \# get bottom hole pressure for branch 'Well'
>>> result.system[SystemVariables.BOTTOM_HOLE_PRESSURE]['Well']
>>> \# get the ESP performance curve results for the first case for an esp pump called 'B-ESP':
>>> result.esp_curves[0]['B-ESP'][EspCurvesVariables.PERFORMANCE][0][EspCurvesVariables.VALUES]property node
Node (equipment) result of simulation.
Returns:
defaultdict(OrderedDict) for network simulation – The node result for network simulation is a nested dictionary. The key of outer dictionary is the name of system variable and it’s value is a nested ordered dictionary, the first item in the dictionary is the unit of the result with ‘Unit’ as the key, and other items are system results with key of equipment name.
defaultdict(collections.OrderedDict)) for single branch simulation – The node result for single branch simulation is a dictionary of a collection of nested dictionaries. The key of outer dictionary is case name and it’s value is a collection of nested ordered dictionaries. Each single nested dictonary is defaultdict(OrderedDict), whihc has the same format as network simulation node result.
Examples
>>> \# network simulation node result of SystemVariables.PRESSURE
>>> print(result.node)
>>> {'Pressure': OrderedDict([('Unit', 'psia'),
('Separator', 668.3923541261727),
('Oil-Facility', 299.99999981427857),
('VertComp', 2414.049343852503),
('Gas-Sales', 599.9999997922582),
('Manifold', 675.439895675529),
('Choke', 688.8950792066037),
('Source', 677.051334969821),
('Compressor', 1226.7486656475476),
('Well', 971.9041960688403),
('Pmp', 382.02050175837144)])
}
>>> \# get pressure results for all branches
>>> result.node[SystemVariables.PRESSURE]
>>> \# get pressure for branch 'Well'
>>> result.node[SystemVariables.PRESSURE]['Well']
>>> \# get the unit for pressure
>>> result.node[SystemVariables.PRESSURE]['Unit']
>>> \# PT simulation result of pressure with 3 cases
>>> print(result.node)
>>> {'PWSTATIC=2000 psia Flowrate=4035.663 sbbl/day':
{'Pressure': OrderedDict([
('Unit', 'psia'),
('Choke', 231.64419332730813),
('VertComp', 1899.3466005297103)
])}),
'PWSTATIC=3000 psia Flowrate=6423.735 sbbl/day':
{'Pressure': OrderedDict([
('Unit', 'psia'),
('VertComp', 2894.0057045084613),
('Choke', 272.70024724587813)
])}),
'PWSTATIC=4000 psia Flowrate=8874.929 sbbl/day':
{'Pressure': OrderedDict([
('Unit', 'psia'),
('VertComp', 3890.6145718622515),
('Choke', 325.1985651291863)])})
}
>>> \# get pressure results for all the equipment in the first case
>>> result.node[result.cases[0]][SystemVariables.PRESSURE]
>>> \# get Choke pressure in the first case
>>> result.node[result.cases[0]][SystemVariables.PRESSURE]['Choke']property profile
Profile result of simulation.
Returns:
The node result for single branch simulation is a dictionary of a collection of nested dictionaries. The key of outer dictionary is case name for single branch simulation and branch name for network simulation. The value is a collection of nested ordered dictionaries. Each single nested dictonary is defaultdict(OrderedDict) with key of profile variable name and value of profile results.
Return type:
defaultdict(collections.OrderedDict))
Examples
>>> \# network simulation profile result with ProfileVariables.ELEVATION
>>> print(result.profile)
>>> {'Gas-Sales':
{'BranchEquipment': ['GL-1', None, None, 'Compressor', 'GL-2'],
'Elevation': [-10.0, -5.0, 0.0, 0.0, 0.0]
},
'Manifold_Separator':
{'BranchEquipment': ['GL-1', None, None, 'Compressor', 'GL-2'],
'Elevation': [-10.0, -5.0, 0.0, 0.0, 0.0]
}
}
>>> \# get elevation results for 'Gas-Sales' branch
>>> result.profile['Gas-Sales'][ProfileVariables.ELEVATION]
>>> \# PT simulation result of pressure with 3 cases
>>> print(result.node)
>>> {'PWSTATIC=2000 psia Flowrate=4035.663 sbbl/day':
{'BranchEquipment': ['GL-1', None, None, 'Compressor', 'GL-2'],
'Pressure': [2000, 1898.0, 1888.0, 1788.0, 1568.0]
},
'PWSTATIC=3000 psia Flowrate=6423.735 sbbl/day':
{'BranchEquipment': ['GL-1', None, None, 'Compressor', 'GL-2'],
'Pressure': [3000, 2798.0, 2678.0, 2354.0, 2312.0]
},
'PWSTATIC=4000 psia Flowrate=8874.929 sbbl/day':
{'BranchEquipment': ['GL-1', None, None, 'Compressor', 'GL-2'],
'Pressure': [4000, 4798.0, 4578.0, 4335.0, 4321.0]
},
}
>>> \# get pressure results for the first case
>>> result.profile[result.cases[0]][SystemVariables.PRESSURE]property spot_reports
property esp_curves
Esp curve results of simulation.
Returns:
The result for single branch simulation is a dictionary of a collection of nested dictionaries. The key of outer dictionary is case name. The value is a collection of nested dictionaries. Each single nested dictonary is defaultdict with key of ESP pump name and value is a dictionary with two keys: ‘Speed’ and ‘Performance’ ‘Speed’ is a dictionary with two keys: ‘Frequncies’ and ‘Additional’. ‘Frequencies’ is a dictionay, the keys are frequncy values(‘Freq=45’, ‘Freq=40’,…) The values each contain two dictionaries. One for the flowrate and one for Head. Each of these curves is a dictionary with two keys: ‘Unit’ and Values’ Units is a string for the unit symbol. ‘Values’ is an array of doubles. ‘Performance’ is a dictionary with four keys. Each key is a name describing the curve: Flowrate, Head, Power and Efficiency. Each of these curves is a dictionary with two keys: ‘Unit’ and Values’ Units is a string for the unit symbol. ‘Values’ is an array of doubles.
Return type:
dictionary
Examples
>>> esp_results = result.esp_curves[result.cases[0]]
>>> \# get frequency curves
>>> for freq_name, speed_curve_xy in esp_results['B-ESP'][EspCurvesVariables.SPEED][EspCurvesVariables.FREQUENCIES].items():
for name,curve in speed_curve_xy.items():
print(curve[EspCurvesVariables.UNIT])
print(curve[EspCurvesVariables.VALUES])
print(freq_name)property profile_units
Units of simulation profile result.
Returns:
The key is the profile variable name and value is the corresponding unit.
Return type:
Dict
Examples
>>> print(result.profile_units)
>>> {'BranchEquipment': '',
'Elevation': 'ft',
'Pressure': 'psia',
'Temperature': 'degF',
'TotalDistance': 'ft'}property cases
Case names for single branch simulation.
Returns:
The case names of single branch simulation. The order is the same as the sequence shown in Pipesim UI.
Return type:
List
Examples
>>> print(result.cases)
>>> ['PWSTATIC=2000 psia Flowrate=4035.663 sbbl/day',
'PWSTATIC=3000 psia Flowrate=6423.735 sbbl/day',
'PWSTATIC=4000 psia Flowrate=8874.929 sbbl/day']property messages
Console messages from engine for the simulation. The messages are the same as those shown under Engine console tab when running simulation in Pipesim UI.
Returns:
A list of engine console messages
Return type:
List[str]
Examples
>>> result.messagesproperty summary
Summary of simulation status. The summary contains general information as well as warnings and errors, which are the same messages shown in message center in Pipesim UI after running simulation.
Returns:
summary[‘Info’] is a list of information messages about simulation status. summary[‘Error’] is a list of error messages about simulation status. summary[‘Warning’] is a list of warning messages about simulation status.
Return type:
Dict
Examples
>>> result.summary['Info']
>>> result.summary['Error']
>>> result.summary['Warning']property state
Simulation state, which can be SimulationState.RUNNING, SimulationState.COMPLETED or SimulationState.FAILED.
Returns:
The state of simulation
Return type:
str
Examples
>>> result.stateclass sixgill.simulation_result.NodalAnalysisResult(units_mgr, web_api_result, simulation, state)
Bases: SimulationResult
property inflow_curves
Inflow curves of nodal analysis simulation.
Returns:
A list of curve objects. Each curve object contains case name, curve data and units. The curve data has the results for inflow gas flowrate, mass flowrate and liquid flowrate and nodal point pressure as well their units. Fluid base from results can be used to select which phase of inflow curve data is desired.
For simulation with multiple inflow curves, the order of the list is the same as the sequence shown in Pipesim UI.
Return type:
List(Curve)
Examples
>>> \# the case name of first inflow curve data
>>> result.inflow_curves[0].case
>>> \# inflow curve data in the first case
>>> curve = result.inflow_curves[0].curve_data
>>> \# inflow curve data of liquid flowrate in the first case
>>> curve[SystemVariables.NODAL_POINT_VOLUME_FLOWRATE_LIQUID_STOCKTANK]
>>> \# inflow curve data of mass flowrate in the first case
>>> curve[SystemVariables.NODAL_POINT_MASS_FLOWRATE_FLUID]
>>> \# inflow curve data of gas flowrate in the first case
>>> curve[SystemVariables.NODAL_POINT_VOLUME_FLOWRATE_GAS_STOCKTANK]
>>> \# inflow curve data of pressure in the first case
>>> curve[SystemVariables.NODAL_POINT_PRESSURE]
>>> \# inflow curve units
>>> units = result.inflow_curves[0].units
>>> \# the unit of liquid flowrate
>>> units[SystemVariables.NODAL_POINT_VOLUME_FLOWRATE_LIQUID_STOCKTANK]
>>> \# the unit of mass flowrate
>>> units[SystemVariables.NODAL_POINT_MASS_FLOWRATE_FLUID]
>>> \# the unit of gas flowrate
>>> units[SystemVariables.NODAL_POINT_VOLUME_FLOWRATE_GAS_STOCKTANK]
>>> \# the unit of pressure
>>> units[SystemVariables.NODAL_POINT_PRESSURE]property outflow_curves
Outflow curves of nodal analysis simulation.
Returns:
A list of Curve objects. Each Curve object contains case name, curve data and units. The curve data has the results for outflow gas flowrate, mass flowrate and liquid flowrate and nodal point pressure as well their units. Fluid base from results can be used to select which phase of outflow curve data is desired.
For simulation with multiple outflow curves, the order of the list is the same as the sequence shown in Pipesim UI.
Return type:
List(Curve)
Examples
>>> \# the case name of first outflow curve data
>>> result.outflow_curves[0].case
>>> \# outflow curve data in the first case
>>> curve = result.outflow_curves[0].curve_data
>>> \# outflow curve data of liquid flowrate in the first case
>>> curve[SystemVariables.NODAL_POINT_VOLUME_FLOWRATE_LIQUID_STOCKTANK]
>>> \# outflow curve data of mass flowrate in the first case
>>> curve[SystemVariables.NODAL_POINT_MASS_FLOWRATE_FLUID]
>>> \# outflow curve data of gas flowrate in the first case
>>> curve[SystemVariables.NODAL_POINT_VOLUME_FLOWRATE_GAS_STOCKTANK]
>>> \# outflow curve data of pressure in the first case
>>> curve[SystemVariables.NODAL_POINT_PRESSURE]
>>> \# outflow curve units
>>> units = result.outflow_curves[0].units
>>> \# the unit of liquid flowrate
>>> units[SystemVariables.NODAL_POINT_VOLUME_FLOWRATE_LIQUID_STOCKTANK]
>>> \# the unit of mass flowrate
>>> units[SystemVariables.NODAL_POINT_MASS_FLOWRATE_FLUID]
>>> \# the unit of gas flowrate
>>> units[SystemVariables.NODAL_POINT_VOLUME_FLOWRATE_GAS_STOCKTANK]
>>> \# the unit of pressure
>>> units[SystemVariables.NODAL_POINT_PRESSURE]property operating_envelope
Operating envelope of nodal analysis simulation. The envelope is only generated for simulation with a single case.
Returns:
OperatingEnvelope object has total of six lines for max drawdown, reservoir pressure, erosional velocity, aofp, inversion point and liquid loading, respectively. Each line has coordinates and units for each phase, including gas flowrate and corresponding pressure, liquid flowrate and corresponding pressure, mass flowrate and corresponding pressure. Fluid base from results can be used to select which phase of each envelope line is desired.
Return type:
OperatingEnvelope
Examples
>>> \# max drawdown line for each phase and units.
>>> max_drawdown = result.operating_envelope.max_drawdown
>>> max_drawdown[Parameters.NodalOperatingEnvelopePlot.GASFLOWRATE]
>>> max_drawdown[Parameters.NodalOperatingEnvelopePlot.GASFLOWRATEPRESSURE]
>>> max_drawdown[Parameters.NodalOperatingEnvelopePlot.LIQUIDFLOWRATE]
>>> max_drawdown[Parameters.NodalOperatingEnvelopePlot.LIQUIDFLOWRATEPRESSURE]
>>> max_drawdown[Parameters.NodalOperatingEnvelopePlot.MASSFLOWRATE]
>>> max_drawdown[Parameters.NodalOperatingEnvelopePlot.MASSFLOWRATEPRESSURE]
>>> units = result.operating_envelope.max_drawdown_units
>>> units[Parameters.NodalOperatingEnvelopePlot.GASFLOWRATE]
>>> units[Parameters.NodalOperatingEnvelopePlot.GASFLOWRATEPRESSURE]
>>> units[Parameters.NodalOperatingEnvelopePlot.LIQUIDFLOWRATE]
>>> units[Parameters.NodalOperatingEnvelopePlot.LIQUIDFLOWRATEPRESSURE]
>>> units[Parameters.NodalOperatingEnvelopePlot.MASSFLOWRATE]
>>> units[Parameters.NodalOperatingEnvelopePlot.MASSFLOWRATEPRESSURE]
>>> \# gas phase reservoir pressure line
>>> res_pres = result.operating_envelope.reservoir_pressure
>>> res_pres[Parameters.NodalOperatingEnvelopePlot.GASFLOWRATE]
>>> res_pres[Parameters.NodalOperatingEnvelopePlot.GASFLOWRATEPRESSURE]
>>> \# gas phase erosional velocity line
>>> ero_velocity = result.operating_envelope.erosional_velocity
>>> ero_velocity[Parameters.NodalOperatingEnvelopePlot.GASFLOWRATE]
>>> ero_velocity[Parameters.NodalOperatingEnvelopePlot.GASFLOWRATEPRESSURE]
>>> \# gas phase aofp line
>>> aofp = result.operating_envelope.aofp
>>> aofp[Parameters.NodalOperatingEnvelopePlot.GASFLOWRATE]
>>> aofp[Parameters.NodalOperatingEnvelopePlot.GASFLOWRATEPRESSURE]
>>> \# gas phase inversion point line
>>> inversion_point = result.operating_envelope.inversion_point
>>> inversion_point[Parameters.NodalOperatingEnvelopePlot.GASFLOWRATE]
>>> inversion_point[Parameters.NodalOperatingEnvelopePlot.GASFLOWRATEPRESSURE]
>>> \# gas phase liuquid loading line
>>> liquid_loading = result.operating_envelope.liquid_loading
>>> liquid_loading[Parameters.NodalOperatingEnvelopePlot.GASFLOWRATE]
>>> liquid_loading[Parameters.NodalOperatingEnvelopePlot.GASFLOWRATEPRESSURE]property operating_points
Operating points of nodal analysis simulation.
Returns:
A list of OperationPoint objects. Each OperationPoint object contains case name, point data and units. The point data has the results for gas flowrate, mass flowrate, liquid flowrate, nodal point pressure as well as their units. Fluid base from results can be used to select which phase of operating point data is desired.
For simulation with multiple operating points, the order of the list is the same as the sequence shown in Pipesim UI.
Return type:
List(OperationPoint)
Examples
>>> \# operating point data for each phase and units in the first case
>>> point = result.operating_points[0].point_data
>>> point[SystemVariables.NODAL_POINT_VOLUME_FLOWRATE_LIQUID_STOCKTANK]
>>> point[SystemVariables.NODAL_POINT_VOLUME_FLOWRATE_GAS_STOCKTANK]
>>> point[SystemVariables.NODAL_POINT_MASS_FLOWRATE_FLUID]
>>> point[SystemVariables.NODAL_POINT_PRESSURE]
>>> units = result.operating_points[0].units
>>> units[SystemVariables.NODAL_POINT_VOLUME_FLOWRATE_LIQUID_STOCKTANK]
>>> units[SystemVariables.NODAL_POINT_VOLUME_FLOWRATE_GAS_STOCKTANK]
>>> units[SystemVariables.NODAL_POINT_MASS_FLOWRATE_FLUID]
>>> units[SystemVariables.NODAL_POINT_PRESSURE]property fluid_base
The fluid base of nodal simulation results. The fliud base can be gas, mass or liquid, which can be used to select which phase of flow curves, operating envelope and operating point data are desired.
property inflow_cases
Case names for inflow curves.
Returns:
The case names of inflow curves. The order is the same as the sequence shown in Pipesim UI.
Return type:
List
Examples
>>> result.inflow_casesproperty outflow_cases
Case names for outflow curves.
Returns:
The case names of outflow curves. The order is the same as the sequence shown in Pipesim UI.
Return type:
List
Examples
>>> result.outflow_casesThe utilities submodule provides useful methods for working with Excel.
sixgill.utilities.active_sheet()
Return the currently active Excel worksheet
sixgill.utilities.range_to_dataframe(excel_range=[], entriesbyrow=False)
Convert an excel range which is a list of lists to a panda DataFrame
sixgill.utilities.range_to_dictionary(excel_range=[], entriesbyrow=False)
Convert an excel range which is a list of lists to a dictionary of dictionaries
sixgill.utilities.current_folder()
Return the folder (path) for the workbook
sixgill.utilities.worksheet_last_row(worksheet=None)
Return the last row with data given a specified column
sixgill.utilities.worksheet_last_column(worksheet=None)
Return the last row with data given a specified column
sixgill.utilities.get_refers_to_range(rangeName)
Return refers_to_range from specified range name
sixgill.utilities.clear_contents(collection)
Clean contents of specified collection(range or sheet)
sixgill.utilities.get_model_session(filename, units='PIPESIM_FIELD')
Return the active model session that the workbook is connected to
sixgill.utilities.convert_tubing_bmd(bmd: List)
Convert tubing BMD to TMD and length
sixgill.utilities.is_lessthan_or_equal(a, b)
sixgill.utilities.is_greaterthan_or_equal(a, b)
sixgill.utilities.is_Nan_or_None(a, b)
The vfp_tables_simulation module maintains the high level VFP tables methods for the Pipesim Python Toolkit.
class sixgill.vfp_tables_simulation.VfpTablesOperationSimulation(model, sim_type)
Bases: AbstractSingleBranchSimulation
Various methods supporting the VFP tables
get_conditions(producer, study: str | None = None) Dict
Returns the VFP tables boundary conditions.
Returns the VFP tables boundary conditions for the specified study. If the VFP tables simulation task does not exist in the study, a new one will be created.
Parameters:
producer (str) – Required. The name of the producer for the VFP tables simulation task
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
Returns:
The boundary condition for the study specified.
Return type:
dict
Examples
>>> vfp_sim_conditions = model.tasks.vfptablessimulation.get_conditions("Well 1")
>>> vfp_sim_conditions = model.tasks.vfptablessimulation.get_conditions("Well 1", "Study 1")
>>> vfp_sim_conditions = model.tasks.vfptablessimulation.get_conditions("Well 1", study="Study 1")set_conditions(producer, parameters={}, study: str | None = None)
Sets the VFP tables boundary conditions.
Sets the VFP tables boundary conditions for the study specified. If the VFP tables simulation task does not exist in the study, a new one will be created.
Parameters:
parameters (dict) – Required. The conditions for VFP tables task to be set on the study.
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
Returns:
The existing or created VFP tables simulation operation.
Return type:
VFP tables simulation operation
Examples
>>> model.tasks.vfptablessimulation.set_conditions("Well 1",
parameters={
Parameters.VfpTablesSimulation.RESERVOIRSIMULATOR:Constants.VFPTablesOperationTable.ECLIPSE,
Parameters.VfpTablesSimulation.BOTTOMHOLEDATUMDEPTH:150.2,
Parameters.VfpTablesSimulation.TABLENUMBER:2,
Parameters.VfpTablesSimulation.INCLUDETEMPERATURE:True,
Parameters.VfpTablesSimulation.BRANCHTERMINATOR:"J-1",
})
>>> model.tasks.vfptablessimulation.set_conditions("Source 1",
parameters={
Parameters.VfpTablesSimulation.RESERVOIRSIMULATOR:Constants.VFPTablesOperationTable.ECLIPSE,
Parameters.VfpTablesSimulation.BOTTOMHOLEDATUMDEPTH:150.2,
Parameters.VfpTablesSimulation.TABLENUMBER:2,
Parameters.VfpTablesSimulation.INCLUDETEMPERATURE:True,
Parameters.VfpTablesSimulation.VFPTABLETYPE:Constants.VfpTablesType.PRODUCTION,
}, study = "Study 1")run(producer, parameters: dict | None = None, study: str | None = None)
Runs a VFP tables task
Runs a VFP tables task for the specified study. If the VFP tables simulation task does not exist in the study, a new one will be created.
Parameters:
producer (str) – Required. The name of the producer for the VFP tables simulation task.
parameters (dict) – Optional. The parameters and respective values on the study.
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
Returns (dict) – Results of a VFP tables simulation run.
Examples
>>> model.tasks.vfptablessimulation.run("Well 1",
parameters={
Parameters.VfpTablesSimulation.RESERVOIRSIMULATOR:Constants.VFPTablesOperationTable.ECLIPSE,
Parameters.VfpTablesSimulation.BOTTOMHOLEDATUMDEPTH:150.2,
Parameters.VfpTablesSimulation.TABLENUMBER:2,
Parameters.VfpTablesSimulation.INCLUDETEMPERATURE:True,
Parameters.VfpTablesSimulation.VFPTABLETYPE:Constants.VfpTablesType.PRODUCTION,
})
>>> model.tasks.vfptablessimulation.run("Well 1",
parameters={
Parameters.VfpTablesSimulation.RESERVOIRSIMULATOR:Constants.VFPTablesOperationTable.ECLIPSE,
Parameters.VfpTablesSimulation.BOTTOMHOLEDATUMDEPTH:150.2,
Parameters.VfpTablesSimulation.TABLENUMBER:2,
Parameters.VfpTablesSimulation.INCLUDETEMPERATURE:True,
Parameters.VfpTablesSimulation.VFPTABLETYPE:Constants.VfpTablesType.PRODUCTION,
}, study = "Study 1")start(producer, parameters: dict | None = None, study: str | None = None)
Starts running a simulation of the specified type, returning the simulation id immediately which can be used later to check the status and get the results. If the VFP tables simulation task does not exist in the study, a new one will be created.
Parameters:
producer (str) – Required. The name of the producer for the VFP tables simulation task.
parameters (dict) – Optional. The boundary conditions to be set on the study.
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
Returns:
The simulation id, which can be used to access simulation status and get the results.
Return type:
str
Examples
>>> model.tasks.vfptablessimulation.start("Source 1",
parameters={
Parameters.VfpTablesSimulation.RESERVOIRSIMULATOR:Constants.VFPTablesOperationTable.ECLIPSE,
Parameters.VfpTablesSimulation.BOTTOMHOLEDATUMDEPTH:150.2,
Parameters.VfpTablesSimulation.TABLENUMBER:2,
Parameters.VfpTablesSimulation.INCLUDETEMPERATURE:True,
Parameters.VfpTablesSimulation.VFPTABLETYPE:Constants.VfpTablesType.PRODUCTION,
})
>>> model.tasks.vfptablessimulation.start("Source 1",
parameters={
Parameters.VfpTablesSimulation.RESERVOIRSIMULATOR:Constants.VFPTablesOperationTable.ECLIPSE,
Parameters.VfpTablesSimulation.BOTTOMHOLEDATUMDEPTH:150.2,
Parameters.VfpTablesSimulation.TABLENUMBER:2,
Parameters.VfpTablesSimulation.INCLUDETEMPERATURE:True,
Parameters.VfpTablesSimulation.VFPTABLETYPE:Constants.VfpTablesType.PRODUCTION,
}, study = "Study 1")generate_engine_files(producer, folder_path: str | None = None, study: str | None = None) List[str]
Create engine files for the specified study.
Generate the engine file(s) for the requested study. The files are written to the specified folder, or to the current model folder if one is not given.
Parameters:
producer (str) – Required. The name of the producer for the VFP tables simulation task.
folder_path (str) – Optional. The folder location where the generated files are written to. If not specified, the files will be written to current Pipesim model folder.
study (str) – Optional. The study name.
Returns:
The list of engine files generated.
Return type:
List[str]
Examples
>>> engine_files = model.tasks.vfptablessimulation.generate_engine_files(
producer="Well 1")
>>> engine_files = model.tasks.vfptablessimulation.generate_engine_files(
producer="Well 1", folder_path="D:/Temp")
>>> engine_files = model.tasks.vfptablessimulation.generate_engine_files(
producer="Well 1", folder_path="D:/Temp",
study="Study 1")get_artificial_lift_variables(producer, study: str | None = None) List[str]
Get the available artificial lift sensitivity variable list.
If the VFP tables simulation task does not exist in the study, a new one will be created.
Parameters:
producer (str) – Required. The name of the producer for the VFP tables simulation task.
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
Returns:
a list of sensitivity variables names that can be applied to this task.
Return type:
list
Examples
>>> model.tasks.vfptablessimulation.get_artificial_lift_variables("Well 1")
>>> model.tasks.vfptablessimulation.get_artificial_lift_variables("Well 1",
study="Study 2")Definition of the ValidationIssue class
class sixgill.validation.ValidationIssue(issue, model)
Bases: object
A class to describe a validation issue
property path
The path to the issue
property message
The error message
property property_name
The name of the property causing the error
Well Calibration Simulation Result class.
class sixgill.wellcalibration_simulation_result.WellCalibrationResult(units_mgr, web_api_result, simulation, state)
Bases: SimulationResult
Result class for Well Calibration simulations.
Extends SimulationResult with calibration-specific properties:
cases: List of test case names
converged_cases: List of converged test case names (excludes Normalized and unconverged)
matching_quality: Matching quality data for each case
tuning_parameters: Tuning parameter data for each case
property cases
List of test case names from the calibration results.
Returns:
A list of case names from the calibration results.
Return type:
list
Examples
>>> results = model.tasks.wellcalibration.run(producer="Well 1", study="Study 1")
>>> print(results.cases)
['Test 21Feb25', 'Test 01Jan20-1', 'Test 01Jan20-2', 'Normalized']property matching_quality
Matching quality results for each test case.
Returns a dictionary keyed by case name, where each value contains the matching quality data (measured vs calibrated values) for that case.
Returns:
Dictionary keyed by case name with matching quality data. Each case contains a list of parameter results with:
ParameterName: Name of the test parameter
Unit: Unit of measurement
Measured: Measured value
OriginalModel: Original model value before calibration
OriginalModelDiff: Absolute difference between original model and measured (in session units)
Calibrated: Calibrated value
CalibratedDiff: Absolute difference between calibrated and measured (in session units)
Normalized: Normalized value (weighted across tests)
NormalizedDiff: Absolute difference between normalized and measured (in session units)
Return type:
dict
Examples
>>> results = model.tasks.wellcalibration.run(producer="Well 1", study="Study 1")
>>> \# Get matching quality for first case
>>> case_mq = results.matching_quality[results.cases[0]]
>>> for row in case_mq:
... print(f"{row['ParameterName']}: Measured={row['Measured']}, Calibrated={row['Calibrated']}")property tuning_parameters
Tuning parameter results for each test case.
Returns a dictionary keyed by case name, where each value contains the tuning parameter data (initial vs optimized values) for that case.
Returns:
Dictionary keyed by case name with tuning parameter data. Each case contains a list of parameter results with:
ParameterName: Name of the calibration parameter
Unit: Unit of measurement
Initial: Initial value before calibration
Optimized: Optimized value after calibration
OptimizedDiff: Absolute difference between initial and optimized (in session units)
Normalized: Normalized value (weighted across tests)
NormalizedDiff: Absolute difference between initial and normalized (in session units)
Return type:
dict
Examples
>>> results = model.tasks.wellcalibration.run(producer="Well 1", study="Study 1")
>>> \# Get tuning parameters for first case
>>> case_tp = results.tuning_parameters[results.cases[0]]
>>> for row in case_tp:
... print(f"{row['ParameterName']}: Initial={row['Initial']}, Optimized={row['Optimized']}")property profile
Well calibration profile results organized by case, profile type, and parameter.
Returns:
Nested dict: case_name, profile_type, parameter, values.
Profile types:
Original
Calibrated
Normalized
Parameters:
Pressure
Temperature
Elevation
MeasuredDepth
Return type:
dict
Examples
>>> results = model.tasks.wellcalibration.run(producer="Well 1", study="Study 1")
>>> results.profile["Test 21Feb25"][Constants.WellCalibration.Profile.CALIBRATED]["Pressure"]
[4000, 4000, 3972.476, ...]property converged_cases
List of converged test case names from the calibration results.
Filters out the ‘Normalized’ case and any unconverged cases (names ending with ‘[UNCV.]’).
Returns:
A list of converged case names.
Return type:
list
Examples
>>> results = model.tasks.wellcalibration.run(producer="Well 1", study="Study 1")
>>> print(results.converged_cases)
['Test 21Feb25', 'Test 01Jan20-1']The well_calibration_task module maintains the high level well calibration methods for the Pipesim Python Toolkit.
class sixgill.Tasks.well_calibration_task.WellCalibrationTask(model, sim_type)
Bases: AbstractSingleBranchSimulation
Well Calibration simulation task.
get_conditions(producer, study: str | None = None)
Returns the well calibration conditions.
Returns the well calibration test data for the specified study. If the well calibration task does not exist in the study, a new one will be created.
Parameters:
producer (str) – Required. The name of the producer for the well calibration task
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
Returns:
Dictionary containing ‘TestData’ for the well calibration.
Return type:
dict
Examples
>>> wc_conditions = model.tasks.wellcalibration.get_conditions("Well 1")
>>> wc_conditions = model.tasks.wellcalibration.get_conditions("Well 1", "Study 2")set_conditions(producer, conditions, study: str | None = None)
Sets the well calibration conditions.
Updates the well calibration test data for the specified study. If the well calibration task does not exist in the study, a new one will be created.
Parameters:
producer (str) – Required. The name of the producer for the well calibration task
conditions (dict) – Required. Dictionary with ‘TestData’ key containing a list of test data dictionaries. Should match the structure returned by get_conditions.
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
Return type:
None
Examples
>>> conditions = model.tasks.wellcalibration.get_conditions("Well 1")
>>> \# Modify conditions as needed
>>> conditions['TestData'][0]['IsActive'] = False
>>> model.tasks.wellcalibration.set_conditions("Well 1", conditions)generate_engine_files(producer, folder_path: str | None = None, study: str | None = None) List[str]
Create engine files for the well calibration task.
Generate the engine file(s) for the requested study. One PST file is generated per active test data entry. The files are written to the specified folder, or to the current model folder if one is not given.
Parameters:
producer (str) – Required. The name of the producer for the well calibration task.
folder_path (str) – Optional. The folder location where the generated files are written to. If not specified, the files will be written to current Pipesim model file folder.
study (str) – Optional. The study name.
Returns:
The list of engine files generated.
Return type:
List[str]
Examples
>>> engine_files = model.tasks.wellcalibration.generate_engine_files(
... producer="Well 1")
>>> engine_files = model.tasks.wellcalibration.generate_engine_files(
... producer="Well 1", folder_path="D:/Temp")
>>> engine_files = model.tasks.wellcalibration.generate_engine_files(
... producer="Well 1", folder_path="D:/Temp",
... study="Study 1")run(producer, profile_variables=None, system_variables=None, study: str | None = None)
Runs the well calibration simulation.
Runs the well calibration simulation for the specified producer and study. If the well calibration task does not exist in the study, a new one will be created.
Parameters:
producer (str) – Required. The name of the producer for the well calibration simulation task
profile_variables (list) – Optional. List of profile variables to output
system_variables (list) – Optional. List of system variables to output
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
Returns:
A simulation result object containing the results, including:
cases: List of test case names (e.g., [‘Test 21Feb25’, ‘Test 01Jan20’, ‘Normalized’])
matching_quality: Dict keyed by case name with matching quality data
tuning_parameters: Dict keyed by case name with tuning parameter data
system: Standard system results
profile: Standard profile results
messages: Engine console messages
Return type:
WellCalibrationResult
Examples
>>> results = model.tasks.wellcalibration.run(producer="Well 1", study="Study 1")
>>> print(results.cases)
['Test 21Feb25', 'Test 01Jan20', 'Normalized']
>>> \# Access matching quality for first case
>>> for row in results.matching_quality[results.cases[0]]:
... print(f"{row['ParameterName']}: Measured={row['Measured']}, Calibrated={row['Calibrated']}")
>>> \# Access tuning parameters for first case
>>> for row in results.tuning_parameters[results.cases[0]]:
... print(f"{row['ParameterName']}: Initial={row['Initial']}, Optimized={row['Optimized']}")start(producer, profile_variables=None, system_variables=None, study: str | None = None)
Starts the well calibration simulation asynchronously.
Parameters:
producer (str) – Required. The name of the producer for the well calibration simulation task
profile_variables (list) – Optional. List of profile variables to output
system_variables (list) – Optional. List of system variables to output
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
Returns:
The operation id, which can be used to access operation status and get the results.
Return type:
str
Examples
>>> op_id = model.tasks.wellcalibration.start(producer="Well 1")get_test_parameters(producer, study: str | None = None)
Gets the applicable test parameters for the well calibration operation.
Returns a list of parameter names that can be used for well calibration. The applicable parameters depend on the well configuration (e.g., equipment types, fluid type, completion setup).
Parameters:
producer (str) – Required. The name of the producer (well) for the well calibration task
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
Returns:
A list of test parameter name strings.
Example: ["Weight", "Wellhead pressure", ...]
Return type:
list
Examples
>>> params = model.tasks.wellcalibration.get_test_parameters(producer="Well 1")
>>> print(params)
['Weight', 'Wellhead pressure', 'Wellhead temperature', ...]get_calibration_parameters(producer, study: str | None = None)
Gets the applicable calibration parameters for the well calibration operation.
Returns a list of calibration parameters with their names and calibrate flags. The applicable parameters depend on the well configuration. Each parameter has a ‘calibrate’ flag indicating whether it’s enabled for calibration by default.
Parameters:
producer (str) – Required. The name of the producer (well) for the well calibration task
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
Returns:
A list of dictionaries containing calibration parameter info with ParameterName and Calibrate keys.
Example: [{'ParameterName': 'Vertical friction factor', 'Calibrate': True}, ...]
Return type:
list
Examples
>>> params = model.tasks.wellcalibration.get_calibration_parameters(producer="Well 1")
>>> print(params)
[{'ParameterName': 'Vertical friction factor', 'Calibrate': True}, ...]
>>> \# Access using constants
>>> param_name = params[0][Constants.WellCalibration.PARAMETERNAME]
>>> calibrate_flag = params[0][Constants.WellCalibration.CALIBRATE]set_calibration_parameters(producer, calibration_parameters, study: str | None = None)
Sets the calibrate flag for calibration parameters in the well calibration operation.
Updates which calibration parameters should be included in the calibration process. Only the parameters specified in the input will be modified; others remain unchanged.
Parameters:
producer (str) – Required. The name of the producer (well) for the well calibration task
calibration_parameters (list or dict) –
Required. Calibration parameters to update. Can be:
List of dicts: [{PARAMETERNAME: ‘param_name’, CALIBRATE: True/False}, …]
Dict: {‘param_name’: True/False, …}
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
Return type:
None
Examples
>>> \# Using list of dicts (recommended - uses constants)
>>> params = [
... {Constants.WellCalibration.PARAMETERNAME: 'Vertical friction factor',
... Constants.WellCalibration.CALIBRATE: True},
... {Constants.WellCalibration.PARAMETERNAME: 'GOR',
... Constants.WellCalibration.CALIBRATE: False}
... ]
>>> model.tasks.wellcalibration.set_calibration_parameters("Well 1", params) >>> \# Using dict (parameter name to boolean mapping)
>>> params = {
... 'Vertical friction factor': True,
... 'GOR': False
... }
>>> model.tasks.wellcalibration.set_calibration_parameters("Well 1", params)add_test_data(producer, test_data, study: str | None = None)
Adds a new test data entry to the well calibration operation.
Creates a new test data entry with the specified properties. The test data will be added to the well calibration operation for the specified producer and study. The test name is automatically generated from the date.
IMPORTANT: Maximum of 30 test data entries allowed per well calibration operation. If the limit is reached, a ValueError will be raised. Delete existing test data before adding new ones.
Parameters:
producer (str) – Required. The name of the producer (well) for the well calibration task
test_data (dict) –
Required. Dictionary containing the test data properties:
’Date’: str - Test date in ‘dd-MMM-yyyy’ format (e.g., ‘15-Jan-2024’). If not specified, current date/time will be used.
’IsActive’: bool - Whether the test is active (default: True)
’Comments’: str - Optional comments
’TestValues’: list - Optional list of test data point dictionaries. Each entry should have ‘ParameterName’ and ‘Value’ keys.
’ParameterFactors’: list - Optional list of parameter factor dictionaries. Each entry should have ‘ParameterName’, ‘MinValue’, ‘MaxValue’ keys.
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
Returns:
The newly created WellCalibrationTestData domain object. Use the returned object’s ‘id’ property to uniquely identify the test data.
Return type:
object
Raises:
ValueError – If the maximum limit of 30 test data entries is reached
Examples
>>> \# Add test with specific date
>>> test_data = {
... 'Date': '15-Jan-2024',
... 'IsActive': True,
... 'Comments': 'New test data',
... 'TestValues': [
... {'ParameterName': 'Wellhead pressure', 'Value': 1500.0},
... {'ParameterName': 'Wellhead temperature', 'Value': 80.0}
... ]
... }
>>> new_test = model.tasks.wellcalibration.add_test_data("Well 1", test_data)
>>> print(f"Created test with ID: {new_test.id}") >>> \# Add test with current date/time (Date not specified)
>>> test_data = {
... 'IsActive': True,
... 'Comments': 'Test added with current date/time'
... }
>>> new_test = model.tasks.wellcalibration.add_test_data("Well 1", test_data)
>>> print(f"Created test with ID: {new_test.id}")delete_test_data(producer, test_name, study: str | None = None)
Deletes a test data entry from the well calibration operation.
Removes the specified test data from the well calibration operation. The test data is identified by its name.
IMPORTANT: At least 1 test data entry must remain. Attempting to delete the last test data will raise a ValueError.
Parameters:
producer (str) – Required. The name of the producer (well) for the well calibration task
test_name (str) – Required. The name of the test data to delete
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
Returns:
True if the test data was successfully deleted, False otherwise
Return type:
bool
Raises:
ValueError – If the test data with the specified name is not found, or if attempting to delete the last remaining test data (minimum 1 test data required)
Examples
>>> \# Delete a test by name
>>> success = model.tasks.wellcalibration.delete_test_data("Well 1", "Test 01-Jan-2024")
>>> print(f"Deletion successful: {success}") >>> \# Delete within a specific study
>>> success = model.tasks.wellcalibration.delete_test_data("Well 1", "Test 01-Jan-2024", study="Study 2")reset_well_test_data(producer, test_name, study: str | None = None)
Resets boundary conditions for a specific test data entry.
Resets the TestDataPoints and ParameterFactors to their default values for the specified test data. TestWeight and Inlet/Outlet Pressure/Temperature are excluded from the reset.
Parameters:
producer (str) – Required. The name of the producer (well) for the well calibration task
test_name (str) – Required. The name of the test data to reset
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
Returns:
True if the reset was successful
Return type:
bool
Raises:
RuntimeError – If the reset operation fails on the server
Examples
>>> success = model.tasks.wellcalibration.reset_well_test_data("Well 1", "Test 15-Jan-2024")
>>> print(f"Reset successful: {success}") >>> \# Reset within a specific study
>>> success = model.tasks.wellcalibration.reset_well_test_data("Well 1", "Test 15-Jan-2024", study="Study 2")get_terminators(producer, study: str | None = None)
Gets the list of valid branch end components for the well calibration operation.
Returns the names of all valid branch terminator equipment (wells, flowlines and risers) that can be used as the downstream endpoint for the calibration branch.
Parameters:
producer (str) – Required. The name of the producer (well) for the well calibration task
study (str) – Optional. The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
Returns:
A list of valid terminator equipment name strings
Return type:
list
Examples
>>> terminators = model.tasks.wellcalibration.get_terminators("Well 1")
>>> print(terminators)
['Well 1', 'Flowline 1']publish_calibration(producer: str, case_name: str, study: str | None = None)
Publishes calibration results to the model.
Applies the calibrated parameters (friction factors, holdup factors, PI, pressure, etc.) from the well calibration results back to the well equipment. Flow correlations are also published to wells, flowlines and risers.
This method requires that a well calibration simulation has been run first and the specified test case has converged results.
Parameters:
producer (str) – Required. The name of the producer (well)
case_name (str) – Required. The name of the test case to publish, or use Constants.WellCalibration.NORMALIZED to publish the normalized (weighted average) results across all test cases
study (str, optional) – The name of the study. If no name is specified and there is one default study, the default study will be used. If there are multiple studies in the model, study name is required.
Returns:
True if publish was successful
Return type:
bool
Raises:
RuntimeError – If the simulation has not been run or results are not available
ValueError – If the specified test case is not found or has not converged
Examples
>>> \# Publish results for a specific test case
>>> model.tasks.wellcalibration.publish_calibration(producer="Well 1", case_name="Test 08Jul25", study="Study 1") >>> \# Publish normalized results (weighted average across all tests)
>>> model.tasks.wellcalibration.publish_calibration(producer="Well 1", case_name=Constants.WellCalibration.NORMALIZED, study="Study 1")